Abstract icon of a window overimposed at an angle over distant green hills with the setting sun behind them.

Nosy Cat Studios

Programming on a human scale

Welcome to my hideout! Depending on where you're coming from, you might know me as a programmer, occasional artist and/or enthusiast of the small web.

I was a professional web developer for fifteen years, but started on Geocities like many others, and returned to the old craft after burning out of the industry.

Special interests in no particular order:

This website started out as a mirror of my homepage, but the plan is to let them diverge in time.

My beliefs

There's magic in the world. Not literal magic, the metaphorical kind. But it's there.

Miracles happen. Not the literal kind. But they do happen.

You get signs from above. Not the real deal. But pay attention and you'll notice the universe speaks to you.

About this site

This site is twice an experiment:

I've relaxed the second rule as of March 2025, after adding another page.

Programming

Be consistent.
Be nice.

— Perl style guide

Hot take #1: HTML is a programming language.

Hot take #2: in a world addicted to computers, everyone should have a clue how computers are programmed.

Hot take #3: programming has to serve human needs, and the most important skills involved are social.

If you're going to read one thing about it, read The Little Printf.

That's what I mean by human-scale programming: thousand-line programs with a handful of users that do good work anyway, and matter to someone. Programs you can write with a text editor, no need for a multi-gigabyte IDE. Projects you can manage with a piece of paper instead of enterprise planning software.

There's enough of the latter out there. It's long past time we start righting the balance again.

HTML

HTML is a programming language. There, I said it.

It's a programming language because it lets people tell the computer to do cool stuff. In this case, show all kinds of things on screen. That's not much, you say? So what. It's fun. Meaningful. Often even useful.

So, you can't use HTML to perform computation. Big deal. It's been a long time since computers were all, or even mainly, about computation. Deal with it.

HTML5

I once described HTML5 as an admission by manufacturers that major browsers never truly implemented the previous 4.0 standard. That's a bad thing; as a friend pointed out, web standards are now dictated by Google, and we're even worse off (in this regard) than two decades ago before Firefox came out. But at least we're more honest now about how the web actually works in practice.

Besides, you can use it for example to add graphics right into a web page via SVG.

SVG

I like vector graphics because you can tell the computer, "here's a blue box, there's a red circle and on top of them it says 'geometry' in big letters". I prefer this way of thinking about art; it's not just splotches of color.

I like SVG because you can turn an image description into code much the same way you'd write a web page (in fact it's also a web standard).

Even better, with modern browsers you can embed SVG in HTML, thus making text and art equals on the web.

Space Battle An abstract space station fires beams of red light at the viewer, under an orange sun. A neon grid seen in perspective covers part of the image.

Tips

SVG supports <title> and <desc> elements. One of each can be placed right at the start of a drawing and/or group of shapes. In embedded SVG, title elements are displayed as tooltips, and descriptions as alt text by browsers that can't render the image.

Small Web

The small web has many faces. Everyone can participate in their own way. Static versus dynamic? GUI versus command line? These are all false dychotomies. People are smart, they can learn. If anything, money is a bigger problem in 2025. Even so, there are plenty of options for hosting a website. So what's important? Community, obviously. That goes without saying. Now let's see what else.

Approaches

The best way to make a website is whatever floats your boat. That said, each way to do it has ups and downs.

Handcrafted pages

Pros:

Cons:

Handcrafting websites requires a modicum of technical knowledge. See: tips.

Static site generators

Pros:

Cons:

Static site generators require more technical knowledge, in particular about the command line; they're often called a solution for programmers.

Content management systems

Pros:

Cons:

Content management systems are convenient, but can take control away from the webmaster. They're still a viable choice.

Web design tips

(for handcrafted sites)

Also: don't try to manually update a "last modified" date at the top / bottom of the page. You'll forget all the time. That's what wikis are for. Instead, drop hints throughout the text as to when each part was written. Simple references to a year and month or major event help a lot.

Communities and resource collections:

Voices of the movement: