I love eggs but I'm lactose intolerant
Becky and I circled the Costco three fucking times looking for eggs before independently realizing that OF COURSE they're in the room labeled "Dairy".
Why, American people?
Becky and I circled the Costco three fucking times looking for eggs before independently realizing that OF COURSE they're in the room labeled "Dairy".
Why, American people?
My dad, Fred Searls, passed away suddenly on Sunday night. Fortunately, my wife Becky, my brother Jeremy, and I were able to get on a flight to Detroit Monday to be with our mother Deanna and start making arrangements.
We worked together to draft this obituary, and it just went live on the funeral home's website (which is how people do it these days, apparently).
Here's the middle part that's actually about the person:
After earning his D.D.S. from Northwestern University Dental School, Fred practiced dentistry in Trenton, where he served patients with care and compassion for over forty-five years. In 1997, he and his family moved to Saline, where Fred’s warmth and generosity quickly made him a vital part of the community he came to love.
Fred enjoyed a wide array of hobbies and interests. In his prime, he was an avid golfer and a long-distance runner, and always pushed himself to excel. In retirement, he took up rucking, a pursuit that blends walking and strength training by hiking with a weighted backpack—combining his love of staying active outdoors with his enthusiasm for connecting with neighbors and offering a helping hand. This balance of active engagement, relentless kindness, and community spirit defined Fred’s life and the legacy he leaves behind.
And here's the service information (with added hyperlinks):
Funeral services for Fred will take place at the Tecumseh Chapel of Handler Funeral Homes at 1:00 pm on Saturday, December 21, 2024. Following the service, guests are invited to a luncheon at Johnnie’s Bar, located at 130 N Main St in Onsted. Visitation will be held at the funeral home from 5:00 pm – 8:00 pm on Friday, December 20, 2024 and for one hour, beginning at noon, before the service on Saturday. Memorial contributions in honor of Fred may be made to the Huron Valley Humane Society.
If you knew dad and are able to come, we'd love to see you there. Whether or not you knew him, I’d be grateful to hear your memories, thoughts, and feelings—feel free to drop me a line at justin@searls.co 💜
Goofing around with podcast transcripts today. Here's what I did to transcribe version 26 of the Breaking Change podcast, after a couple hours of being mad at how hard the Internet was making it:
brew install whisper-cpp
, because I'm fucking sick of cloning one-off Python repos.ggml-large-v3-turbo-q8_0.bin
because it's apparently slower but more accurate than "q5", whatever the hell any of this means)ffmpeg
. That bit of the command looks like: ffmpeg -i "v26.mp3" -ar 16000 -ac 1 -f wav -
whisper-cpp
) as well as our model (which I just put in iCloud Drive so I could safely forget about it). I also set it to output SRT (because I wrote a Ruby gem that converts SRT files to human-readable transcripts) and hint that I'm speaking in English. That bit of the command looks like this: GGML_METAL_PATH_RESOURCES="$(brew --prefix whisper-cpp)/share/whisper-cpp" whisper-cpp --model ~icloud-drive/dotfiles/models/whisper/ggml-large-v3-turbo-q8_0.bin --output-srt --language en --output-file "v26.srt"
Here's the above put together into a brief script I named transcribe-podcast
that will just transcribe whatever file you pass to it:
# Check if an input file is provided
if [ -z "$1" ]; then
echo "Usage: $0 input_audio_file"
exit 1
fi
input_file="$1"
base_name=$(basename "$input_file" | sed 's/\.[^.]*$//')
# Convert input audio to 16kHz mono WAV and pipe to whisper-cpp
ffmpeg -i "$input_file" -ar 16000 -ac 1 -f wav - | \
GGML_METAL_PATH_RESOURCES="$(brew --prefix whisper-cpp)/share/whisper-cpp" \
whisper-cpp --model ~/icloud-drive/dotfiles/models/whisper/ggml-large-v3-turbo-q8_0.bin \
--output-srt --language en --output-file "$base_name" -
If you're writing a script like this for yourself, just replace the path to the --model
flag and you too will be able to do cool stuff like this:
$ transcribe-podcast your-podcast.mp3
As for performance, on an M4 Pro with 14 CPU cores, the above three-and-a-half hour podcast took a bit over 11 minutes. On an M2 Ultra with 24 cores, the same file was finished in about 8 minutes. Cool.
Well, this is a terrible workflow that Apple steers people through when replacing a damaged phone:
Seems bad.
I'd write more here, but I've got places to be. Becky, Jeremy, and I are going to engage in some holiday festivities. We have a couple gingerbread houses to make and a tree to trim. And no nog to speak of. Really, that's all you get by way of show notes this time as a result, deal with it.
Send your complaints to podcast@searls.co and they will be read on air.
Some bullet points below the fold:
Having recently begun the long, arduous journey off 1Password and onto Apple Passwords, one of the biggest annoyances is how much friction it adds to the drudgery of signing into a service to have to reach behind my monitor to scan the Touch ID sensor or to ensure I’m sufficiently camera-ready for a Face ID check to pass.
Turns out, you can just turn this off altogether! I would have preferred a reasonable time-based settings like 30 minutes or an hour, but I expected the answer to be, "go pound sand," and this is indeed better than that.
Record scratch you're probably wondering how I got here.
TIL that in recent versions of macOS, most stock apps can’t be deleted by the user. Want to delete News? LaunchPad won’t let you. Command-Delete ain’t it. It’ll bounce right off the trash.
What gives? It’s because they’re not really in /Applications anymore. They’re installed in /System/Applications and that’s a read-only APFS partition. Neat.
I added string cheese to my cart, and this popped up.
This month's essay may be the single truest thing I've ever written about myself. If you're interested in understanding me or what the heck I plan to do with the rest of my life, sign up and you'll receive it. justin.searls.co/newsletter/
Evidence I've changed as a person: someone just stopped me on the street to say, "I'm sorry I just wanted to say you have an incredible energy and I wanted to hand you my card. Your chi is beautiful." And she clearly meant what she was saying. And seemed to be of sound mind.
First time for everything.
I left the country for a few weeks to get that taste out of my mouth but now I'm back and as salty as ever. Brace yourself.
I made a pretty strong appeal that you should e-mail the show at podcast@searls.co, so I won't repeat myself here. DO IT. DO IT NOW.
Hopefully I'll be back at least once more before we call it for 2024. Stay tuned. 📻
Train fare in Japan isn't cheap, but one way Japan gets people to choose it anyway is by directly exposing drivers to road infrastructure costs through steep highway fees.
In 8 days I drove 613 miles and racked up about $130 in highway tolls. Would have been more expensive to take trains, but just barely.
The Steelcase Leap (v2) is a good office chair in a world of mostly bad office chairs. I've been using it since 2020 and I don't love it, but I definitely hate it less than every other office chair I've ever owned. That's one reason I find myself vexed that Steelcase does not offer an after-market headrest for the chair (and no longer seems to let you configure one with a built-in headrest). In fact, so few office chairs offer headrests that I was briefly tempted to buy a "gaming chair" (do not buy a gaming chair).
And if you're reading this and identify as an Online Ergonomics Expert, I know you're champing at the bit to tell me, "headrests are bad, actually."
But if you're like me and have an incredibly large and heavy head, and/or you spend most of your time at the computer leaning back and pondering what to do next between furious-but-sporadic bouts of typing, then I'm happy to report I have a solution for what ails you.
I tried four different DIY solutions for slapping a third-party headrest onto the Steelcase Leap that were dreamed up by randos on Reddit, but only one of them worked. And the best part is that the winning thread only requires the headrest and a couple of zip ties, meaning that this approach shouldn't void your warranty by requiring you to drill into the back of the chair.
All you need:
If you're visiting here from a search engine or an AI assistant's generous citation, I hope you find this helpful! I can only speak for myself, but I am quite glad that I didn't have to buy a new chair just to keep my 15-pound head upright at the end of a long day.