Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    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.

    Visit blogHN submissions
    ProgrammingGamesOpen Source & Linux
    What HN says

    Commenters praise his Portable Puzzle Collection as a fantastic logic game set ported everywhere, and link PuTTY's FAQ.

    Stats for nerds
    363HN people shared it
    150linked in comments
    6.5Kstory points
    Jun 2026last shared
    2018people per year2026

    Top posts on HN

    1. 1
      Simon Tatham's Portable Puzzle Collection
      70 people · 911 points · first shared 2009 · 69 comments on HN
    2. 2
      Coroutines in C (2000)
      69 people · 740 points · first shared 2009 · 93 comments on HN
    3. 3
      XOR
      3 people · 606 points · first shared 2025 · 100 comments on HN
    4. 4
      The descent to C
      10 people · 562 points · first shared 2014 · 230 comments on HN
    5. 5
      PuTTY vulnerability vuln-p521-bias
      1 person · 558 points · first shared 2024 · 212 comments on HN
    6. 6
      Iconography of the PuTTY tools
      1 person · 400 points · first shared 2025 · 105 comments on HN
    7. 7
      Git without a forge
      2 people · 323 points · first shared 2025 · 159 comments on HN
    8. 8
      PuTTY 0.63 released, fixing four security holes
      36 people · 315 points · first shared 2008 · 84 comments on HN
    9. 9
      PuTTY 0.68 has been released
      2 people · 243 points · first shared 2017 · 147 comments on HN
    10. 10
      Possibly all the ways to get loop-finding in graphs wrong
      4 people · 238 points · first shared 2024 · 51 comments on HN

    What HN people wrote when they linked it

    • quietbritishjimApr 2025

      > 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++20/

    • matsemannMay 2020

      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

    • ArnavionDec 2019

      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"

    • kevindammJul 2025

      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.

    • markburnsMar 2022

      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.

    • evgpbfhnrFeb 2026

      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)

    Related

    Sgtathamchiark.greenend.org.uk15 people

    Porting GHC: A Tale of Two Architectures

    Sgtatham
    Personal · last shared 2026
    Paul Khuongpvk.ca106 people

    SBCL: The Ultimate Assembly Code Breadboard

    Paul Khuong
    Personal · last shared 2026
    Simon Lcsimon.lc15 people

    A history of Tetris randomizers (2018)

    Simon Lc
    Personal · last shared 2025
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    patorjkpatorjk.com72 people

    Code theft: Asciimo: Where have I seen this before?

    patorjk
    Personal · last shared 2026
    Random ASCIIrandomascii.wordpress.com274 people

    There are only four billion floats, so test them all (2014)

    Random ASCII
    Personal · last shared 2026
    Diary Of An x264 Developerx264dev.multimedia.cx58 people

    The first in-depth technical analysis of VP8

    Diary Of An x264 Developer
    Personal · last shared 2015
    Tony Finchfanf.livejournal.com24 people

    Qp tries: smaller and faster than crit-bit tries

    Tony Finch
    Personal · last shared 2023