news
Programming Leftovers
-
Thorsten Ball ☛ Building Software Is Learning - by Thorsten Ball
That’s basically NEVER what happens. At least not when you’re building something new. It might happen when you fix a bug or when you port something that already exists in another app to a new language or framework, ... Or when you’re building after a spec.
But when there’s no spec, and when you’re building something new?
Here’s how that works: [...]
-
Otávio C ☛ Twenty Years Later: Coltrane
One thing led to another. Before writing a single simulation, I found myself thinking about the foundation. I could have reached for Swift's structured concurrency. It's first-party, well-designed, and what I use professionally. But the more I thought about it, the more I wanted to know whether the ideas behind Anahy, the same model, the same scheduling approach, could be re-implemented cleanly in Swift, without async/await, and still perform competitively on modern hardware. So that became the project.
The result is Coltrane. The API is higher level than Anahy's POSIX-like interface. You call spawn with a closure and get back a typed JobHandle. You call join on the handle to get the result. The model underneath is the same: a shared task DAG built implicitly at runtime, a fixed pool of Virtual Processors, each a real OS thread sized to the core count by default, and work-helping as the scheduling strategy. When a VP joins a task that isn't finished yet, instead of blocking it helps by running other pending work from the graph.
-
Jim Nielsen ☛ An Ode to the Exacting Pedantry of Computers
A few years later, I decided I wanted to try programming again. So I took another intro class. This time they were teaching with Python instead of C++, so you can imagine my excitement to learn that I didn’t have to think of numbers in this way anymore! It felt like the computer was meeting me partway.
Over time, I came to learn how pedantic computers are. They require a kind of exacting precision in saying what you want them to do. And they’ll only ever do exactly what you tell them to do, nothing more, nothing less.
-
Rlang ☛ Refactoring with Jarl: a coffee chat
We (Hannah and Maëlle) share an appreciation for the unglamorous maintenance work we call upkeep. So when Claude highlighted some dead code in the tune package to Hannah, it was worth a mention during a chat. This led to Maëlle recommending Etienne Bacher’s Jarl, a fast linter for R written in Rust that can, among other things, detect unused functions.
-
Rlang ☛ 11 Test Smells That Make Your Tests Lie to You
Green tests don’t automatically mean correct code.
Tests can be written in ways that pass reliably, survive every devtools::test() run, and still tell you almost nothing about whether your code works. The software engineering community has a name for these patterns: test smells. They’re structural problems in test code — not bugs, but patterns that signal the tests are doing less or something different than they appear.
-
Rust
-
Tor ☛ Arti 2.4.0 released: Relay and directory authority development; flowctl-cc stable | The Tor Project
Arti is our ongoing project to create a next-generation Tor implementation in Rust. We're happy to announce the latest release, Arti 2.4.0.
-