Weeknotes 139
25th February, 2024
“I'm a Swiftie now”
-
Installing my new smart lock was very not easy, even with the skills of my good friend helping. Let’s just say we managed to burn a small hole in the carpet.
-
Ok. I don’t have a clue about how this works. I don’t math good.
Delighted to announce iMessage PQ3, our formally-verified protocol for end-to-end encryption that provides the strongest post-quantum protections against “Harvest Now, Decrypt Later” attackers by not only performing a quantum-secure key establishment, but also performing post-quantum ongoing rekeying.
I don’t use iMessage at all, but seems good.
-
Somewhat on a whim I decided to start learning Swift UI. And, by association, Swift I guess ;) Saying that, building UIs with Swift UI very much feels like using a DSL so there is much to learn language-wise.
Some thoughts as a complete beginner:
-
I’ve found it very approachable so far.
-
There are a lot of very high-quality learning resources available.
-
Fairly complex looking view stuff is very easy to achieve - I had something resembling an app UI very quickly. I expect the stuff that isn’t easy is very hard. We will see.
-
Using XCode is not horrendous, but not great either. I have Vim keybindings turned on, but of course that means you only get default Vim behaviour, not the countless muscle memory configurations I have added over the years, so it isn’t perfect.
It crashes; often.
-
Previews are very handy and provide really good feedback – they also need “resuming” a lot when a build failed – Opt + Cmd + P is your friend.
-
Property Wrappers are nice, and are used a lot.
-
Swift interpolation and closure variable syntax is weird.
-
SF Symbols are vast. It’s great to have this built-in, especially when learning.
-
Any integrating with UIKit feels scary and opaque. Avoiding that for now.
So far I don’t feel like a complete loser as I’m learning. I think it’s because this is definitely outside of my wheelhouse, so my usual expectation that I should know everything doesn’t come into play.
-
-
Lots of interesting git configuration options compiled by Julia Evans.
-
git-absorb
looks cool. I want to try this but I haven’t needed it yet!You have a feature branch with a few commits. Your teammate reviewed the branch and pointed out a few bugs. You have fixes for the bugs, but you don’t want to shove them all into an opaque commit that says fixes, because you believe in atomic commits.
-
Lander was one of the first games I played. I remember it being very tricky.
Lander was the very first game to be released for the ARM processor, and it is both a milestone and a masterpiece.
Mark Moxon has created this awesome website about
This site contains reconstructed source code for Lander, David Braben’s epic game for the Acorn Archimedes, with every single line documented and (for the most part) explained.
I love this kind of deep dive.
-
The ending of True Detective didn’t quite wrap up things how I would have liked. They refer to previous series' and then don’t tie up the loose ends as far as I could tell. Even so, I really enjoyed the series, but it doesn’t even come close to the first (and neither do the others either).
A series 5 has been announced already.
-
This idea that we’re all thickos for clearing the launcher does indeed need to stop. I’m not closing apps because I’m saving precious iPhone memory; I’m closing them so I can find things later!
The UI is bad.
-
I had to deal with a pretty difficult rebase this week. In the end, I failed.
Usually when I get conflicts during a rebase I will manually fix the conflict in Vim (incidentally it seems I am not alone). This is, for the most part, easy because code conflicts tend to be manageable in terms of the size of the change. However, this conflict was caused my a very large (38k+ lines) automated log file committed to the repo.
The conflict markers contained such big chunks that I couldn’t visually see the changes all at once which made choosing which part was correct very difficult. I thought maybe this was the time to investigate a dedicated a mergetool, but after trying
vimdiff
and VSCode I gave up.In the end I created a new branch and hacked it about until things were working, but it did not feel satisfactory. This needs improvement.
-
The new owners of Castro are communicating better.
Yesterday we successfully deployed new appservers for Castro. This included the first substantial code changes to the server in about a year. This morning, “popular” feeds are the most up-to-date they’ve been since November.
Well done. I have re-subscribed, because this looks promising, and the alternatives are not good.