Free Software


I have written various pieces of Free Software. I am maintaining, some software for the Debian Project. You can find all this and more in my programs directory.

In some of my nominal free time, I used to give talks for my fellow students. Now I go to conferences and give them there.

Programs I have written


Well, I have just finished writing a program for Jeff Bailey. The foolish man volunteered to do an NMU on a library, and now wants to find out what packages depend on what. So, I've written apt-rdepends (1.3.0), a Perl script that hooks into APT and recursively finds dependencies. Why not use apt-cache? Because apt-cache doesn't know how to recurse across reverse dependencies. Of course, I think it would be marvelous to make apt-rdepends obsolete, so please hack on apt-cache to do so!

This program is licensed under the GNU GPL.


I do some LATEX hacking for the Computer Science Club too. I've gone and written a collection of styles for making posters and writing letters. Get version 1.1.

This program is Copyright © 2002,2003 by the Computer Science Club of the University of Waterloo, and is licensed under the GNU GPL.


On Windows, sometimes you just need the power of Cygwin. However, you may also need to read and write from the Registry. Python doesn't build the winreg module on Cygwin. So I wrote cygwinreg to do replace it.

This program is Copyright © 2009 by Akoha and is licensed under the Python Software Foundation License.


The Computer Science Club has been using an LDAP user database for a while now, and I noticed that fingering a user was really slow. So I looked at the code, and apparently, BSD finger uses NSS to get the entire user directory, and then searches through that.

That's horribly inefficient when you've got a huge user database. And LDAP provides a perfectly good method of searching it. So finger-ldap (1.3) is designed to resolve the username using LDAP, and then pass it down to the system's finger which does the formatting of the user information. Now it's nice and fast.

This program is licensed under the GNU GPL.


So I needed to write a quick program that snarfed up the Server: banners from a mass bunch of HTTP servers. Since I had just gone to Damian Conway's Perl talks at Debconf 2, I decided to write a small script. Unfortunately, Damian corrupted me and the result was this monstrosity. I call it "job security in 101 characters."

Recently, I've realised that I can shave off another two characters. Can you spot the difference?

This program is licensed under the GNU GPL.


In March 2004, I decided to graph my network of friends on Orkut. In the process, I wrote a small Makefile and a Perl programme called orkut2dot which screen-scrapes the site in order to gather data.

You should look at the graphs I generated.

This program is licensed under the GNU GPL.


This is a LATEX package that provides a variable-width \parbox command. Get pbox version 1.0.

This program is licensed under the GNU GPL.


I decided to do my résumé as a LATEX document. It gets converted to DVI, PDF, PostScript and XHTML by means of PDFTEX, GhostScript and TEX4ht. It comes in two documents: resume-sfllaw.tex which is the required source file and the recommended Makefile.

I used to use a very primitive parser that I wrote in Perl. It took the TEX and turned it into XHTML. I didn't use LATEX2HTML because it didn't want to munge my document correctly. However, this program is deprecated and should no longer be used.

Oh yeah. Maybe you want to read my résumé.

This program is licensed under the GNU GPL.


If you are a University of Waterloo co-operative education student, have I got news for you! If you can use LATEX or have the gumption to learn, that's even better. I've written a document class called uw-wkrpt that knows about the work term report guidelines for several programs and can format your report to follow them.

You may remember that this program used to be called uw-ece-workreport. As of version 2.0, it supports more than just Electrical or Computer Engineering reports, and so the name no longer fits.

This program is licensed under the GNU GPL.

Packages I maintain

I've started getting seriously involved in Free Software, specifically with the Debian Project. I'm a Debian Developer, and have packaged up some stuff.

Currently, I officially maintain:

I used to maintain:

Home |  About Me |  Photography |  Food |  Events |  Free software |  Montreal |  Kitty! |  Contact me