Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Simon Tatham's Home Page
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.
Free software I've written, which you can download.
PuTTY: an SSH client for Windows, also able to
talk to serial ports and speak older insecure protocols like Telnet.
A collection of GUI puzzle games, portable to
many platforms: provided on the web in Javascript, downloadable
versions for Windows and Unix, and third-party ports to various mobile
devices.
Halibut: a documentation system with simple
syntax and multiple output formats, used for the manuals of most of my
software.
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.
IPBT: a Unix curses application
which plays back ttyrec files with precision rewind
capability.
Gonville, an alternative font of musical
symbols for use with GNU Lilypond.
Tweak: a Unix curses-based hex
editor designed for highly scalable performance.
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.
There are a few other things I've written which I'm now considering
more or less unmaintained. See
my unmaintained software page.
Mathematical sorts of things. (Many of these pages include some
downloadable software so you can play with them yourself.)
A series of articles about generating aperiodic tilings in software
using string-processing algorithms:
Part 1: recursive algorithms for walking around Penrose tilings and the hat tiling discovered in March 2023.
Part 2: same thing for the Spectre tiling discovered in May 2023.
Part 3: replacing the recursion in the previous articles with a finite state machine, slightly improving efficiency and eliminating a failure case.
Part 4: further improving the state-machine construction algorithm, and exploring various special instances of the tilings.
Part 5: an algorithm
for dealing with a tiling substitution system which you can't build an
efficient state machine for, by refining it into one you can.
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.
How to Read Error Messages: a guide to
getting the most out of typical kinds of error message you see from
software, over and above "something went wrong".
A loose trilogy of articles about coroutines, because I'm a great fan of them:
Coroutines in C: an implementation of
coroutines in portable ISO C, by a similar technique to Duff's device
plus some C preprocessor abuse.
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.