
DragonFire laser being tested in 2024, via Wikipedia . Welcome to the reading list, a weekly roundup of news and links related to buildings, infrastructure, and industrial technology. This week we look at NIMBYism and aesthetics, defibrillator drones, railway track detonators, a proposed mach-23 space gun, and more. Roughly 2/3rds of the reading list is paywalled, so for full access become a paid subscriber. NIMBYism and aesthetics A common opinion I hear about opposition to new housing constru...

Common JavaScript patterns. Common JavaScript patterns.

I recently replaced my son's broken PC with a 2015 iMac from eBay. Here's how it went...
A year or so ago, my wife and I gave our oldest son a spare computer we had lying around. This was mainly for homework, but also for some light gaming, like Minecraft and Super Tux Cart. The machine was actually the little home server I built a few years ago.
At 6 years old the motherboard decided to give up the ghost and blew. After talking to him about it, we decided to look for something a bit sma...
Size Matters
Nov 28, 2025
TigerStyle is pretty
strict about some arbitrary limits:
…we enforce a hard limit of 70 lines per function …
… hard limit all line lengths, without exception, to at most 100 columns …
At the same time, we have a few quite large files, to the point of having to explicitly exclude them
from our “no large binary blobs in the git history” policy:
tidy.zig#L746 .
Just how large should you make your functions/classes/files? I have two a...
There are now multiple AI performance engineering agents that use or are trained on my work. Some are helper agents that interpret flame graphs or eBPF metrics, sometimes privately called AI Brendan ; others have trained on my work to create a Virtual Brendan that claims it can tune everything just like the real thing. It sounds like my brain has been uploaded to the cloud by someone else who is now selling it (yikes!). I've been told it's even "easy" to do this thanks to all my publications ...

Welcome to the 10th edition of Interesting Links .
I’ve got over a hundred links for you this month—all of them, IMHO, interesting :)
I’ll start off by shamelessly plugging the articles that I published this month:
It turns out, I’ve been thinking about Agents and MCP all wrong . It was a bit of a 💡 for me, and if you’re trying to grok wtf agents are, give it a read and let me know if it helps you.
(AI) Smells on Medium - a proper ranty post, inspired by com...
Note: The bulk of this article was written a few months ago, and left gathering dust on my hard drive. I rediscovered it recently and decided to put it out there, even though it’s still a little rough around the edges.
I’ve been concerned about my digital habits for a long time.
When I was active on Twitter years ago, I found myself endlessly fixated on follower counts, retweets, likes, anything that could be quantified about the perceived quality of my posting, and constantly comparin...

Determinism is a key concept to understand when writing code using durable execution frameworks such as Temporal, Restate, DBOS, and Resonate. If you read the docs you see that some parts of your code must be deterministic while other parts do not have to be. This can be confusing to a developer new to these frameworks. This post explains why determinism is important and where it is needed and where it is not. Hopefully, you’ll have a better mental model that makes things less confusing. W...
LLM Evals: Everything You Need to Know
hamel.dev
This document curates the most common questions Shreya and I received while teaching 700+ engineers & PMs AI Evals. Warning: These are sharp opinions about what works in most cases. They are not universal truths. Use your judgment.
👉 Want to learn more about AI Evals? Check out our AI Evals course . It’s a live cohort with hands on exercises and office hours. Here is a 25% discount code for readers. 👈
Listen to the audio version of this FAQ
If you prefer to listen ...
Langjam Gamejam: Build a programming language and then use it to make a game in 7 days
austinhenley.com
https://austinhenley.com/blog/langjamgamejam.html https://austinhenley.com/blog/langjamgamejam.html https://austinhenley.com/blog/langjamgamejam.html
You’re sitting at a table. In front of you, a series of plates. They’re full of shit (like some people). Not the same shit, mind you. It’s different types, produced by different animals, in different quantities. The unfortunate reality of the situation is that you have to eat the contents of one of those plates. Yeah, it sucks, I’m sorry. But you just have to.
So you understandably start going through the thought process of figuring out which one is the “best” one. You start examin...
Your company brought in a new CEO,
and she believes that you can’t manage what you don’t measure.
One of the first things she does is look at historical data
on how long developers have spent fixing bugs over the past year.
When she plots the data quarter by quarter,
she gets the following:
The change over time is easier to see when we scale the Y axis logarithmically:
The number of bugs taking more than 100 hours to close is clearly going up over time,
but why?
And why...
Nvidia Graphics Cards work on Pi 5 and Rockchip
A few months ago, GitHub user @yanghaku dropped a 15 line patch to fix GPU support for practically all AMD GPUs on the Raspberry Pi (and demoed a 3080 running on the Pi with a separate, unreleased patch). This week, GitHub user @mariobalanica dropped this (larger) patch which does the same for Nvidia GPUs !
I have a Raspberry Pi and an Nvidia graphics card—and I'm easily distracted. So I put down my testing of a GB10 syste...

