Weeknotes № 13

Moving

We spent a lot of last week moving our stuff, culminating on Friday where we had to actually leave our old place. This was pretty stressful with two kids running around, and the oldest getting pretty sick at the beginning of the week. But we managed, all of our stuff is in the basement of the new place and we are in a furnished apartment for the next weeks.

A lot of stuff got done: the tilers finished the upstairs bathroom and unexpectedly also finished the downstairs one, the electricity is mostly done, and the painter painted two more rooms. Now it’s a bit of a waiting game where little will happen next week, but hopefully everything should be finished somewhere around the end of this month.

We also prepared and recorded a bunch of Swift Talk episodes in which we reimplemented SwiftUI’s anchors from “scratch” (only using preferences and geometry readers). Doing this gave us a lot of insight into how these actually work and their limitations. We reimplemented parts of SwiftUI many times (anchors, matched geometry effect, the layout system, the state system) and every time we learn a lot about how these things work. We also get feedback from other people that it helps them, which is always nice.

I’ve been working on a pure Swift implementation of Git’s core data model recently, and can currently read out (simple) repositories and their objects (commits, trees, and blobs). On the train back from the studio I also managed to read out Packfiles. I’d like to add support for writing things as well as adding support for the index. At its core, git truly is simple and beautiful, even though I’m the first to admit that the interface has often confused me.

We started preparing for another workshop sometime at the middle of this month, should be really fun. We’ve gotten into a really good flow where we know exactly what topics to cover, but can still create a completely custom workshop for the team we’re working with. One of the things I’m also pretty happy about is that we have a hard limit on team sizes (sixteen people max) so that we can really make it personal and spend a decent amount of time with all the individual attendees. Preparing and running the workshops is pretty stressful but also very rewarding.

Another random thought that occupied me a bit is that my nationality never felt like a big part of my identity while I lived in the Netherlands, but does so now. Even when I emigrated to Berlin it was never a big deal – there were so many foreigners in my little bubble there that I hardly ever stood out. However, here on the countryside, it’s a different story. There are a lot of people that are from here and have never really been anywhere else. It feels like even Germans from other parts of Germany stand out, let alone foreigners like me. I don’t really mind, but it’s been an interesting observation.

I’ve also been thinking about AI a bit recently (who hasn’t?). I don’t have a very strong opinion on the topic, I believe it’ll change our daily lives (especially for us computer people), but I don’t feel like anyone can really predict how it’ll change things. I’m not sure whether it’ll be good or bad (probably both?). One of my favorite bloggers on the topic is Simon Willison, who’s doing pretty practical experiments as well as trying to take a more high-level view.

I’ve experimented with ChatGPT to do generate sample data (for our workshops), and it was great at that, even providing JSON data and matching Swift structs that conform to Codable. I tried using it to generate some algorithms that I know (e.g. a flow layout) but I’m not quite comfortable giving that part up (even though it did do a pretty good job). It also is useful for generating ideas. For example, I let it generate ten or twenty ideas for marketing our new book. Much of it isn’t stuff I couldn’t think of myself, but there were one or two things that I could definitely use. I don’t personally feel like letting it do things that feel important to me – most of programming, writing, and other forms of communication.