Journalen · Notes from the workshop
Writing
Notes on the things we keep having to explain twice — static sites, declarative servers, packet filters, and where exactly your data sleeps at night.
Hardware
ThinkPads, Unix-installed
Refurbished ThinkPads arriving with GNU/Linux or BSD already working — every function key, the fingerprint reader, the dock — provisioned from the same repository as your servers.
Culture
Hackathons & open-source culture
Running the event, and the harder part afterwards — turning a good weekend into an organisation that is genuinely comfortable working in the open.
Diagrams
Your architecture diagram belongs in the repository
TALA went open source last week. That is a good excuse to explain why every diagram we hand a client is a text file under version control, and why the ones that are not are always out of ...
Jekyll
Your website does not need a runtime
Every website incident we have been called to clean up had the same shape: something was running that did not need to be.
Networks
A firewall you can read out loud
The best measure of a ruleset is whether a new engineer can read it aloud in a meeting and have everyone agree on what it does.
Infrastructure
Where your data sleeps
Data residency is not the same as data sovereignty, and the difference is usually a clause about who can be compelled to hand over a key.
Argumenten · The long-form case
Why we reach for these
in particular.
Longer than the notes above, and more opinionated: the comparison, the numbers, and the part where we say when the tool is the wrong answer.
Why Emacs
The case for a forty-year-old editor as the interface to a local language model — programmable all the way down, plain text throughout, and honest about who it suits.
JekyllWhy Jekyll
The full case for building company websites with Jekyll — no runtime, no database, content in Git, and HTML that will still render in 2040.
NextcloudWhy Nextcloud
The full case for Nextcloud — a European file, calendar and document layer that ends the transfer-impact conversation, and the honest account of what you give up.
NixOSWhy NixOS
The full case for NixOS — the whole machine as one file, staging that genuinely matches production, and a rollback that is a reboot rather than a rescue.
OllamaWhy Ollama
The full case for running open-weight models locally with Ollama — jurisdiction, cost and latency — and an honest account of the capability gap you accept.
RedmineWhy Redmine
The full case for Redmine — no seat licence, your own PostgreSQL, workflows that bend to a regulated process, and twenty years of proof that it does not go away.
WireGuardWhy WireGuard
The full case for WireGuard — a VPN small enough to have actually been audited, fast enough to forget about, and simple enough that public keys are the whole identity model.
pfWhy pf
The full case for pf, the OpenBSD packet filter — a firewall ruleset that reads like a sentence, reviewed like code, and small enough for one person to hold in their head.
Everything above is in the Atom feed. No newsletter, no tracking pixel.