Practical guides on Linux, AI, self-hosting, and developer tools

Agentic RAG: How to Let Your LLM Decide When and What to Retrieve

Agentic RAG replaces the standard “retrieve-then-generate” pattern by giving the LLM tool-use capabilities to autonomously decide when to retrieve, which knowledge sources to query, how to reformulate queries for better results, and whether the retrieved context is sufficient or needs additional searches. Instead of blindly fetching documents on every user query, the model acts as an orchestrator - issuing targeted searches across multiple vector stores, SQL databases, and web sources, then self-verifying answers before responding. This approach achieves 15-25% higher answer accuracy than naive RAG on multi-hop question answering benchmarks while cutting unnecessary retrieval calls by roughly 35%.

Hall Effect Mechanical Keyboard Switches: Wooting vs. Geon Raw HE

If you’ve been following the mechanical keyboard scene over the past couple of years, you’ve probably noticed Hall Effect keyboards moving from niche curiosity to genuine mainstream contender. The technology that was once confined to expensive custom builds and obscure group buys is now showing up in mid-range boards from Keychron, Razer, and SteelSeries. And at the top of the pile, two keyboards have emerged as the flagships of the Hall Effect world: the Wooting 80HE and the Geon Raw HE .

How to Build a KVM-over-IP With PiKVM for Remote Server Management

PiKVM turns a Raspberry Pi into a full KVM-over-IP device that gives you IPMI-like remote access to any computer’s BIOS, bootloader, and operating system through a web browser. You connect the Pi to the target machine’s HDMI output and USB port, open the PiKVM web interface from anywhere on your network, and get real-time video of the screen with keyboard and mouse control, virtual media mounting, and ATX power management. A DIY build runs under $100 in parts, while even the premium PiKVM V4 Plus at around $385 undercuts comparable commercial IPMI modules from HPE or Dell by a wide margin.

NixOS for Non-Believers: A Practical Guide for Developers

You have sent the message “it works on my machine” at least once in your career. Maybe you’ve been on the receiving end of it. Either way, the problem is always the same: two machines that are supposed to be identical are not, and no one can explain why. One has Python 3.11, the other has 3.12. One has a system-level OpenSSL that some C extension links against, and the other doesn’t. One engineer installed a package six months ago and forgot about it.

Run Vision Models Locally: Florence-2 and Qwen-VL for Image Analysis

Florence-2 and Qwen2-VL both run on consumer NVIDIA GPUs starting at 8 GB VRAM and handle OCR, object detection, image captioning, and visual question answering entirely offline. Florence-2 uses a compact sequence-to-sequence architecture with task-specific prompt tokens, which makes it fast and reliable for structured extraction work. Qwen2-VL takes a conversational approach and handles open-ended reasoning, complex documents, and follow-up questions - making the two models complementary rather than interchangeable.

How to Build a Retro Gaming Console with Raspberry Pi 5 and RetroPie

A Raspberry Pi 5 running RetroPie or Batocera turns a $80 single-board computer into a retro gaming console that handles everything from NES and SNES through PlayStation 1, N64, Dreamcast, and even some PSP titles. The Pi 5’s quad-core 2.4 GHz Cortex-A76 CPU and VideoCore VII GPU deliver roughly 3x the single-core performance and 2.8x the GPU throughput compared to the Pi 4, making previously choppy N64 and Dreamcast games run at full speed for the first time on Pi hardware. With Bluetooth controller support, CRT shaders, and a polished menu system, the result rivals commercial retro consoles like the Analogue Pocket or Retroid Pocket at a fraction of the cost.

How to Build a Status Page for Your Self-Hosted Services with Gatus

Gatus is a single-binary or single-container monitoring tool that continuously probes your services and renders a public status page at a URL you control. You define every check in one YAML file, so your entire monitoring setup can live in Git alongside the rest of your infrastructure. There is no mandatory database, no web-based configuration UI to click through, and no per-monitor pricing. If you self-host anything - a blog, a Gitea instance, a Home Assistant server, a mail relay - Gatus gives you a straightforward way to know when something breaks and to show your users that things are running.

Guardrails for LLM Apps: How to Prevent Prompt Injection and Data Leaks

You can harden LLM-powered applications against prompt injection and data leaks by layering multiple defenses: input sanitization that strips control tokens before they reach the model, output filtering that scans responses for PII and secrets, and structured generation that constrains model output to a predefined schema. Combined with a system prompt firewall that separates trusted instructions from untrusted user input, these defenses turn a single unguarded API call into a pipeline where adversarial prompts are detected before inference and sensitive data is redacted after inference. None of these techniques alone is bulletproof, but stacked together they reduce attack surface to a level that makes exploitation impractical for most threat models.