New and Improved

Last update: 24 May 2022

Update Log (covers finer-grained changes)

Nuclear Fission Fuel is Inexhaustible

“Sustainable energy” is on the lips of politicians, media figures, and others seeking to signal their virtue, but rarely do they mention that a technology first demonstrated in 1951 has the ability, any time we choose to adopt it, to entirely replace fossil fuels, eliminate 100% of carbon emissions from energy production, and provide power for all people on the globe at European per capita energy consumption for at least the next ten thousand years. But it has a scary name.

The Stratified Bible

Inspired by Donald E. Knuth's 3:16 Bible Texts Illuminated, The Stratified Bible generates custom “stratified samples“ of books of the Bible, for either user-specified or randomly selected chapter and verse numbers. Verse text is displayed in English, Latin, and Hebrew (the latter only for Old Testament books), with text linked to the verse in context in the complete book. Custom queries can select which languages are displayed and from what portions of the Bible (for example, the Torah or Gospels) verses are sampled.


Developed in 1990 as a demonstration of the AutoCAD Development System (ADS) then being readied for shipment with the upcoming AutoCAD Release 11, ClassWar used ADS and the ATLAST embedded language toolkit to implement a true object oriented extensible database for AutoCAD, in which graphical objects could define their behaviour through embedded code. This is an archive of the code and documentation as it existed in May, 1990. It is not usable with any current version of AutoCAD and is of historical interest only.

Blockchain Tools

Fourmilab Blockchain Tools provides a variety of utilities for users, experimenters, and researchers working with blockchain-based cryptocurrencies such as Bitcoin and Ethereum. General-purpose tools for Bitcoin and Ethereum address generation and management include: Tools for analysis of the Bitcoin blockchain (these require access to a full Bitcoin Core node with transaction index) include: Programs are written in the Perl and Python languages, developed and maintained using the Literate Programming methodology.

Floating Point Benchmarks

There are many disadvantages to being a balding geezer. In compensation, if you've managed to survive the second half of the twentieth century and been involved in computing, there's bearing personal witness to what happens when a technological transition goes into full-tilt exponential blow-off mode. I'm talking about Moore's Law—computing power available at constant cost doubling every 18 months or so. When Moore's Law is directly wired to your career and bank account, it's nice to have a little thermometer you can use to see how it's going as the years roll by. This page links to two benchmarks I've used to evaluate computer performance ever since 1980. They focus on things which matter dearly to me—floating point computation speed, evaluation of trigonometric functions, and matrix algebra. If you're interested in text searching or database retrieval speed, you should run screaming from these benchmarks. Hey, they work for me.

New September 2021 updates adds Raku (Perl 6) to the C, C++, Chapel, Ada, Algol 60/68, COBOL, Common Lisp, Erlang, Forth, FORTRAN, FreeBASIC, Go, Haskell, Java, JavaScript, Julia, Lua, Mathematica, Mbasic, Modula2, Pascal, Perl, PHP, PL/I, Prolog, Python, Ruby, Rust, Scala, Simula, Smalltalk, Swift, and Visual Basic (6 and .NET) language implementations of the floating point benchmark, and includes a comparison of the relative performance of these languages.

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.4-14.0.0 (September 2021) updates to the Unicode 14.0.0 standard and the new scripts, characters, and emoji it adds.

Slave Lives

Taking away a person's freedom and confiscating the entire product of their life's work is morally abhorrent. But what about doing it to a large population, just in smaller slices?

Tools for Online Privacy

It seems like wherever you go on the Internet, there's somebody—governments, big tech companies, Internet service providers, and a multitude of nefarious or just annoying actors—trying to snoop on your activity. Here are some tools, accessible to people without extensive technical experience, which allow you to reclaim some of your privacy and protect your communications from eavesdroppers.

Mind Grenade

In the fall of 1969, I made my first foray into digital electronics by designing and building my own version of a random music generator invented by Harry S. Pyle. Fifty years later, it still works. Explore digital design from half a century ago, how this device which looked and sounded like people thought computers ought to worked, and enjoy a modern software emulation that runs inside your Web browser.

Units Calculator

Units Calculator is a Web interface to the GNU Units utility which allows conversion among thousands of physical units, constants, and currencies. Units Calculator may be used to perform complex scientific and engineering calculations involving physical units and guards against common errors due to dimensional incompatibility. Units Calculator is 100% compatible with GNU Units, but as a Web application can be used from any platform with a Web browser. Currency exchange rates and precious metal prices are updated daily. See the Introduction for a tutorial, or proceed directly to the Expert page, which contains a click-to-copy table of common units.

NDOC: The Null Document Processor

From the 1980s, NDOC is a text formatter which produces justified text for monospace devices and requires little or no mark-up in source documents. It can number lines and pages, set text justified, centred, or right-aligned, and format with specified margins, line width, page length, and page heading. Written in portable, if antiquated, C.

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.

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.