If you've enjoyed my writing about space over the years, I invite you to subscribe to my new substack newsletter, titled ' Mars for the Rest of Us ', where I've been posting weekly essays on topics around Mars exploration.
Here are two recent free posts:
Musk on Mars : a timeline of Elon Musk's shifting public commitments to Mars settlement.
A Primer on Long-Duration Life Support : an overview of the state of the art in regenerative life support, and technology gaps for Mars.
And so...

This post was written with the letter thorn in lieu of th, because it marks a special occasion. Don’t ask me how that works.
Yesterday was one of þose “milestone” birþdays I þink we all learn to dread, but it’s better þan þe alternative!
I took þe day off work for þe occasion, and we got our 10,000 steps in by walking to a new coffee roaster and back to try þeir brews. They had a Nicaraguan single origin which, hand to heart, was þe single best espresso I þink I’ve eve...

In the summer of 1912, word reached Robert Fiske Griggs that the apocalypse had arrived on Kodiak, an inhabited island off the coast of Alaska. The following year, Griggs, a botanist at the University of Ohio, led the first of several expeditions to the island, where he and a team glimpsed a disquieting sight: Kodiak was shrouded in a full foot of ash. And it wasn’t just the island.
Source In the summer of 1912, word reached Robert Fiske Griggs that the apocalypse had arrived on Kodiak, an ...
Look Ma, I made a JAR! (Building a connector for Kafka Connect without knowing Java)
rmoff.net
As a non-Java coder, for the last ten years I’ve stumbled my way through the JVM-centric world of "big data" (as it was called then), relying on my wits with SQL and config files to just about muddle through.
One of the things that drew me to Kafka Connect was that I could build integrations between Kafka and other systems without needing to write Java, and the same again for ksqlDB and Flink SQL—now stream processing was available to mere RDBMS mortals and not just the Java adonises.
...
Markets ensure the disruption can't last more than 1-2 years. ...
Read More
Markets ensure the disruption can't last more than 1-2 years. ...
Read More
Markets ensure the disruption can't last more than 1-2 years. ...
... Read More Read More

Anthropic carried a study, done by getting its model to interview some 80,000 users to understand their opinions about AI, what they hope from it, and what they fear. Two things stood out to me.
It’s easy to assume there are AI optimists and AI pessimists, divided into separate camps. But what we actually found were people organized around what they value—financial security, learning, human connection— watching advancing AI capabilities while managing both hope and fear at once.
...

Is the heyday of the data scientist over? The Harvard Business Review once called it “The Sexiest Job of the 21st Century.” 1 In tech, data scientist roles were often among the best paid. 2 The job also demanded an unusual mix of skills:
Data Scientist (n.): Person who is better at statistics than any software engineer and better at software engineering than any statistician.
— JosH100 ( @josh_wills ) May 3, 2012
In addition to creating a high-barrier to entry, these skills ...

Today we’re shining a bright spotlight on recent work from our Programmable Ink research area — visualizable computation, software you can put your hands on, and a grimoire of rune stones and imagination.
For the past few years, we’ve been quietly building a holistic, malleable notebook we call PlayBook . The goal is to make something that feels every bit as good as paper & pencil for sketching and writing in your own hand. But unlike paper, PlayBook is imbued with dynamic behavio...
I like to put my hands over the top of a cup of warm tea. I enjoy the warmth, and want to hold onto it for as long as possible. Whether I am holding a textbook or exploring blogs, if I have a cup of tea by my side I want to feel its warmth. As I write, I am sitting next to a warm cup of tea, resting on the arm of my chair. The vibration of movement as I type creates a gentle ripple on the water, a ripple that reminds me of the calm river where I spent time last weekend. It is amazing what there ...

