S
Simon Tatham
chiark.greenend.org.uk/~sgtatham · Personal blog · on HN since 2008
Simon Tatham, a programmer and author of PuTTY, publishes software, a puzzle collection, and essays on C programming and bug reports.
What HN saysCommenters praise his Portable Puzzle Collection as a fantastic logic game set ported everywhere, and link PuTTY's FAQ.
363HN people shared it
270linked it in comments
150stories submitted
6.5Kstory points
3 months agolast shared
2008people per year2026
Most-shared posts
- 1Simon Tatham's Portable Puzzle Collection70 people · 911 points · first shared 2009 · 69 comments on HN
- 2Coroutines in C (2000)69 people · 740 points · first shared 2009 · 93 comments on HN
- 3PuTTY 0.63 released, fixing four security holes36 people · 315 points · first shared 2008 · 84 comments on HN
- 4How to Report Bugs Effectively (1999)26 people · 42 points · first shared 2009 · 1 comments on HN
- 5Metaprogramming custom control structures in C11 people · 199 points · first shared 2012 · 42 comments on HN
- 6PuTTY 0.65 released11 people · 5 points · first shared 2011 · 1 comments on HN
- 7The descent to C10 people · 562 points · first shared 2014 · 230 comments on HN
- 8Mines10 people · first shared 2017
- 9Faq9 people · first shared 2011
- 10Download9 people · first shared 2011
- 11The Infinity Machine8 people · 113 points · first shared 2009 · 40 comments on HN
- 12Untangle8 people · first shared 2018
- 13Homepage7 people · first shared 2010
- 14PuTTY 0.72 Released6 people · 2 points · first shared 2017 · discussion on HN
- 15Developer documentation for Simon Tatham's puzzle collection6 people · 1 points · first shared 2014 · discussion on HN
What HN people wrote when they linked it
pavel_lishin · 2026-06-22
This is nice!
Readers may also enjoy Simon Tatham's puzzle collection, available for mobile as well: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
(My favorite currently is Dominosa. Playing the Hard mode is teaching me new patterns.)
evgpbfhnr · 2026-02-01
Great js implementation! I don't have any iThing but I'd happily play your js version in a browser for a while.
Since you mentioned Simon Tatham puzzles there's a js version here[1], but it really just isn't quite as good
[1] https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/pattern.html
(if I were to nitpick, for large grids one might want to make the separating line a bit thicker every 5 blocks for faster counting, and repeat numbers at the bottom/right -- but at the size the examples are in neither are needed)
(BTW you didn't mention for overlapping but there's a nice trick: just try from either end, count how many cells are leftover, and take that off the starting side of each block)
ethan_smith · 2025-08-16
Simon Tatham's Portable Puzzle Collection (https://www.chiark.greenend.org.uk/~sgtatham/puzzles/) is a fantastic set of logic games that's been ported to practically every platform imaginable.
thristian · 2025-08-16
From the PuTTY FAQ: https://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html#faq-domain
Would you like me to register you a nicer domain name?
No, thank you. Even if you can find one (most of them seem to have been registered already, by people who didn't ask whether we actually wanted it before they applied), we're happy with the PuTTY web site being exactly where it is. It's not hard to find (just type ‘putty’ into google.com and we're the first link returned), and we don't believe the administrative hassle of moving the site would be worth the benefit.
I wonder if they changed their mind because Google ceased to be a reliable way to find them.
mieses · 2025-07-16
extremely subjective. the damage of allowing schoolmarm types to determine laws based on what they think is parasitic or deceptive is more dangerous than the unambiguous and coherent concept of property. PuTTY owns https://www.chiark.greenend.org.uk/~sgtatham/putty/ There are a number of strings in this domain that cause me great distress. Should I be allowed to seize their property?
kevindamm · 2025-07-10
It's also available in HTML/js/wasm, so practically all networked devices:
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html
However, the minesweeper puzzle is the one that causes a big wart in the API, which part of me has wanted to refactor for years. (it's for the reason given in GP comment, the puzzle isn't generated until first click; it's the only one with this behavior and could be reworked to have the clicked area be a parameter to creation, but then it would have a slightly quirky main()-equivalent function.. IMO worth it for the cleaner API)
Simon's puzzles have overall been an inspiration, some good reading if you're into algorithms and applied graph theory and don't mind that it's in C.
quietbritishjim · 2025-04-16
> no commonly used high level language supports the coroutine call primitive
Shows how old this post is. In fact I remember reading it well over 10 years ago, maybe more like 20. archive.org says that it's at least as old as 2001. A great article.
I'm very excited to see he's published a new article on C++20 coroutines. I've read (or maybe skimmed...) a few introductions and not really got them, despite having used C# and Python coroutines a lot with no problems (even making changes to an async runtime for Python). Given how clear his C coroutine article is, I'm optimistic about the C++ article.
> So, after the course, I went away and studied on my own, and wrote the introduction to C++ coroutines that I’d have liked to see.
https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/coroutines-c++2…
OuterVale · 2025-02-19
If anyone is wondering, this is the same Simon Tatham as in Simon Tatham's Portable Puzzle Collection. If you're unfamiliar and ever find yourself offline and bored, they're worth checking out.
I know I burnt many hours in high school playing them.
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
namuol · 2024-10-25
Love it!
If you like this sort of thing, be sure to check out Simon Tatham (creator of PuTTY)’s Puzzles: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
The Android and iPhone ports are also excellent and free from ads/garbage.
fanf2 · 2024-10-23
Simon Tatham’s minesweeper is the best minesweeper https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html
« The first square you open is guaranteed to be safe, and (by default) you are guaranteed to be able to solve the whole grid by deduction rather than guesswork. »
alejohausner · 2024-06-11
I prefer Simon Tatham’s version[1]. It’s free, and configurable, and available online, and multiplatform. But the best thing about it is that you can always win, if you use deduction. As such, it’s more a puzzle than a game of chance.
1. https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html
omoikane · 2024-02-03
The non-rectangular grid idea was great but didn't feel as fun for me. I wish the grid was non-rectangular but regular, like the alternative grid types available in Loopy:
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/loopy.html
GauntletWizard · 2023-08-29
There's a version of this puzzle included in Simon Tatham[1]'s Puzzles: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/untangle.html
Available for all major platforms and a great way to waste time.
[1] of Putty Fame
PebblesRox · 2022-10-27
My kids have been enjoying this online remake of LodeRunner. [0]
It's fun because I have fond memories of playing it on the Macintosh Classic II as a kid.
They like making custom levels for each other, just like me and my siblings used to do.
I was also happy to find an ad-free Minesweeper remake on Simon Tatham's Portable Puzzle Page. [1] They like the maps game from that page as well.
[0] https://loderunnerwebgame.com/game/
[1] https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
cbsks · 2022-07-20
The developer documentation is absolutely top notch: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/devel/
And I think the code is a masterclass of how to write C. Take a look at the source for the tents puzzle, it’s amazing.
https://git.tartarus.org/?p=simon/puzzles.git;a=blob;f=tents.c;h=8b936…
markburns · 2022-03-28
Was it this one? https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/untangle.html
I went and found this game again relatively recently. It reminds me so much of decoupling and refactoring software or vice versa. I spent a few years occasionally trying to remember what distant memory of an experience decoupling reminded me of.
I quite enjoy both. Whilst simultaneously kind of hating the process.
Incredible sense of clarity once you've resolved everything that was stepping in the way of understanding. Moments of despair and frustration. Sense of progress combined with feeling this could be never ending. Iteratively trying to step towards something better.
It all seeming worth it in the end. So many parallels.
cyborgx7 · 2022-01-27
Seems like you'd be more interested in Master Mind.
Here is an implementation from the great Simon Tatham's Portable Puzzle Collection:
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/guess.html
ArloL · 2021-10-24
I can recommend https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
mtlmtlmtlmtl · 2021-07-08
Not sure whether this proves turing completeness of the preprocessor or not(probably not) but Simon Tatham has a great(and somewhat disturbing) write-up[1] on creating arbitrary control structures using macros in C. He even goes as far as providing a library of helper macros for doing things like making gensyms, etc.
If nothing else, it does demonstrate that you can do a lot more in the preprocessor than you might think, and this is at least a significant subset of what true MP macros are used for in Lisp most of the time. Except much gnarlier...
[1] https://www.chiark.greenend.org.uk/~sgtatham/mp/
wahern · 2020-10-15
It's also used to portably implement generators and coroutines. See https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html More generally, the semantics are useful for machine code generation and translation.
Computed goto's are even more useful for the above, but they're an extension. I'd love to see computed goto's added to the C standard, but it's far too late to change the semantics of switch. Rather, just accept that their code flow semantics make them slightly more type safe syntactic sugar for goto--not just in how they're implemented, but in how they can be used.
TYMorningCoffee · 2020-10-15
How do switches simulate coroutines? I'm reading thru the article they linked https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
But don't follow how they achieve independent stacks so a caller can continue where it left off in the callee.
joezydeco · 2020-08-22
Holy crap, this is insane. Just install PuTTY. Minicom is great if you’re on a Linux box but making all these gyrations to get a less capable terminal on Win10 isn’t worth it.
PuTTY: https://www.chiark.greenend.org.uk/~sgtatham/putty/
zertrin · 2020-08-17
The best collection I know is https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ which has ports for various platforms (in my case using android, but apparently there's an iOS port too, see links at the end).
The games have various difficulty levels to choose from.
gmfawcett · 2020-08-04
Simon Tatham's puzzles are also available as mobile apps -- ad-free, and highly recommended -- and can also be played via the Web. The Signpost puzzle is my personal favourite. :)
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
matsemann · 2020-05-20
Yeah, I liked how he realized two possibilities for a number that were next to each other, also meant the box around it could be cleared.
I really enjoy finding patterns like these in constraint games. After confirming the pattern for myself a number of times, the brain later just does it on autopilot. If people have tips for similar games I would be happy to try them.
Edit, my tips: Simon Tatham's Puzzle Collection [0] has lots of them. Apps exists for mobile devices as well.
Everett Caser [1] also have lots of logic games where one can learn patterns. I've played Sherlock and Honeycomb, and my favorite is Willa's Walk. They look a bit funky, but the apps work fine on Android.
[0]: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
[1]: http://www.kaser.com/ww.html
Arnavion · 2019-12-26
Yes. I've always bemoaned the fact that people's first experience with the game is the one bundled in Windows. Because the player knows the game sometimes requires guessing, they never learn which situations actually require guessing and which are actually solvable; they just decide they need to guess because there is no number surrounded by the same number of empty squares, and never discover the math about possibilities that the game requires.
I used to play a version that was guaranteed to never require guessing [1], but it was still possible to accidentally make an unnecessary guess and not be punished for it. TFA's variant is a great way to fix that problem.
[1]: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ "Mines"
elsjaako · 2019-10-01
Similarly, I usually install ExtraPutty, because I need xmodem support.
Still grateful for Simon Tatham's work. Did you know he also made a great collection of puzzles?
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
simcop2387 · 2018-11-02
A convinent source of information about this is going to be Simon Tatham's excellent puzzle suite. Most the puzzles are built to ensure a solution without guessing.
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/mines.html#mi…
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
They're all open source and I believe available on iOS as well as android for free for mobile users too.
sevensor · 2018-10-03
> Metaprogramming is an antipattern in C.
Yet we often see passionate arguments in its favor, as for instance from Sústrik
(http://250bpm.com/blog:56) and Tatham (https://www.chiark.greenend.org.uk/~sgtatham/mp/) and a person on the internet who recommends replacing LAPACK with preprocessor macros (http://wordsandbuttons.online/outperforming_lapack_with_c_metaprogramm… Would you care to comment on its enduring popularity?
flipacoin0 · 2018-02-23
This is great! I'd love to see it as part of Simon Tatham's Portable Puzzle Collection [1]
[1] https://www.chiark.greenend.org.uk/~sgtatham/puzzles/