Journalen · Notes from the workshop
Writing
Notes on things we keep having to explain more than once: static sites, declarative servers, packet filters, and where your data is stored.
Hardware
ThinkPads, Unix-installed
Refurbished ThinkPads that arrive with GNU/Linux or BSD already working, including every function key, the fingerprint reader and the dock, provisioned from the same repository as your se...
Culture
Hackathons & open-source culture
Running the event, and the harder part afterwards: turning a good weekend into an organisation that is comfortable working in the open.
Diagrams
Your architecture diagram belongs in the repository
TALA went open source last week, so we are using the occasion 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 ...
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
We judge a ruleset by 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 and data sovereignty are different things, and the difference usually comes down to 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 clear 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 what you give up by choosing it.
NixOSWhy NixOS
Why we use NixOS: the whole machine described in one file, staging that matches production, and rollback by rebooting rather than a rescue.
OllamaWhy Ollama
Why we run open-weight models locally with Ollama: jurisdiction, cost and latency, and the capability gap you accept in return.
RedmineWhy Redmine
The full case for Redmine: no seat licence, your own PostgreSQL, workflows that fit a regulated process, and twenty years on the market.
WireGuardWhy WireGuard
Why we use WireGuard: a VPN small enough to have been audited, fast enough that people leave it on, and simple enough that public keys are the whole identity model.
pfWhy pf
Why we use pf, the OpenBSD packet filter: the ruleset reads like English, goes through code review like any other code, and stays small enough for one person to hold in their head.
Everything above is in the Atom feed. No newsletter, no tracking pixel.