Jay McGavren
jaymcgavren.bsky.social
Jay McGavren
@jaymcgavren.bsky.social
Author of the O'Reilly Media books Head First Ruby and Head First Go. Software developer with 20 years of experience.

Portrait by https://dribbble.com/drawsgood
There must, and shall, be justice. It's in society's best interest for that justice to be provided by the COURTS. Equally, to ALL races and classes.

But if the courts can't or won't, well, there are other ways.
February 8, 2026 at 5:25 PM
My session tonight has me thinking the Silhouette Portrait is actually pretty decent hardware (precision-wise), controlled by absolute shit software.
February 8, 2026 at 7:49 AM
Discovering that if you want to join multiple sheets of cardstock cut on a vinyl cutter together using the slot-and-notch method, you can't just cut single lines for the slots. The cardstock is actually about 0.24mm thick, so you'll bend it to heck trying to insert the slots in each other.
February 8, 2026 at 7:39 AM
There's a quote (can't find the source) that says "Any tool that is incapable of making something ugly is also incapable of making something beautiful."

I think of that a lot when trying to work with Silhouette Studio. It's a toy, not a tool. #VinylCutters

www.reddit.com/r/silhouette...
February 8, 2026 at 5:16 AM
There is a great quote: "Any tool that is incapable of making something ugly is also incapable of making something beautiful."

I'm trying to find its source.

Google AI has by turns attributed it to John Carmack, Bjarne Stroustrup, and Frank Lloyd Wright. And won't give me any sites quoting it.
February 8, 2026 at 5:12 AM
Personally I like Kind Words a lot better than Kind Words 2. And 1/3 of this demo is "street conversations", which I think is the most awkwardly-designed feature of Kind Words 2. But if it gets more people to try Kind Words, I'll share it! store.steampowered.com/news/app/107...
February 8, 2026 at 2:44 AM
Need to inline images or sound clips in a .html file? I vibe-coded a #Ruby script that Base64-encodes multiple files in JSON. gist.github.com/jaymcgavren/...
February 6, 2026 at 12:19 AM
I don't like this (yet), but zsh errors by default if no files match a glob:

% echo *.gif *.webp *.jpg *.jpeg
zsh: no matches found: *.jpg

"setopt NULL_GLOB" disables the error:

% setopt NULL_GLOB; echo *.gif *.webp *.jpg *.jpeg; unsetopt NULL_GLOB
carlton.gif cool-doge.gif werecow.webp
February 5, 2026 at 9:28 PM
The how-dishwashers-work guy does your homework for you again, this time on the electric grid vs. fossil fuels.

"The basic realities of economics mean that photovoltaics are... frankly, unstoppable."

youtu.be/KtQ9nt2ZeGM...
January 31, 2026 at 5:18 AM
Trying to follow individual news stories is useless in the face of Republicans' spammy "flood the zone" distraction strategy. Instead, actions need to be reviewed in aggregate, like this: www.nytimes.com/interactive/...

It's exponentially harder, of course, which is why so few outlets can do it.
January 29, 2026 at 8:26 PM
False rumor: "Haunted Chocolatier will be abandoned, content will be added to Stardew Valley instead"

Unreal how greedy some players are. They just don't want to pay for a new game.

Stop spreading these rumors. It confuses buyers, which hurts the #IndieDev .

www.gamingonlinux.com/2026/01/star...
January 29, 2026 at 7:53 PM
I listen and in my mind I see dithered 256-color cumulus clouds drift by. Beautiful album. npccc.bandcamp.com/album/geocit...
January 26, 2026 at 3:09 AM
Donald Trump is an embarrassment to all Americans.

"After Mr. Trump’s decision to pull back on tariffs, some attendees texted their peers a single word: “Taco!”

The term is short for Trump Always Chickens Out..."

www.nytimes.com/2026/01/21/u...
January 23, 2026 at 8:48 PM
A lot of developers are going to be traumatized if anything ever happens to #GitHub. 10 years ago it seemed like they'd be around forever. Literally my life's work is in there.

Yeah, it's Git, so you can get the code out first. But how much of your context is in the PRs and not the commit comments?
January 23, 2026 at 4:26 PM
I mean, it's not zero, but a human life is literally worth less under a Republican administration. Without the rule of law, quality of life is less, what you can accomplish is less. www.nytimes.com/2026/01/21/c...
January 21, 2026 at 6:52 PM
Gorgeous PC demo: Still - Intrinsic Gravity youtu.be/6dXg6Ty3uQE
January 19, 2026 at 1:18 AM
"Interest will drive you to work harder than mere diligence ever could."

www.paulgraham.com/greatwork.html
January 18, 2026 at 4:32 PM
Grab the Tea for God demo, but only long enough to test whether the concept works for you. www.meta.com/en-gb/experi... The full game is much better. www.meta.com/en-gb/experi...

Not that I'm saying it's great. I'm left wanting more. But as a proof of concept it's compelling.
January 16, 2026 at 6:29 AM
Both Google Assistant and Gemini have ceased to recognize the command "navigate to X". Google Assistant used to open Maps and start navigation. Now it just says "I don't understand." Gemini, even worse, requires you to interact with the touch screen, potentially deadly while driving. #Android
January 11, 2026 at 11:54 PM
An individual should not unilaterally customize a resource (such as a maker space) that has to be shared with other people. In shaping it to their own desires, they are likely going against the desires of other people. Democracy must prevail over do-ocracy in this case.
January 9, 2026 at 7:55 PM
Shaming is absolutely abused. But not all shaming is bad.

"shame is often communicated publicly for a range of more politically acceptable issues... prejudice; bullying; smoking; and domestic violence, among other things."

theconversation.com/the-power-of...
January 2, 2026 at 8:27 PM
Humans don't take the time to learn history, and so they repeat it. They can only learn the hard way.
January 2, 2026 at 8:16 PM
I am SO sick of not knowing what web browser links will do when I click them. New tab? Same tab? Middle-clicking would give me certainty, but often that doesn't work because links are controlled by JavaScript. 😠
December 22, 2025 at 3:28 PM
Just set up a new MacBook Air using Migration Assistant and it worked brilliantly. And I know it only worked because of two decades of stalwart defense of best practices (documentation, ease of use, shaming of devs who chose to deviate) for storing app configs. Thank you to the maintainers.
December 20, 2025 at 6:59 PM
More #LaserCutter ornaments for #Haxmas, this time in acrylic! @heatsynclabs.bsky.social
December 20, 2025 at 3:36 AM