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
-
Solar Plus Battery for Your Home Lab
Grid-tied solar shuts off in an outage. The battery keeps your lab alive. Size it first, then the panels, with real prices for a power station vs a 48V build.
14 min read -
Train a Tiny GPT, Part 5: Fine-Tuning
A 5.8M-parameter GPT scores 1.626 bits per byte on Holmes. Gemma 4 E4B scores 0.953 untrained, and a 34-minute QLoRA run on an 8 GB GPU gets it to 0.865.
17 min read -
Devcontainers for a Whole Team
Turn a devcontainer into a team standard: Compose with Postgres, pinned Features, lifecycle hooks, one prebuilt image for laptops and CI, and the UID gotcha.
12 min read -
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