purplesyringa

purplesyringa.moe · Personal blog · on HN since 2024

purplesyringa writes technical posts on Rust, performance optimization, compression, floating point, and low-level programming quirks.

What HN saysHN commenters agree with her points on floats, enjoy her sense of humor, and discuss details such as the large webfont CSS file.
39HN people shared it
4linked it in comments
82stories submitted
2.6Kstory points
2 months agolast shared
2024people per year2026

Most-shared posts

  1. 1
    If I hear "design pattern" one more time, I'll go mad
    5 people · 23 points · first shared 2025 · 5 comments on HN
  2. 2
    Thoughts on Rust Hashing
    5 people · 13 points · first shared 2024 · 2 comments on HN
  3. 3
    The Expression Problem and Rust
    3 people · 14 points · first shared 2025 · discussion on HN
  4. 4
    Ntoh*/hton* is a bad API
    3 people · 5 points · first shared 2025 · discussion on HN
  5. 5
    An Ode to Bzip
    3 people · 5 points · first shared 2026 · discussion on HN
  6. 6
  7. 7
    JVM exceptions are weird: a decompiler perspective
    2 people · 257 points · first shared 2025 · 69 comments on HN
  8. 8
    Falsehoods programmers believe about null pointers
    2 people · 111 points · first shared 2025 · 104 comments on HN
  9. 9
    Any Python program fits in 30 characters
    2 people · 7 points · first shared 2024 · discussion on HN
  10. 10
    Recovering control flow structures without CFGs
    2 people · 7 points · first shared 2025 · 1 comments on HN
  11. 11
    Faster Practical Modular Inversion
    2 people · 6 points · first shared 2025 · discussion on HN
  12. 12
    Fenwick Layout for Interval Trees
    2 people · 6 points · first shared 2025 · discussion on HN
  13. 13
    Recovering Garbled Bitcoin Addresses
    2 people · 4 points · first shared 2024 · discussion on HN
  14. 14
    WASM is not quite a stack machine
    2 people · 4 points · first shared 2026 · discussion on HN
  15. 15

What HN people wrote when they linked it

purplesyringa · 2026-07-29
Thank you! I completely agree with this, floats are treated as a lot more magical than they actually are. I myself often rely on their exact guarantees for fun tricks (e.g. fast precise int<->float conversion: https://purplesyringa.moe/blog/fast-limited-range-conversion-between-i… But while IEEE-754 is very precise, some subtleties arise when you add library functions to the mix -- many libm's and userland libraries don't guarantee 0.5 ulp precision for certain operations and don't document the guaranteed precision either, at which point you're left guessing and saying "well, I guess I should treat floats as magic in this case after all". I added "it's not imprecision" to step around this whole question.
mananaysiempre · 2026-02-21
> Then, when it fails [...], you can either poke it in the right ways or change your program in the right ways so that it works for you again. This is a horrible way to program; it’s all alchemy and guesswork and you need to become deeply specialized about the nuances of a single [...] implementation In that post, the blanks reference a compiler’s autovectorizer. But you know what they could also reference? An aggresively opaque and undocumented, very complex CPU or GPU microarchitecture. (Cf. https://purplesyringa.moe/blog/why-performance-optimization-is-hard-wo…
thaliaarchi · 2024-10-12
That feeling seems common in hindsight. Everything seems easier, once all the problems have been solved. Related, I enjoy the author's sense of humor: > I made a prototype and, lo and behold, it was in fact slow, as predicted. (I’m smart.) And in another article[0], describing an inefficient collision algorithm: > Mojang’s decision never crossed my mind. I guess I’m not a real programmer. [0]: https://purplesyringa.moe/blog/ru/minecraft-compares-arrays-in-cubic-t…
lxgr · 2024-09-07
Now I got curious, and there's also a 400 kB CSS file to go with it: https://purplesyringa.moe/fonts/webfont.css I'm not up to date on web/font development – does anybody know what that does?

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close