Quick Tour of Postgres Logical Replication - Reacting to Changes (Part 3)
Part 3 --> This post was written for Blaugust 2026 Ok so now we have a beatiful way to 1-way table rows between two pg instances in our sleep in part 1 in part 2, we also learned what happen if there…
2026-08-17
Proxmox is great for managing VMs, but then you'll have to dedicate a full node to it. There are other solutions, with their own pros and cons. My favorite is Nomad + QEMU, and at least for my…
PyTorch profiles are going to look much better in Perfetto
PyTorch profiles are going to look much better in the next release of Perfetto. Last time, I explained how PyTorch’s profiler emits events that overlap in ways that are technically forbidden by the…
The Stack Below the Stack (Part 3): Serving at Scale
The Stack Below the Stack, a 3-part series on how modern LLM inference actually works, told through a single DeepSeek V4 dtype bug. Part 1 · Physics of a request : why the first token is a different…
Deno Permissions vs Node.js and Bun: What Each Runtime Actually Enforces
I ran the same hostile scripts under Deno 2.9, Node.js 26 and 24, and Bun 1.3 to see what each sandbox really stops — and where Deno's permission model quietly stops helping.
PAR2: The Tool That Protects Long-Term Backups From Bit Rot
PAR2 recovery data can rebuild a corrupted backup archive after real bit rot, no second copy required, and it works the same on Windows and Linux.
Caching in the AI Era
How caching changed once LLMs entered the picture: what prompt caching actually stores.
DC34: Badge hackin'
Hacking the DC34 badge: a shared loader-jump foothold, different temporary-Xous routes for K0 and Flag1, and an IFR instruction-reconstruction extension.
Why Flock Is A Fourth Amendment Nightmare
TranscriptRecording a car on a public road generally isn’t a Fourth Amendment search. But turning sightings from an entire camera network into a searchable history of where people travel may…
We Just Wanted to Deploy a PHP Website
What started as a small deployment modernization turned into a journey through Forgejo runners, isolated CI, custom Docker images, PHP 8.5, Yarn 4, reproducible artifacts, restricted SSH and our own…
US cloud act, sovereignty, and why you might need to care
Airbus’s move to European cloud hosting is a reminder that data residency is not the same as digital sovereignty. Where your cloud provider is headquartered, and which laws it answers to, can matter…
Banana Pi R1 Armbian notes
docs linux-sunxi wiki openwrt docs bpi forums other 1 other 2 other 3 Armbian no longer seems to offer BPi R1 images for download, but they’re still compileable using the builder. You can get a…
Shelv - Private Music Player for Your Own Server
I've really been digging Shelv as a way to play music from my home server. Works great on the phone and the desktop, streams right from my Navidrome. Quite nice.
Webmentions + Bridgy
I’m resurrecting an old tag after almost 4 years (!!!) because I wanted to note (to myself mostly) that I’ve added webmentions to my site, as well as proper Bridgy support. I think that means that my…
Meshtastic / Meshcore – Bandpass Filter – Characteristics
Background Filters are a hotly contested topic in the realm of Meshtastic and Meshcore. Often for mesh radios, bandpass filters are the specific type of filters of primary interest. The job of these…
Serving git over HTTP using git-http-backend
My original version of this article was all about the problems I had using git-http-backend to make a git repository available over HTTP with authentication on a Rocky Linux 10 system. Cloning the…
I've Inadvertently Opted Out of Smart Notifications Thanks to GrapheneOS.
I've been running GrapheneOS for a little over a year now and didn't realize much Smart Notifications have changed phone usage. I'm happy I had the chance to opt out of them.
Home Assistant
Getting started with Home Assistant, installing and configuring the Home Assistant Community Store, and then installing an integration for GloBird Energy to track electricity (and later gas) usage.
The Defender's Window
The OpenAI-Hugging Face incident was a watershed moment for cybersecurity because it gave a peek into how the capabilities of a typical threat actor will evolve in upcoming months. I’ve spoken with…
Releasing debvulns-exporter and debvulns CLI 0.2.2
Announcing release debvulns 0.2.2 with enhancements and an updated dashboard
What Is a Shell?
A shell reads commands, starts programs, and connects them together.
AMD Radeon AI PRO R9700 added to FreeBSD Home Server
AMD ROCm, AI inference and compute on FreeBSD via bhyve GPU passthrough, and reducing blower fan noise
Jobs and Job Control
How a Unix shell manages commands in the foreground and background.
Resurrecting a 2017 MacBook Pro With Linux
Years ago, when my old company was decommissioning hardware, I bought the 2017 MacBook Pro from them, the 13" A1708 with function keys instead of the Touch Bar. I bought it because it was really…
Renovate: teaching an old dog new tricks
Renovate is a super useful open-source tool that automatically keeps your project’s dependencies up to date (see also STF milestone 1 ). It has broad support for a lot of ecosystems, including Maven…
Automating phone backups
The problem# Last time, I wrote about figuring out how to access my Android phone's filesystem from the command line. As I said, the actual problem I wanted to solve was to minimize the manual effort…
Bulk-Adding Google Workspace Domain Aliases Without Service-Account Keys
Managing one domain in Google Workspace is straightforward. Managing ten, twenty, or more domains across several brands is where the process starts to hurt. For every domain, an administrator has to p
How I use a BlackOps brain to track my deploys
I asked BlackOps for a brain called Deployment Log, backfilled 34 deploys into it out of the build logs, and it caught a failed build I had never recorded plus a fix I had already made too narrowly.
Porting a Fortran EMP Simulation for Henry Newton
Sometime around 2016, a guy named Henry Newton started showing up to our local meetup in New Orleans. He had a pretty interesting career and some cool stories. The reason he came out, I think other…
NCCL Wire Protocols
How NCCL's wire protocols trade payload bytes against synchronization cost
The Problem About NAT MASQUERADE
While working on multi-homing my ASN network earlier to add Vultr as my secondary upstream, I ran into an issue where my traffic coming out of my Vultr BGP session was seen as coming from…
Week 33, 2026 - Traces as Documentation, the Observability Land Grab and Search I Host Myself
Agents read traces where humans read dashboards. Dynatrace bought Arize for $915M, Nini says my posts are too generic and I moved to a self-hosted SearXNG.
Add Cloudflare Turnstile to Astro Forms and Workers
How I added Cloudflare Turnstile to an Astro newsletter form and verified tokens in a Worker: keys, CI, deploy order, and DevTools noise.
How to prevent Google Antigravity from accessing .env
How to deny Google Antigravity's agent access to your .env in the IDE and the CLI, how to verify it worked, and the settings around it that matter.
How I Migrated From Authentik to Pocket ID With TinyAuth on NixOS
A while back I wrote about how I set up Authentik forward auth with Traefik on NixOS. It worked, but over time Authentik got a bit heavy for what I actually needed from it, i.e. one identity provider…
Making stinkarm stink way less, or more?
removing overengineered memory translation, hardening and new table driven armv7 instr decoding
Paperless cloud backups
I store all of my important (and many not so important) documents in my Paperless-ngx instance running on my homelab. Given this importance, I wanted to add an additional backup of my documents and…
FreeBSD Home Server - Part 1: OS Install
FreeBSD Home Server - Part 1: OS Install
The One Letter That Broke My Nextcloud Container
Debugging a Nextcloud deployment on Podman Quadlets that kept breaking every thirty seconds, from a Cloudflare 502, to an Apache 403, to the real culprit: one uppercase letter in a shared SELinux…
Authenticating to AWS by using a Google Cloud agent identity and AssumeRoleWithWebIdentity
A long time ago, I wrote about how service accounts can authenticate to AWS by using AssumeRoleWithWebIdentity. To allow such federated authentication, we create an AWS role for Open ID Connect…
My own music streaming
There’s a growing trend of de-Googling, de-Appling, and other de-words these days. That includes de-Spotifying — because of the CEO’s actions, low payouts to artists, and AI taking over…
Your terminal has been editing everything you type
Note: the terminal output in this post is from macOS. Everything here works the same on Linux, but stty -a prints its report in a slightly different layout, and some default flags differ at the…
Running Ollama on iGPU on Linux
How I got 3x inference speed on a five-year-old Intel NUC iGPU
Syncing Gmail with mbsync using OAuth2
I wholeheartedly dislike GMail (ethically, technically, and UX), and for my personal email I have always run my own server. But for work email I don’t have a choice. I am using isync/mbsync to…
elpacman -- a command-line package manager for Emacs
My home lab machines are running a mix of GNU/Linux, FreeBSD, and macOS and over the years I have accumulated a decent amount of shell scripts and tools, which eventually got refined as my personal…
Bubblewrap is all you need
You don't need a new sandbox product to keep AI agents out of your secrets. Bubblewrap is a decade old and already does this.
Applications and a status page
The server’s whitelist has a real front door now: a form that asks the questions worth asking and emails me a link to approve or turn down. There’s also a status page showing which of my…
Data Centers – analysis by Mark J. Welch (Aug 2026)
Enron. That’s the most important keyword when evaluating AI data centers. https://en.wikipedia.org/wiki/Enron_scandal How many of the mega-datacenters are owned, operated, controlled and contracted…
Getting Splunk onto a NixOS Linode
I really like Splunk1, especially for personal projects where usage can fit comfortably into the free tier. I also really like NixOS, and have recently embarked on getting my web stuff onto NixOS.…
I reverse-engineered my HVAC because I couldn’t turn it off reliably
A couple of months ago, I had my HVAC controller replaced in an effort to save on electricity. I controlled the previous board with an IR blaster that I loaded with a full matrix of {mode,fan_speed,…