New and Improved

Last update: 1 November 2018

Update Log (covers finer-grained changes)

ISBNquest: Web-based ISBN Utility

ISBNquest processes International Standard Book Numbers (ISBNs) with a Web-based interface and validates, interconverts formats, inserts proper punctuation, analyses the components of an ISBN, generates a bar code, and looks up the publication on Amazon, showing title, author, publisher, publication date, and other information. A link is composed which credits purchases made through it to an Amazon Associates account.

Bioshock Infinite: Play-through

Having largely ignored video games since the era of Pac-Man, in July 2018, I decided to explore a state of the art video game, the “first-person shooter” Bioshock Infinite. This is a beautiful example of three-dimensional rendering of interactive fiction. This document is my contemporary notes while playing through the game.


Illustrated, can't fail, easy-to-make delicious meals with all natural ingredients and minimal time and work to prepare at home.

Code Is Speech

During the “crypto wars” of the mid-1990s, the slavers tried rolling out a particularly pernicious doctrine under which computer code and, by implication, electronically-mediated communication in all forms, was not considered speech worthy of protection compared to the spoken word or physically printed documents. We thought we'd won, but, as is so often the case, they're back! This time they're trying to use the distribution of files containing instructions for manufacturing firearms and components as a wedge issue, once again arguing that computer files and design documents are not speech. If they win, that wedge will be driven to remove protection for all forms of speech in the form of computer files. We must not let them win this one.

UNUM: Unicode/HTML/Numeric Character Code Converter

Web authors who use characters from other languages, mathematical symbols, fancy punctuation, and other typographic embellishment in their documents often find themselves juggling the Unicode book, an HTML entity reference, and a programmer's calculator to convert back and forth between the various representations. This stand-alone command line Perl program contains complete databases of Unicode characters and character blocks and HTML/XHTML named character references, and permits easy lookup and interconversion among all the formats, including octal, decimal, and hexadecimal numbers. The program works best on a recent version of Perl, such as v5.8.5 or later, but requires no Perl library modules. New version 3.0 (July 2018) updates to the Unicode 11.0.0 standard and the new scripts and characters it adds.

Simulated Annealing: The Travelling Salesman Problem

The travelling salesman problem—finding the shortest itinerary to visit a set of cities— is a classic of combinatorial optimisation: easy to state but hellishly difficult to solve. This page demonstrates the technique of simulated annealing to find near-optimal solutions to this problem.


Lewis Carroll's classic poem from Through the Looking-Glass, 1871.

Nixie Tube Clock

In the bronze age of computing and electronics test equipment, nixie tubes were commonly used for decimal digital displays. This clock, available both in kit form and assembled, combines that vintage technology with digital electronics for a retro look and modern practicality.

Fun with Radiation

Explorations of radiation around the house and in the air with a Geiger counter.

Talkin' 'Bout My Innovation

In the late 1980s, due to the software patent craze, Autodesk was in a mode of patenting everything we could think of in order to build up a portfolio of patents to use defensively if somebody came against us with a (probably) bogus patent. My contribution was a means for computing with physical units which I'd just implemented in a rudimentary form for AutoCAD. Here is the original disclosure of this invention and the U.S. patent was it was granted more than four years later.

UNIVAC Memories

UNIVAC Memories returns to the 1960s and early '70s to explore the room-sized UNIVAC mainframe computers I programmed in those days. Discover million-dollar memory, two and a quarter ton 100 megabyte hard drives, minus zero, and other curiosities from the brash adolescence of the second generation of computers.

Update: November 2017 update adds a Univac Document Archive with hardware and software manuals, product brochures, and related documents from the 1107–1100/80 era.

Fifty Years of Programming and Moore's Law

The occasion of the fiftieth anniversary of the first computer program I wrote provides an opportunity to reflect on progress in computing, Moore's law, which has largely driven it over that period, and where things may be going in the next decade, which I've taken to calling the Roaring Twenties.

Commodore Curiosities

In the late 1980s I became interested in mass market home computers as possible markets for some products I was considering developing. I bought a Commodore 128 and began to experiment with it. I wrote several programs, some of which were published in Commodore user magazines. Here are three of those programs: a customisable key click generator, a moon phase calculator, and a neural network simulator. All programs can be run under the VICE emulator on modern machines.

Marinchip Systems: Documents and Images

In 1977, I founded Marinchip Systems, with the goal of developing personal computing hardware and software that provided the power and convenience afforded by contemporary timesharing systems at a fraction of the price. Starting in 1978, Marinchip delivered the first true 16-bit personal computer on the S-100 bus, based on the Texas Instruments TMS9900 microprocessor. This document is an archive of documents and photos from the Marinchip era, including scanned copies of many of the hardware and software manuals.

ISBNiser: Validate, Convert, and Link to ISBN-10 and ISBN-13 Codes

International Standard Book Numbers (ISBNs) provide a unique identification for each edition of a published book, and are essential when citing works or linking to them on on-line booksellers. This command line utility, implemented in Perl, validates both older ISBN-10 and current ISBN-13 formats, converts between them, and creates links which can be used to order the book from Amazon, optionally crediting the purchase to an Amazon Associates account.

Apparent Diurnal Variation in Background Radiation

Between 1998 and 2001 I measured background radiation in Fourmilab's computer lab with a Geiger-Müller tube interfaced to a computer. Analysing the data revealed both an apparent divergence from a Gaussian distribution of counts per minute and a variation in background radiation with time of day. This page presents the data, analysis, speculation on possible causes, and provides a link whence you can download the data and programs for your own investigations.

Little Wars

In this 1913 classic, H. G. Wells essentially single-handedly invented the modern pastime of miniature wargaming, providing a (tin soldier) battle-tested set of rules which makes for exciting, well-balanced, and unpredictable games that can be played by two or more people in an afternoon and part of an evening. Interestingly, he avoids much of the baggage that burdens contemporary games such as icosahedral dice and indirect fire calculations, and strictly minimises the rôle of chance, using nothing fancier than a coin toss, and that only in rare circumstances. This Web edition includes all of the photographs and marginal drawings from the 1913 first edition.


Can't decide? Here's a utility, written in Perl, which makes decisions for you: yes or no, the fuzzier answers of a Magic 8-Ball, or dice throws, using random data from HotBits, the /dev/urandom generator, or Perl's built-in rand() function.


Cellular Automata Laboratory invites you to explore the world of cellular automata with the aid of a high-speed programmable simulator which runs within your Web browser. Cellular automata rules are defined by short programs written in JavaScript or Java. Rule definitions in JavaScript are compiled directly inside the browser and do not require installing a programming environment on your machine. The accompanying on-line laboratory manual explains the theory of cellular automata, how to use the simulator programs, documents the many ready-to-run rules included, describes how to create your own original experiments, and contains a comprehensive bibliography. A development kit supplies source code for all of the rule definitions and the files they use, providing a starting point for your own explorations. New: 2017 update includes browser-based simulation and JavaScript rule definition.


As life inexorably expands from the home planet throughout the galaxy and beyond, there will come a time when our descendents render a new planet habitable every day. Terranova invites you to visit the terraformed planet of the day. New: Planet Maker lets you interactively create planets, cloudy skies, and star fields in your browser.