Me in a propellor beanie
  Contact Addresses
Triangle Personal:  
Triangle Business:  
Triangle My PGP Keys

An Editorial Note

Martin died suddenly in late December, 2000. He had a heart attack on the way to work on the Muni; at the end of the line, the bus driver came over to try to wake the guy who'd fallen asleep. I've set up this mirror of his site, as there are many good things here, such as his software.

Obviously, the email addresses no longer work. Only he knows the passphrases to his PGP key. His last employer, ThinkLink, went bust in the dot-com implosion a month after his death, which shows what an asset he was.

If you have any questions about the site, Martin, or anything else, feel free to contact me at If you want to contact him, encrypt your message to his PGP key, print it out, and burn it. That way it will get to him without being read along the way. -- Jon Callas

Also, Martin's (and my) friend, Andy Leslie has a memorial page at this link. I suppose if more people have meorial pages, we can collect them all here. Send mail.

This was last updated on 30 September 2001.

An Autobiography, of Sorts

I am a senior software engineer at ThinkLink, Inc., an Internet startup that will provide integrated voice-mail, e-mail, etc. You can join our "public beta" at

Before joining ThinkLink, I worked at Apple Computer Inc. where I implemented the SCSI subsystem for the MacOS X Server operating system. Before joining Apple in 1992, I worked for almost 20 years at Digital Equipment Corporation, first in Sweden, then at Dec's main office in Maynard, MA, under the clock tower.

I have been a computer programmer, off and on, since 1962, learning on the original (vacuum tube) Illiac computer, then on TRASK, a Swedish transistorized "grandchild" of Illiac which, fortunately, could be programmed in Algol-60. Between 1972 and 1993, I worked at Digital Equipment Corporation in a variety of support roles, including corporate support for RSTS/E, the Decus-C programming language, and Dennis Klatt's DECtalk speech synthesizer. You can find more information on DECtalk at this speech-friendly site.

While in Sweden, I helped translate three Swedish films: I am Curious Yellow, I am Curious Blue, and They Call Us Mods.

In my spare time, I run with the San Francisco Hash House Harriers. Actually, if the truth be known, "running" may be a bit of an overstatement in my case. If I had more spare time, I'd do more with my new Amateur Radio license. Right now, I'm just struggling to learn the Morse Code.

Publicly Distributed Software

Throughout my career, I have benefitted from source code written by others, and believe that, as a professional, I have a responsiblity to repay this debt to my mentors by sharing my knowledge and experience, in the form of computer source code, with my community. For example, the C pre-processor I wrote for Decus C was distributed with a number of other projects including the MIT X-Windows X11R5 release and, at one time, the Gnu C compiler.


SunClock is a very large applet that requires full Java 1.1 support. It displays the sunrise/sunset terminator, the phase of the moon, times of sunrise, sunset, moonrise, moonset, and can be used to display times of Jewish and Muslim prayer and religious obligation (not fully implemented yet). SunClock was rated "Top 5% WebApplet" by Jars. It conforms to the 100% Pure Java specification but has not been validated.


SimpleSun is a simpler version of SunClock with no interaction, moon, or clock that should load much faster. SimpleSun is compatible with Java 1.1 and Java 1.0.2. SimpleSun was rated "Top 25% WebApplet" by Jars. SimpleSun should run on all browsers that support Java, even those that do not support the modern Java 1.1 standard.


SimpleSunImage is a rewrite of Simple SunClock with an improved sun ephemeris algorithm and a better image (courtesy of Geosphere Inc.). SimpleSunImage requires Java 1.1 support.

SunSphere (Obsolete)

SunSphere displays a spherical image of the earth showing the sunrise and sunset terminators that. It makes the odd shape of the terminator (on a rectangular map) understandable. It is a substantial applet, and tends to overwhelm some browsers. SunSphere was rated "Top 5% WebApplet" by Jars. SunSphere conforms to the 100% Pure Java specification but has not been validated. Note: this version of SunSphere requires full Java 1.1 support and will not work on some browsers.

This is the original release of SunSphere and has been superseded by SunSphereImage.

SunSphereImage (New)

SunSphereImage displays a spherical image of the earth showing the sunrise and sunset terminators. It makes the odd shape of the terminator (on a rectangular map) understandable. It is a substantial applet, and tends to overwhelm some browsers. The original version of SunSphereImage was rated "Top 5% WebApplet" by Jars, however this version has not yet been rated. SunSphereImage conforms to the 100% Pure Java specification (with a few minor disagreements) but has not been validated. Note: SunSphereImage requires full Java 1.1 support and will not work on current releases of Netscape Navigator on MacOS without the "MRJ in a Box" package.


The JavaInfo applet displays all system information that is available to applets running in the Java security "sandbox." It can also display memory usage and estimate the performance of the Java environment. The memory status and response test display panels may be used independently of JavaInfo.


The Countdown applet counts down to a specified date, such as the next millenium, then up from that date. The digits glow green before the date, orange after.


MakeHomePage is the Java application (not an applet) that I use to construct the simple list of links I use as my web browser home page. When it runs, it reads a file named HomePage.src and writes a file named HomePage.html, which you then designate as the "default home page" in your browser's preference dialog. To use it, copy to your system and compile it with your Java application development tool. MakeHomePage uses a Macintosh-specific method to set the output file's semantic information (the creator and file type). This should work on non-Mac systems: please let me know if you have problems using MakeHomePage. Note that this is an extremely simple program that lacks robust error handling. Be sure that the HomePage.src file is in the same folder (directory) as the application. Under the name HomePage.src, an earlier version of MakeHomePage was rated "Top 25% WebApplet" by Jars.


MorsePractice is a Java application (that can run as an applet) that I am using to learn Morse Code. It requires the unsupported internal classes, but these are available on most Java environments. When you run MorsePractice, you can listen to individual Morse Code symbols, to text that you type, or learn the code using either randomly-generated symbols or randomly-generated amateur radio contacts (QSO's). You can click on buttons to hear individual characters, The official distribution of MorsePractice is at

Decus C

Decus C is the first "open source" C compiler and the second C compiler written outside of Bell Labs. It runs on and generates code for the Dec PDP-11 minicomputer architecture.

TINI Hacks

The TINI Internet Appliance is a complete Java-enabled server on a 72 pin SIMM, including a network interface. I am writing a Servlet to support secure operations on an Java-enabled iButton. Here are some TINI utilities.

Iron Chef


You may use the following PGP keys to communicate with me.
DSS (PGP 5.0)
6B10 B8DD 5E94 BBAA 4ABD 13B0 8950 D1DC 26C4 551C
ID: 0x26C4551C
RSA (PGP 2.x)
86AC 7D97 9CB5 CBDB 0F0A CFFE 7443 3F7B
ID: 0x744432C9

Paper Tape

This is a short essay on obsolete paper-tape formats, particularly the five-channel format commonly called Baudot, Teletype, or Telex (the latter are trademarks). This essay also describes the format used by the Illiac computer.