Apr 24 27 2024


So, Thursday I had planned to implement a nifty feature that had been on the wishlist roadmap for two years. The point is to embed some objects other than images in the text presented in the Tinderbox text pane. The task requires a class called NSTextAttachment which is poorly documented, even by Apple’s standards. Here’s how it went.

Thursday morning: OK: this should be fine! Wonder why I waited so long? Let’s get it done.

Thursday midday: That’s strange: it works OK, but as soon as I save a reload, it’s gone. Hit Stack Overflow: almost nothing of use. Hit Google: one old post suggests a really clumsy way of doing persistence. Try it: it works — until I save the file. At that point, *>poof<*.

Thursday night: This is a total disaster. Perhaps there’s a solution, but this isn’t it. Unpack “Oh shit, Git!” (which is hilarious and very good) and rewind to the start of Thursday morning. Abandon hope, also the project.

Friday morning: Wait! Think about it the other way around. Imagine that you were the Apple engineer who wrote this mess. The main task is just embedding images in text, and that works. Yet this engineer wrote the API we have, which seems cockamamie, and also wrote the persistence we have, which is completely undocumented. If I had wound up in this place, what might I have been thinking about? Use that guesswork to start over.

Friday evening: What do you know? It works! By “it”, I mean a non-functional trial balloon, but by George, I think we’ve got it!

Saturday morning: What we’ve got, in fact, is a mess. Code smells from here to the horizon: indecent exposure everywhere, downcasts, and weird hacks that have to be explained in comments. Up with this we cannot put: place all Saturday plans on hold, because this cannot wait.

Aside from the total rollback, in which I indulge perhaps once or twice a year, this is pretty much what it’s like.

Apr 24 22 2024


I’m recovering from a close encounter with modern dentistry, and I forgot to marinate the meat for a carne asada last night. I went surfing for things to do with what I had on hand. Here’s what I ended up doing, from the bottom up:

  • large slice of toasted brioche (excess from brunch French toast)
  • two slices of lox (from the brunch I’d planned, but my poor teeth weren’t up to bagels)
  • six spears of grilled asparagus
  • two poached eggs
  • a sauce of 2T mayonnaise, juice of 1 lemon, a dollop of good mustard, a slug or two of olive oil, salt and pepper

I was leery of that sauce, which pretty obviously assumes that the site’s audience isn’t up to Hollandaise. But Hollandaise is notorious for sensing weakness, and I guess in this situations I myself wasn't up to Hollandaise, or even to making my own mayonnaise. No worries, it was all very tasty indeed.

One of the odd joys of citation is coming across a footnote that cites something you don’t remember writing. From John Hartley, How We Use Stories And Why That Matters: cultural sciences in action, New York: Bloomsbury, 2020 p. 102.

[Footnote] 15. An unusually direct statement of this tension can be found by Mark Bernstein, an editor of The Victorian Web: ‘Classical architecture is a universal architecture of precision, planning, and control. Each element has its proper place and size, and each is subordinated to the greater plan. In antiquity, classicism was the architectural language of empire; in the nineteenth century it was the language of manifest destiny and of a Republic taming the wilderness; in the twentieth century, it became the language of fascism. Ruskin expounded an (admittedly ahistorical) vision of the Gothic in opposition to the Classical, emphasizing savageness and changefulness as the touchstones of the Gothic. Changefulness refers to continuous change, as the vaulted rib has no single radius of curvature but changes continuously as it flies. Savageness refers to clean breaks, to asymmetry, to unique work expressed by different hands where structural constraints allow such variation.’

I rather suspect that “unusually direct” here serves as a tactful way of saying “foolhardy.” Still, it’s fun. Hartley found this through a 2014 blog of René Merle, which is flattering in itself. Alas, that weblog seems to be lost.

Michael Dirda.

Replace books where you found them. Don’t carry on loud or long conversations. Don’t boast to the owner or manager that the old paperback of Jack Vance’s “The Dying Earth” priced at $5 is actually its scarce Hillman first edition worth $100. Do look at the books themselves, not at a handheld device that indicates what they sell for online. Otherwise, prepare to be quietly and justly reviled by those around you.

See: Browsings.

Ross Douhat (NY Times).

The left-wing temperament is, by nature, unhappier than the moderate and conservative alternatives. The refusal of contentment is essential to radical politics; the desire to take the givens of the world and make something better out of them is always going to be linked to less relaxed gratitude, than to more of a discontented itch.
Apr 24 4 2024


Anna Gin writing on Telegram (in Russian). Nadin Brzezinski observes that, if you didn’t know this was written yesterday, you could easily think it was a diary from 1943. I took a stab at fixing up Deepl’s translation.

Today I stopped by my favorite flower store on Kharkov’s Avenue of Heroes. I was thinking that, if the electricity goes out during the day, I will tidy up the balcony. I will wash the windows, take out the flowers, and I’ll transplant the shoots because the roots are already kilometers long.
It's spring. No matter what.
The sales girl meets me on the doorstep. She says: “Oh no, what are you thinking? Begonias on the balcony this early? There might still be frost at night.”
And we stand in the amazing-smelling shop with the garden roses, and together we watch the weather. The siren squeals. We look at each other, and silently move away from the windows to the fertilizer section, and we talk about the dracaenas waking up from their winter hibernation.
God, I love my city.

Image: Kostiantyn Vierkieiev, Kyiv, via unsplash.

How we’re approaching theming with modern CSS, by

Based on Cube.css. More on cube here.

You have to make not just decisions about pixels, but also high-level organisation decisions which the design system helps to solve. Design system work is actually diplomacy work, a lot of the time.

Rebecca Solnit wants a joyous, inviting Left — not an angry, Puritanical one. Interview with Anand Giridharadas.

“There's a kind of absolutist idea that doesn't accept imperfect and interim victories, even though that's probably all we'll ever get because the total revolution, paradise on earth, is not in my view going to happen.”

Lessons from the experts, Ton Zylstra and Elmina Wijnia.

How To Unconference Your Birthday

From Madison House Chef. Tasty, and not too tricky.

The consensus is that these savory muffins are too sweet, and could use a bit more cheese.

by Patrick O'Brian

A very fine time at sea, revisiting part of what really was the great historical fiction series of the century. Wonderful characters, tons of detail, a very fine sense of place (and that place is often afloat), and a deft avoidance of perfunctory scenes.