Souls Like Strings

TWIL January 23rd 2026

  • The Ruby OpenTelemetry gem does not accept symbols as keys or values for attributes
    • One part of a library automatically converting symbols to keys before passing them on does not mean other parts do
  • Honeycomb has a meta.refinery.reason attribute telling you which rule was used to sample the trace
  • FieldList in Refinery is all the keys whose values will be used to construct the sampling key
    • So if there's a sampling_fields attribute in there, don't pass keys to it. Doesn't magically merge them into the FieldList, it uses them as (constant) values in the sampling...
Continue reading

The Subtle Knife

The Subtle Knife by Philip Pullman.

What's better than one impulsive child with a reality warping macguffin? Two

Opening a sequel with the POV of a completely unknown character is always an interesting move, leaving the reader wondering if they'll be important going forward or killed off immediately to set up a new threat. Someone does kick the bucket in the first chapter but it's not Will Parry, our new deuteragonist from a version of Earth slightly more familiar than Lyra's. With him come a cast of modern villains and allies, as well as a surprise returning...

Continue reading

Hank: Drowning on Dry Land

Drunk yes, Batman no

Why

  • A great hook that I'd love to see as a full game
  • Strong characterisation over a short runtime
  • Thematic artstyle
  • Style system incentivizes finding more creative/optimal solutions

Why Not

  • Can be very, very short
  • Not much to do if you just get to the end as fast as possible

Impressions

Man what a strange experience. This game has two characters and can take as little as 20 minutes to complete, but it does a lot with that time. Both Hank and The Unraveler pack a lot of personality into...

Continue reading

TWIL January 16th 2026

  • It's incredible how far you can get in an unfamiliar codebase in an unfamiliar language with find/replace and "go to definition"
    • I'm now officially an iOS/Android engineer :p

I already knew browsers cached a certain number of pages in the history stack; that's why navigating back and forward is always near instant. What I learned this week was:

  • It's called bfcache
  • It caches a snapshot of the page, including the JS heap(!)
  • It's hard to opt out of; you can set headers, manually reload in an event listener or have an unload event...
Continue reading

Owlboy

Beautiful but flawed

Why

  • Stunningly detailed pixel art
  • Hints of background lore are tantalizing
  • Bosses make you think rather than git gud

Why Not

  • The gameplay just isn't fun
  • Never really felt challenged, I was just progressing
  • Some unnecessary friction

Impressions

There's plenty of evidence Owlboy took even longer than Silksong to make. The absurdly detailed pixel art, clever enemy interactions with the environment and intruiging world building show the incredible care the devs obviously put into it over 9 years. Unfortunately the tiresome gameplay, unnecessary friction and inconsistent plot are likely also...

Continue reading