Weeknotes 2025 W08: Great progress

February 17​–​23, 2025
 
1400 words

Quick notes:


Shower thoughts:


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:


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:

Silly links:

Tech links:


  1. 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. ↩︎

  2. Blue Velvet, written and directed by David Lynch (De Laurentiis Entertainment Group (DEG), 1986). ↩︎

  3. Brandon Sanderson, The Final Empire: Mistborn Book One (London: Gollancz, 2009). ↩︎

  4. Philip K. Dick, The man in the high castle (New York: Putnam, 1962). ↩︎

  5. The Witcher 3: Wild Hunt (CD Projekt Red, 2015), published by CD Projekt. ↩︎

You can reply to this weeknotes entry by email. I’d love to hear your thoughts!
If you like what I write, stick your email address below and subscribe. I send out my weeknotes every Sunday morning. Alternatively, subscribe to the web feed.