Python visualizers
Four behaviours that prose is genuinely bad at explaining. Each one steps forwards and backwards, with the code highlighted as it runs and every input editable - the same player as the DSA visualizer, pointed at Python semantics instead of algorithms.
Names, objects and references
easyWhy `b = a` then `b.append(4)` changes `a` - drawn as names, objects and refcounts.
The GIL and free-threading
mediumRun the same workload with threads, processes and asyncio - then remove the GIL.
MRO and C3 linearisation
hardWatch C3 resolve a diamond - including the case where Python refuses.
Django ORM: the N+1 problem
mediumSee the SQL a loop actually emits, then watch select_related collapse it to one.