Weeknotes 2022 W20: Birthday

May 16​–​22, 2022
900 words

I had my birthday on Thursday! I took the day off with the intention of spending it as quality me-time, and cycled a few hours around the North side of Berlin.

I also, by accident, found a World War II cemetery, the remains of a forced labor camp, a dilapidated bunker and another Soviet war memorial. Berlin can be intense. The Soviet war memorial had police presence near the entrance, and near the central monument I found a teddy bear wearing a blue flag with a yellow sunflower on it. Subtle!

Apart from that, my trip was very relaxing and very much what I was looking for. I treated myself to ice cream and a Rhabarberschorle (rhubarb spritzer) and spent quite some time in a large park under the bright blue sky and a hot sun. I could certainly do this more often.

Spending my birthday on my own time was a great choice.


The trip to Belgium with Justine got postponed from June to an unspecified future date. It felt stressful to make it work smoothly for both of us. We’ve not decided on a new date, but the trip will definitely be more enjoyable if we can be relaxed about it!


Gremlins:


I’ve made progress with my bytecode implementation of Lox (from the Crafting Interpreters book). It now has support for closures, though it has some bugs I need to fix still.

Last week, I wrote how I deliberately did not implement support for global variables. It turns out that this decision created a lot more work for my interpreter to be able to handle even simple programs. Take a look at this:

fun a() {
  print "hi";
}

fun b() {
  a();
}

b();

The body of function b accesses a. This would be straightforward if a were a global variable — but it is not. This piece of code only started working after I added in support for closures, which was far from straightforward.

It’s all good fun though, and I’m learning a lot in building this VM. Language implementation is a surprising amount of fun.


My implementing equality in Ruby article is going to be published coming week. Probably. (You can already read the draft if you wish.)


The more I think about it, the more I believe that Ruby and static typing don’t go well together. I appreciate the effort that has gone into Sorbet, but I also believe that Sorbet is never going to get to a point where it feels at home in Ruby land.

It’s quite different from how I feel about Type­Script: I find it much more difficult to write JavaScript than Type­Script, and in Type­Script I feel much more at ease. I suspect that this is mostly because JavaScript is such a broken language that it needs the support of Type­Script to feel sane.


I’ve finished Better Call Saul season 1, and I’m now into season 2. Never before have I empathized with someone so morally flexible as Jimmy McGill.

I’m also (slowly) continuing to watch The X-Files. I’m now in season 3, and it’s getting better and better. It’s still very 90s, but I think it has aged rather well. One reason why The X-Files still looks so good is because it was filmed in 16:9!

I’ve not really been playing any games recently. I’m not getting too much enjoyment out of No Man’s Sky; the grinding feels too much like work.

I still plan on replacing the CPU, motherboard, RAM and hard drive of my gaming PC. It’s not the highest priority, especially with summer around the corner.


Links:

All the reading I do about cryptocurrencies and blockchain tech is becoming more and more like disaster tourism. Help yourself to these links:

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, you can subscribe to the web feed.
Incoming links: Gremlins.