I contribute to various free software projects and maintain various pieces of free software. Many of the entries on this page are only of archaeological interest.

You are more likely to find my recent work in a Git repository here:

Projects

Debian

I maintain several packages in Debian, the universal operating system. Details can be found on my contributor page.

OpenBSD

I have contributed a few patches to OpenBSD and its associated projects (OpenSMTPD, OpenIKED, etc.).

MacPorts

I maintain several ports in macports.

Software

lintex

This utility removes unneeded files after a (La)TeX run. The file extensions it searches for are hard-coded. I intend to rewrite it some day in SML to handle user-specified extensions. It is distributed under the GPLv2+ and is available via the lintex Debian package.

slingshot

Slingshot is a two dimensional, turn based simulation-strategy game set in the gravity fields of several planets. It is a highly addictive game, and never the same from round to round due to its randomly generated playing fields.

It is a deceptively simple game, the goal is to shoot the other spacecraft through the field of planets, but their gravity makes it tricky. The effects of the gravity mean that although it is easy to learn how to play, and to enjoy playing, it could take a lifetime to thoroughly master.

Slingshot is distributed under the GPLv2 and is available via the slingshot Debian package.

Turnin-NG

Turnin-NG is a command-line assignment submission suite. Turnin-NG is currently used by the Queen’s University School of Computing and others. It is distributed under the GPLv2 and is available via the turnin-ng Debian package.

Bibliosoph

Bibliosoph is a free and open-source technical reports manager implemented with the CakePHP framework. It supports author aliases, generates BibTeX entries, sorting, etc. It is distributed under the GNU AGPLv3+ and others.

Bibliosoph was previously used by the Queen’s University School of Computing to manage their techreports.

ET, a simple equipment tracker

ET is a simple equipment tracker used by administrators at the Queen’s University School of Computing to track loaned laptops and projectors. ET is distributed under a BSD-style license.

CEVote

CEVote (Conseil Étudiant Vote) is a student council election manager, written in Django. It was a grade 11 project and was successfully used to elect my high school’s 2009-2010 student council.

It is probably not worth the effort trying to use. It depends on a terribly out of date Django version (whichever was current in January–June 2009, probably 1.0). I tried and failed to get it working. It is distributed under the AGPLv3+.

CEVote-NG

Having failed to get CEVote working for the 2010-2011 student council elections, I wrote CEVote-NG in two days as a replacement. I’m quite pleased with my progress, CEVote took me 3 months to write (I had never heard of the MVC paradigm before). CEVote-NG uses CakePHP as its framework.

Since CEVote-NG was pitched together in two days, it may be stylistically lacking and/or buggy. It was however successfully used to elect my high school’s 2010-2011 student council. We had about 12 desktops available for voting during lunch (~50 minutes) and ~200 students voted.

CEVote-NG is distributed under the AGPLv3+.