Redowan's Reflections — Page 15
Recent writing
Longer articles, short notes, and things I'll probably need to look up again.
Browse the archiveStandardize Django REST Framework error responses using custom exception handlers to match Microsoft's REST API guidelines format.
Understand when to use constrained TypeVar vs Union in Python type hints for consistent types across function parameters and return values.
Avoid memory leaks when caching instance methods with lru_cache by making cache containers local to instances instead of global.
Crop text to character limits without breaking words using Python's textwrap.shorten for clean truncation with customizable placeholders.
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.