On this page you will find some of the software I have written over the years to do one thing or another. Some of it will be useful to others, some of it is evil to look at, whatever. Anyway, they're all here for the taking, under the BSD License. I welcome any diffs or patches you might come up with to fix any (hopefully minor) bugs you might find in these pieces of software.

For a while, I dabbled in coding on the Dreamcast. You can find some of my code for that here.


A high performance Postfix mail filter originally based on amavisd-new designed for large installations with many users and high message throughput.

Official Site


A collection of Python libraries for working with BIND zonefiles.

I needed a way to convert a ton of zonefiles quickly from a ton of formats to a single, common, format, and all I could find that was even close to what I needed was bind-config, which was close, but not nearly broad enough, and seems to have stalled in development in 2001. So I started with that, and created PyBINDUtils.

Included is a parser and writer allowing easy conversion of nearly every permutation of the common zonefile format to a format you specify. See the included docs and examples for more information.

Download v0.9.3(Released 02.04.05)

HTML/CSS Tree Control

I wrote a pure HTML/CSS/PHP tree control that I used when I was documenting Cayman SOCOS. If you can generate a hierarchical arbitrarily deep multi-dimensional array in PHP, then you can use this tree control and expect it to work in nearly any browser with no Javascript.


PHP RSS Aggregator

A PHP web-based RSS Aggregator using Magpie RSS. It is also a good example of how to create a paneled/tab/notebook style control that doesn't require multiple page loads using Javascript and XHTML/CSS. It is somewhat less impressive when viewed in a non standards compliant browser, but works well anywhere else.

Example Site
Source v1.4
Example Config


This is a very handy IRC client implementation in Ruby with facilities for event based callbacks. It allows the user to insert a handler in just about any step of the client processing. Designed to be robust, clean, and simple, it is the library I wrote for use with SlashBot and the upcoming Ruby port of Cowbot. There is extensive documentation inside the file on how to use it.

Download v1.0


CowBot has been rewritten to be extendable and clean. With the default configuration, this lovable IRC bot was originally designed to be a mildly intelligent clone of cow, with a few enhancements (link saving and randomness to name a few). It has since been stripped down to a simple rules-based engine that is capable of nearly any kind of task. It now only acts based on the rulesets you feed it. I have used it for multiple different applications, including network monitoring and device management.

CowBot2 is written in perl, and requires that you have Net::IRC, LWP::UserAgent, and HTTP::Request, all freely available on CPAN.

Download v2.0