Free Linux Stuff

I wrote this stuff for me, but if you find it useful, enjoy.


A program called Mailleds inspired this program. The idea was to blink an led on the keyboard when new mail is waiting (actually, Mailleds has many other features, but this was the feature I wanted). It didn't work for me, so I wrote my own. It is released under GNU Public license.
README ( bytes)
mailblink_0.8-1.dsc ( bytes)
mailblink_0.8-1.tar.gz ( bytes) documentation and source
mailblink_0.8-1_i386.deb ( bytes) Package for (woody) Debian systems.

darcs repository (browse): darcs get


I have always been suspicious that password generating programs were not as random as they should be. So I wrote my own with that principle in mind. Unlike most programs, it asks for the amount of entropy that should be in the password rather than the length. It then generates a password long enough to have the approximate required entropy. It is released under GNU Public license.
passgen_0.4.tar.gz (11482 bytes) documentation and source

Available as a Git repository:
$ git-clone

Piano Partner

Piano Partner is a simple tone generator written in Perl. I wrote it for Linux to assist me tuning pianos to equal temperament, although technically I suppose it would work with other operating systems without much trouble. It depends on mpg123 for playing sound samples, and libgtk2-gladexml-perl for the interface.

Thumbnail of Piano Partner

The program is minimal and simple to use. Pick a note and press Play to play that frequency for 40 seconds. The hard part of course is getting your piano to sound the way it should.

Available as a Git repository:
$ git-clone

TEA Tiny Encryption Algorithm

To emphasize to a class that JavaScript is a complete programming language I decided to implement something useful in it (i.e. not flashing buttons). The results are these Javascript implementations of Base64 MIME encoding, and the Tiny Encryption Algorithm TEA. They are compatible with the MIME::Base64, Crypt::CBC, Crypt::TEA Perl modules (note: for full TEA compatibility, use passwords no more than 16 chars long).
base64.txt ( bytes) Javascript source code.
tea.txt ( bytes) Javascript source code.
md5.txt ( bytes) Javascript source code.
tea_example.html An example page using these functions.
teaframe.html Another example.


Xkeyspy is a small utility that connects to your X session and displays your keystrokes. Compiled fine for me on Linux, AIX, and Solaris.
xkeyspy.c (3220 bytes) source code.

linc and

I have two Perl scripts for controlling X10 lighting. The first is linc which is a command-line tool that can send commands through a PowerLinc serial controller. My script is not quite as elaborate as others you may find on the net, but it should be pretty easy to understand and customize. And it works for me.

The second script is which requires two other files, and x10icon.png. It builds on linc and features a gui that resembles the X10 Palm Pad remote. Like linc, it should be easy for any Perl programmer to customize.

Available as a Git repository:
$ git-clone