Press "Enter" to skip to content

Author: Kerrick Long

Useful Work Produced by People We Find Reprehensible

It can be hard and downright painful to grapple with the idea that people we find reprehensible in their personal lives might also be capable of producing work that is beautiful, moving, or useful to us. How we handle and process that information and how we choose to move forward is part of our work.

Chapter 6, Slay the Art Monsters, Keep Going: 10 Ways to Stay Creative in Good Times and Bad, by Austin Kleon

“I am Antigravity. I am ready. Go.”

I was vibe coding with Antigravity tonight, and I broke it in the most bizarre way. With the repo at this commit and with a clean working tree, I gave Gemini 3 Pro (High) this prompt:

Check out my git tags. Check out my git log! Ope, check out my @CHANGELOG.md… And then write it.

For a few moments it seemed to chug along just fine, building a coherent Chain of Thought. Then it got weirder, and weirder.

Re: Affordances and Lean CSS

Stephen Margheim (fractaledmind) wrote Affordances: The Missing Layer in Frontend Architecture this month. This quick post is my reply to his great article.

I hear the objection already: “Isn’t this just… semantic CSS classes? We tried that.”

You’re right that we tried it. But “it didn’t work” deserves unpacking.

I was indeed objecting that in my mind. But I was not thinking, “it didn’t work.” I was thinking, “and it has kept working for decades. Obviously the utility-only workflow described is terrible; it’s why I refuse to choose Tailwind. How are affordances better than what’s worked for a decade?”

Re: More Fluent Method Signatures in Ruby

Shane Becker

Is this a hare brained /#Rails thought?

What if we named `type` with adverbs?

adjective (typical):
user.sync :full
user.sync :incremental

adverbs:
user.sync :fully
user.sync :incrementally

It reads more like a proper sentence to my eyes.
Instead of a Programmering Sentence™

December 14, 2025, 4:57 am 2 boosts 3 favorites

My Reply

I like this a lot. It makes me want to go even harder:

A New Best Practice for User Friendly 404 Page Design?

I clicked a link from a 2-year-old Hacker News thread, and Nielsen Norman Group served up a 404 page. On that 404 page, NN/G served up an educational message for visitors who arrive from ChatGPT, Claude, or another LLM:

(Did an AI chat send you here? They sometimes get URLs wrong or hallucinate nonexistent NN/G articles.)

Is this a new best practice for 404 page design?

Peter Coad Slams Alexander’s “Pattern” Theory. Is He Right?

Some researchers have suggested that a pattern is “a solution to a problem in a context,” citing Chris Alexander’s work in architecture (see the bibliography). Here are some thoughts on this.

  1. A pattern is a template, not a specific solution.
  2. Alexander’s “pattern” theory remains unaccepted by his peers.
  3. No dictionary supports his definition of the word “pattern.” (Although it is true that one may assign any meaning to any word, when a word’s meaning has been established over several millennia of human experience, it is probably unwise to do so.)
  4. Although “a solution to a problem in a context” is a compelling writing style–after all, nearly every sales letter follows it–that does not make an instance of that writing style a “pattern.”
Preface, Object Models: Strategies, Patterns, & Applications, Second Edition, by Peter Coad

With the publication of Design Patterns by the “Gang of Four,” Christopher Alexander’s pattern language format caught fire in software engineering. Three decades later, industry authors still publish book after book after book enumerating pattern languages. Even outside of software, the Alexandrian form continues to spread. From pedagogy to presentations, from activism even back to architecture, pattern languages continue to be mined and shared.

Re: Emily Bache on Ward Cunningham’s Fearless Refactoring

When I was a younger developer, I thought I knew how to make code better by, as the kids would say today, following vibes. Much later, a coworker gave me a copy of Martin Fowler’s Refactoring. I regret how long I put off reading it. Even later, I read Sandi Metz’s 99 Bottles of OOP and learned just how safe refactoring could be. Fearless refactoring is a skill that must be learned, and it is almost a superpower!

Acceptance Tests and Unit Tests as Documents First, Tests Second

The real reason [acceptance tests and unit tests] aren’t redundant is that their primary function is not testing. The fact that they are tests is incidental. Unit tests and acceptance tests are documents first, and tests second.

Chapter 7, Acceptance Testing, The Clean Coder: A Code of Conduct for Professional Programmers, by Robert C. Martin

As my wife and I were listening to Uncle Bob’s book on professionalism in software, this line surprised me. Maybe it’s just because I don’t understand tests as well as I’d like, but I had to stop and take note. He clarified exactly what he meant, too:

Learning to Code Without a Map: Mentorship and Entry Paths in the Post-Bootcamp Era

I’ve been disconnected from the junior and hiring scene since I stepped back into an individual contributor role. Recently, though, a friend of mine decided they wanted to get into the field. I poked my head up and looked around, and I was shocked at what I found. This talk is a great overview of what’s different today compared to six years ago, and what can be done about it.

I Vibe Coded a WordPress Plugin and Shipped it to Production

I haven’t written PHP for over a decade. I haven’t even touched it since 2017. But in the spirit of legitimate peripheral participation, I asked a couple of LLMs to write a WordPress plugin for this blog. Within 15 minutes, I had a proof of concept from ChatGPT. Next, I got Claude to generate an even better version in one shot. I iterated to add a feature and said, “Hey! It compiles! Ship it!

It was a fun experiment: a microcosm of failure, puzzle-solving, success, and iterative improvement.