Necessity is the mother of invention I was already GPU poor, but a recent job change combined with rising component prices have also made me RAM and NVMe poor. While I am nowhere close to the experts of optimisations in the early 2000s or 90s, I took this time to brush up on some fundamentals and key concepts in Python. As the saying goes: "Premature optimisation is the root of all evil" We are not looking for very deep level optimisations, these changes aim to follow the Pareto Principle where 80% of the outcome comes from 20% of the effort. The changes below may or may not be 20% effort but I would consider them low-effort. As such, there won't be any discussion on performance profiling, where we are determining hot loops, cache misses, memory reallocations etc. Iterators Frankly I think this is an important concept that has a great carryover regardless of languages. Understanding iterators also helps if you need to think of channels, which is very important in Go.…