SumGuy's Ramblings
The art of wasting time.
Docker, self-hosting, AI/LLM, Linux, and DevOps — explained by someone who learned the hard way. No fluff, no enterprise jargon, just practical stuff that actually works on real hardware.
Recent Posts
-
Migrating 10 Years of Bookmarks
Merge Chrome, Firefox, Pocket, Raindrop and Pinboard exports into one deduplicated file with tags, triage dead links, and import it all into linkding.
15 min read -
OpenCost on k3s: What Your Pods Cost
A home lab has no cloud invoice. Feed OpenCost your power rate and hardware price, then see which namespace on your k3s cluster is the real monthly cost hog.
13 min read -
Train a Tiny GPT, Part 4: Inference
The KV cache sped a 5.8M-parameter GPT up 4.4x on a laptop CPU and did almost nothing for the RTX 3070 at batch 1. Then sampling settings decide how it reads.
16 min read -
Train a Tiny GPT, Part 3: Training
Train a 5.8M-parameter GPT on Sherlock Holmes: 59 seconds on an RTX 3070 vs 48 minutes on its CPU, and the overfitting that starts near step 1,250 of training.
16 min read -
gVisor vs Firecracker vs Kata for Agents
Letting a coding agent run npm install and arbitrary shell? Compare gVisor, Firecracker, and Kata on startup, KVM needs, Docker fit, and network egress.
14 min read -
Train a Tiny GPT, Part 2: Attention
Build causal self-attention and RoPE in plain PyTorch, then measure naive vs fused attention on an 8GB GPU: 6400 MiB vs 8.3 MiB of VRAM at 16k tokens.
17 min read -
Network Namespaces by Hand, No Docker
Rebuild Docker's bridge network with ip netns, veth pairs, a Linux bridge and nftables NAT. Six iproute2 commands, three nft rules, and a 2 AM debugging edge.
15 min read -
Kill-A-Watt Tour of Every Box in the Rack
Measure real homelab power draw box by box: wall meter vs smart plug, UPS, IPMI and RAPL, which numbers lie, and how to log watts to CSV and average them.
16 min read -
Radicale vs Baikal: CalDAV That Syncs
Radicale or Baikal for a shared family calendar? Compose files, a rights file that shares one calendar, Caddy redirects, and the DAVx5 and iOS sync gotchas.
12 min read -
Train a Tiny GPT, Part 1: Tokenizers
Build a byte-level BPE tokenizer in about 100 lines of Python, then compare it to tiktoken's gpt2, cl100k_base and o200k_base on prose, code, YAML and German.
14 min read -
Clef vs Jev: Cloudflare's 4x Tie
Cloudflare's Clef decision model tied Jev on accuracy in a private benchmark, abstained on junk better, and cost 4.2x more per decision. Real numbers inside.
13 min read -
GitOps Rollback: Argo CD vs Flux
How to roll back a broken GitOps sync in Argo CD v3.5 and Flux v2.9: git revert, argocd app rollback, HelmRelease remediation, plus a 2 AM runbook to copy.
12 min read