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
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
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
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 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
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
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:
- I modified the firewall rules to allow specifying blocking rules (instead
of just passing rules), rule order, rule disabling, and rule logging
(included in pb19r535, released in November 2003).
- At the request of the project lead, I wrote a PHP version of the
status script to replace the CGI version
(included in pb20r550, released in November 2003).
- I added a web page to allow configuring the assignment of physical network
ports to logical network interfaces.
This functionality was previously available on the m0n0wall console;
implementing it as a web page was an item on the project's TODO list
(included in pb21r560, released in December 2003).
- 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:
- server-side persistent Java Triggers
(included in version 1.00, May 2003)
- best-match constructor code for the "new java.object()" syntax
(included as of version 0.94h, November 2002)
- the initial package documentation in the API docs
(included as of version 0.93, April 2002)
- suggestions for various small changes and bug fixes.
- TermMosaic is source code modifications to
to allow it to run over a
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
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,
- 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
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.
(or download from here or
- 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
(email@example.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 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 (firstname.lastname@example.org)
and Paul Riddle (email@example.com) 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
First released in January 1994; most recently released in February 1997.
- Spiro by Jimmc is a spirograph generator written in Java.
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.
version 1 (or
- Spin is an acronym for Simple Programmable INterpreter.
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
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.
(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.
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.
(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
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
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
It is no longer maintained, and has been superseded by
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
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
A program to communicate with a CM11 X-10 computer interface module.
Originally written by
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