This is my homepage. Please excuse my experimentation with css (eg), avoiding flash.

The most interesting stuff is at the shaders page.

If you are using internet explorer, go here or here or here or just go.
If you feel like a laugh, have a look at IE's compatibility.

Updates:
Pages are now using texture atlases, expiry headers, cleaner URLs, gzip compression and combined javascript and css files. Yes, I enjoy writing things from scratch.

Function of the month: glMemoryBarrier

std::sort using a compare object:
The compare object is copied many times during the sort.

GCC PCH:
It seems correct use of precompiled headers using gcc/g++ is kept secret. If you too have the issue that g++ isn't compiling using your .gch precompiled header when the "-c" compile object flag is used, find the answer here. The fix is -fpch-preprocess:
g++ prec.h #creates prec.h.gch
g++ -fpch-preprocess test.cpp -c #checks for prec.h.gch when test.cpp includes prec.h

GCC unused/dead code removal:
By default, GCC does not remove unused functions and variables. Compiling with
gcc -ffunction-sections -fdata-sections ...
puts functions and variables into separate sections. When linking,
ld --gc-sections ...
gcc -Wl,-gc-sections ...
removes, or "garbage collects" unused sections. This is not full dead code removal but it helps. Unfortunately it seems as though calls to external libraries within unused functions cannot be removed.

RFC1149

Crawler Scoreboard

accuracy depends solely on dns name
 Google Microsoft Yahoo Blekko
133034948635
10438 total page requests (a fairly arbitrary counter. perhaps I should have included a since <date>)