
It was a hectic few weeks in the lead-up to the Christmas shutdown period at our small hosting company, so this morning I was able to steal some time and get my own little fleet upgraded to FreeBSD 15! This included:
Our homelab “production” bhyve/jail server
Our homelab “Ruben tinkering” box and backup target
My cloud VPS hosting this site
Our cloud VPS hosting everything else
(My ex-Sophos router, Xen HP Microserver, and second-hand Raspberry Pi “cluster” now run Ne...
Performance trick : optimistic vs pessimistic checks
lemire.me
Strings in programming are often represented as arrays of 8-bit words. The string is ASCII if and only if all 8-bit words have their most significant bit unset. In other words, the byte values must be no larger than 127 (or 0x7F in hexadecimal).
A decent C function to check that the string is ASCII is as follows.
bool is_ascii_pessimistic ( const char * data , size_t length ) {
for ( size_t i = 0 ; i ( data [ i ]) > 0x7F ) {
return false ;
...
From Gas Works Park, you can watch jets descend to SeaTac in a steady stream,
one every minute or two. I’ve lived in various neighborhoods in Seattle, all
under this corridor – SLU, Eastlake, Fremont. I didn’t think much of this fact
until fairly recently, when I started taking flight lessons and becoming
generally more actively interested in aviation.
...
Big GPUs don't need big PCs
Ever since I got AMD , Intel , and Nvidia graphics cards to run on a Raspberry Pi, I had a nagging question:
What's the point?
The Raspberry Pi only has 1 lane of PCIe Gen 3 bandwidth available for a connection to an eGPU. That's not much. Especially considering a modern desktop has at least one slot with 16 lanes of PCIe Gen 5 bandwidth. That's 8 GT/s versus 512 GT/s. Not a fair fight.
Jeff Geerling
December 20, 2025
Big GPUs ...
* For years, despite functional evidence and scientific hints accumulating, certain AI researchers continued to claim LLMs were stochastic parrots: probabilistic machines that would: 1. NOT have any representation about the meaning of the prompt. 2. NOT have any representation about what they were going to say. In 2025 finally almost everybody stopped saying so.
* Chain of thought is now a fundamental way to improve LLM output. But, what is CoT? Why it improves output? I believe it is two thi...
A mailbox for Christmas
2025-12-18 09:45
Christmas is often the time when geeks get bombarded with technical questions from their loved ones. Last year, I gave my opinion on Gmail accounts and was asked what alternative to use for email. I was a bit stumped for an answer: ProtonMail or Tuta? But they regularly encourage users to switch to their paid service and use their other services (VPN, drive, password vault, etc.). What's more, standard email clients are not compatible.
That's what g...

"What are the must-have apps to install on my new Mac?"…
"Which tool makes you the most productive?"…
"Do you still use Alfred?"…
All these questions and more—and the answer to all of them is Raycast!
I was previously a huge fan of Alfred since back in 2012 .
I liked Alfred, I enthused about Alfred; I also ditched Alfred for Raycast in early 2023.
Raycast is the ultimate productivity tool.
The kind of thing that leaves you bereft on a new laptop until you’ve in...
mdBook is a tool for easily
creating books out of Markdown files. It's very popular in the Rust ecosystem,
where it's used (among other things) to publish the official Rust book .
mdBook has a simple yet effective plugin mechanism that can be used to modify
the book output in arbitrary ways, using any programming language or tool. This
post describes the mechanism and how it aligns with the
fundamental concepts of plugin infrastructures .
mdBook preprocessors
mdBook's architecture is ...

When DALL-E came out, it took me a couple of weeks to pick my jaw up
from the floor. I would go to sleep excited to wake up to a full quota, with a
backlog of prompts to try. It was magical, miraculous. Like discovering a new
universe. I compiled the best art in this post .
The other day a friend ran some of my old prompts through Nano Banana Pro
(NBP), and put the old models side by side with the new. It’s interesting how
after years of progress, the models are much better better at m...

In 2030, my greatest hope for the indie web is that it is a place where people feel free to create, to experiment, and to always be able to ask – and act on the answers to – the question “what do I want this place to be?” To enable this, the indie web must be open both technically and have a culture that supports discussion, exploration, and discourse, where we – everyone – looks at the web we have now and asks what we like, what we don’t like, and what we want, and move in the dir...
Building a fair, cancelable semaphore in Go and the subtle concurrency issues involved. Building a fair, cancelable semaphore in Go and the subtle concurrency issues involved.

I've been using Firefox for over 20 years at this point, but after a stream of cock-ups, I'm thinking about moving on.
I’ve been using Firefox since 2005, so not long after it was first released. I distinctly remember the first time I heard about it - I was on a training course with the Army and the instructor was using Firefox. Netscape was effectively dead, and everyone was using Internet Explorer, but I’ve always been a magpie for the new shiny, so when I saw his browser, I asked him...
"I have a database whose schema doesn't match my SQLModel models. I need to migrate this. I want to use alembic's – autogenerate flag. I am running into issues" If this is you, that was me 15 minutes ago. Here is a Q&A to save you time. Detected removed table (I don't want this!) Did you run ~these commands and get told alembic wants to remove your table? uv run -m alembic -c migrations/alembic.ini stamp head --purge
uv run -m alembic -c migrations/alembic.ini revision --autogenerate -m "msg"
...
Another year, another “where did the time go?” post…
My daughter left home to start university.
She had a wonderful first semester,
but I miss her in all sorts of ways .
I supervised some student projects at the University of Toronto
for the first time in fifteen years.
I really enjoyed working with them,
and I hope they had fun as well,
but it brought me face-to-face with how bad the job market is right now
for newcomers in tech.
I was lai...
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 ...

I’ve mentioned this a few times now, but when I started using Claude it was
because Peter got me hooked on it. From the very
beginning I became a religious user of what is colloquially called YOLO mode,
which basically gives the agent all the permissions so I can just watch it do
its stuff.
One consequence of YOLO mode though is that it didn’t work well together with
the plan mode that Claude Code had. In the beginning it didn’t inherit all the
tool permissions, so in plan mode it ac...
First steps with Proxmox running on a Lenovo Tiny PC
stfn.plI migrated all of my LXC containers from LXD to Proxmox I migrated all of my LXC containers from LXD to Proxmox

The Sagrada Familia under construction in 1906. Via Muse . Welcome to the reading list, a weekly roundup of news and links related to buildings, infrastructure and industrial technology. This week we look at Tesla’s robotaxi crash reports, a fusion startup merger, the decline of US injection molding, Wyoming’s snow fences, and more. Roughly 2/3rds of the reading list is paywalled, so for full access become a paid subscriber. TAE Technologies merges with Trump Media Group Here’s a merger...

Programming note : Merry Christmas ! There will likely be another Bits about Money after the holiday but before New Year. Bits about Money is supported by our readers . If your education budget or business can underwrite the coming year of public goods in financial-infrastructure education, commentary, and policy analysis, please consider supporting it. I’m told this is particularly helpful for policymakers and others who cannot easily expense a subscription, and who benefit from all issue...
I was listening to a recent Vergecast episode the other day, and in there, there was a whole segment about MCP servers and AI-powered shopping. I’ll be honest, I’ve never been more confused about something tech-related. The more I read and listen about this whole topic, the more I think everyone is doing a marvelous job at gaslighting themselves. Or maybe I’m just too skeptical, that’s always a possibility.
There’s a passage in that podcast where they’re discussing the issue of c...

Mathematics is, at its core, an art. Like painters, musicians or writers, mathematicians create and explore new worlds. They test, and then push past, the limits of their imagination. They engage with thousands of years of history, with concepts and tastes and fashions that are constantly in flux. This artistic pursuit of beauty, truth and meaning is what every Quanta math story is about…
Source Mathematics is, at its core, an art. Like painters, musicians or writers, mathematicians create ...
Brief one today. I got asked “does YJIT/ZJIT have support for [Linux] perf?”
The answer is yes, and it also works with samply (including on macOS!),
because both understand the perf map interface .
This is the entirety of the implementation in ZJIT 1 :
fn register_with_perf ( iseq_name : String , start_ptr : usize , code_size : usize ) {
use std :: io :: Write ;
let perf_map = format! ( "/tmp/perf-{}.map" , std :: process :: id ());
let ...

It continues to be a busy December, if not quite as busy as last year . Today's big news is Gemini 3 Flash , the latest in Google's "Flash" line of faster and less expensive models.
Google are emphasizing the comparison between the new Flash and their previous generation's top model Gemini 2.5 Pro:
Building on 3 Pro’s strong multimodal, coding and agentic features, 3 Flash offers powerful performance at less than a quarter the cost of 3 Pro, along with higher rate limits. The new 3 Fla...