An engineer writing about Go, RISC-V and small software tools, including binary size tricks and why finished software should stay finished.
HN commenters mostly discuss its post on Hugo and software being done, and note that the www subdomain serves the wrong SSL certificate.
Awesome find! But I wonder how easily this could be extended to 64 bit integers? That sequence in the lookup table won't fit into 64 bits if it's extended. I think you would have to fall back to just having the lookup table storing the transition data, as described in https://commaok.xyz/post/lookup_tables/ in the "A Small Step" section. And probably add a conditional in the beginning to handle very large integers that would overflow. Alternatively you might be able to do something with two lookup tables, but I think at that point you've got enough lookup data that it would be less efficient.
Offtopic, but huge respect for this[1]:
> Lots of people don’t want to read about AI.
> I respect that.
> But I’m currently steeped in the world of AI, for better or for worse, and I want to blog about it. So I’ve split this blog in half.
> The normal blog, which you are reading, is now AI-free.
> There’s another, at /ai that contains only AI posts. It has its own RSS feed.
Thank you. It (non-AI) definitely goes to my RSS reader.
1: https://commaok.xyz/post/blog-schism/
Sometimes Software is Done, or Why Hugo Why (2024)
https://commaok.xyz/post/on_hugo/
> When I first used Hugo I loved it. It was fast. It was simple. It just worked, as much as any software does, and it solved a real problem.
> It was done.
> But people kept working on it.
> I’m sure that it has been improved in countless ways. But along the way it has gotten bigger and more complicated, and has broken backwards compatibility repeatedly.
The title is a reference back to "Is Claude Code a Compiler?" by the same author, linked from the first sentence: https://commaok.xyz/ai/is-claude-a-compiler/
And then claim is attributed right there:
> The hands-down highlight was the talk by Erik Schluntz: Vibe coding in prod.
> Among other things, he drew an analogy between LLMs and compilers.
I don't quite understand why you need the messy/unsafe string interning, instead of a simple (mutex-protected) map with the m[string(b)] optimization that avoids allocations, or josharian's sync.Pool approach? https://commaok.xyz/post/intern-strings/
Who wants to deal with YAML? Sometimes the easiest way to set up a VM is by talking to your phone:
https://commaok.xyz/ai/just-in-time-software/
I mean, I don't do that, but I'll type a prompt.