No one will ever blame you.

No one will ever blame you.

The following story comes from the Wikipedia page about Richard Hamming. ( https://en.wikipedia.org/wiki/Richard_Hamming )

Shortly before the first field test [of the nuclear bomb] (you realize that no small scale experiment can be done, either you have a critical mass or you do not), a man asked me to check some arithmetic he had done, and I agreed, thinking to fob it off on some subordinate.

When I asked what it was, he said, "It is the probability that the test bomb will ignite the whole atmosphere." I decided I would check it myself!

The next day when he came for the answers I remarked to him, "The arithmetic was apparently correct but I do not know about the formulas for the capture cross sections for oxygen and nitrogen after all, there could be no experiments at the needed energy levels." He replied, like a physicist talking to a mathematician, that he wanted me to check the arithmetic not the physics, and left.

I said to myself, "What have you done, Hamming, you are involved in risking all of life that is known in the Universe, and you do not know much of an essential part?" I was pacing up and down the corridor when a friend asked me what was bothering me. I told him. His reply was, "Never mind, Hamming, no one will ever blame you."

The "No one will ever blame you" may not really be what you want to hear. However at the time it was merely a question of who was going to be first, and it was a time of war.

That said - Hamming has also created other things that are of more importance today than ever, the so called Error Correcting Codes in the form of being named Hamming Code.

By using these error correcting codes it's possible to not only detect that there have been an error while transferring data but also correct the error if it's a single bit error. This is more important than just detecting errors and resending the data and hope that it was right the next time. It do however come with the drawback of consuming more bandwidth, but in many cases that's a penalty that can be accepted.

In many modern computers there's today error correcting memory modules in order to avoid flawed data and program crashes. Unfortunately mostly servers utilize this while your desktop or laptop computer rarely have this. So whenever the computer goes "socks up" it may be that you encountered a bit error at the wrong location in memory. The scary thing is that you may get a bit error that won't cause the computer to crash but instead change the numbers on an invoice. A single cent (US$ or Euro) isn't a problem. A highly significant bit flip can increase the invoice to hilarious numbers and that's easily caught. But if it's in the middle then you might not see it.

So from that perspective I would consider that if you run things that are important for your business you shall use computers that actually utilizes error correcting code. It's a cheap insurance. And it can be a good way to avoid being blamed for entering the wrong amount on an invoice.

The image below is a good description of how the Hamming code works.

Hamming Coding

For more, please look at the Wikipedia page for Hamming code: https://en.wikipedia.org/wiki/Hamming_code

要查看或添加评论,请登录

Nils Hammar的更多文章

  • Some statements to consider

    Some statements to consider

    Here are a few statements that I have collected. Below are some system design statements to consider whenever designing…

  • Ett Fossilfritt Sverige

    Ett Fossilfritt Sverige

    I en artikel i DN s? h?nvisas det till att Sverige skall ha netto nollutsl?pp ?r 2045. Det ?r v?llovligt, men…

  • Python is to 2020 what interpreting Basic was to 1985

    Python is to 2020 what interpreting Basic was to 1985

    This article is bound to upset some Python fans and those that trust external sources. Both Python and Basic shares…

    2 条评论
  • The evolution of Java

    The evolution of Java

    Even though Java is becoming a bit less popular these days due to various reasons it's still relevant. I have made a…

  • System Design Considerations

    System Design Considerations

    During my years I have accumulated some experience regarding what's good and bad in the world of designing systems…

  • Machine shop skills are getting rare

    Machine shop skills are getting rare

    The ability to work a machine shop is a great skill to have even in these days. Skilled machinists seems to be a rare…

  • Improve your Java code quality

    Improve your Java code quality

    By delivering a high quality code you will lower the maintenance cost of the system. The tools presented in this…

    1 条评论
  • Cobol - an obsolete language?

    Cobol - an obsolete language?

    The jokes about Cobol aside - it seems like there's a shortage of people that knows Cobol. On YouTube there's a "crash…

    3 条评论
  • Official COVID-19 hackathon in Sweden

    Official COVID-19 hackathon in Sweden

    An initiative by The Swedish Government. The new COVID-19 virus is testing our country, our society and us as citizens.

  • From New York Gov. Andrew Cuomo Briefing

    From New York Gov. Andrew Cuomo Briefing

    Some things to think about. Better be safe than sorry and see someone drowning in their own fluids.

社区洞察

其他会员也浏览了