Why Even Write Code in a Professional Context?

October 19, 2026

I wish I’d retired before the industrial revolution of computer programming happened, but I have not and cannot. So I must come to grips with the fact that in many cases, AI-powered tools can do a perfectly fine job of writing code. The following is a brief pursuit of the facts as I see them and I just can’t see how in any professional workplace, it makes sense to write code by hand any more.

I'm Gonna Write About AI So I Can Process What is Going On

October 15, 2026

Beginning a job search, it’s clear that to stay in technology means to be in the orbit of AI and AI-generated code, and I need to come to terms with this and figure out how to navigate it. As such, I’m going to start writing more about AI. I process information via writing, so here we are.

Trying Linux Desktop Yet Again with More Success

March 11, 2026

Almost a year ago, I returned to the Linux Desktop after almost 20 years. I abandoned it a month or so later out of frustration with a surprising lack of configurability and general exhaustion of addressing the myriad papercuts that come with trying to change computing platforms.

In the last few weeks, I’ve revisited it and had a lot more success.

The Death of the Software Craftsman

February 23, 2026

The death of a software craftsman
Well, it happens a lot ‘round here
You think quality is a common goal
That goes to show how little you know

Developers work hard over the years to cultivate tools and techniques to improve the quality of the construction of their software. These tools and techniques are slowly becoming even more useless than they may already be. We must adapt by either going all-in, totally opting-out, or finding a middle ground by tracking the AI code-generation craze to fill the gap as a hand-coding artisan.

☞ Confirmation Dialog with BrutRB, Web Components, and no JS

August 18, 2025

I created a short (8 minute) screencast on adding a confirmation dialog to form submissions using BrutRB’s bundled Web Components. You don’t have to write any JavaScript, and you can completely control the look and feel with CSS.

There’s also a tutorial that does the same thing or, if you are super pressed for time:

<form>
  <brut-confirm-submit message="Are you sure?">
    <button>Save</button>
  </brut-confirm-submit>
</form>

<brut-confirmation-dialog>
  <dialog>
    <h1></h1>
    <button value="ok"></button>
    <button value="cancel">Nevermind</button>
  </dialog>
</brut-confirmation-dialog>

Progressive enhancement, and no magic attributes on existing elements.

Please Create Debuggable Systems

August 06, 2025

When a system isn’t working, it’s far easier to debug the problem when that system produces good error messages as well as useful diagnostics. Silent failures are sadly the norm, because they are just easier to implement. Systems based on conventions or automatic configuration exacerbate this problem, as they tend to just do nothing and produce no error message. Let’s see how to fix this.