Advertisement
Open Source Projects by Phil Schwartz

Articles

Verifying file integrity with Python's hashlib after transferWhen a software package travels from a developer's laptop in Berlin to a CI runner in Sydney, the bytes that arrive are not guaranteed to match the bytes that…
Building a Python memory monitor for real-time system insightsWorking on servers out here in the sunburnt country often means dealing with kit that has to handle everything from a sweltering Perth data centre to a chilly…
Building a Python TCP Proxy for Network DebuggingA small TCP proxy can make opaque network behaviour easier to observe. It sits between a client and destination server, forwards bytes in both directions,…
Building a Flexible Python Plugin SystemA plugin system lets a Python application grow without placing every feature inside its core package. Third-party developers can add exporters, authentication…
Building a Python Tool to Enumerate and Test Default Credentials on Network DevicesNetwork appliances often arrive with factory usernames, temporary passwords, or vendor-defined access patterns that remain unchanged after installation. A…
A Python script for compressed MySQL backupsA reliable database backup does not need to be a large platform or a complicated orchestration system. For a small Linux server, a short Python program can…
Understanding Roulette With 38 Numbers For Australian PlayersRoulette with 38 numbers refers to the American wheel, which contains the numbers 1 through 36 plus a single zero and a double zero. That extra green pocket…
File locking with Python fcntl in multi-process systemsWhen several Python processes need to touch the same file at the same time, the outcome is rarely pretty. A worker in Brisbane might be appending a JSON record…
Building a Python interactive shell for a small databaseWorking from a home office in Brisbane often means juggling a few side projects alongside client work, and lately I've been tinkering with a bespoke…
Gracefully Stopping a Python Daemon with the signal ModuleA long-running daemon rarely lives in isolation. It usually sits behind a systemd unit, a container, or a small supervisor script, and somewhere in that…