Register Spill
https://registerspill.thorstenball.com/ (RSS)
Talking with the co-founder of Recurse Center about learning
This snippet of Rust code has been stuck in my head for weeks now.
From aliases, to commits, to commit messages, to reviews, to workflows.
Maybe the #1 best programming tip of all time?
Here’s a bit of lingo that I learned working at Zed: shredding.
Friday evening I had dinner with Felix. Among other things, we talked about good code. Good code, we both agreed, is simple. It's code boiled down to its essence.
It’s been a few weeks since I listened to this German podcast episode about the downfall of a company called Schlecker and I keep thinking about an anecdote one of the hosts shared.
It's easy to forget that we're surrounded by millions and millions of lines of code that we can access and build and run and modify and tweak — whenever and however we want.
One of the best analogies I’ve ever been taught
For the longest time, I thought Instruments on macOS wasn’t for me. Whenever I saw its icon show up in the /Applications folder or pop up in a launcher, I assumed it’s part of Xcode and Xcode is an IDE for Objective-C and Swift programmers and that’s not what I do and that’s why Instruments isn’t for me.
A few months ago I listened to this episode of the Search Engine podcast in which PJ Vogt, the host, talks to Ezra Klein about the internet and media consumption in general. In the episode, Ezra Klein shares what he thinks of as the “Matrix Theory of Mind”. Here’s my (slightly cleaned up) transcription of
It was eight years ago that I lived through some of the worst weeks of my life as a professional software engineer. I was working for a small startup that was about to be acquired. Or about to go bankrupt. There was no other possible outcome anymore. Acquired or bankrupt, it was one of these two and every week for several months the odds would...
In one of my more philosophical moments two years ago, I said to a friend: you don’t need much more for a good time than a grill with bratwurst on it, beers, and a bouncy castle for the kids. Well, they said, do it then. I will, I said, but then didn’t. Every time we met, though, I was reminded: when’s the bouncy castle party?
“But isn’t that self-promotion?”, said with a disgusted face. Or, equally disgusted: “Ugh, that’s bragging. Narcissistic. I don’t want to do that.” Or, frustrated: “Can’t I just do good work?” Whenever I hear one of these, I want to quote or, better yet, link to a snippet of an episode of
A few days ago, I came across this tweet from antirez, author of Redis: A soccer player can have a great idea of the game tactic and strategy, the sense of her/his buddies in the field of game, but anyway to be able to kick the ball well is absolutely required. It’s the same for programmers: I’m proud to be a coder.
This week I found myself digging through the code of c4, an implementation of C “in four functions”, by Robert Swierczek. I remember coming across c4 when it was released ten years ago. It got me excited: hey, C in four functions, that means it’s easy to understand right?
My favorite teacher wasn’t a very popular guy. He was confident, had strong opinions, and didn’t exactly teach like the other teachers. He was our history & sociology teacher in 12th and 13th grade and he made us summarize. He made us summarize everything. Through summaries, he taught.
Last week I got a new monitor, after my old one has shown worse and worse signs of what looked like burn-ins. The new monitor allowed me to get rid of two (!) cables in my setup, which pleased me quite a bit. And since there are people reading this whose eyebrows went up at the “two cables”, I thought I’d use this as an occasion to write about
This week, we’re back the original idea behind this newsletter – a newsletter that’s informal and “what I’d send you if you were to ask me what’s on my mind this week.” On my mind this week: the sea. It started last weekend when I read William Langewiesche
Whenever I talk with programmer friends about Apple I try to sneak the following story in. Usually I start with “did you that Apple…?” and end by leaning back in the chair, my index finger pointing at the table, and me saying “… now that’s engineering.”
After around 20 years of using Vim, in December last year I switched to Zed as my main editor. Since some friends have asked me about the switch — “Now that you work at Zed, are you using Zed instead of Vim?” — I thought I’d write about it. You now know that I did switch, yes, so what’s left to talk about is the Why.
In my neighbor’s garden stand two birches, tall and elegant, making pleasant sounds in the wind. Right next to them is an apple tree on which sometimes a green woodpecker tock-tocks. To its left: a cherry tree that’s still impressively large even though they cut it down a few weeks back. Peeking over the fence of my other neighbor’s garden is a...
Here’s what I consider to be the basics. I call them that not because they’re easy, but because they’re fundamental. The foundation on which your advanced skills and expertise rest. Multipliers and nullifiers, makers and breakers, of everything you do.
In admiration of some of the best programmers I've worked with
In my first week at Zed it took until the third day for someone to hop on a video call with me. The second video call happened in the week after that. Since then — I’ve just completed four weeks — I’ve only had two other video calls, both of which were
When we were 16 years old my friend and I spray-painted our keyboards in camouflage colors. We had just seen Hackers, wanted to copy what we saw, and – yes, 16 years old – didn’t think much further than (1) get spray paint (2) spray-paint the keyboard. Only after the paint dried did we realise we can’t read the letters on the keys anymore and,...
On pineapple, tests, opinions & taste, and other things
Have you noticed that the newest versions of Chrome on macOS show how much memory a tab is using? I don’t mean something in the developer tools, or an internal process manager. No, you now only have to hover your cursor over a tab and Chrome tells you: this one uses 60MB, that one 200MB, the one at the end uses 400MB.
This is my last week at Sourcegraph. Today’s my last day. At 6pm my computer will be wiped cleaned and 4.5 years come to end. 4.5 years so dense that at other companies the clock would probably show 8, or 10 years. Why am I leaving? Over the past few months I realised that there’s still many, many things I want to learn as an engineer. So many...
I told you before that I could write more about The Bear’s S2E7. Here we are. I came across this clip from that episode this week and decided now’s the time. The scene is a dialogue between Ritchie, who works in a high-class restaurant for the first time, and Garrett, who’s worked there for a while and oversees Ritchie’s work:
The first time I came across the term pathological system I had to look up what it means. The definition I found was similar to this: pathological system: exhibits extreme, abnormal, or self-destructive behaviors Second time I came across it was in Bryan Cantrill’s
There’s a bit in Louis CK’s Live at the Comedy Store that I’ve been thinking about ever since I first saw it in 2015. It’s about someone saying they’re “not an asshole” (yes, it gained another layer of meaning after the misconduct revelations in 2017) and ends with Louis CK saying:
Last weekend I watched this video of Andreas Kling prototyping a JIT compiler for his Ladybird browser: It’s a very interesting video, for two reasons. One: if you’re interested in how bytecode VMs and JIT compilers work, it’s all in there, explained step by step. A goldmine, really. If I had had a video like that 6-7 years ago I might not have...
Here’s a very interesting bit of Zig that I came across again this week: @fieldParentPtr. It’s a prism through which you can see a lot of Zig’s character. That’s not what the official docs say, of course. They say that @fieldParentPtr: Given a pointer to a field, returns the base pointer of a struct.
I love debugging – clear goal, possibly interesting technical surprises, total freedom in approach, and coloring-in-the-lines creativity required. Sometimes when I get assigned a bug I even feel something that could be described as glee. But of course it’s not all love & glee in debugging. Emotions that are quite different can be involved.
This was my week off and I wanted to learn some more Zig. What I did: dug into the Zig compiler, wrote toy programs to replicate parts of it, tried to understand the Zig way of doing things. I’ve also spent two days hacking a GTK feature into Ghostty
Rules are an endless source of fascination and dread to me. How rules are created and why, how rules accumulate, how a set of rules shapes a system – it’s very, very interesting. Let me give you an example. A couple years ago my wife and I were chatting with our tax advisor and he went off on a little rant about how the tax rulebook in Germany...
Every time I’m in the gym I use the same app on my phone: KeyLifts. For 3 years now, four to five times a week, the same app. I love it. I pay for the yearly subscription and the app is a huge if not the only reason why I’ve been running the same workout program (5/3/1) for years now. Whenever someone asks me about working out, I tell them about...
What if software was like science in the early 20th century?
This week I was talking with a teammate about a programming language he’s exploring. He said: “I’m just not sure whether I like it or not” Huh, I thought. Right, you think you have to like something or not. Easy mistake to make. The internet’s opinion-density is famously high. It’s natural to think that having and sharing opinions is required.