I have a new laptop - a 128GB M5 MacBook Pro, which early impressions show to be very capable for running good local LLMs. I got frustrated with Activity Monitor and decided to vibe code up some alternative tools for monitoring performance and I'm very happy with the results.
This is my second experiment with vibe coding macOS apps - the first was this presentation app a few weeks ago .
It turns out Claude Opus 4.6 and GPT-5.4 are both very competent at SwiftUI - and a full SwiftUI app ca...
In my last post, I showed you to use FireWire on a Raspberry Pi with a PCI Express IEEE 1394 adapter. Now I'll show you how I'm using a new FireWire HAT and a PiSugar3 Plus battery to make a portable MRU, or 'Memory Recording Unit', to replace tape in older FireWire/i.Link/DV cameras.
The alternative is an old used MRU like Sony's HVR-MRC1 , which runs around $300 on eBay 1 . In my last post, I showed you to use FireWire on a Raspberry Pi with a PCI Express IEEE 1394 adapter. No...
Originally published on Rails At Scale .
Look! A trace of slow events in a benchmark! Hover over the image to see it get bigger.
A sneak preview of what the trace looks like.
Now read on to see what the slow events are and how we got this pretty picture.
The rules
The first rule of just-in-time compilers is: you stay in JIT code. The second
rule of JIT is: you STAY in JIT code!
When control leaves the compiled code to run in the interpreter—what the ZJIT
team...
First of all, apologies to all the RSS readers of my blog, you'll most probably
get all the posts again.
Almost two months have passed since the last blog post. The reason for the
hiatus is simple. Three weeks ago I have finally, finally moved into my new
house. Those were hectic two months, endless calls, decisions, talking to the
construction crew, buying materials, tools, and then packing, unpacking,
sorting, throwing away surplus stuff. I can probably go through the local
hardware store wi...
Shield AI to acquire software simulation company Aechelon and raise $2B at $12.7B valuation
shield.ai
SAN DIEGO – March 26, 2026 – Shield AI today announced it is raising $1.5 billion in Series G funding at a $12.7 billion post-money valuation and $500 million in fixed-return preferred equity financing. The Series G is led by Advent International and co-led by the Strategic Investment Group of JPMorganChase’s Security and Resiliency Initiative, with participation from existing investors Snowpoint Ventures, InnovationX, Riot Ventures, Disruptive, Apandion, and others. Funds managed by Black...
Why pylock.toml includes digital attestations
snarky.ca
A Python project got hacked where malicious releases were directly uploaded to PyPI . I said on Mastodon that had the project used trusted publishing with digital attestations , then people using a pylock.toml file would have noticed something odd was going on thanks to the lock file including attestation data . That led to someone asking for a link to something to explain what I meant . I didn't have a link handy since it's buried in 4 years and over 1,800 comments of discussion , s...
cathedral
(cat·he·dral)
Having the form of a cat. cathedral
(cat·he·dral)
Having the form of a cat. cathedral
(cat·he·dral)
Having the form of a cat. cathedral (cat·he·dral)
Background jobs and inherited file descriptors
rednafi.com
I keep a brew update && brew upgrade && brew cleanup alias around. Every now and then I wrap
it in a subshell and put an & on the end, expecting it to go to the background and come back
when it’s done:
( brew update && brew upgrade && brew cleanup ) &
But download progress, upgrade logs, and cleanup messages keep printing to the terminal while
I’m trying to do other things. (sleep 5) & works the way I’d expect: it vanishes, and the
shell prints [1] + done when it finishes...
I'm really proud of what Pure Blog has become, and honestly a little overwhelmed by the interest it's received since launch. The feedback and enthusiasm from the community has been genuinely lovely, so thank you.
That said, since announcing it a couple of months ago, I've spent pretty much every spare minute working on it, and most of that time building things I didn't personally need. I said a few weeks ago that Pure Blog was feature complete...ish . The "ish" turned out to be a mistake, b...

Gimkit Live has a built-in accessibility feature that reads questions and answer choices aloud to students as they play. It’s called Read to Me. By default, it’s off — each student turns it on individually during a game. The process takes under a minute and requires no teacher setup. Here’s how it works.
How to Enable Read to Me in Gimkit
Students activate Read to Me on their own device during an active Gimkit Live session. Teachers don’t need to configure anything beforehand. Be...

I’ve worked on a lot of unpopular products.
At Zendesk I built large parts of an app marketplace that was too useful to get rid of but never polished enough to be loved. Now I work on GitHub Copilot, which many people think is crap 1 . In between, I had some brief periods where I worked on products that were well-loved. For instance, I fixed a bug where popular Gists would time out once they got more than thirty comments, and I had a hand in making it possible to write LaTeX mathematics dir...
As I wrote a couple of days ago ,
Sajaniemi et al’s work on roles of variables
identified and named ten patterns in the way variables are used in novice programs.
These roles aren’t just a way to analyze code.
They’re also useful for explaining code,
because they provide a vocabulary to capture intent
in a way that’s complementary to type information like int or Person .
Role
Description
Fixed value
Initialized once and not changed thereafter.
Stepper ...
This week on the People and Blogs series we have an interview with Nikhil Anand, whose blog can be found at nikhil.io .
Tired of RSS? Read this in your browser or sign up for the newsletter .
People and Blogs is supported by the "One a Month" club members.
If you enjoy P&B, consider becoming one for as little as 1 dollar a month.
Let's start from the basics: can you introduce yourself?
Hi I'm Nikhil! I grew up the UAE and came to the Un...
JSON and C++26 compile-time reflection: a talk
lemire.me
The next C++ standard (C++26) is getting exciting new features. One of these features is compile-time reflection . It is ideally suited to serialize and deserialize data at high speed. To test it out, we extended our fast JSON library ( simdjson ) and we gave a talk at CppCon 2025. The video is out on YouTube.
Our slides are also available .
The next C++ standard (C++26) is getting exciting new features. One of these features is compile-time reflection . It is ideally suited to serializ...