Back in 2024, I jumped through a lot of hoops to get sidenotes working correctly here. I find that I’m happier writing when I can add notes (either footnotes or sidenotes), and sidenotes work better on the web on large-screen devices.
The biggest problem that I ran into was that Goldmark (Hugo’s default Markdown text render) doesn’t support sidenotes at all, and adding them to its parser seemed Rather Nontrivial for several reasons. The least-effort way to get sidenotes working was to switch Hugo from using Goldmark to Pandoc, which is a giant document conversion system (in Haskell!), and then using one of the 2 or 3 Pandoc sidenote plugins. It took a surprising amount of effort get Pandoc sidenotes working right, but I’ve been mostly happy with the output.
The biggest downside is speed. Hugo is generally seen as a fast static site generator, and with Goldmark it’s able to render this entire site in a few seconds. With Pandoc, it takes most of a minute. Worse, when running Hugo is “server” mode while writing, it can take 30s just to render individual page changes, and Pandoc can hang if I save changes while it’s trying to render.
That makes writing a pain.
So I’m going to make sidenotes work in Goldmark. How hard can it be, really?1Annoying hard, but not terrible, as it turns out.
Marcin Wichary at Unsung:
I’ve been emulating the Apple Lisa recently, and I was struck by how many of its UI strings were slightly or wholly different than what we’re used to.
It makes sense. Lisa came out in 1983 as Mac’s predecessor and really the first GUI that is directly linked to what we’re using today. Even though it borrowed things from work done at Xerox, tons of conventions were not established yet.
Standard.site provides shared lexicons for long-form publishing on AT Protocol. Making content easier to discover, index, and move across the ATmosphere.
Still reaching for that messy definition of container
I’m still delightfully jet lagged from the France trip meaning, early nights and early mornings, which suits me fine. It gives me time to read and reflect and to walk, this morning taking tim…
Will Manidis argues that the current AI/LLM boom is dominated by 'tool-shaped objects' — systems engineered to produce the feeling of work rather than actual output. His central metaphor is the Chiyozuru kanna: a $3,000 Japanese hand plane that exists for the ritual, not the result. He applies the same logic to the entire AI infrastructure stack — GPU clusters, orchestration layers, agentic dashboards — and concludes that the market for feeling productive reliably dwarfs the market for being productive. Diffusion into the real economy, he argues, will be slower and look structurally different from the consumption-led narrative currently driving institutional AI budgets.
A sparkline is a little line-graph with no axes or other unnecessary details. They're useful for getting quick understanding of what the data is showing. They're also really easy to create programmatically. This uses the SVG "polyline" which takes a list of x,y co-ordinate pairs. But can you spot the small problem? ⧉ SVGsvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 124" …
Mobile Game UX Patterns That Casino Developers Are Copying (and Why It Works) - The Tech Block
Mobile game UX has changed how people interact with apps at a very basic level. Users now expect fast feedback, low-friction navigation, and clear progress signals from the first tap. That expectation does not stop at puzzle games or strategy titles. Casino and betting apps now borrow many of the same UX patterns because they
Search NYC by what you can see. An open-vocabulary semantic atlas for querying urban elements like scaffolding, murals, awnings, trees, and more. Created by Sean Hardesty Lewis.
Goofball's Double-Sided Wall Clock for the Home - Core77
Double-sided wall clocks have been the domain of institutions and train stations, particularly in Europe. But Turin-based product brand Goofball reckons they have domestic appeal. Here's their Perch Clock: The clock runs on two AA batteries, so no hardwiring is required. To change the