Whenever one needs a curve, a spline of some sort is usually involved. The most common forms are Catmull-Rom splines and Cubic Bezier Splines. Both of these splines have relatively simple polynomial forms, and are easily evaluated in the vertex shader.

There appear to be some major issues with the node application that runs this website. It crashes after some time, without a visible stack trace or anything. I’m not sure why this happens - the application is running under a daemon that should restart it if it dies, but this appears also not to work.

Either way, the golang application thats running on the same server is running just fine after several months. More investigation is needed, but I can’t help but think that a better language wouldn’t have these problems.

While reading Hacker News, I came upon an article that purported that Java (or other high level languages) should be used in preference to C++ due to the quality of modern interpreters and JIT compilers. I will not discuss the conclusion, which is shaky at best, but rather the microbenchmark that was used to display the quality of the Java virtual machine.

Just a quick aside for anyone that may be using luajit with luabind on x86 platforms - be careful about the way that luabind throws exceptions. Luajit on x86 platforms has no exception interopability, which means that throwing exceptions through lua frames is not supported, and may corrupt the stack. This usually is not a problem, since luabind generally only throws exceptions after an error, or some other confluence of events conspires so that the exception does not corrupt anything.

According to the most recent Steam Hardware Survey, 99% of steam users have SSE2 and SSE3 instruction support. The most immediately obvious thing to do with SSE is to try to optimize 4-vector math. However, a naiive reimplementation of vector methods doesn’t come close to the theoretical 4x improvement that one would expect from an SSE implementation

The GPU is the most powerful processing unit in a modern computer, and sadly, much of its processing power ends up wasted as it waits for data from the CPU to draw. It is common to move linear algebra tasks like model skinning and physics to the GPU, but other tasks are often still left for the GPU.

There is something that far too many people ignore when writing applications. The importance of the first impression is something that cannot be understated. Just today, I was involved in a basic phone application ‘hackathon’. The goal was to develop the app that the most people liked, within 12 hours after a brief 1 minute presentation.

One of the easier things to do with the Win32 API is to automate an application. For any given application, the vast majority of your interactions with it will end up being through the Win32 GUI, or through something wrapping the Win32 GUI. As a result, it is very easy to enumerate the windows within the interface and send a bunch of messages through SendMessage and similar methods.

As of Node.js 0.7.0-alpha, there is no blessed path for writing native Node.js extensions on windows. However, it is not impossible to build fully compatible native node modules using Visual Studio. Doing so properly, however, requires a bit of finnesse.