Nov. 21, 2014

C++ Concurrency Bugs

One class of bugs which can be particularly hard to find are concurrency bugs. The purpose of this article is to discuss some common types of concurrency bugs, as well as some techniques for finding and fixing them. Additionally, we'll examine how understanding what the CPU is doing behind-the-scenes can help avoid some subtle concurrency errors. I'll be using C++ for this, but some of this article will apply to other programming languages as well (especially C).


Oct. 24, 2014

Solving Computer Science Problems With Math

Very often in computer science, there are problems with no obvious "fast" solution. There are computer science techniques to speed up naïve solutions: things like caching intermediate results, using different data structures, and so on. Frequently, though, this isn't enough to arrive at a really good solution to the problem. Many times, we need to use mathematics techniques to simplify the problem, and after doing so, the solution becomes trivially easy to compute.


Sep. 24, 2014

2-D Rendering With OpenGL in Spectr

Modern OpenGL techniques are not very well documented online. Or, at the very least, there aren't very many high-quality, simple explanations of how to initialize an OpenGL context, and do some basic rendering with it. In this article, I'll examine the techniques used in my open-source application Spectr, which I think can be a good example.


Page 1 of 1