In the last year or so I've read about many people moving from streaming services, like Apple Music and Spotify, to their own music library. To support these local libraries, many seem to be getting themselves a music player, such as the Fiio Echo Mini .
While moving to a local library is something that I've thought about many times 1 , I don't understand why people are buying these little music players.
The big selling points generally seem to be:
Bluetooth connectivity so you can us...

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 ...
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...
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...
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...

About five months ago I wrote about Absurd , a
durable execution system we built for our own use at Earendil, sitting entirely
on top of Postgres and Postgres alone. The pitch was simple: you don’t need a
separate service , a
compiler plugin , or an entire
runtime to get durable workflows. You need a SQL file
and a thin SDK.
Since then we’ve been running it in production, and I figured it’s worth
sharing what the experience has been like. The short version: the design
held up, ...
Last year my aunt let me add her original Tangerine iBook G3 clamshell to my collection of old Macs 1 .
It came with an AirPort card—a $99 add-on Apple made that ushered in the Wi-Fi era. The iBook G3 was the first consumer laptop with built-in Wi-Fi antennas, and by far the cheapest way to get a computer onto an 802.11 wireless network. Last year my aunt let me add her original Tangerine iBook G3 clamshell to my collection of old Macs 1 .
It came with an AirPort card—...

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...
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 (: ↷...

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 , '!'...
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...

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...

1. How did you end up in the car industry?
Like most career advice, there is no single path to get to where you want to be. Though I find it helps to learn how a person ended up in the job that I want and that is why I'll share briefly how I ended up. Here's the summary:
I wanted to be a car designer since I was young. But I discovered that sketching was not for me. So when it was time to pick something to study after high school, I picked a broad degree covering computer science, engineerin...

If I’ve been quiet on this blog for a while, it’s because I’ve been filling my hours with a lot of RPG design: D&D, A5E, Pathfinder, and, increasingly, Draw Steel (I’ve been doing freelance work on the game back from when it was MCDM RPG). And now it’s official! I’m starting a job as Draw Steel line developer at MCDM. I’m incredibly proud that this amazing company is letting me play with their toys.
I have tons and tons of praise for MCDM that I basically can’t say now, becau...
Adding tech to recycling is a nice idea in theory
rubenerd.com
Here we have exibit A for why using technology to solve a social problem often doesn’t work, or has unintended consequences.
There are cultures in the world that take recycling seriously, like Japan. There are those that pretend (until recently) that it doesn’t exist, like Singapore and Malaysia. In between sits Australia; the land girt by sea, and mostly on board with the idea that we should reduce, reuse, and recycle if and where we can.
The problem with recycling in Australia comes do...

This story was supported by the Pulitzer Center. One Tuesday in June 2025, a white Chevy Suburban set off down the northernmost highway in North America. The sun of Alaska’s polar summer hadn’t set in 40 days, and it wouldn’t set again for another 35. But for Michael Van Nuland, the biologist in the driver’s seat, time was already running out. The SUV, packed with four days of fieldwork…
Source This story was supported by the Pulitzer Center. One Tuesday in June 2025, a white Chevy ...

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
...
Just because it's work shaped doesn't make it productive
nishtahir.comAI Assisted/Agentic programming are pretty common place at this point. The growing sentiment seems to be that if you can't find some sort of benefit in your workflow, it's more of a skill issue than a problem with the tools. Whether you believe this to be true is really up to you, what is clear is that it's becoming more of an expectation than an option for many engineers. I think AI/Agent tools come with a lot of gains however those don't come for free. Agent led development comes with (incr...