Welcome to Greg Johnson's web site

Some thoughts on Danny Hillis's mechanical binary adder

Rules of the road for high-quality software

Yet another attempt at developing intuition for the Fast Fourier Transform

A really small Ruby implementation of the Fast Fourier Transform algorithm

A fresh look at red-black trees

A handy interactive tool for experimenting with red-black trees

The infamous predecessor function for Church Numerals in the Lambda Calculus

2-3 Trees in Ruby

An intuitive way of thinking about the Foucault Pendulum

Build your own ascii-art trees interactively

A quine (self-printing) program written in awk, with comments and explanation

An elementary proof of a key lemma in Shor's quantum factoring algorithm

OpenAPL: A 64-bit port of the classic APL\11 interpreter