justin․searls․co
Breaking Change artwork

v31 - Full Searls Driving

Breaking Change

Update: This is the first version of Breaking Change available in 4K video. Check it out on YouTube.

The one where Justin picks the perfect time to buy his first Tesla vehicle.

Sometimes the things I say and do make people feel things. Share those feelings with me at this e-mail address: podcast@searls.co. Whatever you're feeling, I'll read it and do my best to acknowledge it. I also may read it on air. Unless you ask me not to, in which case I won't.

Okay, so anyway, there are links to be lunked:

Show those show notes…

A script to validate videos for the Instagram API

If you are publishing videos via the Instagram API (as I do for my feed2gram gem and for Beckygram), one of the first things you notice is that it is a lot less forgiving than their app is.

From their docs that spell this out:

The following are the specifications for Reels:

  • Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file.
  • Audio codec: AAC, 48khz sample rate maximum, 1 or 2 channels (mono or stereo).
  • Video codec: HEVC or H264, progressive scan, closed GOP, 4:2:0 chroma subsampling.
  • Frame rate: 23-60 FPS.
  • Picture size:
  • Maximum columns (horizontal pixels): 1920
  • Required aspect ratio is between 0.01:1 and 10:1 but we recommend 9:16 to avoid cropping or blank space.
  • Video bitrate: VBR, 25Mbps maximum
  • Audio bitrate: 128kbps
  • Duration: 15 mins maximum, 3 seconds minimum
  • File size: 300MB maximum

If you get this wrong, you'll receive a mostly-unhelpful-but-better-than-nothing-error message that looks like this:

{
  "message": "The video file you selected is in a format that we don't support.",
  "type": "OAuthException",
  "code": 352,
  "error_subcode": 2207026,
  "is_transient": false,
  "error_user_title": "Unsupported format",
  "error_user_msg": "The video format is not supported. Please check spec for supported CodedException format",
  "fbtrace_id": "AvU9fEFKlA8Z7RLRlZ1j9w_"
}

I was sick of hobbling together the same half dozen ffprobe commands and then eyeballing the results (which are typically inscrutable if you don't know what you're looking for), so I wrote a script to test this for me.

For example, a recent clip failed to syndicate to Instagram and I wondered why that was, so I ran this little script, which I put on my PATH and named validate_video_for_instagram. It output:

Validating video: /Users/justin/Documents/podcast/clips/v30-the-startup-shell-game.mp4

✅ container
✅ audio_codec
✅ max_audio_sample_rate
✅ video_codecs
✅ color_space
✅ min_frame_rate
✅ max_frame_rate
❌ max_horizontal_pixels - Maximum columns (horizontal pixels): 1920 required; got: 2160
✅ min_aspect_ratio
✅ max_aspect_ratio
✅ max_video_bitrate_mbps
❌ max_audio_bitrate_kbps - Audio bitrate: 128kbps maximum required; got: 256.073
✅ min_duration_seconds
✅ max_duration_seconds
✅ max_size_megabytes

❌ Video had 2 error(s) preventing API upload to Instagram.
Docs: https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media

Is it surprising that the Instagram API won't accept 4K video? Yes. Especially since the videos weighs in at less than 100MB.

Want this for yourself?

To run this, you'll need a modern Ruby installed and ffprobe installed (on a Mac with homebrew, brew install ffprobe should do).

Spoiler alert: there's more to this…

After 15 years of sugar-coating it, I'm upgrading from kid gloves to… regular gloves, I guess?

The truth is and has always been:

  1. That the best way to get better at programming computers is to spend time programming computers
  2. That a lot of people don't do this, but expect the same salaries as those that do
  3. That one highly-competent developer can often run laps around entire software teams at the typical company

I'm done pretending this isn't true.

The Wrong Programmers

I'm as big a fan of searching for environmental and systemic explanations when expectations are missed, but that doesn't mean that sometimes the blame lies with the skill of the people doing the job. Decided I'm going to stop pretending as if that's never the case.

Ever hear of Eternal September? It’s about how frustrated Bluesky users are by the mass migration of bad-faith trolls from X and sanctimonious scolds from Mastodon.

2020s parody of Tales from the Crypt but it's called Tales From The Crypto with a vtuber waifu as Elvira and the stories are all about finance bros getting rolled send tweet

Every time a new model hits, I ask it to write a Searls of Wisdom newsletter based on writing samples and an outline.

Every model has been SO bad at emulating my writing that it makes me literally angry. Just here to report that OpenAI’s o3-mini-high is no different. D-

Ultra Narrow View

Vertical monitors for folks working on documents have been a thing for decades — now that Apple Vision Pro supports an 8K-ish ultra wide screen orientation for Mac Virtual Display, I’d love to see custom aspect ratios that allow you to create only as big of a Mac window as you need.

This is the first of what I hope will become a habit of long-form video excerpts from the podcast. This one comes from a section in v30 about DeepSeek and the ramifications it may have for OpenAI and the extent to which it condemns Sam Altman's ideology on how to run a startup.

20%? Sign me up!

Why freak out about tariffs and the economy when random signs on the side of the highways in Florida are able to offer such amazing investment returns?

Imagine the entrepreneur who started a UPS franchise 15 years ago with earnest hopes of connecting with the local community by offering services like private mailboxes and consultative shipping options.

Now imagine that person's life as a subcontractor of a subcontractor of Fulfillment by Amazon bound by an ironclad franchising agreement.

The Baby Store

Why I didn't have kids, despite the fact a lot of men seem weirdly OK with pretending they have zero regrets.

This clip is from v30 of Breaking Change.

I appreciate the tinfoil hat set, but what's with all these RFID-blocking wallets? Car's fob won't unlock the doors because my wallet is close enough to block it.

Where can I get an RFID-boosting wallet?

TIL (the hard way) that in Florida, joint vehicle titles with "AND" between the names require both parties for every significant transaction. "OR" titles are also available and allow either party to be a self-actualized adult.