Redowan's Reflections
Hi, I’m Redowan.
A roving amateur fumbling through software, systems, and sundry.
Recent writing
Learn how to access Python classmethods like property methods using metaclasses or Python 3.9+ decorator stacking for Enum classes.
Why executable scripts shouldn't have extensions. Learn GitHub's scripts-to-rule-them-all pattern for language-agnostic project automation.
Validate subclass schemas at definition time with Python's __init_subclass__ hook, a cleaner alternative to metaclasses for enforcing structure.
Test Python infinite loops safely using daemon threads with timeouts, allowing tests to complete without hanging or blocking execution.
Integrate tqdm progress bars with multiprocessing.imap_unordered for visual feedback on parallel task execution across worker processes.
Replace which with command -v for POSIX-compliant executable lookup. Learn why command -v is the portable alternative for finding program paths.
Master Git commit message conventions: imperative mood, 50-character subject, proper capitalization. Build coherent project history with consistent formatting.
Enable Bash strict mode with set -euo pipefail to catch errors early. Exit on failures, treat unset variables as errors, and handle pipeline failures properly.
Prevent shell commands from executing immediately when pasting. Use curly braces to safely paste multi-line commands with hidden newline characters.
Discover how Python's functools.partial automatically detects and flattens nested partial applications for optimal performance and cleaner code.
Build a scalable Python configuration system with Pydantic and dotenv. Manage dev, staging, and production configs with type validation.
Build custom data structures with Python's collection.abc mixins, abstract base classes, and interfaces for dict-like and set-like objects.
Explore Python metaclasses for metaprogramming: learn how classes are created, customize class behavior, and understand type as the default metaclass.
Learn the proxy design pattern in Python to add access control, caching, and validation layers without modifying core functionality.
Cache API responses with Redis in Python to reduce redundant requests, improve response times, and handle expiring key-value pairs efficiently.