
Some of my recent sketches...
read more
Tired of broken code snippets in your documentation? Try pytest-codeblock, a zero-config plugin that supports both Markdown and reStructuredText. It brings the full power of pytest—including fixtures, markers, and native async support—directly into your docs without any boilerplate or manual wiring. Just name your block test_name_of_your_block and stop relying on users to find your documentation bugs.
read more
While uv pip compile only resolves what you specifically request, uv sync attempts to resolve every optional dependency in your project simultaneously. This can lead to unexpected failures if different "extras," such as ai and deploy, have conflicting requirements. You can fix this by explicitly declaring these incompatible extras in your pyproject.toml file to guide the resolver correctly.
read more
Tired of wrestling with messy license strings like "MIT License" vs. "The MIT License" or cryptic URLs? licence-normaliser is a lightweight Python tool that tames the chaos. It maps inconsistent metadata into a clean, machine-readable hierarchy (Family → License → Version), turning strings like CC BY-NC-ND 4.0 into a tidy cc-by-nc-nd-4.0 automatically. Whether you're scraping repos or managing compliance, it handles SPDX codes, prose, and even complex Creative Commons variants with ease—giving you a single source of truth for your legal metadata.
read moreTired of broken images in your Architecture Decision Records? This quick fix shows you how to add static image support to Log4brains. By setting up a docs/l4b-static folder and adding a simple copy command to your Build script or GitHub Action, you can finally use local icons and diagrams directly in your ADRs. Perfect for keeping your architecture docs visual and professional without the hosting headaches.
read moreTired of scrollbars playing hide-and-seek? This quick guide shows you how to use the Stylus extension to force scrollbars to stay visible in Vivaldi. With a simple CSS snippet, you can reclaim your navigation bars and even give them a custom look so they never disappear on you again.
read moreSwitching from Sublime Text to CudaText? This guide gets you up and running on macOS with zero friction. It covers everything from bypassing security warnings and setting up a terminal alias to a curated list of essential plugins like Python IntelliSense and Markdown Preview. Plus, there's a ready-to-go user.json config to keep your UI clean and your indentation consistent—perfect for those who want that familiar, lightning-fast editor feel without the bloat.
read moreSupercharge your VS Code setup with this curated list of essential plugins! Whether you're a Python pro needing Pylance and Makefile support, or a documentation stickler looking for Markdown and reStructuredText tools, these extensions bridge the gap between a basic editor and a powerhouse IDE. Plus, grab the PyCharm Theme to get that classic JetBrains look without sacrificing VS Code's lightweight speed.
read moreWant to run Open WebUI as a seamless background service on your Mac? This guide walks you through setting it up with launchd, so it starts automatically every time you log in. Using uv for a clean install and a simple .plist configuration, you'll get persistent hosting, automatic crash recovery, and easy log management. No more manual terminal commands—just a reliable local AI interface ready whenever you need it.
read moreClean up your workspace by hiding those pesky *.py,cover files from your IDE. Whether you're using VS Code or PyCharm, this quick setting change keeps your file tree focused on your actual source code by filtering out coverage reports. Just a few clicks in your editor's "Excluded" or "Ignored" file settings, and those clutter-causing files disappear from view while remaining safe on your disk.
read more
Safezip is a zero-dependency Python wrapper for zipfile that makes secure extraction the default. It provides essential protections against ZipSlip, ZIP bombs, and inconsistent ZIP64 headers—security features missing from the standard library. With support for atomic writes and environment-based configuration, it is an ideal drop-in solution for safely handling untrusted user uploads in production.
read morePyData Amsterdam 2025 highlighted the latest advancements in data engineering and AI, focusing on efficiency, performance, and modern development tools. Key trends included automated prompt optimization, zero-copy data sharing, and the rise of next-generation notebook environments. The event also showcased the growing maturity of the LLM ecosystem through improved RAG architectures and lightweight models for faster development.
read moreWhile most browsers treat websites as simple tabs, Vivaldi wins by letting you turn any site—even those without official support—into a standalone Progressive Web App (PWA). This guide explores how a single right-click can transform utility sites like Google Translate or JSON tools into clean, independent windows that live on your dock or taskbar, helping you declutter your browser and turn the web into a personalized app library.
read more
In software development, testing is an essential part of ensuring that code works as intended. One critical aspect of testing is debugging, which involves finding and fixing errors or bugs in a program. In this article, we’ll explore how to debug Python applications and highlight some of the most commonly used methods for debugging Python code.
read more