June 9th, 2009


On Stupidity.

I have always been fascinated with Stupidity. My own, of course; and that's a big enough cause of anxiety. But things get much worse when one has a chance to find out how Big People take Big Decisions.

We generally tend to blame awful decisions on intentional perversity, astute mischievousness, megalomania, etc. They are there, all right; but any careful study of history, or current events, leads to the invariable conclusion that the single biggest source of terrible mistakes is sheer stupidity. When it combines with other factors (as happens quite often) the results can be devastating.

One of the many examples of stupidity is that intrigue and powermongering are called "Machiavellian". Obviously nobody has read his books, as that is not what old Niccolo meant.

Another thing that surprises me (or does it?) is the very little amount of study dedicated to such an important subject. There are University departments for the mathematical complexities in the movements of Amazonian ants, or the medieval history of Perim island; but I have never heard of any Foundation or Board of Trustees supporting any studies of Stupidology.

I have found very few good books on the subject. One I read when I was a teenager, but never forgot. It is called A Short Introduction to the History of Human Stupidity by Walter B. Pitkin of Columbia University, and was published in 1934. I found it by chance many years ago while browsing around my mother's bookshelves; and much to my delight, when I went to her home yesterday and looked for it, it was still there. Old as it is, it's still a very good book. Some of Professor Pitkin's observations appear extraordinarily correct sixty years later.

Now... why did he call a 300-page book a "short introduction"? At the end of the book, it says: Epilogue: Now we are ready to start studying the History of Stupidity. Nothing follows. Professor Pitkin was a very wise man. He knew that a lifetime was far too short to cover even a fragment of such a vast subject. So he published the Introduction, and that was it.




Of particular geo-political import presently is The Stupidity Of Power.

Use the thread-safe data structures that Sun handed to us in java.util.concurrent? Why??

So right about now Thread1 goes into, what we like to call in the biz, an "infinite loop". Any subsequent get operations that hit this bucket start searching down the list and, go into, yep - an infinite loop. Any put operation that first needs to scan the nodes to see if its going to do a replace, will, you guessed it, go into an infinite loop. Basically, this map is a pit of infinite loopeness.

If you remember we noted that race conditions cause data corruption. Well, yeah, thats what we have here - just very unlucky data corruption on pointer structures.


Why would we want to use the guaranteed thread-safe data structures that Sun has already made for us, and included in our JRE under the java.util.concurrent package?

Pfft! No way! Only wussies use well-tested, verified code! REAL MEN write their own multi-thread-safe data structures... by (badly) wrapping non-thread safe code in more non-thread-safe code of our own design!

Get that known-working thread code outta my face, fool! We don't use that stuff around here!