PlatformIO SimAVR Unit Testing for Arduino
Unit testing Arduino and embedded code with PlatformIO, Unity and SimAVR, including testing ChaChaPoly encryption without constantly uploading to physical hardware
Raspberry Pi IP Camera - Part III
Scale a Raspberry Pi IP camera to thousands of live viewers using MediaMTX, FFmpeg and Cloudflare Stream, with RTMPS, keyframes and CDN delivery
Raspberry Pi IP camera - Part II
Build a Raspberry Pi “dumb” IP webcam with the AI Camera, MediaMTX and a simple FastAPI pan/tilt API for remotely monitoring a 3D printer
Raspberry Pi IP camera
Build a Raspberry Pi IP webcam from spare parts with USB video, MediaMTX, FFmpeg, WebRTC and pan/tilt servo control for monitoring 3D prints and plants
Systemd overriding libvirt-guests shutdown behavior
Configure libvirt-guests to fully shut down one VM before host shutdown using a systemd drop-in and polling script, without modifying upstream files
Packer and Docker images on ARM64
ARM64 is everywhere - here’s how to build Debian VMs and Docker images for Raspberry Pi, Graviton and other AARCH64 systems.
Kubernetes direnv
Use direnv to keep Kubernetes credentials and contexts isolated per cluster, making it easy to switch between multiple K3s and Kubernetes environments without a huge shared kubeconfig
Lab Environment
A tour of my personal lab for destructive testing, with Hyper-V, K3s, Confluent, LDAP, MSSQL, Packer, Nexus and Ansible
(Fun With) Packer and Nexus
Build minimal, reusable VM images for Hyper-V and KVM with Packer, then customize them with Ansible after boot. Includes hostname, SSH, swap and console setup
Lab CA
Create a private lab CA and wildcard TLS certificate chain with OpenSSL for testing, including SANs, certificate inspection and troubleshooting key formats
Debugging asymmetric routing
Diagnosing asymmetric routing across VLANs with tcpdump, OPNsense and Linux - and why redesigning the network can beat patching a broken topology
Podman Quadlet Services
Run single-container services simply with Podman Quadlet and systemd, using Kubernetes-compatible pod definitions, persistent volumes, networking and Ansible automation
AI Coding - Twitter 3D printing
I put AI coding to the test by building a 3D-printable Twitter plaque with ChatGPT - here's what worked and what didn't
How to reset nexus admin password in Nexus 3 OSS
Reset a forgotten Sonatype Nexus password when running Nexus in a container, using its H2 database, SSH tunnelling and the H2 console. Includes container-specific setup and cleanup
Debian 12 bootable USB
Automate Debian 12 server installs from a bootable USB using preseed, wiping and partitioning disks with LVM before handing the new system over to your SOE automation