Jimmc's Free Software

One of the great things about the Net is all the free stuff out there. To promote the continuation of this tradition, I have contributed some of my own time to freely redistributable software, which I have been posting to the net since 1985.

I deal mainly in Unix/Linux or Java/Scala software with free and open source. If you are interested in learning more about the open source concept, take a look at Open Source.

Programs I have written and currently maintain

JRaceman is a meet and race management program, written in Java and licensed under GPL. It is primarily intended for canoe/kayak regattas, but has been designed to be usable for other timed races, and eventually for non-timed events measured in other units (such as distance competitions in track meets). First posted in April 2002; still being actively developed, so see the JRaceman page for the most recent posting.
JShortcut is a Java Native Interface (JNI) package to allow Java programs to access shortcuts and menu items on Windows. It has been designed to be easily used from a self-installing JAR file. JRaceman uses JShortcut to create its shortcuts on Windows. First posted in November 2002; most recently posted in November 2003.
jimmc.roots is a genealogy browser. It reads an ASCII text file, then allows you to browse the data by searching or by following relationships. Information can be printed in different formats, including a graphical tree. This program supersedes geneal and treepar, both of which are listed below. First posted in September 2001; most recently posted in May 2002.
Mimprint is an application to view and print photos. It provides a simple GUI for defining a template to specify a layout that allows you to print multiple images at the same or different sizes on one page. Mimprint was originally written in Java and was later (in June 2008) converted to Scala. First posted (but without public links) in February 2006; first posted with public links (and the first version to use Scala code) in June 2008.
SpelSim is a Space Elevator Simulator. Select a planet, a material, and a cable capacity, and SpelSim will tell you the size of the required cable and a host of other numbers. Or you can plug in your own parameters for the planet and material. You can then watch an animation of the cable going around the planet, and you can tell it to break the cable at any point and watch where it falls. Posted in March 2003, updated in December 2007 to include graphical simulation.
StringArt is a little drawing applet written in Scala. Posted in August 2008.

Programs I have written which are being maintained by others

These are programs I originally wrote, but which other people have taken over.
xtartan (README and source) (auf Deutsch)
Xtartan is a program to display Scottish tartans under X-Windows. It was written by me and posted to comp.sources in February 1991, and has until recently been maintained by Joseph Shelby. Check out his great XTartan Home Page and put a tartan background on your web page!

Thomas Insel has created a Java applet to draw tartans using the sett data from xtartan.

Nick Wedd has a web form that lets you run XTartan or a few other generators to generate a tartan image.

Programs written by others to which I have contributed

