Redowan's Reflections
Recent writing
Learn how Python's string interning optimizes memory by caching strings and using sys.intern() for custom string caching to improve performance.
Implement Go-style structural subtyping in Python with Protocol for duck typing and interface-based APIs without inheritance dependencies.
Implement automatic attribute delegation in Python composition using __getattr__ magic method for inheritance-like attribute access patterns.
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.