GeistHaus
log in · sign up
54 pages link to this URL
Why Not Rust?

I've recently read an article criticizing Rust, and, while it made a bunch of good points, I didn't enjoy it --- it was an easy to argue with piece. In general, I feel that I can't recommend an article criticizing Rust. This is a shame --- confronting drawbacks is important, and debunking low effort/miss informed attempts at critique sadly inoculates against actually good arguments.

Interruption Testing

This post is an attempt to capture a general description of a simple testing technique I have encountered in a few guises — and “Interruption testing” is my attempt to give it a name. Interruption testing is useful when: You have a (deterministic) procedure that is comprised of a series of steps. (A prerequsite is that you have a way to inject code to interrupt the procedure at any point, and a way to isolate the component being tested so that you can run it repeatedly.) You want to ensure that, no matter where in the sequence of steps that the procedure is interrupted, you can successfully “recover” (with exact meaning dependent on the scenario) from the interruption. The TL;DR general testing procedure is:

0 inbound links article en software software-testingSoftware-Testing
Why We Reach for the Layer — Vivian Voss

On Second Thought Episode 06. Dijkstra 1968 introduced disciplined layering to contain complexity. Parnas 1972 named it Information Hiding. Lehman 1974 warned that complexity rises unless explicit work is done to reduce it. Karlton observed that there are two hard things in computer science, and we made one of them our default architectural pattern. SQLite, awk and pf are the proof that reduction is possible. The plaster is cheap. The wound is not.

0 inbound links website en
The Single Writer — Vivian Voss

D. Richard Hipp did not forget to add concurrent writes to SQLite. He chose not to. The trade-off bought him everything else. One file. Zero configuration. The most deployed software module in history.

0 inbound links website en
Replicating SQLite using Raft Consensus

SQLite is a "self-contained, serverless, zero-configuration, transactional SQL database engine". However, it doesn't come with replication built in, so if you want to store mission-critical data in it, you better back it up. The usual approach is to continually copy the SQLite file on every change. I wanted SQLite, I wanted it distributed, and I…

0 inbound links en Uncategorized
Things you should never do: Use Expect to autotype SSH passwords in scripts

Before I moved to Finland, I spent some time in the Hobbesian war of all against all that is Wisconsin1. Men were men back in that less civilized age, and “cybersecurity” a ninny-word dreamt up by social harmony types who honestly thought they had anything worth stealing in their servers. For those of us doing real work, which I must emphasize you should never do, we had Expect. And to SSH automatically into servers where we didn’t have fancy accoutrements like “keys” or “audit requirements”, we did stuff like

0 inbound links article en posts anti-advicelinuxold-command-line-toolsproductivitysimple-suboptimal-solutionsshellthings-you-should-never-dotclexpectautomationbad-automation
McKinsey Developer Productivity Review

McKinsey recently published an article claiming they can measure developer productivity. This has provoked something of a backlash from some prominent software people, but I have not seen anyone engage with the content of the article itself, so I thought this would be useful. I am writing this as though the authors have approached me for a technical review of their article. You can think of it as an open letter.

0 inbound links article en blog productivityprogrammingProductivityProgramming
The Big Mac Coding Era

McDonald’s is objectively delicious. Kids don’t clamor for quarter pounders, fries, and shakes because they’re cheap or convenient. They demand it because it’s the end resul…

0 inbound links article en AICoding
Colin Walters

I put my pants on just like the rest of you -- one leg at a time. Except, once my pants are on, I make Free Software.

0 inbound links website en
Rust in 2019: Security, Maturity, Stability • Tony Arcieri

I’ve been a day-to-day Rust user for nearly 5 years now. In that time I’ve perpetually felt like Rust is “the language that will be awesome tomorrow”. Rust has always felt like it had so much promise and potential, but if you actually sat down and... | Tony Arcieri | Hi there. These days I dabble in Rust and cryptography, but in the past made the Celluloid actor framework for Ruby and the Reia programming language

0 inbound links article en
How to Test

Alternative titles: Unit Tests are a Scam Test Features, Not Code Data Driven Integrated Tests

syntaqlite: high-fidelity devtools that SQLite deserves

Most SQL tools treat SQLite as a “flavor” of a generic SQL parser. They approximate the language, which means they break on SQLite-exclusive features like virtual tables, miss syntax like UPSERT, and ignore the 22 compile-time flags that change the syntax SQLite accepts. So I built syntaqlite: an open-source parser, formatter, validator, and LSP built directly on SQLite’s own Lemon-generated grammar. It sees SQL exactly how SQLite sees it, no matter which version of SQLite you’re using or which feature flags you compiled with. It ships as a CLI, VS Code extension, Claude Code LSP plugin, and C/Rust libraries. There’s also a web playground which you can try now: paste any SQLite SQL and see parsing, formatting, and validation live in the browser, no install needed. Full documentation is available here. Here’s syntaqlite in action: Formatting with the CLI > syntaqlite fmt -e "select u.name,u.email,count(e.id) as events from users u join events e on e.user_id=u.id where u.signed_up_at>=date('now','-30 days') group by u.name,u.email having count(e.id)>10 order by events desc" SELECT u.name, u.email, count(e.id) AS events FROM users AS u JOIN events AS e ON e.user_id = u.id WHERE u.signed_up_at >= date('now', '-30 days') GROUP BY u.name, u.email HAVING count(e.id) > 10 ORDER BY events DESC; Validation with the CLI

3 inbound links article en post SqlitePerfettoClaude-CodeDatabases
Why I Built Litestream

Despite an exponential increase in computing power, our applications require more machines than ever because of architectural decisions made 25 years ago. You can eliminate much of your complexity and cost by using SQLite & Litestream for your production applications.

6 inbound links Article en