This document details pieces of software I have been involved with. This includes projects I have written or rewritten, and projects where I have added a useful feature or killed a hard-to-squash bug.

ALSA Support for Pbbuttonsd

Pbbuttonsd is installed on most Apple laptops which run a Linux kernel. The main benefit it provides is to hook the Apple-specific hotkeys into the rest of the operating system. Until my patch, the volume control module for pbbuttonsd relied on the Open Sound System which had been deprecated when the Advanced Linux Sound Architecture was integrated with the kernel during the 2.5 series.

I sent my first version of this patch to the pbbuttons mailing list in November 2004, but due to some design flaws, it needed to be reworked twice before it was ready for general use. Matthias Grimm included it with his official release as of version 0.6.7.

Linux Cpufreq Support for 2004 iBook G4

In April of 2004 I purchased an iBook G4 laptop. After a short time using it, I discovered that although the CPU was rated at 1 GHz, and although Linux said it was running at 1 GHz, it was actually only operating at 500 MHz. It turned out that Apple had used a new CPU in this model of laptop, and Linux did not have the appropriate code to perform the power management tasks.

With some help from Benjamin Herrenschmidt, and after reading some of Apple's code, I was able to modify Linux to correctly change the clock speed. Benh tweaked my patch and sent it upstream in June 2004, and it was included in Linus' kernel from version 2.6.8.

FLAC Decoder Plugin for K3B

K3B is the premiere CD burning program for Free operating systems. In 2003 I began to use FLAC as my primary music encoding format. I went to burn a CD one day and was annoyed to find that K3B didn't have the capability to decode FLAC files.

Sebastian Trueg accepted my patch in November 2003. Since then I have added support for ID3 tags, and fixed a bug which was exposed when decoding long tracks.

DLX Simulator (dsim)

I worked on a rewrite of Adelaide University's DLX machine simulator over the summer of 2001-2. Besides speeding it up and giving it a plugin-based architecture, the butt-ugly AWT interface was replaced with slightly-less-ugly Swing interface.

There is not much information about dsim on the Internet. I have an old dsim tutorial available thanks to Paul Hoadly, but that's it.

Bug Fixes

Every now and then I bump into a bug in a program I am using. When I have sufficient time and motivation, I squish them. If the bug hunt was sufficiently exhausting or satisfying, I will list it here.

KDE audiocd:/ Ogg Vorbis Ripper

I used to use KDE's audiocd:/ ioslave for ripping my CDs to Ogg Vorbis. Unfortunately, after ripping about 50 CDs over the course of a year or two, I discovered that every track was bogus. This made me very sad, and so I spent several hours pinpointing the cause of the bug and then fixing it. The results were reported in Gentoo bug 28887 and KDE bug 60069. For some idea of my state of mind by the time I'd finished with this, read under "expected results" in the Gentoo report.


Klickety used to be saree's favourite computer game. Then all of a sudden it just stopped working. I got a bit lost while trying to find the solution, because some of the code was auto-generated. Fortunately, after I reported my findings in KDE bug 77170, KDE's Hadacek Nicolas was able to find the correct fix without much trouble., 28/5/2005