Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1207

G

gankra.github.io

Personal blog · gankra.github.io/blahprogrammingsystems

gankra.github.io is a personal blog at gankra.github.io about programming and systems. Since 2019, 58 different Hacker News readers have linked it 72 times, most often “Text Rendering Hates You”. No feed was found, so read it on the site itself.

No feed foundVisit the blog
72mentions?
7recommend?
58HN people?
2019–2022first – last linked?
Links on Hacker News per year · peak 28 in 2022

Sometimes recommended · 7 of 40 sampled comments recommend it?

Why HN links it

HN readers link Aria Beingessner's posts on why text rendering is far harder than it looks and on Swift's stable ABI compared with Rust, plus pieces on Rust's unsafe code and linear types.

Recommended for · 7 comments
Called it a fascinating look at text, a good overview, a classic, a favourite, and fair to both Swift and Rust.1234567

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Text Rendering Hates You
    22 people · 27 mentions · first linked 2019-09-29
  2. How Swift Achieved Dynamic Linking Where Rust Couldn't
    11 people · 11 mentions · first linked 2019-11-09
  3. The Pain of Linear Types in Rust
    5 people · 6 mentions · first linked 2020-06-19
  4. Destroy All Values: Designing Deinitialization in Programming Languages
    4 people · 4 mentions · first linked 2022-01-24
  5. The Tower of Weakenings: Memory Models for Everyone
    3 people · 4 mentions · first linked 2022-04-06
  6. Notes on Type Layouts and ABIs in Rust
    2 people · 3 mentions · first linked 2019-11-09
  7. Swisstable, a Quick and Dirty Description (2019)
    2 people · 2 mentions · first linked 2021-08-11
  8. C Isn't a Programming Language Anymore
    2 people · 2 mentions · first linked 2022-03-16
  9. /blah/
    2 people · 2 mentions · first linked 2019-11-09

