Skip to main content

Posts

Showing posts from October, 2020

Dell T1600 cheap home server

Dell T1600 Home Server Build: A Cheap, Quiet, and Surprisingly Capable Workhorse Last updated: May 18, 2026 Most laptops are great for daily work, but they are not always the best choice for a home server or small homelab. I wanted something that could stay powered on for long periods, run a few Docker containers, handle heavier tasks when needed, and give me more room to upgrade than a typical laptop. My requirements were simple: a quad-core CPU, expandable RAM, support for a dedicated GPU, quiet operation, and a price low enough to make the project worth it. After searching the used market, I found a Dell Precision T1600 for just $50. It was not new, flashy, or power-efficient by modern standards, but for a cheap Linux home server or beginner homelab machine, it had enough potential to be interesting. Dell T1600 Home Server Specs T1600 chassis So, what do you actually get for $50 plus shipping? This Dell T1600 came with: Intel Xeon E3-1225 CPU, quad-core with 4 threads and integrate...

Python Static Code Analysis in 2026: Ruff, Bandit, Pylint and Mypy for Safer Code

Updated in 2026: this article was originally written in 2020 and focused mainly on Prospector and Bandit. The updated version keeps that original idea, but adds a more modern Python static analysis workflow using Ruff, Bandit, Mypy and Pylint. Python scripts are dangerous when they become invisible. Not dangerous in a movie-hacker way. Dangerous in the boring real-world way. A small script starts as a quick helper. Then it ends up running from cron. Then it touches backups, logs, Docker containers, firewall data, API keys, file permissions, or some random directory on a Linux server. Months later, nobody remembers exactly what it does, but everyone hopes it keeps working. That is where Python static code analysis is useful. Static analysis checks code before you run it. It can catch common bugs, insecure patterns, style problems, type mistakes, unused imports, dangerous function calls and other issues that are easy to miss when a script is small and “just works”. In the or...