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 Laptops are great for everyday work, but sometimes you need something with a bit more power and flexibility. In my case, I wanted a machine that could stay on all the time, run Docker containers, handle heavier workloads, and offer more upgrade options than a laptop. My main requirements were simple: quad-core CPU, expandable RAM, upgradeable GPU, quiet operation, and, most importantly, low cost. After some browsing, I found a Dell Precision T1600 for just $50. For that price, it was hard to say no. 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 integrated graphics 4GB DDR3 RAM, 1066MHz dual channel NVIDIA Quadro 2000 GPU 320W 90% efficient power supply 500GB hard drive A very plain chassis, which is not exactly pretty, but that does not matter much since it will be hidden away Th...

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...