If you want to really understand how Internet protocols work, I heartily recommend writing your own on top of UDP. You don’t have to work in the kernel. You can use just about any language you want. You can make it as simple or complex as you desire. Try it sometime! It’s instructive.

I was making the bed while the cat laid on it, surfing the waves of bedding as I shifted things around carefully to avoid chasing her off. Then it struck me that I’ll never be able to make the dog into the bed again, which was one of her favorite things. That hit unexpectedly hard.

Miss you, girl.

The comet C/2023 A3 Tsuchinshan-ATLAS as taken from our suburban back porch right in the middle of the Bay Area. It was easily visible to the naked eye. If you haven’t gone outside to look at it yet, do it!

A bright point of light with a long hazy tail is low above a nearby roof.

Silent Hill 2 is not fun. It’s beautiful. It’s immersive. It’s engaging. But it’s not fun. Everything that happens comes back to your decision to do this to yourself. No one forced you to go there. To ignore the warnings. To follow a fog-enshrouded vaguely human but not quite shape through a gore-smeared hole in the base of a wall. You chose to. And now there are consequences.

It’s excellent and you should totally play it. I can’t say you’ll exactly enjoy it, though.

Python 3.13 launched today. I’ve done it. I’ve lived long enough to see a less-GIL’ed Python released to the public. Until now there’s been an unvirtuous cycle:

Python isn’t good at running CPU-intensive threaded code. → No one writes code like that. → There was no pressure to remove the GIL because no one writes code that would benefit from it. → Repeat.

I hope this is the first giant step toward good Python multithreading.

Ugh, “walkable” cities. 🙄

To get dinner, we had to:

  • Walk a couple of blocks
  • Pause for my wife to pet a dog
  • Watch sunset at a table behind a taqueria
  • …where my wife had to pet another dog
  • Stroll past the monthly outdoor fest with live bands and a bunch of vendor booths
  • Wait for my wife to pet a dog again
  • Walk back past the European market, where we walked in to get dessert snacks
  • …and for my wife to pet the owner’s dogs

Simply intolerable.

Google writes safer code with Rust

From “Google hails move to Rust for huge drop in memory vulnerabilities”:

In Google’s own shift towards using memory safe programming languages there has been a significant drop in the number of memory-related vulnerabilities, with memory safe vulnerabilities down to 24% in 2024 - a stark contrast from 2019 [76%] and well below the industry norm of 70%.

Memory safety is not the same as safety. You can still write bad logic in any language. It “just” gets rid of the majority of bugs so that programmers can concentrate on the more interesting parts.

Also, yes, of course you can write safe C code. No one with a large codebase ever has in practice, but it’s at least hypothetically possible. Wouldn’t rather not have to, though?

It astounds me that in 2024 there’s no canonical way to select which CSS to use for a web browser on a phone screen. You have to guess at how many CSS pixels wide your target device is. If next year’s device is any larger than a hardcoded threshold, they may get your desktop layout instead.

I know there are people who’ve made their careers out of memorizing all the edge cases of this monstrosity. Those are lifetimes lost to toil because no one can agree on an official way to look nice on a cell phone, or the one true way to center an image. It’s madness.

The fine folks who make iA Writer wrote about their challenges supporting Android.

My first impressions:

  1. I’m glad Google is taking user privacy so seriously.
  2. …but I didn’t know it was so Kafka-esque for developers to comply with their requirements.

I hear “why would devs ever tolerate Apple’s App Store shenanigans when Android is right there?” Well, because the grass isn’t always greener.

Ideally, both Apple and Google would make it easier for devs. Nothing about this requires either’s processes to be more complicated than they inherently are. As it stands today, both shift a lot of extra effort and compliance guesswork onto developers.

My Raspberry Pi 4 started running hot when I moved it from a freestanding case to a fanless server rack. I’d often SSH in and see idling it at 65C or warmer, with log messages showing it had been thermally throttled. That’s not great.

I just bought a Argon Fan HAT. I installed it and fired up a large Rust compile with 4 concurrent jobs. 20 minutes later and the RPi averaged about 54C with no throttling.

Get your Pi a fan. It wants one very much.