I am married to Rachel and we have two children.
unifdef selectively removes C preprocessor conditionals. My version of this program now shipped by all the BSDs (including Mac OS X) and is used by the Linux kernel build system.
nsdiff creates an
script from DNS zone file differences. I used it at Cambridge as
part of the DNS update process.
nsnotifyd handles DNS NOTIFY messages by running a command. It’s a general-purpose tool for responding quickly to DNS changes. It comes with several example applications.
qp tries are a data structure for associating values with string keys. They are smaller and faster than crit-bit tries.
regpg safely stores server secrets using gpg, so you can keep them in version control.
Uplift from SCCS to git. If you are ever in the unfortunate situation of having to work with an old SCCS repository, I have suite of scripts to convert SCCS to git which you might find helpful. (I have done this twice now.) Contact me for more information.
days - tiny
routines for converting Gregorian dates into linear counts, like
Julian day numbers or Unix
time_t. The date of the
count - a
small routine for converting linear day counts into Gregorian dates.
FizzBuzz with higher-order cpp macros and ELF linker sets - very DRY solutions to a silly exercise.
Simon Tatham has a description of his really nice mergesort algorithm for linked lists which sorts in place with O(1) overhead and only uses forward links. In October 2005 I wrote another description of the algorithm which I think is easier to understand.
Exim is Turing-equivalent. I wrote a little demo which includes an informal description of how to translate a Turing machine into an Exim configuration, and an example configuration that implements combinator reduction like my IOCCC winner mentioned above.