--Benjamin Franklin, in his autobiography (1791)
letters - show and say letters as they are typed
A game to help little kids learn their letters and numbers. It shows letters and numbers full-screen and says them aloud (in a retro, Speak 'n' Spell voice) as the child types them. Download it.
cqcam - frame-grabber for the Color Quickcam
Nice GTK interface, lots of image enhancement, and new live-webcam support. This is an ongoing project. The current version works nicely. Here is the official distribution page; here are some screenshots.
Metacity Command Key Editor - add, change, or
remove command hotkeys in Metacity
Metacity lets you map keys to run shell commands, but it doesn't actually expose this functionality in the Preferences panel. Here is a widget to let you edit those keys without the pain of using gconf-editor. I have keys mapped to xterm, mozilla, xscreensaver, and mixer volume up/down. screenshot or download.
Gat - The GNOME Task Scheduler
Schedule and manage one-time and recurring tasks using a simple GNOME interface. Gat is a front-end to cron and at but should simplify things enough that users won't need any prior knowledge of cron or at to use it. Here is the official distribution page.
barstack - Create Postscript bar graphs
Create Postscript bar graphs from relatively simple input files, including text export from a database or spreadsheet. The resulting files work as figures in LaTeX documents. Get an example graph or barstack-1.2.tar.gz.
dpkg-rebuild - Debian 'status' file recovery
Rebuild your Debian dpkg/apt 'status' file if it got corrupted by a system crash. Here it is.
psappend - concatenate Postscript files
Combine several EPS or Postscript files into a single Postscript file. Good for turning several figures into a single document, which can in turn be run through mpage or psnup. Here it is.
bbfix - fix the bounding box on an EPS file
Gnuplot frequently produces lousy bounding boxes for its output, especially when the set size ratio command is used. Use this script to find the exact bounding box for any EPS file.
Shirt - an obfuscated Perl t-shirt generator
Generates ASCII art based on obfuscated Perl code and B/W input image, worthy of inclusion on t-shirts or perhaps other media. If you generate t-shirts with this code and sell them for a profit, please donate at least $1 US per shirt to the Free Software Foundation or the Electronic Frontier Foundation. See sample images or the code itself.
Midi - a simple library for reading MIDI files and a software synthesizer for playing them. Here it is.
PacketKit - a sniffer and packet generator for Linux. Includes a GTK GUI for generating IP/TCP/UDP/ICMP packets. Here it is.
scratchpad - a clipboard-based prototype of the
Scratchpad concept for Netscape
An prototype implementation of the Scratchpad Project. My implementation uses the X selection mechanism (the clipboard) to implement the scratchpad for Netscape without modifying the Netscape/Mozilla source. Get it here or see a screenshot.
Yahtzee - terminal version of the dice game
Quick, simple, and addictive. Get it or look at a screenshot.
syntax - syntax-highlighting engine for C/C++/Java
A cute toy, it would actually be pretty useful in some sort of IDE ... not that I use or write such things. Get it here. Here is a screenshot. Here is a web page generated using it.
PPM tools - PPM library and tools to scale, fade, and
crop PPM images
The library provides functions to read, scale, crop, dither, and write "raw bits" PPM images. Adding filters is relatively simple. Command-line tools for scaling, fading, diffing, and demuxing are provided. I use these tools with cqcam. Get them here.
malloc-debugger - heap-tracking library
Minimalist library for detecting two classes of memory allocation errors: leaks and calls to free for unallocated memory. This code is glibc-specific. Tools are included to analyze/summarize memory allocation traces looking for errors and displaying the call stack for each errant call. Get it here.
conslock - lock a console
Locks a console until the user enters his password. Get it.
Pong - ping an entire class-C subnet
No, not the video game. Ping a class-C subnet in parallel without using a broadcast address. Useful for seeing which IPs are in use. Get it.
pgpf-tools - Conversion tools for the PictureGear
Tools to convert from PPM to PictureGear Pocket format and back. Support is included for reading and writing 8-bit and 16-bit images, including thumbnails. If you want to convert to/from JPEGs, use cjpeg and djpeg to create PPMs first. Get pgpf-tools 0.9.3.
Find out a platform's endianness, alignment rules, and type sizes. Moderately useful for porting stuff. Get it.
self-printing program - a program that prints
itself. Now that's original. It's here in case you haven't seen it before.
selfprint.c (76 bytes)
selfprint.pl (55 bytes)
selfprint.java (256 bytes)
PERL Mandelbrots - two moderately obfuscated Mandelbrot
generators, in PERL.
mgp.vim - MagicPoint syntax highlighting for Vim - here
Dimera - a command-line driver for Dimera 3500
Download thumbnails and full-sized images from any Dimera 3500 digital camera with a serial connection. This software is still experimental -- it works, but it's neither documented nor user-friendly. Here is version 0.1.