Weeknotes 2025 W08: Great progress
Quick notes:
- It is voting day today in Germany. I can’t vote, and it sucks.
Shower thoughts:
-
I might not be great at making cocktails, but at least I always get mixed results.
-
Earth is the biggest planet in the entire world.
My quarterly theme, Season of Writing, is not going so well. I suppose I figured out that it wasn’t quite the theme that this quarter deserved.
I suppose TomatenMark tangentially is related, but creating tooling for writing is not itself writing. And I really had hoped to do more fiction writing.
I’ve made great progress in my acting skills. Even just this year, I have had several breakthroughs. I’ve got an excellent acting teacher whose notes I take seriously because they genuinely help me get better at my craft.
The feedback that I have received from my peers and my acting teacher has been tremendously encouraging. I might be a much better actor than I have given myself credit for.
I’ve still got a long way to go, and it is still challenging work. It takes a great deal of emotional, intellectual, and physical energy. There are times where I genuinely don’t feel like it, but the payoff is always worth it.
It also occasionally still feels quite strange to step into the shoes of a character who is entirely unlike me; truly becoming them. It’s such an odd sensation.
There is still the question: what do I do with these skills? There’s really not a lot going on in Berlin — at least when it comes to English-language theatre or film, and I’m not at all interested in German-language stuff. Berlin is likely a dead end.
I am making decent process with the operator precedence parsing article. I am generalizing the article to parsing expressions in general; the approach I’m outlining is nicely flexible, so it makes sense to expand the scope a little.
It is so much work, though. And I was thinking of writing an entire book. What was I even thinking? Not that it is unrealistic to write that book, but I don’t think I was quite realistic about how much effort would have to go into it.
For the demo parser I’m writing, I had the thought of using some of the techniques in NASA’s The Power of 10: Rules for Developing Safety-Critical Code; specifically, I was interested in eliminating recursion and using only fixed-bound loops.
My reasoning: I find it too easy to end up with infinite loops by accident, and I find it too easy to overflow the stack with recursion. Both have happened to me in the last two weeks.
But ugh, this is hard! Eliminating boundless loops is sometimes unavoidable, and recursion is often just too elegant to remove.
In any case, I am (right now) mostly interested in NASA’s rules as a curiosity. I don’t write safety-critical code, after all. I am interested in these rules because they call for such a different way of writing software than I am used to.
The Ruby convention for function and method calls is using a hash prefix. For example, #print
is how people refer to the method named “print.”
I think this notation is nonsense. In my operator precedence parsing article, I’ve opted for a different syntax: print()
rather than #print
. Sacrilege!
The hash prefix notation is (as far as I can tell) inherited from Smalltalk. There, this notation is the syntax for a symbol (e.g. #foo
in Smalltalk is :foo
in Ruby). And so, in Smalltalk, the hash notation actually makes some sense.
In Ruby? Not so much. #
is the syntax for a comment, even.1
The #
notation also makes it hard to list the parameters of a method. For example, #parse
is not nearly as clear as parse(tokens)
.
And so, I think that in my own writing going forward, I’ll be using parenthesis notation over hash notation: I’ll use parse(tokens)
rather than #parse
.
Entertainment:
-
Rewatching Blue Velvet2 made me how good this film truly is. The opening scene alone is already excellent.
-
I dropped The Final Empire.3 It’s genuinely not my thing.
-
I am halfway through The Man in the High Castle4 and enjoying it greatly. Philip K Dick is a great writer and I’ve only recently started going through his remarkable body of work.
-
The Blood And Wine expansion of The Witcher 35 is great, but I think Hearts Of Stone is deeply underrated. Smaller in scope, but tightly written, human, emotional, raw — and weird and creepy.
My game keeps getting corrupted on every run, though. Very odd.
Also unfortunately is that my playthrough of the Blood And Wine DLC ended in one of the bad endings, so now I’m thinking about loading an older save and going for the better ending instead. It’s easy to mess up; the best ending is surprisingly hard to get!
-
For some reason, only this week I discovered Autechre’s Envane. What an excellent EP (with excellent album artwork by The Designers Republic).
Tweets and toots. First is Reginald Braithwaite on the trolley problem:
The “Trolley Problem” is like the Kobayashi Maru: It isn’t actually a legitimate moral paradox, it is a contrivance designed to teach us learned helplessness.
In real life, whenever I see what is presented as a trolley problem, I see someone carefully arranging the propaganda so that there appear to be only two options, both bad for me and good for them.
If I have to pull a lever, it will be on a guillotine for whomever set up the trolley.
Next, Dr Matthew Russell on efficiency versus effective:
An engineer once explained to me that an efficient system always has need available when a resource becomes free, and an effective system always has a resource available when a need arises. Mind was blown.
I think we’re optimizing for efficiency far too often.
Lastly, Uli Kusterer shares a little-known Finder trick:
You can right-click rename multiple files and e.g. replace parts of the names with other text, or even do more complex changes.
Mind blown! How was I not aware of this?
Links:
-
Martin Pilkington, RIP (Michael Tsai): I mentioning Pilky’s passing last week. He passed away far too young. Again: fuck cancer.
-
Important Things Are Never Just Done (Christian Tietze). Quote: “I cannot express my values except through action.”
-
Star Trek + Design: This is amazing!
-
Schon wieder (in German): Oof.
Silly links:
-
For No Reason in Particular Here’s a Bunch of Games Where You Kill Nazis (Matt Fresh for Hard Drive): Don’t limit yourself to just Wolfenstein!
Tech links:
-
Algorithms are breaking how we think (Technology Connections): Yes!
-
It Was The Programming Language Of The Future – So Why Is Nobody Using It? (Huw Collingbourne): Interesting! I had not heard of Actor before, but it looks like a programming language and environment that I’d quite like. Or would have liked — if today were decades ago.
-
European Alternatives — European alternatives for digital products: So much tech infrastructure is US-based (either compute and store is hosted there, or the companies are based there). I’d be much more comfortable having the services I use be hosted in Europe instead.
-
I suppose it would be possible to use colon notation in writing to refer to functions and methods — e.g.
:print
or:select
— but that’d be so unconventional to be quite confusing. ↩︎ -
Blue Velvet, written and directed by David Lynch (De Laurentiis Entertainment Group (DEG), 1986). ↩︎
-
Brandon Sanderson, The Final Empire: Mistborn Book One (London: Gollancz, 2009). ↩︎
-
Philip K. Dick, The man in the high castle (New York: Putnam, 1962). ↩︎
-
The Witcher 3: Wild Hunt (CD Projekt Red, 2015), published by CD Projekt. ↩︎