• Sign in
  • Sign up
Elektrine
EN
  • EN English
  • 中 中文
Log in Register
Modes
Overview Search Chat Timeline Communities Gallery Lists Friends Email Vault VPN
Back to Timeline
  • Open on hachyderm.io

Simon Tatham

@simontatham@hachyderm.io
mastodon 4.5.7

Free software developer and hobby mathematician.

Author and lead developer of #PuTTY, and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

0 Followers
0 Following
Joined September 20, 2023
Web site:
https://www.chiark.greenend.org.uk/~sgtatham/

Posts

simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · 3d ago

When to automate a repetitive task:

NO-BRAINER: "This is obviously going to be faster to automate than to do it by hand _even once_. Let's automate it right now, and not do it by hand at all."

FORESIGHTED: "Doing it once by hand is faster than automating it, but I'm going to have to do it a lot of times, so it still saves time to automate it first."

NEED A RUN-UP: "I don't yet understand this task well enough to automate it, so I'll do it a few times by hand first to get the idea."

RAN OFF THE RUNWAY: "Great, now I've done this by hand a few times, I think I can automate it reliably! Oh, oops, turned out I only had one more case of it left to do."

TERRIFIED OF RUNNING OFF THE RUNWAY: "This is a one-off, so it would be a waste of time to automate it, I'll just do it manually."
[next day] "Oh, oops, I made a mistake and have to do it again. But it should be fine this time."
[a month later] "Even though I've had to redo it 25 times already, surely _this_ is the last time? So it would still be a waste of time to automate it."

View on hachyderm.io
174
0
115
0
simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · 4d ago

Aaaaah, that rare pleasure when an OS update demands a reboot just _after_ you finish doing a thing that was sprawling across four terminal windows and three other applications.

View on hachyderm.io
32
0
4
0
simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · 6d ago

The existence of 'coreutils' implies the existence of 'reutils', in which the cp, mv and ln commands take their two arguments in the opposite order.

#MathJoke #GeekJoke

View on hachyderm.io
65
0
20
0
simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · Mar 13, 2026

This week I saw the weirdest endianness bug I can remember.

In a particular piece of program output, one out of every four characters was in the right place, and the other three were cyclically permuted. For example:

01234567 expected output
12035647 actual output

The 3 and 7 are where they should be, but we've changed 012 → 120 and 456 → 564.

This only happened when the code was compiled and run on a big-endian system. Little-endian, it was fine.

It's not too surprising that an endianness issue involves bytes being misordered, in groups of 4 or 8 which might be the size of a register or primitive integer type. But _that_ particular misordering was very strange!

Perhaps it's unfair to set this as a puzzle. I certainly wasn't able to make sense of it myself without finding the actual bug in the code. But in case anyone does want a hard puzzle, see if you can think of a way for that to happen, before looking at the answer in the next toot!

View on hachyderm.io
28
0
13
0
simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · Mar 04, 2026

A "naming things is hard" anecdote I was just reminded of by an old web page:

In the 1990s, when 32-bit versions of Windows were introduced, a new executable file format was needed for native 32-bit programs. The existing 16-bit file format used by Windows 3.x was called "NE", for "New Executable". The 32-bit one was named "PE", for "Portable Executable".

Windows 95 could still run 16-bit Windows 3.x programs. But Windows 3.x couldn't run the newer 32-bit ones. (Ok, there was Win32s, but it had very restricted usefulness.)

In other words, the format called "New" was the older one of the two, *and* the format called "Portable" was the one that didn't work everywhere!

View on hachyderm.io
187
0
89
0
simontatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
Simon Tatham
Simon Tatham
@simontatham@hachyderm.io

Free software developer and hobby mathematician. Author and lead developer of # PuTTY , and "Simon Tatham's Portable Puzzle Collection", a set of one-player puzzle games running on many platforms. Also various smaller or less well known things.

hachyderm.io
@simontatham@hachyderm.io · Feb 21, 2026
In bare-metal or embedded programming environments, a natural kind of simple example program is one that just counts up from zero, on whatever output device you have – 7-segment display, or in binary on a row of LEDs, etc. But it's quite confusing if the manual refers to it as a "counter example"!
View on hachyderm.io
36
0
9
0
313k7r1n3

Company

  • About
  • Contact
  • FAQ

Legal

  • Terms of Service
  • Privacy Policy
  • VPN Policy

Email Settings

IMAP: imap.elektrine.com:993

POP3: pop.elektrine.com:995

SMTP: smtp.elektrine.com:465

SSL/TLS required

Support

  • support@elektrine.com
  • Report Security Issue

Connect

Tor Hidden Service

khav7sdajxu6om3arvglevskg2vwuy7luyjcwfwg6xnkd7qtskr2vhad.onion
© 2026 Elektrine. All rights reserved. • Server: 16:40:37 UTC