Software Calculated to Drive You Mad

We at Leonard Labs want to help the developer community. Why? So that we can gain their trust and then trick them into using our proprietary technology.

Just kidding. The programs here are all licensed under either an OSI-approved license or the generic 'look at the code and let me know if you want to use it for something' license. Enjoy!


^Greatest hits

These are my most monumental, most widely acclaimed, or simply my coolest programming projects.

# Beautiful Soup 2004-2006 License: Python Python
Beautiful Soup is an HTML/XML parser with no external dependencies and no soul. It doesn't care if you give it bad markup; you just get back a data structure that's bad in a corresponding way. It's designed for screen-scraping applications when you only care about part of the markup you're processing. It also uses any means neccessary to convert incoming documents to Unicode, using an ASCII, Dammit-like library called Unicode, Dammit.

# Guess The Verb! 2000 License: Ask me Inform
Scenario-based adventure satirizing various IF genres. Very silly, lots of detail. Finished 11th in the 2000 IF Competition.

# I Want Options 2002-present License: Python Python
I Want Options is a reusable configuration framework. It can be used to move a web applications' configuration data online with the rest of the data, to do user preferences, or anything else your twisted mind can think of. Originally developed for use in NewsBruiser.

# NewsBruiser 1998-present License: BSD-style Python
A simple, powerful, easy-to-{install,use,administer}, self-contained weblog system. Builds on years of experience with writing for the web. Check out the feature tour. This is my coolest piece of free software.

# robotfindskitten 1997-1999 License: GPL C
The most popular piece of free software I've ever written, and the only one ever to have spawned a developer community that didn't need me as a linchpin. An ncurses Zen simulation which has been ported to the Palm Pilot, the Dreamcast, the Game Boy Advance, and other unlikely places. It's also been included on the Linux Bootable Business Card and in Debian. I've handed robotfindskitten development over to the robotfindskitten consortium, of which I am a (mainly honorary) member.


^Web software

Software designed to be run through a web server.

# Bloop 2003-2004 License: GPL Perl
Bloop is a version of Scoop that was heavily hacked to focus around weblogs rather than news-site submissions. I wrote it for the Clark Campaign and it's still in use at forclark.com.

# Downhill 2003 License: Python Python
Downhill finds connections between weblogs using the blogging ecosystem data. Usable as a command-line program or as a CGI.

# Madman 1999 License: Probably owned by UCLA Perl
Madman is a simple hypertext annotation framework which I wrote for UCLA professor Peter Hodgson. Only one text has so far been annotated using Madman: Gogol's "Diary of a Madman".

# NewsBruiser 1998-present License: BSD-style Python
A simple, powerful, easy-to-{install,use,administer}, self-contained weblog system. Builds on years of experience with writing for the web. Check out the feature tour. This is my coolest piece of free software.

# Noodle 2002 License: BSD-style (tigris.org) Java
Noodle is a set of Java classes for transparently making arbitrary changes to an HTTP request and response, according to logic contained in Java 'filters' that you write. You can use Noodle to remove personal identification information from an HTTP request, to wrap an HTTP response in new branding, or for any number of other purposes. The original Noodle was written by Jon Stevens (jon at tigris dot org). As part of my former job at CollabNet I rewrote it to be more flexible and much more efficient.

# The Bayes Motel June 12, 2005 License: Python Python
The Bayes Motel is a framework that makes it easy to test out ideas of the form "could I program a Bayesian corpus to distinguish x-type text from y-type text?" To use it, you write a class that puts items of text into a classification queue, then use the provided CGI script to classify the items.

# The Eater of Meaning 2003 License: GPL Python
The Eater of Meaning makes nonsense out of content, without affecting form. Usable in standalone or web proxy mode.

# The Me Software Map 2002 License: BSD-style Python
You're using it right now. A labor-saving device making it easy for busy hackers to keep a page containing information about all their projects.

# The Ultra Gleeper 2004-2005 License: BSD-style Python
The Ultra Gleeper is a recommendation engine for web pages, suitable for personal use. It solves or avoids most of the problems that make recommendation engines frustrating to use.


^Standalone software

Software designed to be run on your computer (assuming your computer runs some UNIX variant)

# Sales Rank Monitor July 26, 2006 License: Public domain Ruby
homepage/software/SalesRank/SalesRank.rb The Sales Rank Monitor tracks the sales rank of books and other items on Amazon, and makes graphs and sparklines out of the sales rank history. For obsessive-compulsive authors.