Ninety million times a year, when protons crash together at the Large Hadron Collider (LHC), they produce, in their wreckage, a top quark and an anti-top quark, the heaviest known elementary particles. In the trillionth of a trillionth of a second before the particles decay into lighter pieces, they fly apart. But they remain quantum mechanically entangled, meaning each particle’s state depends on…
Source Ninety million times a year, when protons crash together at the Large Hadron Collide...
This is an external post of mine. Click
here
if you are not redirected.
This is an external post of mine. Click
here
if you are not redirected. This is an external post of mine. Click
here
if you are not redirected. here
The WebAssembly/tool-conventions
repository contains "Conventions supporting interoperability between tools
working with WebAssembly".
Of special interest, in contains the Basic C ABI - an ABI
for representing C programs in WASM. This ABI is followed by compilers like Clang
with the wasm32 target. Rust is also switching to this ABI
for extern "C" code.
This post contains some notes on this ABI, with annotated code samples and
diagrams to help visualize what the emitted WASM code is...
How fast can browsers process base64 data?
lemire.me
Base64 is a binary-to-text encoding scheme that converts arbitrary binary data (like images, files, or any sequence of bytes) into a safe, printable ASCII string using a 64-character alphabet (A–Z, a–z, 0–9, +, /). Browsers use it in JavaScript to embedding binary data directly in code or HTML or to transmitting binary data as text.
Browsers recently added convenient and safe functions to process base 64 functions Uint8Array.toBase64() and Uint8Array.fromBase64() . Though they are sev...
Automatically Signing a Windows EXE with Azure Trusted Signing, dotnet sign, and GitHub Actions
feeds.hanselman.com
Mac Tahoe (in Beta as of the time of this writing) has this new feature called Edge Light that basically puts a bright picture of an Edge Light around your screen and basically uses the power of OLED to give you a virtual ring light. So I was like, why can't we also have nice things? I wrote ( vibed, with GitHub Copilot and Claude Sonnet 4.5 ) a Windows Edge Light App (source code at https://github.com/shanselman/WindowsEdgeLight and you can get the latest release here https://github.com/shan...

I woke up this morning with the mother of all migraines. This was obviously dreadful, but it also gave me an excuse this afternoon to chill for a bit while the extended family continue exploring this incredible country. Now that the stuff has kicked in (so to speak), I can check in and say hi.
I’m typing this from a Ho Chi Minh City (ne. Saigon) branch of Phê La , a small chain known for their exhaustive range of coffee and tea brewing options. Want a V60-style brew, or an espresso, or...

Hello and welcome to a jam-packed edition of the Ink & Switch Dispatch! It begins with our first public update about the ARIA Safeguarded AI Programme, introducing our project GAIOS and the new lab staff working on it, followed by a report on its implementation of our new local-first auth system Keyhive. We’ll share three presentations from the LIVE 2025 conference, and cue-up a new lab note from the Beckett video game version control project. Finally, we have two new researchers-in-residence ...
Highlights from my appearance on the Data Renegades podcast with CL Kao and Dori Wilson
simonwillison.net
I talked with CL Kao and Dori Wilson for an episode of their new Data Renegades podcast titled Data Journalism Unleashed with Simon Willison .
I fed the transcript into Claude Opus 4.5 to extract this list of topics with timestamps and illustrative quotes. It did such a good job I'm using what it produced almost verbatim here - I tidied it up a tiny bit and added a bunch of supporting links.
What is data journalism and why it's the most interesting application of data analytics [02:03...

I’ve written before about building microsecond-accurate NTP servers with Raspberry Pi and GPS PPS , and more recently about revisiting the setup in 2025 . Both posts focused on the hardware setup and basic configuration to achieve sub-microsecond time synchronization using GPS Pulse Per Second (PPS) signals.
But there was a problem. Despite having a stable PPS reference, my NTP server’s frequency drift was exhibiting significant variation over time. After months (years) of monitoring ...

You and your bud are jamming out to math rock at the office while you work on the MVP of Datablaster 3000 and then the senior engineer walks in to the office and says “I think we should
ship without the query planner; Datablaster 3000 is for advanced users. People who know how queries are executed. We don’t have to make it easier for them to write queries.”
You nearly spit out your peppermint latte and give your friend a wary look. Is this what this guy thinks we’re doing here?
It’...