Apparently Apple has a bunch of heuristics to determine which Siri to activate when there are multiple iDevices listening (and a non-zero amount of the world population is trying to figure out what they are). I really hope they make "Hey iPhone Siri, stop the alarm" just work so that I don't have to yell at a confused iPad twice every morning. Support for "Hey Siri #31174" or "Hey Lord Sirious" would have been nice too.

It's the 17th day of AoC! I've tied my 2019 records! The problems do feel easier this year though.

It snowed yesterday. I noticed those salt-sized ice flakes occationally making tiny marks on my foggy glasses caused by wearing face mask. Even more interesting are the thin layer of frosting found on bridge surfaces made from steel: my bicycle left behind it a double-helix-shaped trail.

twixter -> twoxter -> twixt3r -> twIVter -> twixter (in typical movie sequal naming fashion).

Reading through the latest Go generic proposal, I felt ok at the beginning, but increasingly uneasy as I scroll along to find the long list of restrictions and edge cases. It's clear that the dev team is actually painstakingly trying to fit a generics implementation (almost exactly as people have asked for) into the language. Perhaps because Go seemed like such an opinionated language, I was not actually expecting such an serious attempt at all: I would have expected Go generics to simply involve a handful of special interface types from standard library that are somehow unboxed (have one less layer of pointer redirection) and we still write for-loops instead of map-reduces.

It's one of those cases where I applaud the effort, but I'm not convinced that a suitable solution can be achieved (like The Rise of Skywalker). The proposed generics system eats into Go's originally quite orthogonal feature set and reading through all the caveats of how it would interact with other parts of Go already feels similar in length as the entire Go spec. On the other hand, generics and interface types obviously overlap in functionality and while there are restrictions in place to discourage a Go version of "almost always auto" from happening, having to think about which one to (not) use takes away some of Go's appeal for me.

Ugh, this is such an arduous yet unrewarding path to go down. Maybe Go team's .async moment would eventually come and we would all love the solution, but then again, I really don't mind writing generics-free Go that much.

As sketchy as Brave can seem at times, it has built-in support for IPFS now! The fact that we end up relying on ipfs:// or ipns:// URI schemes is a bit funny, but hey, this is still great news.

TIL unlike concrete, steel bridge surfaces will turn piled-up snow into ice, so don't attempt to challenge them with your bicycle. Ouch.

They do make motorcycle helments with shark fins!