How.nz - AI Development Blog

Practical notes on ML inference, GPU kernels, AI agents and shipping software, by Lee Penkman, builder of App.nz, Netwrck and Text Generator.

The RTX 5090 is NVIDIA’s Blackwell-architecture consumer flagship – 21,760 CUDA cores, 32GB GDDR7, and 209.5 FP16/BF16 TFLOPS for $1,999 MSRP. It is the most powerful consumer GPU ever released for machine learning workloads. But raw specs don’t tell the whole story: framework compatibility issues, VRAM limitations vs datacenter cards, and wild street pricing all factor into whether it’s the right pick for your ML workflow.

Continue reading

You plug in a shiny new RTX 5090, install PyTorch, run torch.cuda.is_available(), get True, and then your training script crashes with a cryptic CUDA error. The problem: PyTorch’s CUDA availability check only verifies that a CUDA driver exists. It says nothing about whether the installed PyTorch binary actually ships kernels for your GPU’s architecture.

Continue reading

DictatorFlow is a voice-to-text platform that ships as a single 23MB native binary for Linux, Windows, and macOS. It evolved from VoiceType, a Go-based Linux-only CLI tool, into a full cross-platform application rewritten in Zig with local GPU inference, multi-provider cloud fallback, and a web…

Continue reading

If you run Linux services long enough, you eventually pick a side: Supervisor or systemd. The right answer is usually: systemd for the host, Supervisor when you need a lightweight, app-level process manager inside a container or a legacy stack.

This post is a practical comparison and then a walk-through of monitoring strategies, including how we wire AI agents into monitoring to auto-fix common outages (like what we keep in ../netwrck/monitoring).

Continue reading