Over the years I've worked on a bunch of software, some of which is here for the public to partake of.

Pong3 - This hadn't been maintained since 1999, and so I've removed it.

loghandlers.tar.gz - utility to "catch" log entries from Apache, and to create individual logfiles for users' home directories, while still leaving a "master" log for the ISP/site-owner to use and consult. Great for allowing users to process their own stats. - A project for maintaining blacklists of sites which disobey various RFC's basic tenets. - web site (running Slashcode) to serve as a community for users of various Milter products with Sendmail (libmilter, Sendmail::Milter, PerlMx, etc.) [edit 2011: This has since been turned back over to the Sendmail folks to run on their own]

Sendmail::AccessDB - a package for making it easy to abstract the "SpamFriend" and "SpamHater" features in sendmail, as well as those for whitelisting certain hosts/addresses/etc.. Especially useful for making sure that addresses you whitelisted as "always accept for" in /etc/mail/access also get whitelisted in Milter-based applications as well (be they senders or recipients) - Milter utility (requires Sendmail::Milter from SourceForge) for creating disposable addresses on the fly that expire at a known interval. Useful for allowing your users to have spam rejected at the SMTP level instead of doing (similar) processing via procmail. Addresses end up in the format xxxYYYYMMDDLL@td.example.tld, where "xxx" is a prefix that will map to a particular recipient, YYYYMMDD is the creation day, and LL is the lifetime of the address in days. The advantage over the procmail solution is that when you do something like username+yyyymmddll@example.tld, it is trivial to remove the timedelay stuff and have it work. With this, there need not be any direct mapping between the prefix and the actual username.

dnsbl.m4 - (included here until it is folded into the sendmail tree) allows for optional fourth argument of `h', which will make it lookup hostnames instead of IP addresses. If this is NOT folded into the sendmail source tree for whatever reason, I'll rename it to avoid namespace collisions and confusion.

rhsbl.m4 - (included here until it is folded into the sendmail tree) allows for domain-based blackhole list checking based on the "right-hand-side" (RHS) of the sender address (e.g., given a sender of <>, do a lookup using as the argument). CAUTION: I have not updated this m4 macro in quite some time, and haven't even used it in a testing environment in even longer. It's here for historical archiving, and perhaps as a basis for someone else to pick it up and continue to maintain it. All bets are off, otherwise.

SpamCheck - Milter for scanning message bodies for URL's, and seeing if the URL's (or their IP addresses) are listed in any DNSBL's or RHSBL's. Also allows for the option of blocking URL's that are IP-based and don't actually resolve. Also includes the ability to scan From: and Reply-To: headers, and a veritable plethora of other types of checks. - takes a hash of regexes (as keys) and addresses to BCC mail to if it either comes from or is going to one of those regex matches. Who needs "Carnivore"?

cidrexpand - useful for sendmail, which does not accept CIDR notation for its access.db file, so that you can use easy-to-read CIDR notation, and still feed into sendmail the format it needs in its DB file.