Percy doing her no-paws Kilroy impression

Here is my PGP public key.

Here's a list of the non-technial books I've read since 1990.

Here is the obligatory picture of myself (and a variation on that theme). Feel free to poke around my photo archive, or Maryanne's photo archive.

Nowadays my primary hobby is playing board and similar games (after RSI forced me to give up computer and video games for the most part). I attend a weekly game night at the University of Virginia (all are welcome, write me if you want details) and I host occasional game days at home.

I keep track of the games I've played and my game collection at Here are some games I've played recently:

Nethack is my favorite computer game. I've been playing versions of it off and on since 1985. Hearse is a protocol which allows Nethack users to exchanges bones files with each other. I've written a Unix Hearse client, and a number of Nethack patches.

I spent a good number of years playing Quake, running some Quake servers, and working on a Quake mod called Artifact-RJS. I don't do that any more, but both the servers and the mod are alive and well, now called Rune Quake.

A number of the scripts below use my RS::Handy module (modified 2015-10-26, installation instructions). This module provides useful but not otherwise classified functions I use in my Perl programs (see the RS::Handy documentation). I should really have more discipline about categorizing all these things and creating separate modules for them so that they can be uploaded to CPAN. That's a lot of work, though, and if I forced myself to do that I'd likely end up re-writing these when I needed them, and that'd be worse than having this grab-bag module. What I like to do is to split useful components out of RS::Handy into modules which can be uploaded to CPAN. So far it has yielded Proc::SyncExec, IPC::Signal, Proc::WaitStat, String::ShellQuote, and some which made it into the core. If you find any of these compellingly useful let me know so I can prioritize splitting them out, too.


photos (modified 2011-11-03)
This is compiled copy of the current version of the SIMBL plugin TerminalCopyOnSelect found on github ( on 2011-11-03. This allows it to work with Lion's version of Terminal (299). (With the compiled version at you get "Error Terminal [...] has not been tested with the plugin TerminalCopyOnSelect [...]".) (modified 2010-08-24)
This is compiled copy of the current version of the SIMBL plugin TerminalCopyOnSelect found on github ( on 2010-08-24. This allows it to work with current versions of Terminal. (With the compiled version at you get "Error Terminal [...] has not been tested with the plugin TerminalCopyOnSelect [...]".) (modified 2010-01-11, sig)
This is compiled Mac app of version 0.6.1 of Keldon Jones' excellent Race for the Galaxy computer version with AI. As with the pre-compiled version on, you have to install the Mac GTK framework before using it.

Changes to the original source were minimal, here's the source diff.

lgtoclnt_7.2.2-1.diff.gz (modified 2007-02-14)
This diff can be used to create a Debian .deb package for Legato Networker version 7.2.2. The simplest way to use it is to place it in /var/lib/alien and run "fakeroot alien lgtoclnt-7.2.2.jumbo-1.i686.rpm".

BTW, to get a .deb of the man pages you can use "fakeroot alien lgtoman-7.2.2.jumbo-1.i686.rpm" without any patch (though the version number will be a little off). The scripts aren't necessary.

apt-pinning.html (modified 2006-06-14)
APT's Default-Release setting (aka "apt-get --target-release") is an extremely useful feature, but it doesn't work very well if you're using more than 2 releases in your /etc/apt/sources.list file (such as stable, testing, and unstable, or any 1 of those plus multiple non-Debian sources). This document contains a description of the problem and an /etc/apt/preferences file which improves the situation a bit.
x-resolution.c (modified 2005-07-11)
This is an X program which outputs the X and Y resolutions of your current screen.
db2-linux-client.html (modified 2005-03-31)
I needed to access a DB2 database on a remote (Windows) server from a Debian Linux machine using Perl's DBI (DBD::DB2). Here are my notes about how I did it.
pound-perl-nick-changes.html (modified 2004-11-22)
It turns out that I'm really bad at noticing when people change their IRC nicks. More than once on #perl after learning that somebody I've been talking to for a while used to be somebody else I'd been talking to for a while I wished for a nick change cheat sheet. So here one is.
jules-pool.html (modified 2004-04-26)
Date/time/weight pool for our baby's birth.
catan.html (modified 2002-10-06)
A reference list I keep with my Catan set to aid reconfiguring for different games.
xwarppointer.c (modified 2002-03-01)
This is an X program which moves your mouse pointer to the X and Y coordinates given as args.
xvidmode.c (modified 2002-03-01)
My intention is for this program to allow switching among your XFree86 video modes from the command line. So far it only switches to the default mode. I bind it to a contraol-alt-keypad-enter so I can more easily get back to the right resolution if a game leaves me in the wrong one.
ssh-command-users.txt (modified 1997-09-15)
This is a patch for SSH 1.2.21. It gives you the ability to specify that some users are allowed to use SSH to log in to the machine (slogin) but not to run arbitrary commands (ssh/scp). (modified 1996-10-15)
A replacement player skin for Id's game Quake. This skin makes it easier to distinguish other players' teams in a multiplayer game. Here's the readme file (modified 1996-10-15).

Roderick Schertler <>