I think most of the optimizations were pretty low level and had nothing to do with Java itself. You could implement the same techniques in any other (compiled) language and get similar performance results. Things like cache locality, ILP, work stealing, multithreading, SWAR etc. In fact, the top solutions mostly used unsafe to use off-heap memory to avoid GC and copying of data.
Yes, the default function argument values is another surprising behavior.
In this case, the default arguments get compiled as part of the function code and are part of the function's environment. As a result every time that function is called it is always having the same environment, i.e. the default argument values are not reinterpreted on every invocation. So the mutations to the environment are visible across function calls.
I have not looked into list comprehensions. I think that and how generators work internally might be interesting to write about. I will try to cover them.
Not really, you have an option to exclude your content from being indexed by Google (robots.txt).
I don't care as much about Google losing money because of ad-blockers, they have plenty of money going around. The real people losing here are the ones who are creating the content. As it is they need to amass a large number of views to earn few dollars from a video. Depending on the type of content, a lot of time, money and effort goes into creating each of those videos.
I don't read TAOCP. I have read first few chapters of volume-1 so I am familiar with the notation and some MIX syntax.
But while writing this article, I just opened up specific topics, such as computing Fibonacci numbers in volume-1, or evaluating powers in volume-2 and I managed to understand it. Sometimes you may find back references, such as when discussing Fibonacci numbers, he references Euclid's algorithm and you may have to go back and check it out, or ignore it (depends on the context). So I believe you don't necessarily need to read from cover to the end; you can browse it based on your interest.
Yes, that book (thirty three miniatures) has great content, but a hard read. Basically someone like me needs to go back, read other sources, and spend time on paper to get it.
Knuth shows that technique in TAOCP, vol-1. It was on the longer side and I didn't want to reproduce it in the interest of space and time. I was more focused on the matrix form.
Python has arbitrary precision integers, so you could do it without running into overflows. Although if implementing floating point based technique, you may want to use np.float128 to handle values upto 10^4932.
Maybe everyone should start writing half sentences mixed with ... to not sound like an AI!