~ $ cd craft && cat README.md
A rule that matters
goes into the code,
not into a guide.
A guide can go unread. A type, a grammar or a test cannot be skipped, and it does not matter who writes the change — a person or an AI agent: it holds for both.
These are small examples of it, and every one of them runs here. And a craft is shared, so the essays about it are here too.
- The post is the test
Write a post, and see the test it becomes: each sentence is a step, named by its words. - The craft, in writing
A craft is shared: a way through the essays about it, from tests as documentation to pairing and mobbing. - How this site is built
Its source as boxes and arrows, commit by commit, and the rules it is held to. - The post comes first
A course where posts were compiled into tests, and a grader read the repository. - Raft, and a recipe for concurrency
Three hints that let someone new to concurrency get a consensus algorithm right.
~/craft $ ls
the-post-is-the-test/The post is the testMy students got stuck on the regular expressions that tie each step of a test to its code, so a step's sentence became the code's name, and a post became the test. The idea, running, and where it went after the course.writing/The craft, in writingA craft is shared. A way through the essays that are about it — tests as documentation, the series that are courses in disguise, pairing and mobbing, and clean code with a sense of when to stop.architecture@How this site is builtThe source of this site as boxes and arrows, commit by commit — the program an AI wrote, and the rules it is held to.software-lab@The post comes firstSix autumns of Laboratori de Software 2 at Tecnocampus, and the platform built for it — posts in markdown compiled into tests for server and client, the server's answers replayed to the client, and a grader that read the repository.raft@Raft, and a recipe for concurrencyA consensus algorithm as a laboratory assignment in 2013, and the three hints — above all a three-step recipe — that let someone who has never written concurrent code get it right.