Press "Enter" to skip to content

Kerrick Long (blog)

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.

Confessions of a Software Developer: No More Self-Censorship

I haven’t published since April because I’ve been afraid. I also avoided social media, news aggregators, and discussion forums for months. I’m done letting fear stop me. What was I afraid of? In this post I detail every single thing I’ve avoided admitting on this blog.

Ship Software That Does Nothing

You should ship software that does nothing. Absolutely nothing. I’m not being cheeky about this. I have no hidden meaning. The very first thing you should deliver when you start a new web application is absolutely nothing.

Many people will tell you to ship a minimum viable product. Others say to ship a prototype to get feedback. Not me. I think you should ship a blank page to your production servers on day one.

Kerrick’s Wager: on the Future of Manual Programming

It’s been a while since I’ve had a crisis of confidence. But tonight, I read Steve Yegge’s recent post, “Revenge of the Junior Developer.” In it, he lays out a vision of a future—only two years away—in which nobody writes code anymore. I felt a cocktail of anger, fear, worry, and disbelief. Then, I thought through the implications, and came up with a plan of action: Kerrick’s Wager.

What Books Should I Read to Learn ASP.NET Core and Blazor?

I’ve been paid to write web applications for over a decade, but my only exposure to ASP.NET has been as an API consumer on the front-end, and I’ve never touched Blazor. That’s changing—I’m learning how to be a full-stack developer. There are almost too many books about the .NET platform, so I had to choose a few to focus on. I started by reading the front matter: the title, cover, foreword, preface or introduction, and table of contents of 24 different books. This was enough to compare and choose the books that I’ll read as soon as possible.

But there are two top contenders for the first book, and I need your help deciding!

I also made a list of 3 books that I’ll read once I’m familiar with T-SQL and the Clean Architecture. 3 more books made my “someday” list—I have no specific plans, but I’d like to read them eventually. At the end of this article I’ll reveal exactly which books made the cut, and ask you to help me choose between two books to learn ASP.NET Core. But first, here are my thoughts on each book.

I Started Reading 26 Books About C# and .NET. Here Are the 2 I’ll Actually Finish ASAP.

I’ve been writing code for money for 17 years, but I’ve never used C# or any other .NET language. That’s changing—I’m learning how to be a full-stack developer. There are almost too many books about the platform, so I had to choose a few to focus on. I started by reading the front matter: the title, cover, foreword, preface or introduction, and table of contents of 26 different books. This was enough to compare and choose the 2 books that I’ll read as soon as possible. I also made a list of 7 books that I’ll read once I’m familiar with ASP.NET and Blazor. 6 more books made my “someday” list—I have no specific plans, but I’d like to read them eventually. At the end of this article I’ll reveal exactly which books made the cut. But first, here are my thoughts on each book.

Fizz Buzz, Object-Oriented Edition: Exploring the Open/Closed Principle With Polymorphism and Metaprogramming

Fizz Buzz, the children’s game turned coding interview question, requires little more than basic programming literacy to solve. But it has just enough complexity that it can also be used to illustrate some important tenets of object-oriented design through refactoring.

30,656 Pages of Books About the .NET Ecosystem: C#, Blazor, ASP.NET, & T-SQL

When I learned lean software development, I abandoned year-long planning at work and at home. This year, I broke my rule. I made a New Year’s resolution. I decided to broaden my skills so I could ship a full-stack enterprise web app completely on my own. No back-end developers, no product managers, no UI designers, and no vibe coding. Since I wrote Ruby years ago and Rails is having a Renaissance right now, I wrote down the following and taped it to my bedroom door: In 2025, Kerrick is a Full-Stack Programmer Develop & deploy Ruby on Rails apps, covered by automated tests, to real users. I cracked open the newest edition of “The Pickaxe,” devoured Agile Web Development With Rails 7, re-read The Well-Grounded Rubyist, pre-ordered The Rails 8 Way, and acquired Effective Testing with RSpec 3. I love learning from books—reading, reflection and elaboration, cross-referencing, memorization, and application…

Why I’m Learning C# and .NET After Two Decades of Programming

I’ve been programming for over two decades, and I can’t make a full-stack enterprise web application. The first lines of code I wrote were in GW-BASIC. When I was in eighth grade, I enrolled in a typing class. Students who finished their typing practice before class ended were given an extra credit opportunity: copying program source code. It was a fantastic test of applied accuracy, and I gladly participated. Eventually I started to pick up on some of the patterns I saw in those BASIC programs. I came up with my own programs—mad libs and simple calculators—and fell in love.