If you’re a reader in the United States, go vote! And if you’re an AI user generating images like the one above, at least give credit to the original cartoonist, Adam Ziglis. There are a lot of these going around, and most of them have people that look like those in the current crop of […]
The ongoing conversation
Blog
Work, technology, games, books, and the things that catch my attention.
A Backup Passed Its Checksum. Could the Site Actually Run?
A passing checksum tells you the backup file is the same file you created, but it doesn’t tell you the site can be restored from it. Take a fictional small-business website with a nightly database dump and a copy of its uploaded files. The dump finishes, the copy matches its checksum, and the dashboard turns […]
One Notes Field, Many Rendering Contracts
Adding Markdown to a long-running catalog sounds like a single decision: install a parser and turn plain text into HTML, but in a mature database, “Notes” isn’t one place. In the Grand Comics Database (GCD), there are notes on issue records, creator biographies, brand groups, reprint relationships, and character appearances. Some notes sit in a […]
An Analysis Branch Shouldn’t Rewrite the Game You’re Playing
Undo sounds simple until there is more than one person at the table. If I take back a move, whose move was it? Does the other player agree? What happens to the line of play we already explored? Those questions are easier to answer if analysis is separate from the live game. Imagine a chess-like […]
The Jobs Your Scoring Model Never Gets to See
A blank job-title field doesn’t necessarily mean an unrestricted search. In a job-search application I’ve been developing, a search with no manually entered titles could use suggestions drawn from the user’s resume. Those suggestions narrowed the search before the AI model scored the postings, so a missing job could be a filter decision the user […]
Setup Is Allowed to Change the Board. Reload Isn’t.
A saved game should let you continue making questionable decisions from where you left off. It shouldn’t give you a fresh board and pretend those decisions never happened. In my Goblin Slayer work in Tabletop Simulator, setting up the cave and loading a game in progress have different jobs. Setup can arrange the cave tiles; […]
One AI Course, Several Starting Points
If one person in an AI workshop needs help finding the prompt box and another is building an application around it, “follow along” leaves a few things unspecified. You can give them different amounts of help while still expecting both to check whether an answer is supported. For a fictional exercise, suppose a community group’s […]
One Security Alert, Five Places to Fix
An urgent PHP security alert arrived on October 21, 2026. Working with Codex, I checked which of the sites I maintain were affected, then authorized the repairs for this website, Dayton Hash (DH4), its staging environment, and the Miami Valley Orienteering Club (MVOC). Those four website environments turned into five places to fix when I […]
What Disappears When Your Table Fits the Screen
A review queue can fit neatly on a phone and still leave the reviewer guessing which item to open. Hiding a column solves the space problem; whether it solves the user’s problem depends on what was in the column. In the Grand Comics Database‘s Changes Under Review queue, the State column disappeared on narrow screens, […]
Modernize for the Person Who Will Maintain It
A website rewrite can give its users a familiar screen and leave its next maintainer with an unfamiliar application. Someone still has to find the rule behind a wrong number, work out why a save failed, and make the next change without breaking the last one. That person belongs in the framework discussion. In the […]