justin․searls․co

New User of the Month

Why should you come to my Rails World talk about building an app? Look no further than my latest credential. Hotwire user of THE WHOLE MONTH.*

*Apparently there are actually two of us.

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.

Outed

I hate when the algorithm nails me.

The #1 app on iPad is a calculator

Saving this for posterity as it seems likely Apple is 90 minutes away from announcing a first-party Calculator app for iPad. Only took 14 years.

If you're the DOJ, this is definitely a sign that they're abusing their market position and stifling competition!

If you're anyone else, you're amazed that Apple let them use an icon so evocative of their own Calculator app on iPhone.

This iOS Home Screen

I've perhaps had too many idle hours this month riding trains by myself this month, as it's led to silly micro-projects like this: carefully weeding out everything from my iPhone's Home Screen but the most essential apps, each expressed as a monospace link with a name that evokes the styling of my web site's navigation.

Kudos to the Dumbify app for facilitating it and to dumbph.com for the inspiration.

Computer Bldg.

I walked in to give them a piece of my mind, but the elevator button didn't do anything no matter how many times I pressed it.

RubyKaigi 2025 is heading to Matsuyama

Incidentally, Becky and I just visited Matsuyama for the first time a bit over a week ago, so I was surprised (and delighted!) when RubyKaigi's head organizer Akira Matsuda announced that next year's event will be held in Matsuyama from April 16-18, 2025.

If you've never been, Matsuyama resides in Ehime prefecture, which is on the island of Shikoku, just southwest of Japan's main island. It has one of the most cherished castles in the country atop a mountain at the center of the city and which is accessible by a continuously running cable car. It's also home to Dōgo onsen, which is considered to be the oldest hot springs bath in the country (and one of several inspirations for Studio Ghibli's Spirited Away). Additionally, it's famous for its massive and varied mikan (Japanese clementine oranges) crop—Becky and I got to sample a smattering of varieties from a store that had dozens of local citrus juices on tap, via cute little faucets.

Getting to Matsuyama isn't so bad either. From Osaka, it's about 3.5 hours by train, and a special rapid "Shiokaze" train service runs to Matsuyama from Okayama, making it an easy transfer from the Sanyo Shinkansen.

If you've ever wanted to visit a hot springs resort, or get a glimpse of daily life in a more remote Japanese city than the most well-known tourist destinations, I hope I'll see you next year!

[Translator's note: yama means mountain]

Oops! All Dryers

Had a surprisingly hard time finding a coin laundry in Okinawa this morning. First one I went to only had dryers, which was a first. 💨

Battle Station

A number of readers have asked about my Vision Pro setup since writing about how I've forsaken my desk for an Eames chair.

Well, here it is. I ran the MagSafe charging cable for my MacBook Air along the left armrest and routed the USB-C cable that charges my Vision Pro battery up the back (which itself is affixed via a 3D-printed enclosure and velcro command strips).

At nearly three months in, I'm loving this setup. Went ahead and cancelled a longstanding to-do to find a more comfortable office chair than my Steelcase Leap, because I can't really see myself needing one anytime soon.

Yes, it isn't

A recent trend in GPT-4 over the past few months is that it's started catching hallucinations (or, more charitably, over-eager user affirmation) mid-sentence. At this point, about 20% of the yes/no questions I ask it result in a sudden about-face. As jarring as it is to read, only once has it explicitly acknowledged its own contradiction—which, I'll admit, was impressive.

Because ChatGPT spews fluent bullshit, it has no relationship with the truth and so no apology or reflection typically follows. However, unlike most bullshitters, if you ask for an apology it'll gladly oblige. Silver lining.