BuGLe is a utility I use for debugging OpenGL software development. Since I’m no longer actively doing OpenGL development, I haven’t done much work on it, and it does not support the latest OpenGL versions very well.
CLOGS is a library that provide radix sort and parallel prefix sum implementations for OpenCL.
OnlineCLC is a minimal tool to use the OpenCL online kernel compiler to compile kernels from the command line. It is most useful for validating the correctness of kernels, although it can also save the binary.
clrunon is a tiny library that sits between an application and the OpenCL runtime and presents only a single chosen device to the application. It is useful when an application provides no mechanism to select the OpenCL device to use but it is necessary to force it to run on a different device to the one it chooses by default.
I have contributed heavily to Abacus, which is software for running ACM ICPC-style contests. It is used for the South African regional of the ICPC and for the Standard Bank IT Challenge.
I am a co-author of SMS, which is an evaluation system for IOI-style contests. It is used for the South African Programming Olympiad. At present there is no website for SMS.
Jinamp is what I use to play music on my computer. It is GUI-less, and aimed at just getting some music playing without having a bunch of windows getting in the way. There is a command-line tool to do a few simple things like go to next track.
I have written a few plugins to automate tasks for the UCT Ballroom and Latin Dancing Society:
Datagrind is a Valgrind tool that captures all read and write accesses made
by a program and records them in a log file. A separate tool (
then be used to visually represent the reads and write.
Datagrind is implemented as patches on top of Valgrind. You can read the
manual page for it
is unfortunately unmaintained and no longer compiles on modern systems.
This is a very simple Python script that uses
readelf (from binutils) to
obtain DWARF information about structure sizes and offsets, and produces it on
stdout in a more easily parseable (and also human-readable) form:
Years and years ago, in the dawn of time, I wrote a mod for Quake. Yes, the
original Quake, in all its software-rendered 320×240 glory. It mainly adds a
super-rocket, which does evil things like home in on people, but it also
suffered some creeping featurism. It has a
Here are some patches that I wrote many years ago, but which I no longer use myself: either because the upstream version now works, or because I no longer use the software. They probably no longer apply cleanly, and are only kept here in case someone else still linking to them.