Redowan's Reflections
Hi, I’m Redowan.
A roving amateur fumbling through software, systems, and sundry.
Recent writing
Prevent memory leaks in Python descriptors by using weakref to avoid hard references that prevent garbage collection of validated objects.
Build Unix-style command pipelines in Python using subprocess.run with stdout piping for efficient process chaining and output capture.
Create reusable generators by implementing __iter__ in a class, allowing multiple lazy iterations without memory overhead or repeated function calls.
A reflection on choosing the MacBook Air M2 15-inch for portability without sacrificing screen size and development capabilities.
Replace inheritance-based template pattern with composition and Protocol types to create cleaner, testable Python code without namespace pollution.
Modern Python dependency management using pip-tools, hatch, and PEP-621 for web apps and libraries with reproducible builds.
Build a traceroute clone in Python using UDP and ICMP sockets to trace network packet routes and measure hop latency with TTL manipulation.
Learn how to programmatically request Google search indexing for multiple URLs using the Indexing API and NodeJS for faster reindexing.
Build your own CORS proxy using Cloudflare Workers to bypass browser CORS restrictions. Includes deployment with GitHub Actions automation.
Schedule one-time commands with UNIX at command. Learn job queuing, remote scheduling via HTTP API, and managing atd/atrun daemons.
Sort Django querysets by custom attribute sequences using Case and When expressions for database-level ordering with SQL CASE statements.
Automate your GitHub profile README with periodic updates using Actions. Parse RSS feeds and dynamically display latest blog posts with NodeJS.
Learn how to use associative arrays in Bash to create key-value pairs, mimic dictionaries, and manage complex data structures in shell scripts.
Master techniques to remove duplicates from Python iterables while maintaining original order using sets, OrderedDict, and nested deduplication.
Use process substitution <() to treat command output as files in Bash. Compare directories, process data, and avoid temporary files with this technique.