Thorsten Ball Profile Banner
Thorsten Ball Profile
Thorsten Ball

@thorstenball

Followers
25,137
Following
782
Media
2,722
Statuses
18,924

Author of and . Working @zeddotdev . Ex- @sourcegraph . Programming where the rubber hits the road.

Großwallstdt, Bavaria, Germany
Joined November 2011
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@thorstenball
Thorsten Ball
6 years
My second book "Writing A Compiler In Go" is now available! You can buy it here as a single eBook or in a bundle with its predecessor "Writing An Interpreter In Go": #golang
38
208
850
@thorstenball
Thorsten Ball
5 months
Goosebumps.
Tweet media one
64
304
6K
@thorstenball
Thorsten Ball
11 months
Man, using the internet on my phone has become unbearable. l feel anxious when I know I have to google something and then visit 3-4 pages: cookie banners that fill the whole screen and show up after 1-2s delay, newsletter popups, back-button rarely works, re-renders, …
140
306
4K
@thorstenball
Thorsten Ball
3 years
This codebase is 20% drawings.
Tweet media one
61
221
3K
@thorstenball
Thorsten Ball
18 days
This is going to sound very anti-intellectual, but has anyone in the history of documentation ever said "fuck yes, thanks for that diagram, I prefer that over just 30 lines of examples"?
Tweet media one
334
69
2K
@thorstenball
Thorsten Ball
6 months
A Unix Story, in 7 acts:
Tweet media one
47
191
2K
@thorstenball
Thorsten Ball
3 months
Aww man what a thing to say
@nexxeln
nexxel
3 months
these books changed my life
Tweet media one
Tweet media two
43
121
3K
16
44
2K
@thorstenball
Thorsten Ball
2 months
Few weeks ago, while adding buffer restoration to Zed, I came across this comment. I've been thinking about it every day and every day the same thought pops into my head. Why... why don't you save the file?
Tweet media one
116
49
2K
@thorstenball
Thorsten Ball
10 months
I'm fascinated by Chrome's decision to surface tab memory usage like this in the UI. Is it an attempt to get users to understand that it's not Chrome using memory, but individual pages? It's quite the odd choice to surface such a, uhm, mechanical detail to every user, no?
Tweet media one
153
49
2K
@thorstenball
Thorsten Ball
7 months
Ah, yes, a solid 1.5hrs of work
Tweet media one
30
45
2K
@thorstenball
Thorsten Ball
1 year
Google Docs now has variables? Wow Does someone have an explanation for what happened with Google Docs? For years and years it seemed stagnant and since, what, last year, there's all these new, very nice features popping up on a regular basis. I need the inside story here.
55
146
1K
@thorstenball
Thorsten Ball
8 months
I wrote about that 1s-to-4ms optimization we did in Zed again. I just can't shake those 4ms out of my head.
Tweet media one
27
56
1K
@thorstenball
Thorsten Ball
7 years
Have to say, this amount of 🔥 kinda caught me off guard when I opened page 299.
Tweet media one
13
490
1K
@thorstenball
Thorsten Ball
2 months
One of the highest highs in programming: replacing a 3rd-party dependency with 20 lines of dumb, boring code.
9
53
1K
@thorstenball
Thorsten Ball
6 months
Wrote about what Apple pulled off in 2017.
Tweet media one
19
59
1K
@thorstenball
Thorsten Ball
2 years
love it
Tweet media one
3
66
935
@thorstenball
Thorsten Ball
26 days
The book is 8 years old and I still get emails like this. Man....
Tweet media one
32
18
927
@thorstenball
Thorsten Ball
8 months
This was a very cool morning. Comment-driven development. Someone on HN said that Sublime's find-all-matches is fast and Zed's is slow. @as__cii and I then spent 2hrs & optimized the code. Got it down from 1.07s to 4ms.
Tweet media one
22
17
918
@thorstenball
Thorsten Ball
24 days
Looking forward to giving 20min explanations to my non-tech friends about the shirt I'm wearing
Tweet media one
11
35
920
@thorstenball
Thorsten Ball
11 months
4.5yrs of working with Americans and still forget that “how are you?” isn’t an invitation to lean back and start with “ah, well, you know, so yesterday”
55
20
815
@thorstenball
Thorsten Ball
5 months
You keep asking us: Linux when? Here's our first answer.
Tweet media one
29
44
732
@thorstenball
Thorsten Ball
5 years
In order to finally get into the habit of reading technical papers, I've set myself the goal to read 50 of them in 2020. I'm at 14/50 right now and I feel like a kid in a candy store that it didn't realize existed. What are your favorite papers?
Tweet media one
28
81
690
@thorstenball
Thorsten Ball
8 days
Book I'd pay $100 for: The Technical, Oral History of WhatsApp, 2009-2014. Going from zero to ~50 employees, a distributed system with Erlang that serves 500 million users, and a $20 billion acquisition.
8
33
730
@thorstenball
Thorsten Ball
1 year
"just GeoGuessed a terminal screen"
Tweet media one
5
39
647
@thorstenball
Thorsten Ball
11 months
Not even halfway through, but I paused to tell you: this video by @awesomekling in which he builds a JIT compiler is a gold mine. From explanations, to the code, to how he uses his tools, to how fast he uses his tools, …
7
71
575
@thorstenball
Thorsten Ball
2 years
Thanks @danieldides for changing my life. Tools -> Preferences -> Automatically detect Markdown
17
115
559
@thorstenball
Thorsten Ball
10 months
Some personal news: this is my last week at Sourcegraph. • 4.5yrs • 1604 PRs • 4 teams • joined at ~20 people & saw us grow to ~300 • meetups in SF, San Diego, Berlin, Mexico, Amsterdam, Munich, ... • reported to EMs, Heads of Eng, CEO Now it's time for something new 🙂
22
8
550
@thorstenball
Thorsten Ball
2 years
Look at these beauties!
Tweet media one
12
34
498
@thorstenball
Thorsten Ball
3 months
It's the Year of Zed on Linux on the Desktop!
@zeddotdev
Zed
3 months
Linux when? Linux now. 🎉🐧 For the last 6 months, our team and our open source community have been working hard to bring Zed to Linux. As of today, we've released our first, official, stable build of Zed on Linux!
Tweet media one
274
914
6K
16
17
477
@thorstenball
Thorsten Ball
11 months
I wrote about that video of @awesomekling writing a JIT compiler.
Tweet media one
11
30
504
@thorstenball
Thorsten Ball
5 months
@itsmelodewyk Right now I only use crossed-fingers and pee-in-pants
2
6
486
@thorstenball
Thorsten Ball
11 months
Cookie banners, I'm telling you, that's the hill I'm willing to die on. It's one of the dumbest, ridiculous, most annoying technological developments of my life. Never would I have suspected that we could come this far. "Well, someone reasonable will surely" -- nope, here we
16
27
489
@thorstenball
Thorsten Ball
9 months
As of a few minutes ago: Zed is open source! 🥳
@zeddotdev
Zed
9 months
Zed is now open source! Our mission is to revolutionize developer collaboration, building the world's best code editor in the process. After working together in Zed as a small team, it's time to scale up to transform Zed into a collaboration platform.
Tweet media one
134
543
3K
36
27
450
@thorstenball
Thorsten Ball
2 years
Tweet media one
20
6
470
@thorstenball
Thorsten Ball
10 months
I published 7 years ago and I got this email yesterday. Made my day :)
Tweet media one
7
16
473
@thorstenball
Thorsten Ball
7 months
This book will turn 8 this year. 8! And it still seems to bring people joy :)
@soyjuanarbol
Juan José
7 months
This is actually A REALLY GOOD BOOK, thanks @thorstenball
Tweet media one
4
2
54
20
8
454
@thorstenball
Thorsten Ball
2 years
I wrote a blog post about the past 10 years. What I learned, what I unlearned, what I changed my mind on, what I value and what I now ignore - after 10 years of working as a programmer.
Tweet media one
18
104
449
@thorstenball
Thorsten Ball
5 months
dude
Tweet media one
@AvimanyuRoy3
Deprecated
5 months
@thorstenball its baked into macOS as well
1
0
47
15
18
433
@thorstenball
Thorsten Ball
6 months
If you tried Zed before but then stopped using it, what made you stop? Hit me with everything you got.
644
13
428
@thorstenball
Thorsten Ball
2 months
I *knew* that there's an overlap between unsaved-files-hoarders and tab-hoarders, I *knew* it
9
1
426
@thorstenball
Thorsten Ball
10 months
Reminder: Barrier exists and it's awesome.
16
36
423
@thorstenball
Thorsten Ball
2 years
While reading I started to think: which books have influenced me the most as a programmer? Then: wait, it’s not just books, it’s also screencasts and blogs! This is what I came up with so far. It’s not even close. So many blog posts, comments, tweets, podcasts, talks, …
Tweet media one
Tweet media two
13
36
419
@thorstenball
Thorsten Ball
2 months
(Friends, to be clear: I'm not making fun of anyone! I'm just wondering: why not save the file *once* in 9 years?)
9
1
422
@thorstenball
Thorsten Ball
4 months
Wrote about the mistake of thinking "just doing good work" is enough.
Tweet media one
9
44
420
@thorstenball
Thorsten Ball
5 months
One of the most unteachable, you-have-to-experience-it-yourself lessons: You can just delete your backlog or your TODO list and nothing bad will happen. You won't forget the important things. They will resurface.
20
31
416
@thorstenball
Thorsten Ball
3 months
I finally wrote about Instruments, one of the most impressive profiling tools I used. Read it here:
Tweet media one
11
44
412
@thorstenball
Thorsten Ball
1 month
Get into font rendering and this will be your Sistine Chapel
13
8
416
@thorstenball
Thorsten Ball
10 months
For the record: I like it. I like the hum of the machine & having indicators whether it's working well or whether there's noise coming from the engine. I'd also think little LEDs on each tab that blink when a network request is sent would be nice.
@rsms
Rasmus Andersson
10 months
Love this way of thinking about the cues older computer (hardware) gave us. What synthetic cues could we create today to help build intuition about what a computer is doing? (E.g. a grinding noise from context switching, like an electron app brutalizing your laptop battery.)
22
12
221
9
6
397
@thorstenball
Thorsten Ball
7 months
Wrote about the complicated feelings I developed for testing recently. This has the word confession in it.
Tweet media one
31
40
393
@thorstenball
Thorsten Ball
4 months
Just figured out that btop allows you to click on a process and see its details. It already was the coolest application. Now it's untouchable.
15
21
385
@thorstenball
Thorsten Ball
5 months
@oldmanuk And since it's coming from @Tailscale you know that it's not a false flex, this is a real scar
1
0
376
@thorstenball
Thorsten Ball
6 years
The sequel to my book "Writing An Interpreter In Go" will be released this summer. It's called "Writing A Compiler In Go" and nearly done. As of today, you can find out more about it here and sign up to get notified when it's available: #golang
17
94
366
@thorstenball
Thorsten Ball
2 years
I was preparing for our huge livestream at work tomorrow, playing around with lights and microphone. And I might have accidentally created a "Vim tips from the professional for the professional" masterclass video series?
23
27
372
@thorstenball
Thorsten Ball
6 months
Man, I don't know, I think async Rust is cool.
Tweet media one
33
5
369
@thorstenball
Thorsten Ball
11 months
Being fast is underrated, I'm telling you. People make all kinds of excuses for why they aren't fast and don't *need* to be and then they look at people that ship huge projects in a year and go "how?"
Tweet media one
11
42
370
@thorstenball
Thorsten Ball
7 months
Yesterday I wrote a parser for `git blame --incremental`. Took 22ms to parse 16k lines. Seems slow? Couldn't wrap my head around it. Even the near-noop version took 18ms. In bed it hit me: didn't use --release! Woke up, ran to computer, tried in release mode: 2ms. Fuck yes.
9
6
370
@thorstenball
Thorsten Ball
9 days
Wrote about something I learned at Zed: shredding.
Tweet media one
23
22
382
@thorstenball
Thorsten Ball
6 months
Imagine if every team had someone who says "hmm, no, I think we can get this done today" on a regular basis. The effect is incredible.
13
20
357
@thorstenball
Thorsten Ball
6 months
Just merged inline-git-blame into main. Also used the occasion to improve the tooltips a lot: they're now syntax-highlighted, scrollable, clickable.
26
13
357
@thorstenball
Thorsten Ball
6 months
Wrote about switching from Vim to Zed.
Tweet media one
34
18
348
@thorstenball
Thorsten Ball
4 years
I'm often watching concert videos on YouTube. Last week I noticed that, in Firefox, this routinely uses ~90% CPU. So I did something I haven't done for 10 years: download video, watch in VLC. ~8% CPU. Heretic thought: was moving everything to the browser a mistake?
31
36
344
@thorstenball
Thorsten Ball
5 months
Woke up and decided to add support for Go.
@zeddotdev
Zed
5 months
Ever wanted to execute code from within Zed? That's now possible! With Tasks you can run tests, compilers, linters, shell scripts, single functions — anything, really! — all from within Zed. Read the new Zed Decoded post to get the most out of Tasks:
8
19
206
20
8
343
@thorstenball
Thorsten Ball
4 months
My experience with Passkeys so far: 1. Showed up one day 2. No clue what they are, had to read up 3. Sometimes I seem to use them, sometimes I don't, depending on popup 4. Sometimes I used 1password, sometimes apple, sometimes Chrome? 5. I have zero clue which passkeys are where
16
10
340
@thorstenball
Thorsten Ball
2 years
me every time someone complains about tech debt in a meeting
6
36
321
@thorstenball
Thorsten Ball
6 months
me, years ago: a string? you want a string? sure, why not. fuck it, have two. it's a twofer. i got strings coming out my ears. me, now: a string? a whole string? on the heap? who are you? isn't a reference enough? what do you even want with a string?
12
10
316
@thorstenball
Thorsten Ball
10 months
So is the myth that every pixel you see on Amazon has been optimized and A/B tested for thousands of lifetimes before you laid your eyes on it — is that actually true? Because, man, I have a hard time accepting that *this* is the best way to present the add-to-wishlist button.
Tweet media one
63
5
307
@thorstenball
Thorsten Ball
7 months
Wrote about my multi-week investigation into why I suddenly couldn't use ctrl-c anymore. Yes, it's longer than usual. But hey: Rust, syscalls, shells, Unix processes — all in there.
Tweet media one
7
16
312
@thorstenball
Thorsten Ball
3 months
Just merged my PR to restore unsaved buffers on restart in Zed 🥳 No more "You have unsaved changes" when quitting Zed. It'll be in the Preview release next week. Next step: restore project-less windows on restart.
12
4
309
@thorstenball
Thorsten Ball
10 months
Is this one engineer's or PM's "fuck 'em" project?
1
0
308
@thorstenball
Thorsten Ball
10 months
Setting up a Windows VM and while I'm happy this works I also can't believe it does.
Tweet media one
5
29
305
@thorstenball
Thorsten Ball
7 months
Think I might've just unlocked a new level of Rust understanding. Moved ~180 lines of code around, changing how I render blame annotations, moving everything from paint to layout. Fixed all type errors, reorganized code, etc. etc. Ran it and it worked on first try.
Tweet media one
14
4
300
@thorstenball
Thorsten Ball
3 years
Look at these beauties! The paper-folding monkey is such an insightful idea. I wish I would've come up with that. (Chinese translations of books will be published this year)
Tweet media one
10
26
298
@thorstenball
Thorsten Ball
8 months
Last week I sat down again with Zed's three co-founders and asked them a lot of questions: Why Rust? What problems did you run into with Atom? Why own the full tech stack? Video and transcript are live now.
Tweet media one
7
9
299
@thorstenball
Thorsten Ball
11 months
I think it‘s 50% of my ChatGPT use: ask it simple questions I know it can answer („translate X“, „when was …“, …) because I dread using the web
8
6
286
@thorstenball
Thorsten Ball
2 years
Again and again I come to the same conclusion: if you want to get better at X, you have to do X a lot. No shortcut, no trick, no cheat. Sure, you can optimize how you do X, and yes, what exactly falls under "doing X" varies, but you still have to put the work in.
7
45
289
@thorstenball
Thorsten Ball
6 months
Sometimes I remember that "Scaled Agile For Enterprises (SAFe)" exists and I google the diagram and then I just marvel that this exists and that people look at this diagram and think "yup let's do it" and then they spend years (!) trying to implement it. And then I stop myself.
Tweet media one
24
20
287
@thorstenball
Thorsten Ball
3 years
The Go compiler allows you to dump the internal representation of a function by compiling with GOSSAFUNC=myFunctionName go build The word "dump" doesn't do it justice. It's so good. I'm so jealous. I want this in my compiler.
5
35
289
@thorstenball
Thorsten Ball
2 years
Not my usual thing on here, but I‘ve been working towards this for 6 years now: ✅ 200kg (440lbs) Deadlift It‘s not a lot for 23 year old powerlifters, but for someone who hasn‘t done a single workout for 29 years of his life: pretty pumped about it.
Tweet media one
22
0
276
@thorstenball
Thorsten Ball
2 years
Every time I’m at the dentist I’m fascinated by the software they use (there’s a screen next to the chair). Today I asked her about it. Found screenshots online. Look at that. Straight from a parallel world where no UI paradigm we know exists.
Tweet media one
30
15
279
@thorstenball
Thorsten Ball
7 months
Wrote about what I consider to be the basics.
Tweet media one
8
32
272
@thorstenball
Thorsten Ball
2 years
Reminder: Barrier is free and open source and… … indistinguishable from magic.
13
37
282
@thorstenball
Thorsten Ball
11 months
"Yeah, but the privacy!" - YES, sure, the privacy, the data, whatever, yes, I'm all for it. Because here's the thing: I can support what the banners/GDPR were trying to achieve AND at the same time think that the banners are the greatest capital-B Bullshit I've ever experienced.
7
10
272
@thorstenball
Thorsten Ball
3 years
Just found out that Unicode includes cute stick figures. Time to rewrite all progress bars and spinners
7
26
273
@thorstenball
Thorsten Ball
3 months
Back to drawing in comments again 😎
Tweet media one
11
3
269
@thorstenball
Thorsten Ball
11 months
Here. Trying to find a recipe and clicking on links. Yes, I HAVE all the blockers and cookie extensions and all of that. But it only kicks in after 3 seconds.
Tweet media one
Tweet media two
Tweet media three
Tweet media four
12
6
261
@thorstenball
Thorsten Ball
4 months
Cross-platform development, baby
Tweet media one
19
0
260
@thorstenball
Thorsten Ball
1 month
Up to 10x faster! I *had* to record a demo of the project search improvements we landed.
17
8
263
@thorstenball
Thorsten Ball
11 months
3 hours to code today. Sat down ready to finish a PR. Got *absolutely nowhere* due to a bug I can‘t figure out. Lesson learned: none.
12
3
255
@thorstenball
Thorsten Ball
7 months
I'm been reading the Async Rust book () and enjoying the sections about building an executor, timer future, etc. Any other great resources to deep-dive into async Rust and understand it from bottom up?
17
8
260
@thorstenball
Thorsten Ball
3 years
Ohhhh, shiny
Tweet media one
Tweet media two
7
61
258
@thorstenball
Thorsten Ball
2 months
HA! I got it! It's crisp! CRISP, BABY!
Tweet media one
5
3
250
@thorstenball
Thorsten Ball
8 months
Man, you can get a lot done if you just sit down for 3 hours and don't let yourself get distracted. Mind-blowing, actually.
5
4
253
@thorstenball
Thorsten Ball
3 years
Some personal news: I’m a father of two daughters now!
30
0
253
@thorstenball
Thorsten Ball
6 years
New edition! "Writing A Compiler In Go" is now available as a paperback! Get it here (where you can also buy the eBook): See more pretty pictures here: #golang
Tweet media one
6
77
247
@thorstenball
Thorsten Ball
5 months
Here it is: a new Zed Decoded post. It's about the two data structures at the heart of Zed: the Rope & the SumTree.
Tweet media one
8
26
251
@thorstenball
Thorsten Ball
6 months
C++ people pronounce "std" as "stood"?!
@Ramborambowski
Andrew Kaster
6 months
@murage_kibicho @thorstenball Stood-i-o all the way. Or stid-i-o. Just like stood string and stood vector in C++
2
1
17
80
4
245
@thorstenball
Thorsten Ball
2 years
Bookshelf is also great laptop shelf, it turns out
Tweet media one
11
12
245
@thorstenball
Thorsten Ball
10 months
I wrote about my last week at Sourcegraph. A collection of ancedotes.
Tweet media one
13
9
242
@thorstenball
Thorsten Ball
1 year
Made it to NixCon!
Tweet media one
5
3
238