Top all-time · #1174
Tony Finch
Personal blog · dotat.at/@ · on HN as fanf2systemsprogramming
Tony Finch's personal blog at dotat.at covers systems and programming. Since 2012, 58 different Hacker News readers have linked it 189 times, most often “GLL Parsing (2010) [pdf]”. It is still writing: the last post was on 2026-09-17, and you can follow it by feed.
Rarely recommended · 3 of 32 sampled comments recommend it?
Why HN links it
HN readers link Tony Finch's site mainly for his GLL parsing paper, the unifdef tool, qp-trie notes and his email address page. Most comments cite or point to these rather than judge the writing.
- Recommended for · 3 comments
- Called a favourite link (whence-time post), an "amusing anecdote" (railtrack PDF), and a favourite page (email address).
Summarised by Claude from a sample of 32 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- GLL Parsing (2010) [pdf]6 people · 11 mentions · first linked 2014-12-01
- QP-Tries5 people · 6 mentions · first linked 2017-11-19
- Where does my computer get the time from?4 people · 8 mentions · first linked 2023-05-26
- Really divisionless random numbers4 people · 7 mentions · first linked 2022-04-20
- Sudon't4 people · 4 mentions · first linked 2024-05-02
- Dot Dotat.at4 people · 4 mentions · first linked 2021-06-11
- An Update on Leap Seconds3 people · 5 mentions · first linked 2022-12-04
- Exponential Rate Limiting3 people · 3 mentions · first linked 2024-09-03
- p-fast trie: lexically ordered hash map3 people · 3 mentions · first linked 2025-08-04
- /prog/unifdef/3 people · 3 mentions · first linked 2015-03-18
What Hacker News says?
Judy arrays are (under the covers) a kind of radix tree, so they are comparable to things like ART (adaptive radix tree), HAMT (hashed array-mapped trie), or my qp-trie. Judy arrays had some weird issues with patents and lack of source availability in the early days. I think they are somewhat overcomplicated for what they do. Regarding cache-friendiness, a neat thing I discovered when implementing my qp-trie is that…
Comment linking /prog/qp/blog-2015-10-11.html
on “Ask HN: What are some cool but obscure data structures you know about?”Submitted tolower() with AVX-512 as a story · 275 points
HN discussionI wrote a blog post to explain it at https://dotat.at/@/2019-04-04-a-curious-perl-quine.html And also a superficially-related but actually rather different Python quine: File "quine.py", line 1 File "quine.py", line 1 ^ IndentationError: unexpected indent
Comment linking /@/2019-04-04-a-curious-perl-quine.html
on “93% of paint splatters are valid Perl programs (2019)”Submitted Against /tmp as a story · 257 points
HN discussionI have some notes on why I (and some of my colleagues) use gpg instead of Ansible vault: https://dotat.at/prog/regpg/doc/rationale.html I would dearly like a replacement for gpg in this context; `age` by Filippo Valsorda and Ben Cartwright-Cox looks like it will be nice, though I would like it to be easier to audit the recipients of encrypted files. Note that this kind of auditing relies on an information leak that…
Comment linking /prog/regpg/doc/rationale.html
on “The PGP Problem”Submitted tolower() in bulk at speed as a story · 228 points
HN discussionMy encoding uses about 2.5 bits per year https://dotat.at/cgi/git/leapsecs.git/blob/HEAD:/doc/spec.md
Comment linking /cgi/git/leapsecs.git/blob/HEAD:/doc/spec.md
on “It’s time to leave the leap second in the past”Submitted Constructing a Four-Point Egg as a story · 164 points
HN discussionOr even better, GLL. http://dotat.at/tmp/gll.pdf
Comment linking /tmp/gll.pdf
on “How I wrote a self-hosting C compiler in 40 days”Submitted Unix version control lore: what, ident as a story · 127 points
HN discussionAny chance of also including GLL (generalized LL)? I found the paper ( http://dotat.at/tmp/gll.pdf ) quite hard to follow, and haven't been able to find a good explanation anywhere else.
Comment linking /tmp/gll.pdf
on “Parsing Algorithms”Submitted Exponential Rate Limiting as a story · 115 points
HN discussionI think listlife is a simple and efficient algorithm: http://dotat.at/prog/life/life.html Some years ago I implementend something similiar in javascript: http://pmav.eu/stuff/javascript-game-of-life-v3.1.1/ The benchmark can be really slow in some steps.
Comment linking /prog/life/life.html
on “Googling for "conway's game of life" gives a simulation in the results page”Submitted Hg64: A 64-bit histogram data structure as a story · 95 points
HN discussionUnifdef http://dotat.at/prog/unifdef/ Saved me 100+ hours _this week_ :-). Thanks, Tony Finch &co!
Comment linking /prog/unifdef/
on “Programs that have saved me 100+ hours”Submitted Really divisionless random numbers as a story · 48 points
HN discussionThere are two kinds: - quantile sketches, such as t-digest, which aim to control the quantile error or rank error. Apache DataSketches has several examples, https://datasketches.apache.org/docs/Quantiles/QuantilesOver... - histograms, such as my hg64, or hdr histograms, or ddsketch. These control the value error, and are generally easier to understand and faster than quantile sketches. https://dotat.at/@/2022-10-12-…
Comment linking /@/2022-10-12-histogram.html
on “My Favorite Algorithm: Linear Time Median Finding (2018)”Submitted P-fast trie, but smaller as a story · 34 points
HN discussionHow have you totally missed GLL and GLR parsing?! http://dotat.at/tmp/gll.pdf
Comment linking /tmp/gll.pdf
on “Parsing: a timeline”Submitted Constantly Divisionless Random Numbers as a story · 32 points
HN discussionI have a command-line wrapper around gpg for similar reasons - https://dotat.at/prog/regpg/ The magic you are missing is `--quiet --status-fd 1`, then look for ENC_TO lines - the documentation can be found in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;... Based on my testing this works with gnupg 2.1 and 2.2, so I think it should help with your problem.
Comment linking /prog/regpg/
on “Sequoia-PGP – A new OpenPGP implementation in Rust”Submitted Where does my computer get the time from? as a story · 26 points
HN discussionchiark hosts Simon Tatham’s homepage (including PuTTY, his puzzle collection, his notes on C preprocessing hacks, all of which often appear on this site) and my homepage ( https://dotat.at ) amongst many other things. Here is Markus Kuhn commenting on my tweet about this article: https://twitter.com/mgk25/status/1550386849071390721
Comment linking /
on “Upgrading from Debian Jessie to Bullseye after nearly 30 years”Submitted How to Draw a Tetrapod as a story · 20 points
HN discussionYep. https://dotat.at/@/2024-03-26-iso-osi-usw.html
Comment linking /@/2024-03-26-iso-osi-usw.html
on “Falsehoods programmers believe about TCP”Submitted Getentropy() vs. RAND_bytes() as a story · 20 points
HN discussionI have been accumulating links at https://dotat.at/ : since 2002. It is super low-effort: rather than tagging, I rely on keywords in the title (which I try to adjust to be more searchable). I don’t try to read all the stuff: the links are partly an aide memoire in case I want to go back and dig deeper on a subject. Some of the links I refer to fairly often. (I should probably move my old static bookmarks page to my…
Comment linking /
on “Ask HN: How do you manage your bookmarks?”Submitted really divisionless random numbers as a story · 18 points
HN discussionNot entirely a bot and not entirely old content. I’ve got a lot of good stuff in my link log https://dotat.at/:/ so I thought it might be fun to share a few retro classics. There has been some good discussion, so it seems to be worth it.
Comment linking /:/
on “ADSL works over wet string (2017)”Submitted GLL Parsing (2010) [pdf] as a story · 18 points
HN discussion