
Rahul Garg finishes his
series on reducing the friction in AI-Assisted Development. He
proposes a structured feedback practice that harvests learnings from AI
sessions and feeds them back into the team's shared artifacts, turning
individual experience into collective improvement.
more… Rahul Garg finishes his
series on reducing the friction in AI-Assisted Development. He
proposes a structured feedback practice that harvests learnings from AI
...
I stumbled across this great post by Spencer Mortensen yesterday, which tested different email obfuscation techniques against real spambots to see which ones actually work. It's a fascinating read, and I'd recommend checking it out if you're into that sort of thing.
The short version is that spambots scrape your HTML looking for email addresses. If your address is sitting there in plain text, they'll hoover it up. But if you encode each character as a HTML entity , the browser still renders...

Gimkit’s 2D game modes run on WebGL, a browser-level graphics technology. When it’s off or unsupported, those modes won’t load at all. The good news: the fix is usually one or two steps, depending on your browser and setup.
How to Enable WebGL in Gimkit 2D Mode on Chrome
Chrome enables WebGL automatically in recent versions, so an outdated installation is the most common culprit. Open chrome://settings/help to check your version and update if one is pending.
If Chrome is current...

I love sampling algorithms. Here's the sampling algorithm that I find most magical. We want to generate a subset of {1, 2, ..., n} of size k .
def floyd ( n , k ):
s = set ()
for i in range ( n - k + 1 , n + 1 ):
t = random . randint ( 1 , i )
if t in s :
s . add ( i )
else :
s . add ( t )
return s
I learned about this algorithm the canonical way all good algorithm lore ...

