justin․searls․co

Writing Becky a feature for managing frequently asked questions but halfway through my editor crashed and I lost all my work so now I'm fresh out of faqs

When developers have to keep thawing and fixing code during a code freeze, it can cause code freezer burn, which can be REALLY costly to fix

In theory, I really like using generated columns in Postgres (which Rails supports with t.virtual migrations), but in practice it creates too many situations where persisted Rails models lie to you because generated columns are only updated if you think to call reload

Breaking Change artwork

v19 - Feature Complete

Breaking Change

It is me, I am back! And after working too hard and becoming too dull I'm finally done* with that big app I've been working on.

I'm running behind on e-mails and need your best and worst takes for the next episode: podcast@searls.co.

Find out what that asterisk refers to below:

Show those show notes…

I got so frustrated getting the runaround from my ISP that I filed an FCC complaint and… holy shit.

  1. Complaint triggers mandatory contact from ISP within a few days
  2. Got a call from Spectrum corporate, super kind and helpful/understanding guy
  3. Delegates to research team to look into the issue and have answers within 24 hours.

Government in action.

TIL that inline JavaScript handlers actually define an event variable for you:

This actually works:

〈a onclick="event.preventDefault(); this.closest('dialog').close()"〉

Maybe everyone else knew this, but it took me over 25 years apparently.

One thing I really dig about the AI/LLM boom is that it's the first time since the 90s that otherwise "non-technical" people in my life have had any reason at all to get excited about computer-ass computing.

Seeing friends and family get interested in how ChatGPT works while improving at how they use it is way more gratifying than the last 15 years of the industry merely training the world how to doomscroll.

A decoupled approach to relaying events between Stimulus controllers

Part of the allure of Stimulus is that you can attach rich, dynamic behavior to the DOM without building out a long-lived stateful application in the browser.

The pitch is that each controller is an island unto itself, with each adding a particular kind of behavior (e.g. a controller for copying to clipboard, another for displaying upload status, another for drag-and-drop reordering), configured entirely via data attributes. This works really well when user behavior directly initiates all of the behaviors a Stimulus controller needs to implement.

This works markedly less well when a controller's behavior needs to be triggered by another controller.

Okay, I'm interested…

Just me or have Safari's developer tools experienced massive performance regressions in 2024? Routinely takes 10+ seconds to open them (or to refresh the page while they are open) for pages that take no time at all in Chromium.

Now that the iPhone is about to have 48MP cameras across the board, Apple should internally capture video in square 4K width and height and share in 9:16 or 16:9, such that bars are never necessary in either landscape or portrait orientations

FedEx bought Kinko's over 20 years ago and erased the brand in 2008 but people seem to mostly still calls it Kinko's.

Not here to kinko shame, but seems like they threw away a really strong brand.