Souls Like Strings

TWIL August 1st 2025

  • It's amazing the difference in perceived quality replacing a loading spinner with a skeleton can make
  • Migrating an endpoint from only returning a single record to an id-keyed hash of them went smoothly
    • First modified it to accept both the single id and an array of them with different branches
    • Then added a new API call to the frontend which used it to condense multiple existing calls into one
    • Once that was live and known to work in prod, moved all the single calls to the multi-endpoint passing a single element array of ids
    • Finally removed the single...
Continue reading

TWIL July 25th 2025

After spending most of the week trying to get a workflow setup with Copilot/Claude 4 to migrate a bunch of legacy class components to function components, I ended up giving up and just doing it quicker/better myself.

Since we have ~40 class components still in the codebase, my end goal was to set up a semi-automated pipeline we could run them through one-by-one, allowing the team to rid ourselves of a large chunk of tech-debt without the fairly large time investment that would usually require.

I started off by setting up a copilot-instructions.md with some process/code quality expectations about the...

Continue reading

Ender Magnolia: Bloom in the Mist

The Assassins Creed 2 of video game sequels.

Why

  • All the stuff that made Ender Lilies amazing, with the rough edges sanded off
  • New setting and new (slightly) less depressing vibes
  • Stronger connections to all your summons as characters
  • Satisfyingly links the two games in the same universe

Why Not

  • Can feel a little too similar to its predecessor, at least when played back to back

Impressions

A fantastic sequel which takes the medieval fantasy foundation of the original and brings it into the steampunk-ish future. The basic gameplay and premise are the same,...

Continue reading

Infinite Jest

Named for what it provides David Foster Wallace while people try to guess what on Earth is going on.

It's a testament to the difference between great and decent writers that I had absolutely no idea what was happening for the majority of this book, but was still enraptured enough to spend something like 40 hours finishing it.

DFW opens with the classic 'start at the end' gambit, then constantly keeps the reader off balance by jumping around in time and resolutely refusing to reveal anything resembling an overarching...

Continue reading

TWIL July 18th 2025

  • BE VERY CAREFUL WITH FORCE PUSHING
  • ABSOLUTELY DO NOT FORCE PUSH WITHOUT CHECKING CHANGES AFTER A LONG AND COMPLEX REBASE ON TRUNK
  • WHY WOULD YOU DO THAT
  • make sure you're not setting this.loading = true on a class that has another 5 or so api calls coming up
    • especially if it's not an observable property
    • and you want them to run simultaneously
  • when you roll out a new feature to prod, don't just spend hours making a performance monitoring dashboard
    • instead you should probably spend that time looking at the error monitoring
    • or do both,...
Continue reading