Materialized views are obviously useful
As programmers we spend a lot of time shuttling data back and forth between different systems and transforming it from one format to another. Sometimes it gets pretty miserable!
As programmers we spend a lot of time shuttling data back and forth between different systems and transforming it from one format to another. Sometimes it gets pretty miserable!
Making vector search fast, memory-efficient, and natural in SQLite.
When you write code, you want to focus on the code, not on the text of the code. This means a) you have to have a good text editing setup, and b) you need to have a muscle-memory level instinct for using that setup. The second comes with practice and with consistency (i.e. not changing your config too much too…
Dave Andersen's (new) blog
within Rust is a smaller language struggling to get out
Last year, I urged furries to stop using Telegram because it doesn’t actually provide them with any of the privacy guarantees they think it gives them. Instead of improving Telegram’s c…
OpenAI released GPT-5 yesterday, promoting it as their best model yet for agentic coding.
Reimplementing Haskell lazy infinite lists using Python generators
On trying to mash up SQLite with ideas stolen from Accountants, Clojure, Datomic, XTDB, Rama, and Local-first-ers, to satisfy Henderson's Tenth Law. Viz., to make a sufficiently complicated data system containing an ad-hoc, informally-specified, bug-ridden, slow implementation of half of a bitemporal database…
My journey implementing a new dithering algorithm in the Racket programming language.
A blog mostly about Clojure programming
Infrastructure as code, but actually
Cross-compiling is taking a computer program and compiling it for a machine that isn’t the one hosting the compilation. Although historically compilers would only compile for the host machine, this is considered an anachronism: all serious native compilers are now cross-compilers.
Software, games, and the occasional startup.
It Happened.
Read THE WEIRD CONCEPT OF BRANCHLESS PROGRAMMING on sanixdk.xyz
Or: The Day My Toaster Started Taking Phone Calls
But this is slow! With 1,000,000 applications and 1000 users uniformly distributed on both columns, it takes over 100ms. 1
I’ve needed this before - a couple of times. Third time I figured I needed something small, nimble - yet complete. And - at the same time - wondering about how to do it in a very simple manner. I think it worked out great, so let’s dig in. Most UIs will have some form of undo functionality. Now, there are generally…
Since my previous blog entry about JIT compiler for PostgreSQL, sadly not much happened due to a lack of time, but still some things were done (biggest improvement was the port to ARM64, a few optimizations, implementing more opcodes…). But I am often asking myself how to really beat the interpreter… And on “modern”…
How to build great websites with htmx by learning a couple browser features alongside it.
"Use the right tool" is nice in theory, but not when the tool acts a bit differently from machine to machine, and isn't always installed.
A breakdown of how I used modern AI tools (Veo 3.1 and Nano Banana) to create a new version of a Google cultural classic.
Don't "let it crash". Let it heal.
C++ implementation of the simplest callback
I work in Google Ads in the past several years. Over time, I've seen one pattern came along again and again, causing endless pain for developers, that is, creating mini-frameworks.
OpenAI partially released a new model yesterday called GPT-5-Codex-Mini, which they describe as "a more compact and cost-efficient version of GPT-5-Codex". It’s currently only available via their Codex CLI tool …
I spent way too much time on this
In the last two years, code review has gotten much more important. Code is now easy to generate using LLMs, but it’s still just as hard to review. Many software…