60 Years of Hamming Codes
swandives writes "In 1950 Bell Labs researcher Richard W. Hamming made a discovery that would lay an important foundation for the modern computing and communications industries — coming up with a method for performing computing operations on a large scale without errors. Hamming wrote about how self-checking circuits help eliminate errors in telephone central offices. He speculated the 'special codes' he proposed — which became known as Hamming codes — would only need to be applied to systems requiring unattended operation for long periods or 'extremely large and tightly integrated' systems where a single failure would incapacitate the entire installation. Hamming code was the first discovery in an immense field called coding theory. This article looks back on the history of Hamming codes, their applications, and includes interviews with Todd Moon, Professor of electrical and computer engineering at Utah State University and David MacKay, Professor of natural philosophy in the department of Physics at the University of Cambridge and chief scientific adviser to the UK Department of Energy and Climate Change. An interesting read, about a little-known but fundamental element of information theory."
News for nerds, stuff that matters.
This submission qualifies.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Feynman's excellent book 'Lectures on Computation' has a fantastic explanation of Hamming codes and distance, error correction etc.
If you're even remotely interested in information theory you *must* read this book! No prior knowledge required.
If you're a cheap bastard I'm sure you can find a pdf, but it's well worth the asking price.
I'm sure a whole bunch of people know about Bill Gates and Steve Jobs, but their impact upon computing and information theory is comparatively minor compared to Richard Hamming. There are many such individuals who if you have studied your history of computing that really ought to be much better known but little is really talked about even in computing circles. Usually there is a theorem or algorithm which bears the name of an individual like Dijkstra's algorithm, but who really knows much about Edsger Dijkstra, the guy who came up with the concept in the first place, or for that matter even knows the names behind the LZW compression algorithm?
If you went to a group of college seniors in computer science, how many of them would have ever heard about Grace Hooper? First classmen in the Naval Academy? (I would sure hope that the U.S. Naval Academy at least would have taught their computer science cadets something about Admiral Hooper, especially if they get assigned to the USS Hooper).
There are a bunch of people you should know in the history of computing, and unless you have a very good professor who doesn't claim to have invented the integrated circuit and every other part of computing, you generally don't know the whys for how most concepts in computer science were ever derived.
Want to be like Hamming? Here's how:
In summary, I claim that some of the reasons why so many people who have greatness within their grasp don't succeed are:
* they don't work on important problems,
* they don't become emotionally involved,
* they don't try and change what is difficult to some other situation which is easily done but is still important,
* and they keep giving themselves alibis why they don't.
* They keep saying that it is a matter of luck.
I've told you how easy it is; furthermore I've told you how to reform. Therefore, go forth and become great scientists!
Source: http://paulgraham.com/hamming.html
His book Coding and Information Theory is by far the best written and most readable hard science textbook I ever had in my university career. Read it if you want to understand the subject, read it if you want to understand how to write a good textbook!