Top all-time · #4251
Litherum
Personal blog · litherum.blogspot.comprogrammingsystems
Litherum is a personal blog at litherum.blogspot.com about programming and systems. Since 2019, 17 different Hacker News readers have linked it 24 times, most often “Addition Font”. It is still writing: the last post was on 2026-05-30, and you can follow it by feed.
Too few sampled comments (12) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for its posts on text layout and font technology, especially the 2019 post showing OpenType glyph substitution is Turing-complete. Commenters also cite its Knuth-Plass and WebKit text-handling posts.
Summarised by Claude from a sample of 12 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Addition Font10 people · 11 mentions · first linked 2019-03-11
- Addition Font with Turing Complete Glyph Substitution3 people · 3 mentions · first linked 2019-03-10
What Hacker News says?
You may not have an explicit rand(), but with the ligatures & substitution rules, you can add so much context sensitivity that no one will ever spot any duplications. That's how you can do things like https://litherum.blogspot.com/2019/03/addition-font.html https://pagedout.institute/download/PagedOut_002_beta2.pdf#p... https://aftertheflood.com/journal/the-worlds-first-code-free... https://www.coderelay.io/fontemon…
Comment linking /2019/03/addition-font.html
on “Yep, I created the new Avatar font”Submitted Addition Font as a story · 152 points
HN discussionI mean, fonts are Turing-complete [0], so it isn’t surprising that this is possible. Turing-completeness is often by accident rather than by genius [1]. [0] https://litherum.blogspot.com/2019/03/addition-font.html [1] https://en.wikipedia.org/wiki/Turing_completeness#Unintentio...
Comment linking /2019/03/addition-font.html
on “Furifont, a Japanese font that shows furigana”Submitted Proving the Turing Completeness of Fonts as a story · 61 points
HN discussionhttps://litherum.blogspot.com/2019/03/addition-font.html "So this is pretty cool, but it turns out that the contextual substitution lookup type is really powerful. This is because the table that it references can be itself, which means it can be recursive." […] "So thats a pretty powerful virtual machine. I think the above is sufficient to prove Turing complete-ness."
Comment linking /2019/03/addition-font.html
on “Color fonts on Google Fonts”Submitted End-to-End Tour of Text Layout/Rendering (2015) as a story · 43 points
HN discussionFonts are not like photos, they have hinting and kerning and conditional code that distinguishes a high quality font from crap. The glyph substitution table in OpenType fonts is of such complexity that it's been shown to be Turing complete. [ https://litherum.blogspot.com/2019/03/addition-font.html ]
Comment linking /2019/03/addition-font.html
on “Monotype launches the first redesign of Helvetica in 35 years”Submitted Addition Font (2019) as a story · 2 points
HN discussionYes: https://litherum.blogspot.com/2019/03/addition-font.html
Comment linking /2019/03/addition-font.html
on “Commas in big numbers everywhere: An OpenType adventure”Submitted Addition Font with Turing Complete Glyph Substitution as a story · 2 points
HN discussionI suspect the opposite situation is what you run into: it is possible to write programs that are valid and out to be accepted by the type system, but get rejected because you blew the stack of the type checker. Had the type checker been allocated more memory / time, it could have accepted the program, but it crashed before that. This reminds me of that: http://litherum.blogspot.com/2019/03/addition-font.html You can…
Comment linking /2019/03/addition-font.html
on “Rust's type system is Turing-complete (2017)”Submitted Implementing a GPU's Programming Model on a CPU as a story · 1 points
HN discussion(Not a language or Unicode expert, the following likely has important mistakes.) > Off the top of my head, I don't know of a terminal that actually implements the entire (very complex) set of Unicode text rendering behaviors There are at least two reasons for this: First, nobody actually seems to know how bidirectional text should interact with terminal control sequences, or indeed how it should be typeset on a term…
Comment linking /2019/03/addition-font.html
on “Libgrapheme: A simple freestanding C99 library for Unicode”I think that is thanks to the Knuth-Plass algorithm, with Knuth being the inventor of Tex, which powers Latex. The problem seems not trivial indeed. http://www.eprg.org/G53DOC/pdfs/knuth-plass-breaking.pdf https://tex.stackexchange.com/questions/230668/any-progress-... http://litherum.blogspot.com/2015/07/knuth-plass-line-breaki...
Comment linking /2015/07/knuth-plass-line-breaking-algorithm.html
on “How to use (or not use) a hyphen”Given that the OpenType font format is Turing-complete [0], I would challenge the “without code” claim. ;) [0] https://litherum.blogspot.com/2019/03/addition-font.html
Comment linking /2019/03/addition-font.html
on “Sparks – A typeface for creating sparklines in text without code”I really enjoyed this author's "Complex Text Handling in WebKit" series from a few years back. They're spread over several months on the blog, so here are the direct links to each part, if anyone is interested: Part 1: Encoding Systems, Code Points, and Code Units < https://litherum.blogspot.com/2013/11/complex-text-handling-... > Part 2: Fonts < https://litherum.blogspot.com/2013/11/complex-text-handling-... > Part…
Comment linking /2014/11/complex-text-handling-in-webkit-part-7.html
on “End-to-End Tour of Text Layout/Rendering (2015)”OpenType is basically turing-complete via glyph shaping. There's an explanation here: https://litherum.blogspot.com/2019/03/addition-font.html
Comment linking /2019/03/addition-font.html
on “Times New Bastard”Hinting might be a red herring here: these font formats are unsafe almost by design, since they consistently rely on a pattern of reading a value out of a chunk of memory and then treating that value as a pointer offset where additional values are read. The proposed WASM shaping implementation would be a replacement for traditional OpenType layout[1] which is already turing complete[2]), and in this sense using WASM…
Comment linking /2019/03/addition-font.html
on “The Web Assembly Shaper”