Jack Harrhy
Linkblog /2025/05/29

History of chessmen, Shopify improves Import Maps, Angular v20 networkable signals, SQLite Railroad Diagrams, My website is ugly because I made it, Sahil's DOGE diary, Closed captions on DVDs are getting left behind, Saying Bye to Glitch, selfhosted static video site via hyper8.

Don Kirkby - Visual history of chessmen

When you or I think about chess, what pieces do we picture? What pieces do people in other countries picture? What did people in the past picture? This is a timeline of chess set designs through history.

From:

my-dads-chessboard.png

To:

still-my-dads-chessboard-hes-a-nerd-as-well.png

Boards galore.

Yoav Weiss - Resilient Import Maps - Better Theme Development and Beyond

Import maps are great for both performance and developer experience, but their original limitations made them hard to use, especially at Shopify’s scale. We stepped up and pushed changes across the HTML spec, Chromium and WebKit to fix these issues at the web platform level. Now, developers can interleave JavaScript modules and multiple import maps on their HTML pages without worrying about correctness issues.

Shopify discusses import maps, which if you don’t know, permit you to do this:

<script type="importmap">
  {
    "imports": {
      "square": "./modules/shapes/square.85738f8.js",
    }
  }
</script>

<script src="square_draw.f9a7f1b.js" type="module"></script>
// square_draw.f9a7f1b.js
import { draw } from "square";

draw();

But, they ran into two problems which made them frustrating:

  • No module was allowed to load before the import map was loaded.
  • Import maps were similar to highlanders - there could be only one.

Now, other people would either learn to work with these restrictions, or just not use import maps.

But if you’re Shopify…

We ran this by Domenic Denicola and Hiroshige Hayashizaki, got their early thumbs up, and moved the discussion to the HTML spec, to hash out the details in a broader forum. Guy Bedford, the author of the ES-Module-Shim polyfill and the one who reported many of the original issues also chimed in.

Together, we crossed all the Ts and landed the spec change. In parallel, we implemented the feature in Chromium (with reviews from Domenic & Hiroshige), and eventually shipped it. After a positive position from the WebKit team, we also landed it there (Thanks to Anne van Kesteren and Yusuke Suzuki for their help and reviews!).

…you just work with the folks behind the spec to change it.

Very nice.

Minko Gechev - Announcing Angular v20

Angular stabilizing support for signals, while also outlining a new API for doing web request things within the context of signals:

@Component({
  template: `{{ userResource.value() | json }}`
})
class UserProfile {
  userId = signal(1);
  userResource = httpResource<User>(() => 
    `https://example.com/v1/users/${this.userId()}`
  });
}

Which works like so:

The snippet above will send an HTTP GET request to the URL we specified every time when the userId changes. httpResource returns HttpResourceRef which has a value property of type signal that we can directly access in the template. The userResource has other values, such as isLoadingheaders, and others, as well.

This is nice.

Jordan Eldredge - SQLite Railroad Diagrams

Programming languages (including SQL) are generally defined in terms of formal grammars.

[Sqlite generates] these delightful “Railroad Diagrams” that work more like little choose your own adventure flow charts.

I remember running into these before the days I knew how databases worked, and felt overwhelmed, but now that I do have existing knowledge of the SQL syntax, these are quite cool:

Screenshot 2025-07-30 at 11.23.58 AM.png

Taylor Troesh - My website is ugly because I made it

If my mom wanted good art on her fridge, she could’ve purchased reprints of works by Vermeer, Lichtenstein, Wyeth, etc. But she didn’t want good art – she wanted my art.

Somebody with good taste could’ve made my website, but then it wouldn’t be mine.

I love the homepage of taylor.town, as Taylor himself discusses the CSS behind the random tiling / font change / spacing of the text said home page, which currently looks like this:

Screenshot 2025-07-30 at 11.33.30 AM.png

I say currently, since as with any good long-lived personal website:

Soon it will become something else entirely. Because it’s my website and I’m perpetually becoming somebody else.

My current site design is nowhere near as avant-garde as Taylor’s, but I also don’t feel like I fit into the mold of cookie cutter templates, my website is mine, and I’m personally a big fan of it.

Maybe one day my mum will print out a screenshot of my homepage on her fridge…

Ben Werdmuller - Sahil Lavingia’s DOGE diary

Ben covers Sahil Lavingia’s “DOGE Days” diary.

I personally don’t think his decision to join DOGE was defensible, but there are lots of interesting details in Sahil Lavingia’s diary of the 55 days he worked there.

For example:

“I was excited to help in-source VA’s software, but I was also realizing why so much of it was outsourced. For example, I was constantly constrained by my restricted government laptop, which made it difficult to write and run code. I couldn’t install Git, Python, or use tools like Cursor, due to government security policies.

Fixing the root of the problem–making it easier for employees to execute–would require congressional intervention, and it was more practical to continue spending lots of money outsourcing the software development to contractors.”

I’m also no fan of DOGE, but it is interesting to see even with the amount of bulldozing done by Musk and gang, contractors like Sahil were still extremely stunted by what they could ‘legally’ use to complete their tasks.

Technology Connections - Closed captions on DVDs are getting left behind

Another great dive by Technology Connections, covering the history of closed captioning, its implementation into the DVD spec, but newer DVD systems opting to not support the feature over HDMI, while still sending it over the composite stream.

Pirijan - Saying Bye to Glitch

Here lies Glitch, a place on the web you could go to write up a website or a node.js server that would be hosted and updated as you type. 🥀 RIP 2015 – 2025.

Seeing Glitch die has been quite sad :(

I co-created Glitch at Fog Creek Software. I laid out the original product vision for web development with real code that was as easy as editing a Google Doc, designed and built the editor, started the community site, and of course drew the logo and many of the illustrations.

Sindre - selfhosted youtube channel lol

two months ago I discovered hyper8 - a static site generator for video publishing! right away I thought, this, this I want to host for my own video content that I’ve made.

I have so many old videos that could use a home on the internet, what a cool project.