05 · /BLOG
Writing.
Personal blog — notes on Go, architecture and tooling.
POSTS
16
SINCE 2018
RSS
/BLOG/INDEX.XML
FILTERED BY
09 OCT 2026 · 7 MIN READ
How the Web Gallery of Art Serves Markdown to LLMs
How the Web Gallery of Art gives language models a plain Markdown version of every record: llms.txt, Accept negotiation, strict limits and edge caching.
READ
→
03 POSTS
2026
09 OCT · 7 MIN
How the Web Gallery of Art Serves Markdown to LLMs
How the Web Gallery of Art gives language models a plain Markdown version of every record: llms.txt, Accept negotiation, strict limits and edge caching.
08 OCT · 15 MIN
Why the Web Gallery of Art Runs on PocketBase, HTMX and Vanilla JavaScript
What the rebuilt Web Gallery of Art runs on (Go, PocketBase, SQLite, templ and htmx), and how a read-heavy catalogue ended up with such a small stack.
21 AUG · 9 MIN
The Web Gallery of Art Is Taking Its Next Shape
The rebuilt Web Gallery of Art is now public as a pre-alpha at beta.wga.hu. Here's what has been rebuilt, what was kept, and how you can help.
03 POSTS
2021
29 OCT · 2 MIN
Building my own Delta printer, stage 0
Why I'm designing my own Kossel-style delta after a year with the FLSUN QQ-S Pro, and what goes into it: V-Slot, a Duet 2 Wifi and Klipper.
07 JUL · 2 MIN
Context aware table row actions for Laravel Nova
Nova's table row actions don't know which row they're on. Hand them the row's model with a fluent setter and shape each form to it.
28 MAY · 6 MIN
Adventures with Klipper and a Duet 2 Wifi on an FLSUN QQ-S Pro
Flashing Klipper onto a Duet 2 Wifi with bossac, and building a working printer.cfg for the FLSUN QQ-S Pro from three different configs.
02 POSTS
2020
16 OCT · 7 MIN
FLSUN QQ-S and Duet 2 Wifi
Swapping the FLSUN QQ-S Pro's factory board for a Duet 2 Wifi: the odd factory wiring, the inverted probe on RepRapFirmware 3, and a working config.
11 AUG · 3 MIN
LDVSC — Laravel with Docker and VSCode
A ready-made .devcontainer for Laravel: Nginx, PHP 7.4, MySQL, Redis and Mailhog in Docker, with VS Code working inside the container.
05 POSTS
2018
07 DEC · 3 MIN
Laravel Nova & Vuex… a future proof solution?!
Since Nova 1.2 the root Vue instance has a Vuex store. Register your tool's module on it with registerModule, no patching required.
06 DEC · 2 MIN
New plaything in Laravel Nova 1.2
Nova 1.2 quietly ships a ProgressButton component. Here's where to find it and how to use it in your own tools.
20 NOV · 4 MIN
Laravel Nova & Vuex, the Second Round
Patch Nova.js so tools can register Vuex modules before lift-off, and get a real this.$store in every tool component.
13 NOV · 3 MIN
Adding a Vuex store to your Laravel Nova Tool
Nova owns the root Vue instance, so a tool can't hand it a store. Create one in Nova.booting, keep it on the Nova object and read it from your components.
12 NOV · 3 MIN
Dynamic Attributes for Eloquent models
Store the slug, not the URL: accessors and $appends give an Eloquent model attributes that are computed from its data, in PHP and in JSON.