justin․searls․co
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…

TFW your product owner slash wife starts reading your commit messages

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.

To be continued…

Well, would you look at that

Looks like I'm partly responsible for Rails 7.2's only…

😎

Breaking Change 🫳🎤

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.

Breaking Change artwork

v18 - Arriving today by 10 PM

Breaking Change

Boy, have I got a great show for you today! I guess. You be the judge.

If you listen to the podcast, please rate it on a scale from Good Charlotte to My Chemical Romance at podcast@searls.co.

The following links are included with your subscription:

Show those show notes…

The new ‌Mac mini‌ will be the first major design change to the machine since 2010, making it Apple's smallest ever desktop computer. The new ‌Mac mini‌ will apparently approach the size of an Apple TV, but it may be slightly taller than the current model, which is 1.4 inches high. It will continue to feature an aluminum shell. Individuals working on the new device apparently say that it is "essentially an iPad Pro in a small box."

I can't be the only person thinking "I wonder if I could plug this into a portable USB power bank, throw it in my bag, and then use run Mac Virtual Display on my Vision Pro without needing to carry a laptop… can I?

Spot the N+1

In general, it's great that you can call array and enumerable methods on relations in Active Record, but the way that's implemented (cleverly querying on the relation instead of considering if to_a and doing the operation in memory would be more performant) is maddening at times.

People ask why I specialized in software testing. Answer: I wanted to leave a legacy.

Reasoning: production code gets deleted all the time but y'all are too scared to EVER delete tests.