May 30, 2021


I took Friday off this week (privilege day), and it’s a bank holiday on Monday, so I have a four-day weekend. I could get used to working four days on, four days off.

This week I got a few things done, which was nice.

I made a small performance improvements to our account-api by caching the OpenID Connect discovery response (and I have another caching change in review), which made our 90th percentile latency immediately drop, which was nice to see on a chart. When the second caching change has been made, it might be time to revise our latency SLO and set ourselves a harder target.

I also noticed a few cases where we have apps signing users in by redirecting via https://www.gov.uk/sign-in, when they could instead construct the OAuth URL directly: removing one user-facing redirect. I think we should probably adopt a policy along the lines of “/sign-in is just for the global sign-in link in the header, redirects should use OAuth URLs directly.”

I also got account-api consuming messages from our RabbitMQ cluster, so it can do things (like update a user’s saved pages) in response to publishing updates.

Right before ending work on Thursday, I updated my work Macbook to Big Sur. Let’s hope everything just works on Tuesday.


This week I read:

Freenode Drama

Unfortunately, the Freenode drama has continued, with rasengan proving that he has no business running an IRC network. rasengan locked over 700 channels which mentioned Libera.Chat in their topic, including some pretty big channels like #haskell, #emacs, and various Wikimedia channels. NixOS has moved to Libera.Chat. FOSDEM has moved to Libera.Chat. Even the FSF is considering leaving Freenode.

I’m not a big IRC user these days, but since every Freenode channel I was in got locked at the same time, the decision to disconnect was a pretty easy one. You can now only find me on Libera.Chat, with the usual username.

According to the last stats I saw, earlier in the week, the number of connections to Freenode had dropped by about 25% in a matter of days, almost all of which had moved to Libera.Chat.

rasengan may be overlord of Freenode, but people are rapidly fleeing his realm.


Following on from a reddit discussion about how in Haskell it’s not a no-op to unmask an interruptible operation, I wrote a memo about how you can find that issue with dejafu.