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 my (so much
younger!) self (and a variation on that theme). Feel free to poke around my photo archive, or Maryanne's
My favorite thing is fostering kittens for my local SPCA. I've been wanting to put up a
gallery but so far the best I can offer are a couple of
kitten-based gag images and a few kitten
Other than that my primary hobby is playing board and similar games.
I attend a weekly game night at the University of Virginia (all are
welcome, write me if you want
details) and I host a weekly game night at home.
I keep track of the games
I've played and my
game collection at www.boardgamegeek.com Here are
some games I've played recently:
I've worked (very) intermittently on a Perl implementation of The
Scepter Of Zavendor board game for many years.
is used to be
my favorite computer game. I've played 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.
After Nethack my favorite game made a somewhat lateral move to Dungeon Crawl, which I love for its
anti-grinding philosophy and so many other excellent choices. I've
written a couple of simple patches for it but they were merged in.
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 amazingly the mod is still active, now called Rune Quake, 22 years(!) after Quake
A number of the scripts below use my
RS::Handy module (modified 2018-08-14, RCS, 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.
- books-gen (modified 2018-08-19, RCS)
- This Perl program generates the web pages of books I've
read from the text file in which I actually store the information.
- ftp-upload-1.6.tar.gz (modified 2018-01-22, sig)
- ftp-upload transfers local files to another machine using FTP. It's
meant to be used by scripts and such rather than interactively. There's
no user interface, the program is controlled strictly via the command
line. It is disciplined with its exit status.
- mail-output (modified 2013-05-08, RCS)
- mail-output runs a command you specify and mails you any output it
generates. Normally if there isn't any output no mail is sent, but you
can override this. If the command exits with a non-zero status mail is
always generated. Here's the mail-output man
page. This script requires RS::Handy.
- mime-construct-1.11.tar.gz (modified 2010-06-23, sig)
- mime-construct constructs and (by default) mails MIME messages. It is
entirely driven from the command line, it is designed to be used by
other programs, or people who act like programs.
- dedup (modified 2010-01-27, RCS)
- This program scans the files given as arguments and removes duplicates.
See the dedup documentation for more info. This
- rss-download (modified 2007-12-27, RCS)
- rss-download automatically downloads files listed in an RSS feed. It
isn't documented or feature-complete yet, but I'm already using it so I
thought I'd put it here early.
- mbox-purge (modified 2007-05-01, RCS)
- mbox-purge performs batch deletion of email messages from mbox format
files with appropriate locking, based on rules you specify. You can
select messages received before or after some point in time, or whose
headers or bodies match some Perl regular expression, or which are
selected based on an arbitrary Perl expression. See the mbox-purge documentation for more info and
examples. I use it to let my users automatically delete messages
older than a certain date, and sometimes to purge email-based viruses
and the like. This requires RS::Handy (from here)
and Proc::WaitStat (from CPAN or here), and Date::Parse (from CPAN) if
you want to do date parsing.
- randline (modified 2005-04-08, RCS)
- randline picks random lines from its input, either a fixed number of
lines, or a certain percentage of lines. In all cases it does this
using a single pass over the input, without saving it all in memory.
Here's the randline man page. This script
- gzip-links (modified 2005-03-25, RCS)
- gzip-links is like gzip but it allows you to compress multiply-linked
files. It does this by removing all but one of the links, compressing
the data under the remaining name, then linking to the removed names
(plus .gz). See the gzip-links documentation
for more info. This requires RS::Handy.
- mail2news (modified 2002-06-18, RCS)
- This is my mail to news convertor and injector. It gets reasonable
threading by creating References from In-Reply-To if necessary and
possible. It is a Perl 4 script (though it says perl5 in the shebang
- dunk (modified 2002-05-06, RCS)
- dunk stands for "du, no kids". It's like du but a directory's size doesn't
include the data in its subdirectories. These days I'd likely just have
used GNU du's --separate-dirs switch, but dunk also outputs the size in a
fixed-width field. This requires RS::Handy.
- stderr-die (modified 2002-04-26, RCS)
- stderr-die is a Perl script which runs the command given as its args
and mostly stays out of the way. The exit status is normally the exit
status of the command. If the command outputs anything on stderr but
exits with a 0 status, though, the exit status will be 1 instead.
- aixtoolbox-updates (modified 2002-04-01)
- aixtoolbox-updates checks the Aix Toolbox FTP site for updates to the
RPMs which are installed on the local machine, and downloads those
which have been updated. It's neither polished nor bulletproof, but
I'm releasing it as-is as I'm unlikely to improve either thing any time
soon. Here's the aixtoolbox-updates
man page. This script requires RS::Handy.
- tracked-packages (modified 2001-03-09, RCS)
- This is a Perl script I use on Debian systems. It lets me know what
newer versions of the packages I'm tracking from unstable are available.
It's useful on a Debian system which is mostly tracking stable but has a
few packages installed from unstable.
I'd like to go on record noting a couple of things in order to get them
out of my head:
Thank you for your indulgence.
- On the Louis Prima/Keely Smith album Live From Las Vegas
Keely Smith says "hot damn" twice (once in "Nothing Can Replace A Man",
I think the other time is during some banter).
- "All that glitters is not gold" really means "not all that glitters
is gold", and Tolkien's variant "All that is gold does not glitter"
means "not all that is gold glitters".
Roderick Schertler <email@example.com>