This is the projects page. This includes various things from web libraries and c programs. All code released under the GPL unless otherwise noted. For a copy of the GPL go here or visit the Free Software Foundation.

If you have any questions or comments, feel free to email me or use my lazy-person gateway.

Projects on this page are usually programs that have more than one release. For stuff that's never had more than one release, e.g. one-off stuff, you'll find all that on the quick scripts page. There are a lot of scripts there, and since they are quickies, usually require very little to get them going.

Created: 2002-02-06 22:58:58-08
A simple perl script that can cycle the X background image at timed intervals using Esetroot or ImageMagick. Supports recursive image finding, multiple directories, adjustable timer, cycling and random image selection, and scaling. note: it appears that if you have a nautilus managed desktop this will not work because nautilus draws it's own background.
Created: 2005-04-14 12:41:15.848615-07
CheeseLab3 is a MUME (multi users in middle earth) MUD mapper. It works as a proxy server that analyzes game output to create a real-time map of the MUME world. You can save notes, overlay icons, and other basic map features. CheeseLab3 also supports multiple users, and allows all users connected to see eachother and their status on the map client. The map client and servers may also be run on separate machines or over the internet. CheeseLab3 is written in java and is tested on linux, windows 95, and windows 98.

This is a placeholder page so that releases integrate with the front-page news, Please see this page for detailed information, older releases, and screenshots.
Fceu joypad save patch
Created: 2001-12-11 23:09:22-08
Similar to the snes9x patch, allows the use of the joypad to save state during gameplay. You can assign one of the pads buttons to save state, then have the ultimate in creep-n-save gameplay to beat all the games that you couldn't when you were younger.
Created: 2003-05-12 23:26:15-07
The inline_smtp perl script was created to allow filtering of incoming mail on a separate server that houses the mailspools without running a full blown MTA. While it's possible to configure another MTA, e.g. postfix, to relay all mail to a smart host and do filtering through postfix, the queue can get behind easily, and on a busy host thousands of messages can get queued in a few hours causing delays in delivery from a few minutes to several hours. By filtering while redirecting, mail arrives as fast as if it were coming directly to the final mail server because it's relayed as the message is received.

inline_smtp works by accepting connections and relaying the conversation to the maildrop host as it takes place, so any 550 messages pass through instantly instead of getting the 550 on the relay server then having to process a bounce, which also fills the queue. inline_smtp understands enough of the smtp protocol to filter on rctp to: addresses and to process the mail body, optionally running it through a filter.

Requires the Net::Server perl module
Created: 2001-08-13 15:37:22-07
Creates indexed pdf documents from text files. Designed to aid creating an electronic distribution method for legacy system reports, since many mainframe type print spools are plain text. Allows indexing, customizing page settings, font size, font face, and super-imposing text over an image in the case of using pre-printed forms. Supports unlimited levels of indexing bookmarks in documents and system/user configuration files. Suitable for use in an intranet gateway for generating PDF documents in real-time. There is a version compiled for win32 with cygwin available here. There is also a demo available.
Created: 2001-07-12 16:58:23-07
Add alternate password support dynamically with LD_PRELOAD or by linking the shared library with the executable. Useful, for example, to make sendmail, procmail, and pop3d use an alternate password if you are an ISP.

Works with any program that uses the getpw* family of functions and the password file is configurable through the environment.
Created: 2005-03-11 09:59:35.361611-08
powwow is a client program, which replaces telnet for the lazy mudder who wants some (only some?) extra features. It is primarily designed for DikuMUDs, but nothing prevents its use for other types of muds. powwow is based on another client, cancan, and cancan was originally inspired by tintin (yet another client) by Peter Unold (pjunold@daimi.aau.dk), but is entirely re-written. powwow also implements the MUME remote editing protocol, which enables you to edit texts on the mud using your own favourite editor, several texts at once if you have a windowing terminal.
powwow was written and maintained by Massimiliano Ghilardi and moved here in March of 2005. The original powwow home page is mirrored here if you need an older version or an older binary compiled for another platform.
There is currently a perl plugin and a javascript plugin based on spidermonkey.
Created: 2005-03-12 18:39:51.432334-08
This is the perl extension for powwow and allows you to call perl code including xs modules from powwow, and allows perl to access powwow variables and execute actions. This supercedes the perlwow fork that originally embedded perl support in powwow.
Created: 2005-03-12 18:40:23.430769-08
This plugin gives powwow the #javascript command and allows the spidermonkey runtime access powwow through a global powwow object. This lets you trigger javascript subs from powwow and execute powwow/mud code from javascript.
Created: 2001-12-17 23:58:33-08
Primarily a plugin-based extendable remote system monitoring utility that focuses on central management and flexibility while still being featureful. Monitoring can support multiple architectures because the monitoring probes are filed by a library process that hands out probes based on OS/arch/hostname. Uses XML for configuration and OO perl for most programming. Requires a few perl modules, see the sentinel.pod file in the distribution.
Snes9x joypad save patch
Created: 2001-12-11 23:07:35-08
This patch allows you to save state (Shift-Fn) from the joypad. Useful if you have a decent gamepad with more buttons than the snes has, so you don't have to take you hands off the controller to save.
Created: 2003-04-29 14:19:05-07
Converts a staroffice/openoffice.org document to HTML, using xsltproc for the xml conversion and ImageMagick's convert to convert images. Also create a table of contents with links, handles tables, styles, spans, and many other xml elements from a writer file. Useful to convert documents in a batch manner, including in a web or CGI environment.
Created: 2003-11-19 11:42:33-08
termkey is a small program that will print the curses or ncurses return code from a getch(), useful for debugging a terminfo file or finding a terminal emulator that supports all the keys you need
tomsrtbt Bootable ISO
Created: 2001-08-02 10:06:10-07
A bootable ISO of the extremely handy Tom's Root Boot boot disk. Also has a mirror of the FTP site including all modules, and areas for uncompressed modules, the dos installation, and unix installation. Maybe someome will find it useful. :)

The download is a gzipped ISO. Some browsers (netscape/mozilla/ie) will decompress gzipped data on the fly while downloading, so the file may already be uncompressed. If you try and uncompress the file and get errors, try renaming the file to just toms.iso and then burn it.
Created: 2002-05-03 22:26:40-07
Virus scanning perl script using f-prot as a virus scanner and runs through procmail. Easy to install and maintain, very little configuration to do, mostly works out of the box.
This project is no longer maintained, the clamav project has done an excellent job of scratching this itch. You should use clamav-milter or some other clamav based procmail filter instead.
Created: 2002-07-25 13:42:45-07
Control X from the command line for scripts, and do "visual scraping" to find things on the screen. The conrol interface allows mouse movement, clicking, button up/down, key up/down, etc, and uses the XTest extension so you don't have the annoying problems that xse has when apps ignore sent events. The visgrep program find images inside of images and reports the coordinates, allowing progams to find buttons, etc, on the screen to click on.