A

Annie Cherkaev

anniecherkaev.com · Personal blog · on HN since 2017

Annie Cherkaev writes about floating point, compilers, keyboard layouts, and AI coding workflows, often with a hands-on, exploratory approach.

What HN saysHN commenters point to her NaN article as the reference on NaN payloads and NaN-boxing, and discuss its ideas in threads about number representation.
15HN people shared it
6linked it in comments
10stories submitted
517story points
6 months agolast shared
2017people per year2026

Most-shared posts

  1. 1
    The secret life of NaN
    7 people · 183 points · first shared 2018 · 70 comments on HN
  2. 2
  3. 3
    Principles for Keyboard Layouts (2022)
    2 people · 96 points · first shared 2024 · 104 comments on HN
  4. 4
    Workflows for AI Coding
    2 people · 3 points · first shared 2025 · discussion on HN
  5. 5
    System-Testing a Compiler
    1 people · 15 points · first shared 2017 · discussion on HN
  6. 6
    Choosing Learning over Autopilot
    1 people · 1 points · first shared 2026 · discussion on HN
  7. 7
    Floating point density.jpg
    1 people · first shared 2026

What HN people wrote when they linked it

Dylan16807 · 2026-04-18
That doesn't work. The only real difference between those two scales is in the values located between -.0000000001 and .0000000001 And that's grossly underestimating the number of 0s. No matter what scale you pick, your number line is going to look like this: https://anniecherkaev.com/images/floating_point_density.jpg Whether your biggest value is 0.005 or 7000000, most of your range has 25 (or 54) bits of precision. 99% of values are either too small to matter or outside your range. Changing your scale shifts between "too small" and "too big" categories, but the number of useful values stays roughly the same.
adampunk · 2026-03-12
NaN is weird? No, NaN is normal*, NaN PAYLOADS are weird: https://anniecherkaev.com/the-secret-life-of-nan *This is false, NaN is weird, though maybe it needs to be. It is nowhere written arithmetic on computers must be straightforward.
an1sotropy · 2022-09-16
Some other things on the same topic: https://leonardschuetz.ch/blog/nan-boxing/ https://anniecherkaev.com/the-secret-life-of-nan Is NaN-boxing actually used in the major browser JS engines?
mmoskal · 2022-07-17
Full 64 bit would very likely need to be boxed (heap allocated). I assume bigint is not boxed up to 40-something bits and instead stored as NaN[0]. Once you start boxing, the additional few instructions to handle things above 64 bit are probably not that important, so they may as well be generic. [0] https://anniecherkaev.com/the-secret-life-of-nan
sitkack · 2021-11-30
For those unfamiliar with Nan-boxing https://anniecherkaev.com/the-secret-life-of-nan > One use is NaN-boxing, which is where you stick all the other non-floating point values in a language + their type information into the payload of NaNs. It’s a beautiful hack.
brokenmachine · 2024-12-01
What "opinions" are you talking about? It's so customizable that it is SO much less opinionated than a standard keyboard. This seems crazy to me. I program with my Ergodox perfectly fine. It's so much better for programming because all the silly symbols I need can be wherever I like. You can put the [] keys wherever you like. You can have a brackets/symbols layer activated by holding another key, so you don't even have to move your hand to get any symbol you want. I don't do this for brackets but I do have a movement layer which puts the arrows and pgup/pgdn/home/end right under my right hand on the home row. So I hold my thumb on a thumb key and then I can use arrows without even moving my hand. I also have other keys on that layer send the higher Function keys that aren't even on a standard keyboard (F13-F24), so they are picked up by Autohotkey and I can run any kind of script I want from that. I use that to move windows to certain locations. I have a key on that layer to immediately bring up the calculator. I also have media controls right there. Really it's limited only by your imagination and how much effort you're willing to put into making things happen. It's 1000x more flexible than a standard keyboard because I can put keys that I need regularly either on a layer linked to a thumb key, or basically any crazy setup you can possibly think of with tap layers or whatever. https://docs.qmk.fm/feature_layers If you can't find a place for brackets, you really should…

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