I've created and modified a number of pieces of software over the
years. I am fortunate that most of my professional work is freely
available, including my contributions to
- Kerberos V5
- Kerberos V4 (in particular Cygnus Network Security/V4)
- the Zephyr Notification System (most of which have been replaced)
- The X Window System version 11
- xdpyinfo -metric and -english,among other things
- zlib support for X fonts
- lots of work on GNU Project utilities including
- sort: implemented -z option (upcoming release)
- objcopy: implemented --strip-symbol (-N) option
- some work on g++ including original template support and
nested class support
(which has thankfully been rewritten; the only vestige of my
work is the name of the file "cp-spew.c")
- initial implementation of gdb remote debugging stub as
part of the DJGPP dos extender (there is a much better way
now... but at the time (1992) it was the *only* way...)
- various contributions to "autoconf"
- screen: fixed filtered-exec TIOCPKT handling
- emacs18: fixed use of select
- emacs19: found workaround for linux packet mode bug
- various fixes to the Cygnus WIN32 development kit
- some maintenance of the Cygnus "newlib" embedded C library
I've also authored several papers including or about software.
Hacking is also a hobby (and a way of life) and there have been some
other results of that that might be of interest...
- My driver code for the HandyKey Twiddler one-hand
keyboard-mouse. (The important bits have been integrated into a
driver used by the MIT Media Lab Wearable Computing Project.)
- X in Perl -- a perl implementation of most of the The X Window System version 11 protocol
- KittenWeb -- a database-driven collaborative web server (in perl)
- Random Number Generator in TCL (in the comp.lang.tcl FAQ)
- A simple TCL grapheditor
- some simple perl scripts to mangle emacs RMAIL (babyl) files.
- a simple BDF font editor in emacs lisp.
- the SIPB callsign gateway.
I also do some "software maintenance" in the form of packaging up some
pieces of software for The Debian Linux Project.
Maintenance, in this context, implies
- libgdbm taken over
- libdb taken over
- xterm-color obsolete!
- autoconf taken over
- dlltools obsolete
- emacs19 obsolete
- intercal taken over
- cvs taken over
- gnat soon to be taken over
- make taken over
- ash taken over
- mtools taken over
- fdutils taken over
- various contributed patches
- partial bind upgrade for libc
- named patch for backwards compatibility
The intent is that this saves effort on the part of the end user *and*
the developer, leaving the developer free to improve the software
further, to the benefit of all. The work of creating the
packages above is entirely due to those authors, not me...
- packaging work
- updating the package in response to upgrades from the real authors
- front-line response to bug reports
- reasonable effort at package integrity (via md5 and pgp signatures)
A few years ago, I'd included a list of software (DES in perl, for
example) that I couldn't put up on the web due to the International
Traffic in Arms Regulations from the US Government Department of Trade
Controls. That has changed, the jursdiction now falls to the BXA
(Bureau of eXport Administration) and the Commerce Department, and they
have provided a straightforward way to publish free cryptographic software.
The Raindoll site now includes my cryptographically interesting software,
to avoid any issues with being a guest of MIT.