Simon Tatham's Home Page
Welcome to my web site. I'm Simon Tatham, a software engineer and
free-software author in Cambridge, UK.
Here are links to the various other pages of this site.
About me: some idea of who I am.
Free software I've written, which you can download.
PuTTY: a Telnet and SSH client for Windows.
Halibut: a half-written documentation
system which is used for the PuTTY manual.
DoIt: a utility to allow a Unix machine to open
documents on a Windows machine (for example, sending commands back
to your Windows desktop machine from a Unix server you've connected
to from there).
WinURL: a Windows utility to pull text out of
the clipboard and launch it as a URL at the touch of a hot-key.
Enigma: a block-pushing puzzle game.
Originally invented by a friend; converted to a
curses-based Unix game by me.
A collection of GUI puzzle games, portable to
downloadable versions for Windows, Unix and MacOS, and third-party
ports to various mobile devices.
Tweak: a Unix
editor designed for highly scalable performance.
IPBT: a Unix
which plays back
ttyrec files with precision rewind
A collection of miscellaneous Unix utilities.
agedu: a Unix utility for tracking down where
you're wasting disk space, by making it easy to spot large amounts
of data with last-access times a long time ago.
xtruss: an X11 protocol tracing utility.
Bitmap fonts and font utilities for Windows.
Gonville, an alternative font of musical
symbols for use with GNU Lilypond.
A patch to
implements a third mode of job termination notification.
ick-proxy, a disgusting utility
for rewriting URLs in multiple web browsers.
My algorithms collection: some neat
algorithms that aren't in common use.
Mathematical sorts of things. (Many of these pages include some
downloadable software so you can play with them yourself.)
Articles, essays and things I've written.
How to Report Bugs Effectively: a general
article on how to send a programmer a bug report which will actually
help them fix the problem.
Coroutines in C: an implementation of
Knuth's "coroutines" concept in portable ANSI C, by a similar
technique to Duff's device plus some C preprocessor abuse.
Metaprogramming custom control structures in C:
another piece of C preprocessor abuse to let you build quite general
user-defined looping constructs alongside C's basic
Magic Aliases: a dirty trick you can do
by combining aliases and shell functions in the Bourne shell.
The Infinity Machine: an exercise in
what you might call "recreational computer science", inspired by Ian
Stewart. Explores the potential consequences if an infinitely fast
computer could be built (including defining precisely what that
The Descent to C: an introduction to C for
people coming to it from higher-level languages, intended to warn you
in advance about the likely culture shocks.
My experience of migrating to Subversion.
Things to watch out for, things I'd do differently next time, things
I'm glad I did the way I did.
My personal FAQ about the fact that I have
no sense of smell.
(comments to firstname.lastname@example.org)
for hosting this page)
(last modified on Thu Oct 30 09:25:15 2014)