/   person work projects words pictures near far
              Similar shape. Purple hand, too. Devin Carraway

(/bin/date > /dev/null)

Stuff I was/am working on. When working on my own I tend to work on small projects to do simple tasks; the odds of sustaining energy and interest until it's usable are much better.

Young programmers grow old, unless they die in the attempt. Hopefully disk storage will grow old successfully with us -- our old source code will be far better to inflict upon our hapless young descendants than faded photographs. :)

2009 Glen Park Festival
I did the website for the 2009 Glen Park Festival
DYI Baby Mobile
I made a baby mobile out of old CDRs, and took a bunch of pictures.
No Moving Parts
Lately (2002) I've taken an interest in electronic gadgets that have no moving parts. Rationale: I've mucked about with computers for about twenty years now. All along the way, things have broken; most of what broke was stuff that had to move to stay working. Fans, hard drive platters, the C64 1541 floppy drive, etc. Devices are tending to add more breakable components (e.g. cryogenic cooling devices) to keep others (e.g. comically fast CPUs) from breaking. However, if you can build a device with a CPU that doesn't put off a furnace's worth of waste heat, and without rotational, random-directional storage, you can make something pretty reliable, silent and power-efficient.

In one project along these lines, I took a TuxScreen (essentially a cheap StrongARM-based desk phone with a bit of RAM, a bit of flash-ROM and a Linux kernel) and made a firewall. There's a fair chance that the page you're now reading passed through it just a moment ago. :)

I serve as the technical moderator for soc.sexuality.general, one of Usenet's few surviving sexuality forums. Most of this work involves building software to make lives easier for legitimate users, and other moderators, and harder for spammers. It also means dealing with penis-enlargement spam and WebTV users, two of the more painful parts of the job.
I'm a developer on the Debian project -- an enormous, vigorously correct and perpetually unfinished (GNU/)Linux distribution. I maintain various packages, though my major interest is in improving Debian as a platform for embedded development, and possibly direct use as an embedded OS.
Qpsmtpd is an SMTP daemon implemented in Perl, which emphasizes spam detection and rejection during the SMTP conversation. I've written a number of plugins for qpsmtpd; some are here, others are in the main distribution. The one I'm most proud of, check_earlytalker, was the first (so far as I know) attempt to detect spambots who weren't actually waiting for the SMTP prompts, and still gets a respectable detection rate today.
I was Undersecretary of Postal Lubrication for the North Bay Linux Users' Group. Mostly that means I helped run the installfests, helped run the servers and wrote whatever code needed to be written to wrangle what needed to be wrangled. I also provided valuable supplementary cynicism.
A synthetic load generator for Linux systems -- lets you select how much CPU, memory and/or disk activity you want a host to exhibit, and tries to keep utilization at that level. Handy for dodging certain types of budget audits. :)
An automated, aggressive spambot poisoner, with some nifty features. Recently posted to Slashdot, somewhat to the detriment of my netfeed.
A derivative of sugarplum intended for tarpitting and otherwise hindering censorware spiders. Mainly a one-off wild notion on which I don't really intend to follow up.
Mayonnaise Jar
A facetious distributed P2P backup system using spam as a conduit, and spammers' databases as remote storage.
A plugin for SpamAssassin to perform frequency checks on punctiation appearing in mail, which seeks to provide high-confidence detection of punctuation obfuscation without needing to know the spammers' vocabulary in advance.
A plugin for XMMS which adds support for the XF86Audio keysyms -- with it, XMMS can make use of those audio-control keys found on many modern keyboards.
A match-finder for the Dominoes problem in computing theory. The problem concerns the search for arrangements of a set of symbolic pairs so that the concatenation of the two respective elements of each tuple will be equal. It seemed easier to write this than to solve a textbook exercise on paper, which was the author's intention.
Inflation Calculator
A small contraption to plot the "value" of a US dollar over time given the effects of inflation. I was curious one day as to how to interpret a historical price in terms current dollars, and couldn't find any immediately accessible references. Also, it allowed me to give Google's charting API a try.
Sample arithmetic lexer/parser
At one point I wanted to teach myself about lex and yacc, and started in the usual way by writing a calculator in them. While learning I often wanted a running sample I could fiddle with, since most introductions on the subject tend to leave out the fiddly little details about what your main() is supposed to do and so forth.
A semiautonomous console application test harness, written using perl5's Expect module, adding automatic computation of input class cartesian-products, which simplifies the definition of app tests to a little math rather than a lot of typing. The name derives from "Gauntlet," the test environment used to develop the first version of the OmniPage OCR software.
I'm the unofficial (but first and sofar only) maintainer of the Debian-Slink packages of Sawmill, the wonderful lisp-configured window manager.
[obsolete -- sawmill, now sawfish, was adopted into Debian Potato, and Slink has happily been retired.]
A lightweight, pretty-looking curses CD player application. Written with non-X machines in mind; does CDDB and SQL track data loading in a light footprint. Written for Linux, though it should be portable to other platforms. No longer maintained, as there's seldom any demand for an app with these particular specializations; also the code was a disgusting mess.