Joel Dueck ·

Port Watchers № 6

Welcome back to season 2 of Port Watchers!

I have had a very weird, recurring problem with the machinery behind this newsletter almost since I first started it. At least one of you already knows what I’m talking about, because it affected you. For months, I was stymied. My inability to understand or solve it caused me to feel I was not really in control of this thing and that it might go haywire at any moment. And this sort of lessened my enthusiasm for the whole endeavor.

Well in December, after a year of this, I finally figured it out.

So, we’re back!


Mercury Terminal

I’m working on a new tool, a static site generator built specifically for use with Punct. The new tool is called Mercury, and it comes with a homely little GUI macOS app called Mercury Terminal. As I often do, I’ve started writing documentation for the thing which isn’t finished yet, to help myself reason about it while I’m building it. You can read this documentation at joeldueck.com/what-about/mercury/. This is the first place I’ve shared the link! — and the only place I will do so for a while yet.

Punct, you’ll recall, is a language that mixes code with Markdown. It’s a great paradigm for cranking out web pages with lots of text on them, but it doesn’t provide any of the scaffolding needed to publish and manage a complete website. This was fine when I was only using it for one website. But now I am managing two websites built with Punct (and soon, a third, for Jess’s unreasonably innovative music studio), and I’ve had to duplicate a lot of that scaffolding. I found myself wishing for a more unified system, a way to avoid having the same functionality implemented three slightly different ways in three different codebases.

Also, I’m tired of typing commands, even short ones, just to post and publish stuff (and Jess would never stand for it either). Let us click buttons!

In Punct, every page is a program; in Mercury, every website is a package, naturally conversant with Mercury through the Racket package system, and with the author via Mercury’s GUI layer.

It’s a spare time thing, so I don’t know when it will be done. But it is probably 54% complete at this point. If you use Punct, or have thought about it, you might like using this too. To watch it evolve, for now, you can check back at the link above every so often.


There are already several other software projects with this name, and I may yet change it, but it was too apt to skip. And this is a home cooked meal for my own consumption, not a commercial product. So I pick the name I like. And “Mercury” the concept, like my project, is more than a simple entity; it’s a whole framework.

It is difficult to see the unity of all [Mercury’s] characteristics. ‘Skilled eagerness’ or ‘bright alacrity’ is the best I can do. But it is better just to take some real mercury in a saucer and play with it for a few minutes. That is what ‘Mercurial’ means.

— C.S. Lewis, The Discarded Image

Mercury is, classically, the god of messengers, quick wit, eloquence in language, crossroads, clerks and trade. Not so classically, he is (I bet) the god of the internet. The simple associations just mentioned get you to that conclusion, sure, but the affinity runs deeper: the associations are fractally apt. Focus on language, for example: language originates in the heat of Mercury and Sol, but by the time it reaches us, it has been made cold and bony; which ought to jive for anyone who has been tricked into arguing on the internet, where language is most proliferate and most futile:

They ache and freeze through vacant seas
Of night. Their nimbleness and youth
Turns lean and frore, their meaning more,
Their being less. Fact shrinks to truth.

They reach this Earth. There each has birth
Miraculous, a word made breath,
Lucid and small for use in all
Man’s daily needs; but dry like death.

— excerpted from “The Birth of Language” by C.S. Lewis

Mercury is also god of thieves, thus also hackers and free software:

The fusing action of Mercury is only temporary and is just one half of an influence which is continually joining and parting. …Mercury is ‘the god of theft’…because stolen property leaves its owner and is united to the thief, and then is typically divided up, fenced, and resold, before — sometimes — being regained by its original possessor. Componendo et dividendo is also applicable to the linguistic side of Mercurial action. Under Mercury, the meanings and spellings of words bifurcate and ramify but equally intertwine and overlap.

— Michael Ward, Planet Narnia

There’s very little in either Punct or Mercury, or any of my projects, that is really new. The only original element I bring is a fresh recombination of others’ ideas in a way that suits me specifically.


Maple Mono is my new favorite monospace font; I’m typing this newsletter in Maple Mono (specifically “Maple Mono Normal with no ligatures”). It’s similar to Codelia or Comic Code in that it has that warm, campy, handmade feel; but it sits up straight, like a Canadian mountie. It’s like coding on a Forestry Department trail sign (whereas Operator Mono and Intel One Mono are like coding on a tikki bar menu or a Gilligan’s Island set).

Martina Plantijn is my new favorite serif for personal use. I redesigned joeldueck.com around this font over Christmas (work still in progress), and am very happy with the result. I went through a phase in, oh, the early 2010s, in which I tried to make regular use of the original digitized Monotype Plantin, but had to abandon it. It looked good in specimens but couldn’t keep it from looking homeschooled in my projects. I always assumed the fault was mine. Along comes Martina Plantijn, which gets everything right that Digital Plantin got, obviously-in-retrospect, so very very wrong. Read about more about the differences and development at the link.


How exactly do they program traffic lights? What tools and algorithms do they use? Who are “they” and how did they end up in that career? What kind of oversight or regulation is involved?

If you know, please tell me.


Hypertext, tidied

In July, I finished the HTML5 printer I first announced in Port Watchers № 4 (a year ago!). It’s on the Racket package server and there is documentation and everything. I’m using it for my personal site at joeldueck.com and for my business site at opcraft.co — go ahead, View Source on either site and tell me your heart doesn’t just go pitter pat. It feels great to make, and use, a tool that feels right for the job.

But, you say, we already have a tool that is right for this job (HTML Tidy)? And yes, that is the tool I’ve reached for before now, and it’s still great. However:


Relevant by way of very old typography that is sloppy in interesting ways: what did you die of in the year 1665?


That’s all for now! More soon, but not sooner than a month from now.

I know we are rare creatures, but if you do know of someone who likes this kind of thing, consider forwarding it to them so they can sample and, perhaps, subscribe. I have no profit motive here! Of profit I do plenty of seeking and finding elsewhere. I would just like to be connected to more good people.

If you have anything to say or share, just reply to this email, or find me on Mastodon (@joeld@tilde.zone) and Bluesky (@joeldueck.com).

— Joel