# KatzDot 1999 License: GPL Dada Engine
An automatic Jon Katz headline generator, written for the Dada Engine by my onetime roomate Dan Helfman, but with many textual contributions from myself.

# ksethdavidschoen Released September 27, 2002 License: Public Domain AMOR plugin
A little theme for AMOR which brings the floating head of world-famous hacker Seth David Schoen to your desktop. Written for Seth's 23rd birthday.

# robotfindskitten 1997-1999 License: GPL C
The most popular piece of free software I've ever written, and the only one ever to have spawned a developer community that didn't need me as a linchpin. An ncurses Zen simulation which has been ported to the Palm Pilot, the Dreamcast, the Game Boy Advance, and other unlikely places. It's also been included on the Linux Bootable Business Card and in Debian. I've handed robotfindskitten development over to the robotfindskitten consortium, of which I am a (mainly honorary) member.

# The Pocket Wisherman 2005 License: Python Python
The Pocket Wisherman slices and dices Amazon wish lists. It can group lists of books and music by author and genre and output HTML lists or densely formatted PDF 3x5 cards.

# The Power Of Greypoint March 23, 2003 License: Public domain Python
The Power Of Greypoint is a super-cheap presentation program. It's a Python script that turns a file full of ReST markup into a bunch of HTML presentation slides with invisible navigation. It requires docutils. I used it to make this presentation for PyCon 2003.

# What Fools These Mortals May 18, 2003 License: NetHack General Public License Python
What Fools These Mortals is a takeoff on NetHack in which you play a NetHack deity trying to keep your champion alive.


^Libraries

Reusable libraries, generally for use in web applications.

# ASCII, Dammit 2004 License: Public domain Python
A tool similar to The Demoroniser, but written as a Python library and capable of ASCIIfying not only MS smart quotes but (with varying degrees of accuracy) most of ISO-Latin-1. For use in fits of parochialism when you want something in ASCII, dammit. Can also convert such characters to HTML. See also the Unicode, Dammit library that comes with Beautiful Soup

# Ass-Kicking Laser Algorithm 2004 License: Python Python
This misleadingly-named library fetches and parses the XML file containing the most recent weblogs to have pinged weblogs.com. Its name derives from a joke about things that have cool names but are actually quite dull.

# Beautiful Soup 2004-2006 License: Python Python
Beautiful Soup is an HTML/XML parser with no external dependencies and no soul. It doesn't care if you give it bad markup; you just get back a data structure that's bad in a corresponding way. It's designed for screen-scraping applications when you only care about part of the markup you're processing. It also uses any means neccessary to convert incoming documents to Unicode, using an ASCII, Dammit-like library called Unicode, Dammit.

# I Want Options 2002-present License: Python Python
I Want Options is a reusable configuration framework. It can be used to move a web applications' configuration data online with the rest of the data, to do user preferences, or anything else your twisted mind can think of. Originally developed for use in NewsBruiser.

# Internet Topic Exchange Client 2003 License: Public domain Python
This rather unimaginatively titled library provides Python bindings to the HTTP POST and XML-RPC API for the Internet Topic Exchange. Originally developed for use in NewsBruiser.

# Leonard's Obsequious Markup Producer 1999-present License: Python Python
LOMP is a very simple library for generating HTML text with CSS styling (CSS styling not included) and HTML forms. Originally developed for use in NewsBruiser.

# Rubyful Soup 2005 License: Ruby Ruby
Rubyful Soup is a Ruby port of Beautiful Soup.

# Scrape 'N' Feed 2005 License: Python Python
Scrape 'N' Feed contains almost all the code you need to scrape a web page and turn it into an RSS feed. Combine with Beautiful Soup for a tasty treat anytime.

# Template! The Musical 2002-present License: Python Python
T!TM is a library for doing template interpolation. It's fast and easy to use. Originally developed for use in NewsBruiser.

# Transfusion 2004 License: Python Python
Transfusion is a simple parser for the Moveable Type input format. Originally developed for use in NewsBruiser.


^Interactive Fiction

Original works of interactive fiction.

# Degeneracy Released March 30, 2001 License: Ask me Inform
'Sloppy medieval' game with a twist. No other piece of software like it. Critically acclaimed.

# Guess The Verb! 2000 License: Ask me Inform
Scenario-based adventure satirizing various IF genres. Very silly, lots of detail. Finished 11th in the 2000 IF Competition.

# The Knapsack Problem Released May 6, 2001 License: Public Domain Inform, Python
Computer science optimization problem presented in a cute way. Fun for a while, but not earthshaking. Finished dead last in LOTECHCOMP 2001.


^Bagatelles

