Souls Like Strings

Exfiltrating Data from Fly.io Postgres

I'm writing this mainly as a reminder for myself, since I'm pretty sure I'll continue procrastinating the Spending Tracker rewrite to Cloudflare/Svelte and need to do this again in the future. But maybe someone else finds themselves in the same situation and by some SEO miracle lands on this article rather than piecing together info from forum posts like I did. Or they just ask our LLM overlords and this is in the training data, either way.

Quick note, this is for their legacy Postgres because that's what I used/it was all they offered at the time. Not sure if...

Continue reading

TWIL August 29th 2025

  • I already knew this, but overwriting Rails' default accessors for model attributes is a bad idea. So many different things can go wrong.
  • If you need an extra argument in your setter on an AR model, you can just redefine the setter and add it in
    • I added a separate update_with_extra_attribute method, but might explore whether I can just use the setter itself tomorrow
    • Defining the separate method lead me to learn about public_send though
    • Since I needed a way to call the setter with an extra argument (attr = value, extra_arg predictably did not work)
    ...
Continue reading

The Book of Love

The Book of Love by Kelly Link.

Desperate Housewives but university first years and magic.

Not winning a Pulitzer, but it was an enjoyable ride. The opening gave me high hopes by teasing an interesting world beyond the protagonists' understanding, then let me down by proving it was still beyond their understanding right up to the end.

Every interesting secret or ability ended up being disgorged in their general direction or handed to them before they even needed to think about it. Need to learn magic by a deadline? Just don't think about it at all and...

Continue reading

Florence

An unexceptional story, exceptionally told.

Why

  • Beautiful art, animation & music
  • An emotional story with a message
  • Plenty of delightful little details to discover

Why Not

  • You need games to have plenty of action/player agency

Review

Florence is a visual novel where rather than selecting dialog options you interact with the world as the titular character, much more effectively putting you in her shoes.

These interactions take the form of simple mini-games, designed more to align you with Florence's state of mind at that point than to provide any sort of challenge. I don't...

Continue reading

TWIL August 22nd 2025

  • Don't forget an element is in the page twice, especially if it has an ID and you're trying to attach a click handler using that ID
    • can lead to long, hair tearing debug sessions followed by a lightbulb moment when you call click() directly on the element in the browser console
    • I just could not wrap my head around how the inspect panel could show an event attached to it, with the correct code in that event when expanded, but then not do anything when clicked
    • I guess for elements with IDs the inspect panel just shows the...
Continue reading