Software archive

This archive contains various programs written by Chip Rosenthal. These programs were written for Unix/Linux systems. All the software in this archive is provided under a free, open source license.


web-based "change my password" utility
Last updated: 

This package has moved to github. The packages linked on this page are historical. For current version, see:

The web-chpass utility allows users to change their account password through the web. This package was written with security as the foremost concern, flexibility next. It runs on systems that use PAM to manage user authorizations.

The web pages produced are completely customizable. The chpass.cgi utility contains no HTML. Instead, web pages are produced from an external template.

"Bad password" checking can be optionally enabled. The distributed web page template offers the user a choice, with these checks enabled by default.


web-based dynamic DNS update utility
Last updated: 

The web-nsupdate package provides a simple, web-based facility for clients to send dynamic DNS updates. Clients are typically DHCP hosts, such as a Linux system acting as a gateway for residential broadband service. The client sends a simple web request (such as with the wget(1) or lynx(1) commands) to the web-nsupdate service to register their host request.

findit nearby

A mobile-enabled web application and RESTful web service to find nearby facilities of interest around Austin.
Last updated: 

The "Find It Nearby" application attempts to determine your current location, and then finds a number of features closest to you.

At this time, it looks for the following features:
  • Fire Station
  • Police Station
  • Post Office
  • Library
  • Moon Tower
  • Voting Place
The information for this service is published by the City of Austin. This is a demonstration of an
application developed by the general public, using city data.
You can view the application in operation at:


Protect email address against harvesting on a Wordpress site
Last updated: 

The wp-spamspan plugin implements strong automatic anti-spam protection for email addresses in content on a Wordpress site.

There are two parts to the wp-spamspan process. First, this plugin locates email addresses in the body of messages, and rewrites them into an obfuscated form for display.

So, if you have a post that contains the text:

This plugin will rewrite it so that it displays as:

chip [at] example [dot] com

The second part of the wp-spamspan process is the inclued javascript (I didn't write it), that locates the obfuscated email addresses and dynamically rewrites the document so that they appear as clickable mailto: links.

Thus, a crawler or bot would only see the obfuscated email address, and only a user at a web browser would see an actual, clickable email link.

The home page for the spamspan.js script is:

The installation is simple, and once installed, the anti-spam protection is automatic.


Movable Type plug-in to protect against comment spam
Current release: 
Last updated: 

The Force Preview plug-in helps reduce comment spam on a Movable Type blog. When enabled, commenters are required to preview their comment before posting.

This plug-in has been tested on Movable Type version 3.2. It is not compatible with Movable Type version 4.0.

See included README file for complete description and installation directions.


watch the growth of files
Current release: 
Last updated: 

xtail watches the growth of files. It's like running a tail -f on a bunch of files at once. My favorite usage is:

$ xtail /var/log/*

You can specify both filenames and directories on the command line. If you specify a directory, it watches all the files in that directory. It will notice when new files are created (and start watching them) or when old files are deleted (and stop watching them).

The xtail program has been around for a long time. O'Reilly & Associates even included it in their Unix Power Tools book. A link to the 1989 release is included below. The 3B2 sitting in your cellar would love a copy.

19 Feb 2012 Update - I've included patches (to the 2.1 release) from Jari Aalto below, as I've not reviewed the patches. Jari's patches include a fix for SIGQUIT under Cygwin, as well as some Debian patches.


Movable Type improved spam protection plug-in
Current release: 
Last updated: 

better_spam_protect is a plug-in for the Movable Type weblogging system.

This plugin has been tested on Movable Type version 3.2. It is not compatible with Movable Type version 4.0.

Movable Type weblog entry and comment authors often link their name to their their email address. Movable Type has a spam_protect feature to protect these addresses against harvesting by spam spiders. This feature, unfortunately, is not effective.

This plug-in upgrades the spam protection. Email addresses no longer appear as HTML text, but instead are produced by Javascript, thus making them less prone to harvesting. Users without Javascript (and—hopefully—spam harvesters) will see the name, but not the email address.


test for open proxy server that allows mail relay
Current release: 
Last updated: 

pxytest is a command line utility to test a host for open proxies that are vulnerable to spammer abuse. It is written in perl.

Unsecured proxies can be a conduit of spam. This is a particularly vexing problem, because open proxies, unlike open mail relays, hide the origin of the spam, making it impossible to trace. This utility
tests a host to see if it is vulnerable to such abuse.


query spam and email abuse block lists
Current release: 
Last updated: 

Some organizations, such as the MAPS RBL and MAPS DUL, publish lists that identify potential sources of spam and email abuse. The blq utility is a Perl script that queries one or more of these lists to determine if a particular host is listed.

It works something like this ...

$ <strong>blq rbl,dul</strong> : : BLOCKED : : ok


test mail host for third-party relay
Current release: 
Last updated: 

The rlytest utility tests a host to determine whether it will relay third-party email. It will try to relay an email message to yourself through that host. A host that allows third-party relay is subject to attack by Internet vandals, and frequently is hijacked by spammers to relay massive amounts of junk email. A host that allows third-party relay should be immediately secured, disconnected, or shunned as a menace to the Internet.


interactive HTML laboratory
Current release: 
Last updated: 

The Interactive HTMLab is a tool for demonstrating and experimenting with HTML markup. It runs within a web browser, using JavaScript and CGI. HTML documents may be created or marked up on-the-fly, and the results immediately displayed or validated.

The Interactive HTMLab is implemented by the htmlab.cgi CGI script. This script requires perl version 5 and the LWP::UserAgent module.

Do not even consider retrieving this unless you are reasonably competent with perl. All you are getting is a bare script with no documentation. You will almost certainly need to tailor it to work in your environment. For instance, the script (launched by the VALIDATE button) almost certainly won't run as-is in your environment.


WWW form data processor
Current release: 
Last updated: 

The cgi-postin utility processes data generated from a World-Wide Web form. It is a standalone processor that may be run easily from sh, perl, or Tcl scripts.

Note: I recommend this tool only when implementing CGIs as shell scripts. For other languages, there are more modern and suitable tools for the task of CGI processing. For CGI processing in perl, I recommend the bundled module. For C, there are a number of packages available to do the task.


summarize disk usage
Current release: 
Last updated: 

enh-du is a highly-portable, high-performance, POSIX-conformant reimplementation of the du command. It has some nice features to help you better understand where all that disk space is going. If you find your current system du is buggy or unacceptably slow, or if you find some of the added features appealing, you might want to try this. You will not suffer a performance penalty to get these new features. This version probably compares well with the version of du your vendor ships.

2008 Update: The issues addressed by this package are all resolved most current releases of du.


uucp over TCP/IP network daemon
Current release: 
Last updated: 

uucpm provides networked "Unix-to-Unix Copy" (uucp) services on ancient systems that do provide TCP/IP networking support, but otherwise lack this capability. This includes systems such as SCO Xenix and NCR Towers.

The package includes two programs. The uucpm daemon converts a pseudo-tty (pty) into a device that can communicate across a TCP/IP network. A System V.2-ish port of the BSD uucpd daemon also is included. These two daemons implement, respectively, the originating and answering portions of the transfer