Simple pieces of software, usually web-based. Not cross-categorized to avoid cluttering up the other categories.

# BBS2ANSI June 20, 1999 License: GPL Perl
BBS2ANSI is a Perl script which correctly converts Wildcat!-style BBS color codes to standard ANSI color codes. It lets you specify strings to substitute in for the BBS/caller information codes. If you don't know what I'm talking about, you don't need it. But I needed it, and it took me a while to find all the information I needed to write it, so if you do need it, I've already done the work for you.

By the way, Wildcat! is no longer owned by Mustang; they sold it to a company called Santronics. Another piece of information it took me a long time to find. They don't recognize the fact that I was a paying customer of Mustang, though, so I couldn't get any technical information from them.


# Dada Pokey - License: BSD-style Perl
A suite of programs for randomly shuffling and generally having fun with Pokey The Penguin comic strips.

# Document tree printer 1999 License: GPL Perl
Takes a URL and turns it into a list of links to the various components of the URL. Useful for automatically inserting navigation links in your web pages.

# Dog Bites Dog - License: BSD-style Python
Scrapes 'offbeat' news headlines and recombines them to make them even more 'offbeat'. Two command-line scripts, one of which generates HTML.

# Fast Jack's Floating Hall Of Craps 1996-2000 License: BSD-style Python
Second in the series of "x's House of y" simulations, FJFHoC is a Python simulation that gives odds on craps. Originally a C++ program which has been lost in the mists of time.

# Mail viewer 1998-2002 License: BSD-style Python
A simple, spamproofed web-based frontend to viewing email messages (specific, preselected email messages, not whatever ones are in, eg, an IMAP account).

# Monty Hall's Hall Of Doors - License: GPL Perl
A CGI simulation of the Monty Hall Paradox. Nifty features galore. If this doesn't convince you, you can't be convinced.

# The McSweenifier Released March 17, 2001 License: BSD-style Python
Formats your pathetic attempts at McSweeney's stories as though they had actually been approved and published. Shameless as only software can be, it will dutifully format as McSweeney's stories things which don't look like McSweeney's stories at all.

The (rather tepid) irony is that the McSweeney's folks could actually get some good use out of this program, since it looks like they do all their HTML by hand.


# Tonight's String 2002 License: Murder Public License Python
A tiny publisher for updated-daily content, useful when the content is a short string (such as a quote of the day). Choose each day's content randomly or following an order you specify. Includes an archive viewer and an RSS feed. Used to power Tonight's Episode.


^Incomplete or archaic code

Incomplete but interesting software, and software that I consider too old to use. Such software may just need a little sprucing up, or it may be beyond hope. Not cross-categorized.

# eBlock Captains 2004 License: BSD-style Perl
A program I wrote for the 2004 Wesley Clark presidential campaign. It was later adapted (not by me) for the Kerry campaign. It distributes a phone banking task among a large number of volunteers.

# robotfindskitten 2: This Time It's Personal! - License: Ask me C
If you found robotfindskitten just a little too relaxing, if you crave a revival of the glory days of ANSI blood-and-guts, then have I got a deal for you! At great expense, I have written the definitive sequel to robotfindskitten, taking out all the funny messages and bizarre objects and replacing all that hoity-toity kitten-finding nonsense with a simple goal: kill or be killed!

robotfindskitten 2 is built on a bare-bones framework for writing an action game with ncurses, which you might find interesting. You're free to use the framework with or without attribution, or just rip off the doubly-linked-list implementation


# The Arbitrary Text Code 1999 License: In limbo Perl
There was a book a while back called 'The Bible Code' which purported to find hidden messages in the Old Testament. The Arbitrary Text Code brings the excitement of The Bible Code to whatever large chunk of text you happen to have lying around. This works, but not very well, and it's slow.

# Tigris 2000-2001 License: BSD-style (tigris.org) Java
Tigris is a suite of scripts and Java servlets which works with tools such as CVS to provide an easy-to-use software development environment. I worked on Tigris as part of my former job at CollabNet. The core component of Tigris is called Helm, and most of the Helm code was written by either Daniel Rall (dlr at finemaltcoding dot com) or myself.

In August 2001, the source to the Tigris suite was closed (but development continues as CollabNet). The download link will give you tarballs of the CVS repositories just before they were closed.

The Tigris version of Helm contains project, user, and group administration; a fast, ultra-flexible fine-grained access control system; a task runner; a distributed caching and cache invalidation system, and a lot of other stuff. There are also other components, which I did some work on: Picayune (a tool for project news), Nidaba (project documents), etc. The code is old, but it's good.