Living in a world of errors
Living in a world of errors
Posted Apr 14, 2005 17:33 UTC (Thu) by shane (subscriber, #3335)In reply to: designed to fail by vgough
Parent article: Call to atention about using hash functions as content indexers (SCM saga)
Hard disks (well IDE) uses CRC to check for bad data. I have no evidence to support me, but I'm guessing that it uses 16-bit or 32-bit CRC:
http://www.geocities.com/SiliconValley/Pines/8659/crc.htm
Mandelbrot proved that it is impossible to get a clean signal by improving the signal strength while at IBM, and engineers started introducing redundancy into transmissions. In some ways, this led to the necessity for packet-based transmission, and eventually to packet-switched networks, like the Internet:
http://www.fractalwisdom.com/FractalWisdom/fractal.html
In fact, TCP and UDP packets have checksums. Oh, and memory chips use parity to detect errors. Heck, CPU's have internal error detection these days.
Basically all of the technology that exists assumes and deals with failure and risk. When you start looking at failure rates with tens of zeros, engineers shrug their shoulders and move on with life.
Mathematicians pretend like their subject is somehow "pure", but consider that it took thousands of years before Euclid's 5th postulate was fully explored - arguably the most read book on mathematics ever!
Basically, you may not like the possibility of collisions from an aesthetic point of view, but it is not a real world problem. And like my daddy always said, there's no accounting for taste.
Posted Apr 14, 2005 18:21 UTC (Thu)
by vgough (guest, #2781)
[Link]
Posted Apr 14, 2005 21:48 UTC (Thu)
by swiftone (guest, #17420)
[Link] (1 responses)
As the article mentions, _checking_ identity (e.g. checking for bad data) is different than _assigning_ identity. All of th examples you cite are checking validity. None are assigning identity. If you look at identity algorithms in the industy (UUID, etc) you'll find they are a different breed.
Posted Aug 29, 2005 15:40 UTC (Mon)
by lunakid (guest, #32146)
[Link]
It is a very interesting topic. I'd say the biggest problem between ideas are perfect, implementations are not
mathematicians and engineers is when one group thinks they can get along
without the other! Because in general, mathematicians don't build
bridges, and engineers don't lose much sleep over the limits of our
understanding of the universe :-)
I agree, the problem is mostly one of aesthetics. But we should hope
there will always be people around to ask if our current implementations
are ugly for a reason, or just for the sake of ugliness.
Hard disks (well IDE) uses CRC to check for bad data.
Living in a world of errors
About checking and assigning (creating) identity being different:
Living in a world of errors
Quite correct. The difference between the two is context. Identity checking always assumes/implies the more specific context of e.g. change characteristics. Identity assignment, OTOH, can basically only assume some upper bound of numbers in the supported pool of identities, and little more (some life-cycle information for aging may also be available etc.).