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.
|
# 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.
|
^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.
|