Press "Enter" to skip to content

Category: Quick Posts

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.