Six months after we standardized on OpenSearch, a pull request introduced Datadog into a service. The ADR existed. It had been discussed, approved, and stored in the repo. The PR was still green.
That is architecture drift. Not because engineers are careless. Because memory does not scale across hundreds of people and dozens of repositories.
After we started checking ADRs in CI, we caught several violations like this in the first month and dozens more in the first quarter before they reach...
Can your AI rewrite your code in assembly?
lemire.me
Suppose you have several strings and you want to count the number of instances of the character ! in your strings. In C++, you might solve the problem as follows if you are an old-school programmer.
size_t c = 0 ;
for ( const auto & str : strings ) {
c += std :: count ( str . begin (), str . end (), '!' );
}
You can also get fancier with ranges.
for ( const auto & str : strings ) {
c += std :: ranges :: count ( str , '!'...
Every so often I take notes of things that brought me joy. I write them in my digital notebook in the form "the joy of {thing}". This phrasing lets me encapsulate a feeling and a moment in a sentence. Sometimes I'll go on to write more, other times something like the joy of waking up to a clear sky is all I need to write down to capture the essence of a moment. Below are a few of my recent "joys of". ⁂ The joy of: waking up to a clear sky. watching the flow of the coffee shop. the sun shinin...

UAE cabinet meeting room, via Camski . Welcome to the reading list, a weekly roundup of news and links related to buildings, infrastructure, and industrial technology. This week we look at aluminum disruptions, the EV rust belt, the ongoing transformer shortage, SpaceX’s IPO, and more. Roughly 2/3rds of the reading list is paywalled, so for full access become a paid subscriber. War in Iran The world’s largest aluminum smelter in Bahrain was hit by an Iranian drone, bringing production o...

Since buying our first apartment together in 2024, Clara and I have both been hunting for a good set of desks. It’s weird thinking about furniture we might use for a while, not something portable we can disassemble and pack every year when an overzealous landlord inevitably decided they want to squeeze us for more rent in Sydney’s overpriced market.
We measured up the dimensions of the study, and decided we wanted shelves above the tables. For Clara this would her store her art and craft s...
Anthropic's Project Glasswing - restricting Claude Mythos to security researchers - sounds necessary to me
simonwillison.net
Anthropic didn't release their latest model, Claude Mythos ( system card PDF ), today. They have instead made it available to a very restricted set of preview partners under their newly announced Project Glasswing .
The model is a general purpose model, similar to Claude Opus 4.6, but Anthropic claim that its cyber-security research abilities are strong enough that they need to give the software industry as a whole time to prepare.
Mythos Preview has already found thousands of high-seve...

Why logging at every layer of a service produces noise, and how to log only at the handler level while propagating context from below. Why logging at every layer of a service produces noise, and how to log only at the handler level while propagating context from below.
Slap: Fun Cat Lang... with a Borrow Checker?
taylor.town
Behold, Slap ! It's a language chimera:
terse : tacit like APL, J, K
safe : strong linear type system like Rust
small : simple spec like Lisp, Forth
fast : manual memory like C, Zig
easy : managed effects like Elm, Roc
Terse
Slap is a stack language. Postfix syntax is ugly, but powerful:
-- twenty fibonacci numbers (no recursion)
0 1 20 (swap over plus) repeat drop
6765 eq assert
I'll eventually add Uiua -esque glyphs so you
can feel like a wizard: 0 1 20 (: ↷...

While GitHub has been busy losing its last nine of availablility , I’ve been thinking about how the
internet used to be.
Not the internet people talk about from the 90s , but the internet that we used to have even 10-15 years ago. This was the heyday of startups like GitHub, Twitter, Airbnb, and, Google was in its prime (though likely slightly past it at that point - Linus’s git tech talk there was in 2007.)
I’ve specifically been thinking about the Octocat Builder . GitHub create...

I hope this update finds the weather starting to thaw out for you. This is just a quick update while I work on getting a new build ready for later this month. For this spring and summer, I am offering 3D print services for all of my builds. I am offering flat rate shipping to the US48, but if you need international shipping comment below and I can contact you with a shipping quote. All parts are printed in high quality matte black PLA. I usually only open up print windows once a year, so thi...
Here are the solutions to the problems I posted last week .
Problem 1
A language \(L\) is commutative if for all \(u\), \(v\) in \(L\), \(uv = vu\). Show that
\(L\) is commutative if and only if \(L\) is a subset of \(w^*\) for some string \(w\).
The "only if" direction is surprisingly tricky.
Answer For the "if" direction, suppose \(L \subseteq w^*\). Then every \(u, v \in L\) can be written as \(u = w^i\) and \(v = w^j\), so \(uv = w^{i+j} = vu\). For the "only if" direction, as...
Welcome back to compiler land. Today we’re going to talk about value
numbering , which is like SSA, but more.
Static single assignment (SSA) gives names to values: every expression has a
name, and each name corresponds to exactly one expression. It transforms
programs like this:
x = 0
x = x + 1
x = x + 1
where the variable x is assigned more than once in the program text, into
programs like this:
v0 = 0
v1 = v0 + 1
v2 = v1 + 1
...

Today I’m very happy to share that Mario Zechner is joining Earendil .
First things first: I think you should read Mario’s
post . This is his news
more than it is ours, and he tells his side of it better than I could. What I
want to do here is add a more personal note about why this matters so much to
me, how the last months led us here, and why I am so excited to have him on
board.
Last year changed the way many of us thought about software. It certainly
changed the way I did. I s...

“All we have to decide is what to do with the time that is given us.”
― The Lord of the Rings
Dunedin is a former Scottish settlement, which becomes apparent after a quick walk through the city. The name is an anglicization of the Gaelic name for Edinburgh. It is counterintuitively pronounced /dɐˈniːdɘn/ (duh-nee-din).
I arrived on a Saturday during the Chinese New Year Festival , so the city was full. In fact, there was not a single accommodation available in the entire...
Last year I started building a workshop on how to shut projects down.
I put it on hold in the fall,
both because I was finding it difficult to figure out what to say
and because working on something like that after being laid off felt a bit unhealthy.
A couple of recent discussions have revived my interest,
though,
so here are some notes that I hope one day will find a home.
Normalization of Deviance
Vaughan1996 showed that the engineers involved in the Challenger disaster
did not make a si...
CMake has a --debugger mode since 3.27 (July 2023),
allowing software to manipulate it interactively through the Debugger
Adaptor Protocol (DAP), an HTTP-like protocol passing JSON messages.
Debugger front-ends can start, stop, step, breakpoint, query variables,
etc. a live CMake. When I came across this mode, I immediately conceived a
project putting it to use. Thanks to recent leaps in software engineering
productivity , I had a working prototype in 30 minutes, and by the
end of that s...
Why haven’t humans gone back to the Moon no longer a valid question thanks to NASA Artemis II lunar flyby
jatan.spaceThe Artemis II launch, its four astronauts prior to liftoff, people cheering the launch, and the crew’s Orion spacecraft and its beautiful view of a crescent Earth. The flight crew from left to right: Mission Specialist Jeremy Hansen , Pilot Victor Glover , Mission Specialist Christina Koch , and Commander Reid Wiseman . Images: NASA At long last, that moment is here. Humans have visited our Moon again, ending a five-decade absence since Apollo. Four astronauts launched by NASA on Ap...
In the previous post in this series ,
I wrote about a little utility I created for detecting underlined words
in a book and creating vocabulary study material for them.
Like I mentioned earlier, this was one of my earliest experiences with
LLM-driven development, and I think it shaped my outlook on the technology
quite a bit. For me, the bottom line is this: with LLMs, I was able to
rapidly solve a problem that was holding me back in another area of my life .
My goal was never to “produce so...
art002e000192 Hello, World , Image Credit: NASA/Reid Wiseman
You may already have seen the above photo taken by Reid Wiseman on the Artemis II moon mission. For some of you it may conjure memories of another photo, The Blue Marble , taken by Harrison Schmitt during the Apollo 17 mission in 1972:
AS17-148-22727 The Blue Marble , retouched by Wikipedia user Yann
I’ve known that photo my whole life, but seeing it again last night sparked a curiosity about the other photos t...