I’ve generally been feeling under the weather this week. At some point I got a sore throat and felt quite tired, and was worried that I got COVID-19. I went to bed early and the next morning I was just fine, so maybe it was all in my head.
I could’ve done a COVID-19 test, but am still waiting on my batch of at-home test kits to arrive. As I had no plans to go out anyway, I felt like it could wait.
My implementation of the Lox interpreter for the Crafting Interpreters book at work has made good progress. The plan is to read (and probably implement) the first chapter, but I wrote the entire interpreter instead. It sure helps that this is the second time I’m going through the book, though!
I worked around the Crystal bug (see previous weeknotes, Weeknotes 2022 W03) which prevents free variables in the return type of abstract functions, by not using an explicit type declaration at all. This works fine, and is probably a more idiomatic way to write Crystal anyway.
I was playing with the idea of starting a third Lox interpreter, this time written in Lox itself. But eh, I think I will spend the time in more productive and/or entertaining ways.
I started drafting a new article for this site, tackling the topic of how to implement equality in Ruby. It seemed simple — just covering
#eql? etc — but now the draft talks about topics like fungibility, and what identity is, including the Ship of Theseus thought experiment. I feel like it’s going rather off track (in an interesting way, I hope).
Google announced that Google Workspaces, which I use for stoneship.org, will no longer have a free tier starting mid this year. This means I either have to pay, or move a ton of stuff to a new Google account (email history, photos, contact, chat history, shared files, documents, spreadsheets, and more). I’m not looking forward to that.
Shower thought: Why do we have uppercase and lowercase letters, but not uppercase and lowercase numbers? It somehow seems useful to be able to camel-case numbers.
I’ve gotten so used to Shopify’s development tooling, that I’m struggling to work like a normal developer on my hobby projects. Instead of merging PRs for my hobby projects, I write
/shipit because that’s how the merge queues at Shopify work.
After un-learning the habit of writing
/shipit for my hobby projects, I came back to work and manually merged a PR, bypassing the merge queue. Oops. Sorry, teammates!
I finished Westworld season 3. Recommended!
I’m happy that Snowpiercer is back for its third season. It’s one episode per week, and I’d rather binge-watch it but I guess I’m not doing that!
I started watching The Sinner, accidentally starting with season 4 instead of season 1. Fortunately, it seems like all seasons are rather nicely self-contained, so I guess I’ll finish season 4 and then head back and watch the older ones. I’m quite liking it so far.
I also started watching Clickbait on Netflix and then forgot about it after two episodes. It’s not very good.