Thorsten Ball

registerspill.thorstenball.com · Personal blog · on HN since 2014

Thorsten Ball, a programmer who worked on the Zed editor, writes about editors, Git, shells, compilers, and software performance.

What HN saysThe one given comment only adds a side note about POSIX job control and spawning child processes, so HN's opinion of the blog is unclear.
88HN people shared it
14linked it in comments
181stories submitted
4.4Kstory points
4 months agolast shared
2014people per year2026

Most-shared posts

  1. 1
    Unicorn Unix Magic Tricks
    8 people · 121 points · first shared 2014 · 11 comments on HN
  2. 2
    From Vim to Zed
    6 people · 26 points · first shared 2024 · 1 comments on HN
  3. 3
    How can you not be romantic about programming? (2020)
    5 people · 783 points · first shared 2020 · 357 comments on HN
  4. 4
    Professional Programming: The First 10 Years
    5 people · 192 points · first shared 2022 · 33 comments on HN
  5. 5
    Exploring the C4 Compiler?
    5 people · 23 points · first shared 2024 · 1 comments on HN
  6. 6
    Skin-Shedding Code (2024)
    5 people · 20 points · first shared 2024 · 4 comments on HN
  7. 7
    The Tools I Use to Write Books
    4 people · 644 points · first shared 2018 · 97 comments on HN
  8. 8
    How I Use Git
    4 people · 139 points · first shared 2024 · 29 comments on HN
  9. 9
    How fast is your shell?
    4 people · 11 points · first shared 2024 · 3 comments on HN
  10. 10
    Allergic to Waiting
    4 people · 6 points · first shared 2023 · discussion on HN
  11. 11
    Why I wrote a book about interpreters
    3 people · 230 points · first shared 2016 · 69 comments on HN
  12. 12
    Zed Editor: All Occurrences Search from 1s to 4ms
    3 people · 145 points · first shared 2024 · 38 comments on HN
  13. 13
    Apple's APFS Migration: A Feat of Engineering
    3 people · 110 points · first shared 2024 · 53 comments on HN
  14. 14
    Did you know about Instruments?
    3 people · 16 points · first shared 2024 · discussion on HN
  15. 15
    They All Use It
    3 people · 13 points · first shared 2024 · 8 comments on HN

What HN people wrote when they linked it

chin7an · 2024-07-13
I’ve not read this book, so can’t offer a comparison but Thorsten Ball’s two books [1] are great. The dragon book was my textbook in college, brings back memories, might be outdated but some concepts should still be useful. [1] https://thorstenball.com/books/
misternugget · 2024-06-24
One mini-feature I really like: authors highlighting their own favorite or popular articles. I think I saw it first on Julia Evans' blog (https://jvns.ca/categories/favorite/). I also added it to mine (https://thorstenball.com/blog/) and found the exercise of going through the posts and tagging them very enjoyable.
yesenadam · 2021-02-21
I was reading on Thorsten Ball excellent blog https://thorstenball.com/blog/ and found he also gives great talks. This one explains unix ports, pipes, fork, processes etc very clearly and simply, and demonstrates their use outside shell scripts in ruby. (I hardly know ruby, but that didn't matter at all.)
altdatathrow · 2020-09-21
Thorsten Ball's writeup [1] on the architecture behind Unicorn is one of the single most informative pieces I've ever read about fork-based multiprocessing, signals, and pipe-based ipc. The information there can be applied to any platform and, imo, is a must-read for anyone operating in a *nix environment. [1] https://thorstenball.com/blog/2014/11/20/unicorn-unix-magic-tricks/
chubot · 2026-03-17
FWIW here is another piece of trivia about job control: the API means you can't spawn a child process "safely" in POSIX -- you have to trust that that the executable you're spawning is well-behaved (or use more advanced Linux process isolation) In this case it was the Zed editor spawning the zsh shell: How to Lose Control of your Shell - https://registerspill.thorstenball.com/p/how-to-lose-control-of-your-s… zsh has a bug where it doesn't do the job control cleanup properly in some cases -- when fork-exec() optimizations happen. This can mess up the calling process. For example, here you could no longer kill Zed by hitting Ctrl-C, even after zsh is done. My comment: https://lobste.rs/s/hru0ib/how_lose_control_your_shell#c_dfluhm
pjmlp · 2023-03-10
My dear HN newbie, I have used more UNIXes in my life that you probably know about. Some education for you about fork(), https://dl.acm.org/doi/10.1145/3317550.3321435 https://thorstenball.com/blog/2014/10/13/why-threads-cant-fork/
childintime · 2023-01-20
Most people are actually 10x programmers, 10x before they get it right. If they get there. Then there are the 1x, first-time-right, fearless programmers... Fearless as in https://thorstenball.com/blog/2022/05/17/professional-programming-the-…
xnacly · 2022-05-18
I find the flowchart visualizing the pipeline very intriguing, can someone link me a tool I can use to create similar charts? For reference: https://thorstenball.com/images/book_tool_pipeline.svg
dcchambers · 2021-05-27
Miscellaneous technical stuff: - https://danluu.com/ - https://blog.jessfraz.com/ - https://adamwathan.me/ - https://jvns.ca/ - https://rachelbythebay.com/w/ - https://dankim.org/ - https://mtlynch.io/ - https://rgz.ee/ - https://markdotto.com/ - https://thorstenball.com/ - https://sarahdrasnerdesign.com/writing/ - https://lukesmith.xyz/ - Quirky minimalist linux & free software stuff. I don't agree with many of his opinions but his rants are entertaining + offer a refreshing view on certain things. Non-technical: - https://bernoid.com/
emmanueloga_ · 2020-08-31
Maybe check this bibliography [1] of "Resources for Amateur Compiler Writers"... although I'm not sure what's the "Amateur" part of it... it lists several text books and papers that would take anyone a few years to work through :-/ https://thorstenball.com/books/ seems like a good star, and if you don't know Go it shouldn't take too long to get acquainted with it. 1: http://c9x.me/compile/bib/
meritt · 2020-01-22
> to handle the same number of requests/sec you need much more workers, which has a lot of overhead When doing multiprocessing, it's advisable to fork() instead of creating fresh processes (or launching them in containers etc). As long as you preload the necessary libraries/modules in the parent process before the fork, children will reference the same memory in a copy-on-write fashion. It keeps overhead extremely low. This [1] article is for the Unicorn (ruby) webserver but the way it explains forking, signals, and pipes for inter-process control it's absolutely illuminating. These techniques are applicable to any unix-based applications, including php daemons. [1] https://thorstenball.com/blog/2014/11/20/unicorn-unix-magic-tricks/
revicon · 2020-01-12
Reminds me of this author’s post on here a while back on the command line tools he used to write books... https://thorstenball.com/blog/2018/09/04/the-tools-i-use-to-write-book…
ratboy666 · 2014-11-21
http://thorstenball.com/blog/2014/11/20/unicorn-unix-magic-tricks/ is also a current story on HN. Just an example of how powerful that simple 70's Unix is. Allows features that appear "magical" to thorsten, anyway. Windows? Wasn't really even an option... until 20 years later. And, of course, Unix really isn't that good, either. But, before you ignore it, please come to feature parity, at least.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close