Feedback on all programs is appreciated, although I wrote some of these long ago and no longer maintain the DOS/Windows ones because maintenance is pointless or they cannot be used on Linux. Or something. The new stuff near the top is Linux-y.

Standard disclaimers apply. Do not distribute/mirror/hack etc. without the readme's and headers and other credits. If you distribute/mirror/hack, let me know.

If it breaks, you get to keep all the pieces. Use at your own risk. I don't guarantee anything. A 'readme.txt' or similar is included with most packages, so RTFM first. The readme stuff may be in one of the .c or .pl files, look around. It is generally a good idea to look at these files anyway, for configuration options and such.

Let me know if you're using (or like!) any of these things, I like praise!

* db_xml A couple of perl scripts, one for cron and one for CGI. loads data from one table in one database to another, such as from Sybase to MySQL. rest.cgi gives an XML interface to any database. Any database that Perl can talk to, that is. This isn't well-documented.

* My personal accounting system: Saccs 0.8

* I put together a few scripts when I was putting my son's videos on DVD. Here they are, on my Home DVD Howto page.

* albums: I got tired of bins's slowness so I put together my own thing to make web-based picture albums, which I use for my pictures.

* bins-template: My contribution to the bins project, a template pack which is mostly CSS.
  • 200311105: Minor table alignment change.
  • 20040718: Clean-up, more CSS

* xml2html: To convert from livejournal's export format to HTML. Last update: 2003.
* blosxom2lj is a plugin for blosxom which copies your entries to livejournal. Last update: 20050116.
* Mailman wrapper Mailman is a mailing list manager. It requires passwords to unsubscribe, which many people don't like. This set of wrapper-like scripts remove the password requirement, and instead use an email-based confirmation method. Uses MySQL and Perl.

Version: 0.9


  • 2001.06.14: v0.9 More error-reporting: every error condition that causes mail to the user also emails admin with an explanation of the problem. Some bugfixes (small bugs).
  • 2001.03.28: v0.8 is a bugfix and a change in the file. Also a fix in message header extraction.
  • 2001.02.13: v0.6 is a bugfix. Some part of message header extraction (mail_parse in needed fixing, and full path is given on each require call. had a syntax error.
  • 2001.02.04: v0.5 now has mailman.sql with comments, includes a rudimentary, and has a that takes list-subscribe and creates an appropriate list-request message (see README). Some changes to README.
  • 2001.01.22: v0.3 released. Now (optionally) maintains and checks against a MySQL table to check if the address is a member.
  • 2000.01.16: v0.1 devel released. Probably full of bugs, let's see.

* fm2html v1.3.1: Freshmeat's daily email newsletter to webpage convertor. Rename the fm2html.txt file to Pipe the email through this script:
    | perl 
Put it in procmailrc or something.


  • 20090106: This is obsolete, and I can't even find it on my system.
  • 20010204: 1.3.1: Bugfix.
  • 20010131: 1.3.0: Cosmetics. Plus major changes due to newsletter format change.
  • 20010121: 1.2.1: Bug fix. chown was in the wrong place. Bracketed titles got truncated.
  • 20010106: 1.2.0: Bug fix. Added a debug flag. Now allows a choice: save as one big file or lots of small files in a subdir.
  • 20010103: 1.0.2: Now allows you to choose between category and alphabetical listing, or both.
  • 20010102: 1.0.1: Bug fixes? Now sorts the article list.
  • 20001229: 1.0.0: Initial public release. Bugs galore.

* Hangman v1.0: Perl program to play hangman on the command line. See inside the file for setup and distribution instructions. Rename the hangman.txt file to

Last update Dec 27, 2000

* Phonebook: Simple Perl phonebook database. Requires XBase. Read the README. This is version 0.0, bugs abound. Contact me with bug reports, fixes, enhancements, blah. Please tell me if you're using it! (Released March 4, 1999)
* Encryption/Decryption program v1.0: Written in C, using the XOR method. Takes a 20 character password. But using letters and numbers and a few special characters, it's more than 62 P 20 combinations. That's 2.23e34. Still weak :(
Available as source code only. Change the KEYLEN definition to get a bigger max password.
Last update: unknown, pre-2004.
* Strip base tags 1.0: Strips html base tags from documents, saving them at the end of the document in a comment so that they can be rematched if necessary.
There can be any number of href or src's. The script actually takes anything between "" and removes all but the rightmost element, where elements are delimited by '/'. Not perfect. Last update: 2000.
* RC5 grapher (C source and perlscript) using the gd library. Produces a GIF graph. I'd rather do PNG, but something's wrong with the libraries on my system. Hint: edit the C file for your preferred GIF or PNG output. Last update: 2000.
* Dnetlog: Displays neato-keen stats from the dnetc log file. CGI script in perl. Webserver required. Version 1.0c released on 2000.01.27.
BUGFIX: month code was b0rked. This is NOT Y2K related: it happened every month or every year, not sure which. Appears to be fixed; I've lost track of the variables. Also, the script runs a *bit* faster now that I don't recalculate everything for the combined stats.
2000.01.21 UPDATE: Removed combined stats (exit'ed out) because only RC5 is running. CSC is over. Also the month thing still doesn't work.
* Stats: CGI/Perl to display interesting stats about your webserver.
* Perl fortune database query: CGI/Perl script to take out a fortune from the fortune database and display it, or display all fortunes from a specific set.
* RC5 Warn: Perl script to check and warn about exhausted buff-in.rc5 files. Useful if you want to automatically fetch blocks by email. For the RC5 contest. (Last updated 2000 Feb 09, now uses sockets instead of sendmail -t.)
* Uncache Slow down the system in order to play old games which depend on slow computers. The programs only work in plain old DOS, not in Windows. They work by disabling and enabling the L1 cache. These are just something I wrote based on some assignments in college. If it breaks, you keep all the pieces. Works only on Pentium-compatibles in real mode (i.e. no Windows).

Everything below is obsolete windows/dos stuff. I did it long ago, and no longer maintain it.

Number Systems Conversion Tester: For testing a person's interconversion between binary, octal, decimal, and hex. Includes C source code.

Wordwrapper 2.0: A word wrapper. Read the accompanying text file. Also try the Reply maker 2.01 which adds those '> ' reply symbols to the beginning of each line of a given file. Both include source code.

LCARS WinAMP skin: A skin for WinAMP MP3 player.

Bus guide program for Mumbai city. V2.01

Windows wallpaper changer for cycling the desktop wallpaper sequentially through a bunch of wallpapers. Requires the arj.exe compressor/decompressor to be on the path. V1.1

Fortune cookie program. Put it in autoexec, or use it with the wallpaper changer's batch file. V1.2 (last update March 31 1998)

Timer program. Runs a given program at a given time on a given day number (1-31). Very useful as an alarm clock and crude crontab for Windows. Windows 3.x and 9x. Requires spin.vbx and threed.vbx, which you may already find in your windows\system directory.