What Hacker News says?

  1. Also, the swift ABI [1] should make it fairly easy to distribute compiled networks, right? [1] https://gankra.github.io/blah/swift-abi/

    Comment linking /blah/swift-abi/

    on “Swift: Google’s Bet on Differentiable Programming”
  2. Submitted Text Rendering Hates You as a story · 542 points

    HN discussion
  3. Another fascinating look into text on computer screens is this article: https://gankra.github.io/blah/text-hates-you/ . Just goes to show that text rendering is actually absurdly complex, unless you drastically restrict the problem space.

    Comment linking /blah/text-hates-you/

    on “Show HN: Svelte NodeGUI, a lightweight Electron alternative with native UI”
  4. Submitted Text Rendering Hates You (2019) as a story · 399 points

    HN discussion
  5. moonchild · 2021-03-13Recommends
    Swift has a stable ABI. It makes different tradeoffs than rust, but I don't think complexity is the cliff. There is a good overview at https://gankra.github.io/blah/swift-abi/

    Comment linking /blah/swift-abi/

    on “Speed of Rust vs. C”
  6. Submitted C Isn't a Programming Language Anymore as a story · 379 points

    HN discussion
  7. > at which point I bet it would be a somewhat easy modification to what Rust has already implemented. You'd lose that bet: https://gankra.github.io/blah/linear-rust/

    Comment linking /blah/linear-rust/

    on “Why asynchronous Rust doesn't work”
  8. Submitted How Swift Achieved Dynamic Linking Where Rust Couldn't as a story · 306 points

    HN discussion
  9. > If you're in Safari or Edge, this might still look ok! If you're in Firefox or Chrome, it looks awful, like this: https://gankra.github.io/blah/text-hates-you/transparent-cur... It doesn't look awful in Firefox, it looks perfect (it's version 26 of Firefox though.) This is what I see https://i.imgur.com/sjvqycv.png

    Comment linking /blah/text-hates-you/transparent-cursive.png

    on “Text Rendering Hates You”
  10. Submitted Rust's unsafe pointer types need an overhaul as a story · 185 points

    HN discussion
  11. > So subpixel-AA is a really neat hack that can significantly improve text legibility, great! But, sadly, it's also a huge pain in the neck! When playing around with FreeType's ftview demo program, text rendered with an OTF/CFF font using the Adobe CFF renderer with stem darkening enabled actually looks pretty good with grayscale rendering. Subpixel rendering is not strictly necessary. > https://gankra.github.io/bla…

    Comment linking /blah/text-hates-you/

    on “Text Rendering Hates You”
  12. Submitted Notes on Type Layouts and ABIs in Rust as a story · 172 points

    HN discussion
  13. If your framework has a broad audience, please make sure it accounts for the full complexity of text rendering [1] and editing [2], particularly when it comes to internationalization. You may find that there are good reasons for Cocoa to be as slow as it is in the measurement phase, if not the rendering phase. And of course, please don't forget about accessibility. [1]: https://gankra.github.io/blah/text-hates-you/…

    Comment linking /blah/text-hates-you/

    on “Xi-Editor Retrospective”
  14. Submitted How Swift achieved dynamic linking where Rust couldn't (2019) as a story · 162 points

    HN discussion
  15. Hot take: ABI stability is overrated. How often do you need to relink specifically without recompiling everything? As an OS packager, it's no big deal to rebuild everything depending on a C++ shared library when that library is updated. For self-contained binary distributions, statically linking the C++ library or putting the shared objects together works fine still. vtables are always a pain, but I think the Swift…

    Comment linking /blah/swift-abi/

    on “Swift System Is Now Open Source”
  16. Submitted The Tower of Weakenings: Memory Models for Everyone as a story · 111 points

    HN discussion
  17. Swift has done some very original things around ABI stability: https://gankra.github.io/blah/swift-abi/

    Comment linking /blah/swift-abi/

    on “Swift System Is Now Open Source”
  18. Submitted How Swift Achieved Dynamic Linking Where Rust Couldn't (2019) as a story · 12 points

    HN discussion
  19. There was an interesting write up done recently about Swift ABI features that enable this and why Rust doesn't/can't do similar things due to different design goals. https://gankra.github.io/blah/swift-abi/

    Comment linking /blah/swift-abi/

    on “Rust 1.40”
  20. Submitted Destroy all values: Designing deinitialization in programming languages as a story · 4 points

    HN discussion
  21. Text rendering is extremely difficult. Even today, Chrome/Firefox are not fully hardware accelerated on this front. https://gankra.github.io/blah/text-hates-you/

    Comment linking /blah/text-hates-you/

    on “Moxie: Incremental Declarative UI in Rust”
  22. Submitted Destroy All Values: Designing Deinitialization in Programming Languages as a story · 4 points

    HN discussion
  23. Everyone is in the mood to write about text rendering today for some reason, love it. Great to see so many points paralleled like this article talking [1] about sub-pixel offsets being a challange and Nuklear's Wiki article talking [2] about snapping glyphs to an interger offset. [1] https://gankra.github.io/blah/text-hates-you/#subpixel-offse... [2] https://github.com/Immediate-Mode-UI/Nuklear/wiki/Complete-f...

    Comment linking /blah/text-hates-you/

    on “Text Rendering Hates You (2019)”
  24. Submitted Swisstable, a Quick and Dirty Description (2019) as a story · 4 points

    HN discussion
  25. danShumway · 2022-06-14Recommends
    It's linked at the bottom of the article, but reminder that Gankra's blog ( https://gankra.github.io/blah/ ) has a ton of other great writing like this. In particular, I always recommend "Text Rendering Hates You."

    Comment linking /blah/

    on “Everything Is Broken: Shipping Rust-Minidump at Mozilla”
  26. Submitted Defaults Affect Inference in Rust: Expressions Instead of Types as a story · 3 points

    HN discussion
  27. > Instead of trying to decide whether a GUI toolkit is native or not, I recommend asking a set of more precise questions: > > * Does text look like the platform native text? > > * To what extent does the app support preferences set at the system level? > > * What subset of expected text control functionality is provided? > > * Complex text rendering including BiDi > > * Support for keyboard layouts including “dead k…

    Comment linking /blah/text-hates-you/

    on “Advice for the next dozen Rust GUIs”
  28. Submitted Pre-Pooping Your Pants with Rust as a story · 3 points

    HN discussion
  29. One of the strange things about Rust is the &UnsafeCell<T>/*mut T dichotomy. &UnsafeCell<T> is easier to work with, and you can soundly acquire &mut T as long as they never overlap, but you can't turn a Box<UnsafeCell<T>> into a &UnsafeCell<T> and back to a Box<UnsafeCell<T>> to delete it, because provenance or something. *mut T is harder to work with, this is UB according to miri since you didn't specify `&mut x as…

    Comment linking /blah/fix-rust-pointers/

    on “The Hare programming language”
  30. Submitted Text Rendering Hates You as a story · 3 points

    HN discussion

Search all of HN for gankra.github.io

Linked by the same people?