WARNING: None of this software is packaged for release. Don't bother fetching it unless you like reading and fixing other people's code.

I've discovered that if I put off making a piece of software available for download until I've created a package that's in a state in which someone could fetch it and use it without reading and modifying the source, then I'll be putting it off forever. So I put it here in the hope that (a) it will be useful to those who understand it, and (b) that someone might volunteer to help me create a more generally useful package. Most of it is in Perl and requires Perl 5. Most of it is left uncompressed - it's easier to view online that way, and it's so small it's hardly worth the bother.

With the above warning in mind, please feel free to mail me with any questions or problems with any of this software.


Well, substantial enough to have their own Web page, anyway...

Data unbiasing
Several implementations of two strategies for turning biased random data (eg from a Geiger counter) into fair random data.
A Perl script for making photo galleries like these.
Lego software
I've been playing with Lego Mindstorms, and made a Lego line follower that goes faster than the normal one with some algorithmic cunning.
A Perl script that makes maintaining a remote website of static pages vastly more convenient. No longer under active development - I use rsync now.

Net related

dials your ISP and runs a bunch of services when you connect, drops the connection when it goes idle. Logs things. It used to be setuid on my system before I got cable internet.
the configuration file I use for ppp-connect on my system.
if you get your mail through a smarthost, you can't use the RBL directly - this script parses "Received" headers and allows you to use the RBL at one remove.

Crypto related

the beginnings of an SPKI toolkit in Perl. Currently this has only one module, for fiddling with S-expressions.
the Ciphersaber cryptosystem in four lines of pure Perl.
an implementation of Shamir and van Someren's algorithm for finding high entropy stretches of binary files, described in Playing hide and seek with stored keys.


I once wanted to use bash in an environment that only set up the csh environment properly, so this was my solution: this script runs csh to find out what environment variables it set up, then emits sh directives to do the same work.
a teensy calculator for X video mode timings.