Occasionally someone else makes a program available that catches my fancy, and I add my own substantial contributions. I am not currently supporting any of these programs.
m0n0wall is a FreeBSD-based complete system for a firewall appliance. It has a web GUI for setup and saves all of its configuration in an XML file, making for easy backup and restore. I have made the following contributions to m0n0wall:
Mckoi Database
Mckoi Database is a 100% Java multi-user SQL database engine. It can be run in embedded mode for a single program, or in client-server mode for multi-user access. I have added the following to Mckoi:
TermMosaic is source code modifications to Mosaic to allow it to run over a term connection. I had modified Mosaic 1.2 to use term for my own use in September 1993. After others expressed an interest in having that capability, I packaged it up for Mosaic 2.0 with term 1.0.8 and submitted it to the Sunsite archives in November 1993. With assistance from others (Stew Ellis, Tom Kelly, and John Birchfield), it was updated through Mosaic 2.4 and term 2.0, at which point proxy mode was added to Mosaic. If you want to use a post-2.4 version of Mosaic with term, check out urlproxy instead.
Ico as originally distributed with X Windows was a program to display a wire-frame icosahedron bouncing around on the screen. (I'm afraid I don't know the original author; it's not in the source files or man pages.) I modified it to allow solid color faces, so that it looked like a solid object bouncing around on the screen rather than a wire-frame, and added double buffering and additional polyhedra besides the default icosahedron. This was posted to comp.windows.x in January 1988, and those changes have been included in the standard X-Windows distribution ever since (see "Additions by jimmc@sci" in ico.c). Google for ico.c to find a copy.
xmines (or here) (or download from here or here)
Xmines, which is like the minesweeper game that comes with MS-DOS, was originally written by Tom Anderson of Fluke Manufacturing (fluke!toma back then) as minestool to run under Suntools. It was enhanced by Brian Dalio of Silicon Compiler Systems (bad@sdl.scs.com at the time) in November/December 1987. I added my modifications in February 1988, then converted it to use X-Windows in January 1990. It was posted to comp.sources.x volume 9 in September 1990, with a patch posted to volume 10 in December 1990.
xwave (and README)
Xwave is a program to display a projection of a plane grid oscillating in three-space in real time. The original xwave was written by Mike Friedman (mikef@umbc3.umbc.edu) and Paul Riddle (paulr@umbc.edu) and posted in January 1991. I made significant enhancements for version 2, which was posted to comp.sources.x volume 11 in February 1991. Paul then added a GUI for version 3, which was posted to comp.sources.x in May 1993.
According to the comp.os.coherent FAQ, xwave is being distributed with X Windows for Coherent.
This set of files adds a macro-string capability to xterm to allow it to emulate the button-press sequences of just about any terminal type. Posted in November 1989.

Programs written by me which I am not currently supporting

These are programs written by me and posted to comp.sources or otherwise made available to the Net over the years. I'm not currently supporting these programs.
Miftran is a general purpose MIF (Framemaker) file format translator. It was primarily designed for translating to HTML, and comes with support for that translation, but may be useful for translating to other formats as well. First released in January 1994; most recently released in February 1997.
Spiro by Jimmc is a spirograph generator written in Java. Run it in your Java-enabled web browser (such as Netscape), or in Sun's JDK, or any other Java environment. Posted in July 1996; updated in March 2004.
Urlopen is a web access library, similar in concept to libwww from CERN, but intended to be simpler to understand and use. It follows the stream model of C stdio: instead of fopen and fclose, there are UrlOpen and UrlClose, etc. It was written starting in 1994, and first made available in 1995. Included in the urlopen package are two programs: urlcat, a program to cat the contents of a URL to stdout, and urlproxy, a simple proxy server with TERM support, well-suited for use with Mosaic or Netscape. Last updated in October 1998.
Audiowhack is a simple program to control the audio device on Solaris. Useful for making the speaker keyboard keys work, or fixing things up when that CD player doesn't quite set the parameters the right way. Posted in March 1998.
Htimp is the HTtp Interactive Manager Program. I wrote it back in January 1994, when the Web was still young and you could actually keep up with the NCSA What's New page. It was an experiment in how to attach a web browser to an interactive program with a lifetime longer than a single message.
spin, version 1 (or via http)
Spin is an acronym for Simple Programmable INterpreter. I posted it to comp.source.unix in March 1988 (it shows up in volume 18 of comp.sources in March 1989) as a companion to geneal and treepar (see below). I later rewrote Spin version 2 as a proprietary interpreter for Globetrotter Software, my employer. Spin v1, geneal, and treepar were all posted to comp.sources.unix in March 1988; they show up in volume 18 as v18i009 through v18i017 in March 1989.
geneal (or via http)
Geneal is a genealogy program. Long ago I used to spend a lot of time on genealogy, and I used my Unix system to store my data. I used my own software to manage my data, make charts and trees, etc. Geneal was the database and text part of it. I wrote it in late 1984 and first posted it to net.sources in January 1985, making it one of the earliest genealogy programs, and perhaps the first freely available one. Terry L. Ridder made some changes to it and got it running on smaller 68000-based Unix machines, and posted it to net.sources in August 1985. I posted a substantially changed version to comp.sources.unix in 1988, which shows up in volume 18 of comp.sources in March 1989. For a newer genealogy program, see jimmc.roots above.
treepar (or via http)
Treepar is a place-and-route program for tree-structured data, such as family trees. I wrote it so I could make plots of my genealogy data. It contains a general purpose place-and-route system that is optimized for visual presentation of tree-structured data, but it is smart enough to handle data that is not strictly tree-structured (since that often happens in family trees once you get back a few generations). Treepar was posted to comp.sources.unix along with geneal and spin in March 1988, which shows up in volume 18 of comp.sources in March 1989.

Programs to which I have added my two cents

Some programs to which I have contributed one or two lines of code:
The original web browser. I helped debug the port to Solaris in 1993, and contributed a workaround for a crash caused by a problem in the Solaris Motif library.
SANE stands for Scanner Access Now Easy. I helped debug the UMAX back end running on Solaris and submitted a few minor patches in January 1998, which appeared in about Sane version 0.70.
Armadillo (formerly Gzilla)
Armadillo is an open-source Gtk+-based web browser written in C. I contributed the directory scanning support in January 1998, mostly taken from my urlopen library. It appeared in December 1998 in Gzilla version 0.1.7. Armadillo was formerly called Gzilla. It is no longer maintained, and has been superseded by Dillo, which no longer contains my code (only my name in the old change log for Gzilla).
jRegistryKey is a java library with native code to access the Windows registry. I modified it to look through CLASSPATH for the DLL if it did not find it in the PATH using the standard System.loadLibrary call. The patches (to version 1.0) were submitted to BEQ in November 2002, and I was told that they would be included in the next release. Meanwhile, you can pick up the patch here.
A program to communicate with a CM11 X-10 computer interface module. Originally written by Erik Olson, I added a few minor enhancements for my personal use in 1998, then added some documentation, packaged it up for distribution and made it available on the net in February 2003 after Erik agreed to put it into the public domain.

Jim McBeath - jimmc -at- alumni.caltech.edu
August 14, 2008