“Who is like You, O Lord, among the gods?”

Terra Cimmeria, Mars
Joined March 2014
Btw this is why computer science matters. Yes, you can self teach it if you really want to (I personally wouldn't have had the discipline, so college was a way better force). However you learn it, the theoretical fundamentals matter and get applied to work every single day.
If you're interested in "how" or "why": the major culprit is that each row in Alacritty has 32 bytes of metadata and each cell is 24 bytes. In Ghostty, every row and cell is represented by exactly 8 byte each. How do we do this? The first major culprit is styles. Alacritty stores the full cell style alongside each cell (foreground, background, underline, etc.). Ghostty stores a 16-bit style ID and de-dupes all styles into a look-aside custom reference-counted hash table. MOST cells are unstyled, and when there are styles MOST styles are shared, and when styles are shared MOST are repeated in a run (multiple cells with the same style in a row). Put this all together, and the tradeoff on compute to access it doesn't even end up being slower. Next, codepoints. Alacritty stores multi-codepoint graphemes (like, Emoji) by having an 8-byte nullable pointer to a `Vec`. This hurts doubly: (1) its almost always null (because multi-codepoint is rare) yet you pay an 8 byte cost on every cell and (2) every multi-codepoint grapheme triggers a heap allocation to make that Vec. Ghostty stores single codepoints inline, but multiple codepoints in a look-aside table. The memory for this table uses a custom bitmap-tracked chunk-allocator (since grapheme frequency follows a measurable curve we calculated by scanning various online texts). The presence of graphemes is marked by a 2-bit content tag in our packed 64-bit cell. To keep the key small in the hash table, its limited to a 16-bit unsigned int that is an offset from a base pointer. Okay, the astute systems programmer will quickly notice there are a lot of 16-bit integers and ask: so this is all limited to a max of ~65K values? Nay. We maintain our grid using a linked list of contiguous ~400KB memory chunks (which themselves are in a memory pool using a custom allocator to speed up alloc/free). Each memory chunk is limited to 2^16. If/when we reach a limit, we move to the next page. In practice, this really doesn't happen except under pathological cases... the important point is we handle it. Lots, lots, lots more details, but thats a 10,000 foot view. These things alone account for ~95% of the difference of our uncompressed vs. Alacritty's uncompressed memory usage. (Theres also a reason why Alacritty's data structures aren't trivially compressable but thats a whole other topic)
46
161
13
3,008
276,799
Simeon retweeted
idea guys think simply having the idea means they should be successful programmers think simply being able to build the idea means they should be successful
133
85
17
2,173
94,126
Simeon retweeted
Replying to @Sportzz1 @BBCSport
Not every victory will look the same , sometimes it has to look different , that’s growth,consistency and mentality packed together to make a different experience.
2
1
101
Happy birthday to me 🎉🎉
1
3
Hey @CloudflareDev I have an outbound worker attached to my dispatch worker (WfP). It all of a sudden stops receiving outbound fetch calls. Did anything change that I don't know about?
5
Simeon retweeted
boris cherny goes on a podcast every three months and says something like “i’ve stopped breathing now i just wrote a breath.md” and the next day everyone in sf stops breathing
134
456
55
9,156
364,306
This sums up tonight’s game #PSGARS
1
96
Honestly, iOS26 really nerfed the Phone app 😢
1
238
Honestly, iOS26 really nerfed the Phone app
63
The more I spend time with Claude Code, I begin to appreciate the friendliness and genius of Opencode TUI. @thdxr Your team or maybe you 🤷‍♂️ absolutely cooked here.
2
22
3,588
At this point, i think Hetzner takes so much pride in deactivating accounts 😂
1
43
Simeon retweeted
my 2c on the california tax thing pinning it on one politician is the wrong move - the reality is that people across the spectrum hate billionaires right now and would support any action against them things are out of wack no one cares about "the next google won't happen"
12
2
124
14,606
I love how @golang forces you to actively think about errors and how to handle them. Coming from the JS/TS this is a huge “culture” shock and a great design pattern.
1
37
It seems @Cloudflare turnstile is throwing “CORS” error on a lot of websites
1
245
Is it just be or X on the web is broken?
1
43
C# and @dotnet has been really flirtatious of late 🫦 Their syntax is almost identical to @typescript plus @chrlschn did a great job with his blog on `typescript-is-like-csharp` 👇
2
1
54
Simeon retweeted
Are you currently hiring for a role that includes using Node.js? Reply with a link to the opening and any relevant context. If you're not, we'd appreciate a repost for visibility 💚
24
103
4
575
53,087