Sun, Jul 19, 2026
4 notes this week
- Jul 18, 2026
Lobste.rs moved to SQLite, and the HN thread had sharper lessons than the post itself:
- WAL checkpoints only run during "reader gaps." Keep reads/writes continuously overlapping and the WAL file grows unbounded, a DoS vector kgeist reproduced with short-lived reads/writes, not just long-lived readers as the docs imply.
- Writes are fully serialized, one fsync each, yet app-layer batching still gets 100k+ writes/sec.
- Plain rsync on a live .db file can silently corrupt it since it doesn't understand SQLite transactions. Use sqlite3_rsync instead.
- The real weak point is schema migrations: treat SQLite like a KV store, or reach for CQRS, to keep the churn low.
- Jul 15, 2026
gistpreview.github.io renders any GitHub Gist as a live HTML page. Pass the gist ID as a query param (
?<gist_id>) and it fetches via GitHub API +document.write(). Entire thing is 2 files (index.html + main.js), no build step, trivially self-hostable. Useful for quick HTML/CSS demos without spinning up CodePen or deploying anything. - Jul 15, 2026
SecretSpec declares secrets once in
secretspec.toml(names + descriptions, never values) and resolves them from any of 11 backends: keyring, 1Password, Vault, AWS, GCP, .env. Same command everywhere:secretspec run --profile production -- npm start. Per-secret fallback chains (providers = ["vault", "keyring", "env"]) and aref = { item, field }form points at a secret you already have elsewhere, no renaming. Sharpest bit: agents get held to a stricter bar by default.require_reason = "agents"forcessecretspec run --reason "..."before an AI agent can read a secret, appended to a local audit log; humans running interactively are unaffected. Rust core, SDKs for Python/Go/Node/Ruby/PHP/Haskell. Worth piloting on a project drowning in.envsprawl. - Jul 13, 2026
Recordly does video recording, screenshots, and demo editing in one open-source Electron app. Not in Homebrew core, but easy to ship via a personal tap:
brew install --cask theskumar/tap/recordly. Replacing my previous screenshot/recording workflow with this as the single default (see Default Apps 2025).