What's here...

Screenshots of shaders
Images from a CPU raytracer
Some photos I took
Some published research

If you are using internet explorer, go here or here or here or just go.


Random Stuff...

Space shuttle game

After I got curious about my desktop background and hit google maps to find where it was.

Simple WebGL Ascii Post Process

Have you ever desperately needed your webgl app to be rendered using just a few ascii characters? Well now you can: add <script src="asciigl.js"... and call asciigl(glcontext).

The above is an asciified sample from khronos.
asciigl.js <-- source
asciigl_table.py <-- for restricting characters

Functions of the month arbitrarily long period:

checkCudaErrors - cudaErrorUnknown: "This indicates that an unknown internal error has occurred."
uintBitsToFloat
glMemoryBarrier

Some python
f = lambda x: (17*x**4 - 114*x**3 + 163*x**2 + 90*x + 792) / 12
print ''.join(map(chr, map(f, range(5))))
(not python)
(also not python)

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
Without ccache, this greatly decreases compile time. With ccache, first time compilation is still faster using pch. However, with ccache a make clean and make seems to be faster without pch.

ccache coherency:
Occasionally cleaning/recompiling does not pick up code changes because of ccache. I've noticed this more when using inline assembly. --ccache-skip works, but gives an error if ccache is not installed. export CCACHE_DISABLE=1 doesn't work for me.

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.

The code for some of the buttons on the left is here, avoiding flash.

RFC1149

Email:

Crawler Scoreboard

accuracy depends solely on dns name
 Google Microsoft Yahoo
433145412017

9 requests per week. Averaged over the last 17286 days. (excluding most crawlers)