RSSAmplifier

Blog

The Zen of Coding

Finding flow

joel.idRSS feed ↗10 posts

Latest posts

Why Habu

GPU Kernels & Compilers: A Compressed Interview Course

Hacking LLDB for a great Zig debugging experience

Discuss it on Twitter , Reddit or Hacker News . Zig is better than C. And that’s great — until you try to debug it. If you’ve ever dropped into LLDB while debugging Zig, you already know the pain: slices look like random structs, optionals are unreadable, error unions feel hostile, and expressions like slice[0] just… don’t work. This post introduces zdb , an LLDB plugin that makes debugging Zig…

AI will write your next compiler!

Discuss on Hacker News , Twitter or Reddit . Also, consider hiring me ! It was a dark and stormy night Well, a gloomy Kyiv morning. I opened my laptop and discovered that my Claude Code account had been disabled . Not only that — I’d been refunded the unused portion of my $200/month Max plan and downgraded to the Free tier. I had 10–15 active Claude Code Web sessions working across multiple…

Build your dreams!

Discuss on Hacker News , Twitter or Reddit . Also, consider hiring me ! You might also enjoy AI will write your next compiler! I started coding over 20 years ago — writing BASIC on my lap during a 1.5-hour bus ride from Havana (where I went to school) back to Santa Cruz del Norte . Seats were usually taken, so I coded while sitting on the wheel cover. Not ideal ergonomics, but perfect motivation.…

Artisanal Coding Is Dead, Long Live Artisanal Coding!

Discuss on Hacker News or Twitter . Build your dreams and consider hiring me ! You might also enjoy AI will write your next compiler! I recently discovered that I possess certain AI-assisted superpowers : I can now implement working features — the ones I actually need and want — far faster than if I coded them artisanally , and with no loss in quality. I literally feel 10× more productive! Take,…

Making OCaml recursive modules convenient

Jane St posted about recursive OCaml modules from recursive signatures a while ago. module rec Even : sig type t = Zero | Succ of Odd . t end = Even and Odd : sig type t = Succ of Even . t end = Odd You cannot have functions inside recursive modules defined this way which is really inconvenient. You can bring the convenience back with just a couple of wrappers, though! module rec Even' : sig type…

Configuring Jujitsu (jj)

This is my Jujitsu (jj) repo config template. I usually symlink it to .jj/repo/config.toml and check it in. I then jj sync && jj evolve where using git I would git pull --rebase . And jj is lovely... but for having to jj b s master -r @- all the time before pushing, often with --allow-backwards . I think it's a feature, though, and not a bug! [ aliases ] ci = [ 'commit' ] push = [ 'git' , 'push' ]…

Configuring Helix to auto-format Haskell code

This is how you configure Helix to auto-format Haskell code. Took me a lot of googling and then reading the manual so I hope you find it useful! [[ language ]] name = "haskell" roots = [ "Setup.hs" , "stack.yaml" , "*.cabal" ] formatter = { command = 'fourmolu' , args = [ "--stdin-input-file" , "%{buffer_name}" ]} auto-format = true

Zig type hackery and memory management

You can map and fold in Zig but lack of closures makes it unergonomic. Here's a completely silly example that shows Zig type hackery as well as memory management. const std = @import ( "std" ); const mem = std . mem ; const testing = std . testing ; const Allocator = mem . Allocator ; pub const Error = Allocator . Error || error {}; pub const Expr = union ( enum ) { binary : Binary , int : usize ,…