2026's Midsummer Potpourri
📍 Ely, EnglandAssorted notesSome notes from the midsummer.
Updates
23/6/26: Added a section on light and dark modes, fix some typos.
Goodbye Arch
The AUR compromise provided an impetus to sort my laptop out.
It's a shame, as CachyOS did really good things for optimisation. There's nothing wrong with the Arch repositories themselves. The Arch team do a really good job with the core Arch repositories. Sadly, the AUR, which is often touted as a great selling point of Arch, is broken, and is based on a trust mechanism which doesn't work anymore.
The Linux trust model is broken. Package maintainers had a hard time managing their systems before AI came along. The flaw in the AUR is that a user could claim an orphaned repository and at some point they would be granted it. Now doing this a few years ago takes a good while, but with AI, it became easier to create sockpuppet accounts, and sure enough, lots of accounts were at it, then one day, they pushed a rootkit. It's easy to blame the AUR but its model is now dangerous, and sandboxing is required.
With that in mind, I'm using Bluefin, which containerises a lot of applications and does not encourage a reliance on unofficial repositories with global access. If I do need Arch at any point, I can spin up a Distrobox and still use Arch.
A better notebook
I found a replacement for the venerable Jupyter: marimo.
It looks nicer, diffs cleaner, has tools for computer vision and GIS, and also produces good dashboards.
12b is all you need
I have settled on a model for my local inference stack: gemma4:12b.
12b is multimodal, has a good context window, and runs quite nicely on my RTX 2000 Ada Generation. In my experience it uses 10GB of VRAM idle, but quantisation can bring that down to the point where it could be ran on a laptop.
Only thing is that it nails GPU time. But it'll get better and better. I do think that local AI will beat hosted AI, especially in privacy-oriented applications and in coding, where latency is an annoyance.
Agentic data wrangling
A big part of GIS is sorting the data out, because nobody gets it right, and everybody has their own way of doing things.
It used to be a manual task. Find data, download, extract and put into database, either document or automate, then merge into the data importer.
Now? That's not the case anymore. You can get your agent to do it. Give it some GIS skills (like using ogr2ogr, the ability to write SQL and Bash), then send it on its way. Once your agent has done its job, you give the final touches, then merge.
How long before the human is out of this loop?
How many web browsers does it take to change a light bulb?
As part of a rejig of this site, I wanted to change colour palette from a fairly plain (and light/dark mode friendly) one to a gruvbox-inspired one.
So how many ways do you think there are of switching?
There's a button which adds/removes a class from some tags.
<!-- Styling -->
<style>
body {
color: black;
background-color: white;
}
.dark-mode {
color: white;
background-color: black;
}
</style>
<!-- JavaScript toggle -->
<script>
const switchTheme = () => {
const element = document.body;
element.classList.toggle("dark-mode");
}
</script>
There's the native CSS method using prefers-color-scheme.
body {
color: black;
background-color: white;
}
@media (prefers-color-scheme: dark){
body {
color: white;
background-color: black;
}
}
There's yet another way to do it: light-dark.
:root {
color-scheme: light dark;
}
body {
color: light-dark(white, black);
background-color: light-dark(black, white);
}
This is what I settled on. For goodness' sake, I hope people settle on this one too.