Skip to main content
Thudfactor: Heavy.
Last update:


Banner that reads We do this not because it is easy, but because we thought it would be easy.

Think twice before using your hammer to drive screws

Sometimes developers will solve problems with the handy tool, not the right tool, just because it seems like less work. It's probably not.

A very life-like sculpture of a security officer.

The Regrettable State of Cross-Browser Testing

Update-by-default has pushed the platform forward, but has also put browser testing out of reach for many

A fortune from a fortune cookie, which reads Be content with your lot, one cannot be first in everything.

Uptake of the new CSS seems slow. Why?

There’s so much great new stuff in CSS, some of it with extraordinary support. Why aren’t people leaping on it?

A sunny day at Pandapas pond, with the bright blue sky and scattered clouds reflected perfectly in the water.

Adventures in VIM part 2

The continuing story of migrating my brain from VSCode to vim

A weathered pier stretches out across a calm water in an overcast sky.

Adventures in VIM part 1

Some thoughts on the first view days using neovim

A short columnar flower blossom with tiny, white and blue blossoms.

Seeking a new editor

Some thoughts about changing up my typical toolset

Popovers and Dialogs, a (kinda) case study

The differences (and similarities) of the new Popover API and the Dialog element.

Some rules about making rules

My first one is “never call them rules.”

Is CSS a programming language?

And why does it seem to matter to so many people?

A closeup photo of a Jacquard loom, a large wooden contraption with many threads attached and a thick stack of punch cards.

“You could hear these looms”

In which I argue that the real enemies are not robots, but the people who own them.

“Keeping up” should not be an extracurricular activity.

Businesses that don’t strive for perfect efficiency are more creative and have happier employees.

Using modern font stacks

Goodbye Google Fonts, hello (again) system fonts

Maybe sometimes you should use pixels

The conventional wisdom is that you should not use pixel units, but maybe sometimes you should?

Thudfactor has gone super retro

An explanation and apology of sorts for things looking like 1992 around here.

A page set with moveable lead type

Real Punctuation for Programmers

How to give your UI a more polished look just by using the correct punctuation.

A mostly empty, modern auditorium with musical instruments set up on the stage. The picture has been taken from the balcony. Small box seats are visible to either side. A screen on stage promotes details of the NPR show Mountain Stage

The underappreciated reason Google is useless

Search Engines have been overwhelmed by SEO spam, but is the struggling open web part of the problem?

A picture of a code sample showing CSS being assigned to a string, but without any visible syntax coloring.

Syntax coloring in template literals

Template literals are great for assembling bits of CSS and HTML in Javascript, but what about the syntax coloring?

Oatmeal with blueberries and slivered almonds in a blue bowl

Instant Pot steel-cut oatmeal

The easiest way I know to make oatmeal that doesn’t come in an envelope.

A closeup of Medusa’s sneering face from the 1981 movie “Clash of the Titans”

Prefers reduced motion

Supporting your site visitors who have motion sensitivities.

A picture of a flower doctored so that the leaves and blossom are brilliant green and purple on the left, but fade into shades of grey on the right.

Exploring HSL

We continue exploring color in CSS by taking a close look at HSL.

Closeup of tiny red, green and blue LEDs arranged in a matrix for a display.

Exploring RGB

We begin exploring color in CSS by taking a close look at RGB color.

Twenty-two corinthian columns arranged in a rectangle in a field, supporting nothing.

Web development of auld lang syne

Removing any form of CSS post-processing has me nostalgic for the other web development strategies that have become obsolete thanks to modern development strategies.

AI art of a bunch of gerbils riding an antique-looking open-top car across a dry lake bed, a cloud of dust behind them.

AI integration: challenges and discoveries

I spent a couple of weeks diving into coding _with_ AI, and there are a lot of challenges. The most concerning, however, have very little to do with the technology.

AI art of a large spaceship with many antennae and protrusions landing in a fog-filled forest canyon.

Some notes about working with AI Art

AI art is often described as just “writing a prompt,” but of course it’s more difficult than that.

Still from a Coyote / Road Runner cartoon. The Coyote holds a business card saying Wile E. Coyote Super Genius

User-initiated element resizing in CSS

CSS offers a browser-native way to make elements resizable, but it comes with a lot of limitations.

The cockpit from Airplane the movie. Left to right, the Autopilot, Elaine, and Ted.

A month (or so) with GitHub Copilot

Some thoughts on GitHub Copilot, the AI-powered code assistant.

A page set with moveable lead type

Article typography

Three CSS typography properties to improve your site’s readability

Cato, an orange and white cat, looking at the camera and loudly meowing.

Here is a cat picture

John discusses the history of HTML’s image tag.

This is an alpha

The Thudfactor First Post