Posts
All the articles I've posted.
-
CUDA vs ROCm vs CPU: Running AI on Whatever GPU You've Got
CUDA vs ROCm for AI on Linux: NVIDIA's easy path, AMD's emotional journey, and why CPU inference isn't dead yet. Real Docker setups included.
9 min read -
Open Source Security: Scanning Your Dependencies Before They Scan You
Supply chain attacks are real. Use syft, grype, trivy, and osv-scanner to generate SBOMs, scan containers, and find vulnerable dependencies before they find you.
7 min read -
Here Documents vs Here Strings in Bash
<<EOF syntax for multiline input, <<-EOF for indentation, <<<string for single lines. When to use each.
5 min read -
HandBrake and Video Transcoding: Your Media Library Deserves Better Compression
Stop hoarding 50GB Blu-ray remuxes. Learn HandBrakeCLI, H.265/AV1 trade-offs, GPU encoding, and batch scripts that actually work.
6 min read -
Portainer vs Dockge: Managing Containers Without the Terminal
Portainer vs Dockge: two Docker GUIs for managing containers without touching the terminal. We compare features, setup, and which one fits your self-hosting style.
14 min read -
Loki vs ELK Stack: Taming Your Logs Without Taming Your Budget
Loki vs ELK Stack for self-hosted log aggregation: compare RAM usage, query power, complexity, and cost. Docker Compose setup for Loki + Promtail + Grafana.
8 min read -
DDoS Mitigation: Teaching Your Server to Say No Politely (Then Impolitely)
DDoS mitigation for self-hosters: Nginx rate limiting, Fail2ban, Cloudflare free tier, CrowdSec, and iptables tricks that actually work.
7 min read -
GNU parallel for Embarrassingly Parallel Tasks
GNU parallel runs tasks in parallel across CPU cores. It's faster than xargs and easier than writing a job queue. Here's when and how to use it.
5 min read -
LVM Advanced: Snapshots, Thin Provisioning, and Not Losing Your Data
Master LVM snapshots and thin provisioning on Linux. Learn to create, use, and merge snapshots for backups, and over-provision storage safely.
9 min read -
SSH Hardening: Lock Down Remote Access Without Locking Yourself Out
Harden SSH properly: disable password auth, switch to Ed25519 keys, configure sshd_config, set up SSH certificates with step-ca, add 2FA, and configure ProxyJump for bastion hosts.
8 min read -
WireGuard Is Fast, But You're Leaving Performance on the Table
WireGuard performance tuning: MTU optimization, CPU offloading, AllowedIPs routing, PersistentKeepalive tradeoffs, and iperf3 benchmarking. Squeeze every MB/s from your VPN tunnel.
8 min read -
trap in Bash: Clean Up When Your Script Dies
trap EXIT for cleanup, trap INT/TERM for graceful shutdown, trap ERR for errors. Reliable error handling.
5 min read