gaffer's other articles are not expletive laden, but when you've been writing on a topic for so long and people are _still_ spreading lies and nonsense about it, even _after_ reading your articles, you too might reach a breaking point.
The SHA-3 backlash was because they cut second preimage resistance in half, and because the only reason for the change was due to Keccak performing very poorly in software.
The study becomes a bit meaningless when you read:
"It is an interesting observation that despite the existence
of hash table implementations in both the Java and
the C++ class libraries none of the non-script programmers
used them (but rather implemented a tree solution by hand)"
First, the msdn/sun articles explicitly make his point:
"For example, consider the following (naïve) matrix multiplication routine"
"This is a very simple example and, if you really want a good matrix multiply routine, you will have to consider cache effects, or use a better algorithm"
Second, all three versions (his, msdn, and sun) are doing different things.
- His version increments in to C[i,j], but C is never initialized anywhere so who knows what it's calculating
- msdn's version intializes result[i,j] to 0 and increments in to it (impossible with his version because he moved the loop that initalizes the result down to the lowest loop)
- Sun's version is using the same array for everything, and assigning to array[i,j]
If this was an example of making cache aware algorithms, he gave no explanation of how to do it.
If this was an example of writing a really fast correct matrix multiply, he didn't do that either as his sums in to uninitialized data.
If this was an example of why showing users how to parallelize for loops is a bad idea because it's too simple and nobody will ever need to do that, he really should've gotten his example correct to demonstrate how easy it is.
I really can't tell what led to this article other than he noticed that the code ran faster when you flipped the loops and decided to write _something_ about it.
Did you actually compare an intrinsic version to whatever solution you wound up with and find it was too slow? I would much rather deal with intrinsics and take a minor performance hit than beat myself up doing the register allocation and code flow manually.
Intrinsics also port from gcc to msvc effortlessly, and inline/external assembly doesn't.
The fascination kind of dies reading http://www.gutshot.com/bforum/showthread.php?t=33980 and seeing the massive amounts of money these guys are tossing around with abandon. When you can blow $500k on a single hand and not care, what's the big deal about being up or down a couple million?
He called scams bad (a very controversial stance!), let some scumbags brag about how they got rich off scams (I'm sure they all gave the money back), and has run off some 15 posts on the topic with links back from time & newsweek.
What part of that was difficult or laudable? When he starts suffering personally or professionally to do the right thing there will be something to congratulate him for.