I would never put KMP and Coppersmith-Winograd into same place in terms of practicality.
KMP gives you very good and fast results on some data (especially data with repeated sequences). Coppersmith-Winograd (and even Strassen) will never be practical on any reasonable data we will see in near future (http://www.ics.uci.edu/~fastmm/FMM-Reference/paoloA.ishp-vi....)
There is no reason to implement fibonacci heap for Dijkstra.
Either you have relatively small data (up to 10 mil. nodes and edges) and normal heap is a way faster or you have bigger data and you should start thinking about things like A* where fibonacci heap is again useless.
You should note, that log n factor is so small (up to 40 on the biggest data you will ever see), that it can be easily dominated by other constant factors in implementation (like cache locality, ...).
"2) it demystifies machine learning -- you have to write your ML from scratch, without the help of all those wonderful Python libs, and I think this exercise shows you that it's not so mysterious after all." - you can demystify machine learning in any better language.
JS and PHP are slow, crappy and bug prone. Sane languages (like Python, C++) have tools to make your job easier (like numpy, blas, eigen and other libraries). They provide fast and reliable math routines so you don't have to worry about some eigenvalue decomposition, matrix multiplication and other problems.
What are advantages of this thing against apache or nginx? Is it faster? Handles more concurent request? Or does it exists just for the sake of writing server in PHP?
Ehm. But sometimes stupid linux kernel prefers moving something usefull to swap and caching some shit instead of keeping stuff in ram and not doing caching.
So linux sometimes eats your RAM (but in different way).
Totally bad article. It encourages bad practices like checking validity on the same set as model was trained on.
You should do some cross-validation or at least split data into two parts, train model on the first part and test it on the second part.
Well, he get proving that his problem is NP-hard right (because the proof is really easy). But his algorithm for solving his problem is really messy and hard to follow.
P=NP doesn't imply that there is fast algorithm for every problem in NP. It only means, that there is polynomial time algorithm for everything in NP (e.g. n^100 is polynomial).
For example there can be O(n^100) algorithm for solving 3-SAT, which is not fast algorithm.