This week was nicely short. Monday was German Unity Day, which is a national holiday in Germany.
I learned that the Rieckhallen, part of Hamburger Bahnhof (the museum for contemporary art, not the station) will be kept as-is, and not be torn down to make way for office buildings. Hurrah!
Coincidentally, there seemed to have been a fire in the basement at the back end of the Hamburger Bahnhof museum. The wall above an outside door is black with soot. I didn’t see a fire, nor did I hear the fire department any time nearby. Spooky.
I spent some time working on Nanoc this week, after a long hiatus. I enjoyed coming back to it more than I anticipated. I felt burnt out on it for quite a while.
I started working on improvements that should help with build times on large sites. You can take a look at PR #1599, where that improvement was made, though currently it lies behind a feature flag while I test-drive it.
Nanoc’s implementation of data sources might need more database-like functionality for efficient querying, and maybe even generating indexes to avoid O(n²) behavior. Perhaps even automatically — Nanoc could detect what sort of queries run often, and decide which indexes to generate for the next run.
I find myself fantasizing about a potential new major version of Nanoc — something that builds on my fifteen-plus years of experience with Nanoc to build something highly modern. It would be different enough not to carry the name Nanoc anymore. However, such a project would require a large amount of spare time, which I don’t have, and I would most likely not be able to work on Nanoc anymore while I pick up this new project.
I’d probably not use Ruby for this new project. A compiled executable would be easier to distribute, would not require a Ruby installation, would be much lighter on memory, and would be faster. A modern statical type system could help speed up the development, too.
I dabbled with rewriting parts of Nanoc’s core in Rust, and then using FFI from Ruby, but the FFI overhead negated the potential speed improvements. I could use Ruby’s C API, but it’s not well-documented.
Would a rewrite be worth it? Maybe. Maybe not. But perhaps I’ll work on some tiny prototypes, and see where I go from there.
The M2 MacBook Air has thermal throttling problems. I understand that a fan-less laptop might have cooling issues, but it makes some tasks rather tiring. One of the performance cores hit 100 °C (212 °F), and it took five minutes for Nanoc to compile a single HTML page — one that I imagine should take a second at most.
Though even while thermally throttled, the laptop still feels snappy, likely because of the other cores (efficiency cores?) working as usual.
Ironically, in Weeknotes 2022 W25: Heat, I wrote how my Intel MacBook Pro was suffering from the heat, and how I was looking forward to getting an M2 MacBook Air.
I’m approaching my one-year anniversary of writing weeknotes. I’m certainly enjoying writing them still, but I’m also reflecting on what I like and what I don’t like as much.
Many of my weeknotes contain a bunch of unrelated thoughts, most of them unfinished. I’m happy to have a medium to express these incomplete thoughts. However, I wonder whether I need a way to collect related thoughts spread across weeknotes. I find it useful to have related thoughts next to each other but my weeknotes approach spreads them out over time.
I might experiment with tagging individual sections, such as
#topic/weeknotes for anything pertaining my thoughts about weeknotes, or
#topic/nanoc for thoughts around Nanoc. I could then have a weeknotes index by topic, rather than by week number.
I’ve still not been to the office. Remote working is still fantastic.
I told people that I’d come to the office on the first day where I barely have any meetings. That day has yet to come. I believe there is no point coming to an office if you’re going to spend most of the time in a phone booth anyway.
Speaking of work meetings: I am trialing a new approach for naming meetings. I write them as sentences that include the purpose of the meeting. Here are some examples:
Clearly defined meeting outcomes! They’re the best.
At work, there’s a new feature for pull requests/merge requests to automatically spin up a “review app”, which spins up a test environment for product owners (or other people) to try out unfinished features.
I was curious about it at first, but the more I think about it, the more I think these review apps are a bad idea, moving the development methodology further away from continuous integration. Trunk-based development is where it’s at, and review apps go against that idea.
I’m participating in Esther’s creative writing club, where we write a story around the most-voted of writing prompts, collected beforehand. I’ve got half a draft lying around, and I’m glad that the deadline got extended — there’s no way I would have made yesterday night’s deadline.
The story is one I’ve attempted to write about three times now. Perhaps this time, I’ll be able to put it in words and sentences that I am happy with.
Let’s talk entertainment!
Rings of Power keeps dragging on. I’m not sure where it is going, but every episode is just so slow.
I finished Bosch season 2, and I’m feel like I’m done with police detective TV series for a while. The series isn’t quite what I want. It needs to be more murder mystery.
I played The Excavation of Hob’s Barrow, and it’s excellent. Spooky. Captivating. The ending might not be to everyone’s liking, but it’s certainly the ending I was hoping for.
I did not continue with Return to Monkey Island. The call of Hob’s barrow was too strong, you see?
Coming back to Destiny after playing a lot of Halo was tough, because I forgot half of the controls. How do I jump? How do I reload my weapon? How do I throw grenades?!
Passing A Portal Through Itself (minutephysics): Ah yes! Excellent knowledge that will never practically be useful.
The Visual Effects Crisis (The Royal Ocean Film Society): I had no idea that VFX artists were so exploited.