Unit Safety

Accidents, by definition, happen in all walks and trips of life....

The recent spate of NASA upsets in the Martian environment reminds us that, in spite of the many “provable” (sez who?) advances in academic risk analysis and software development, our practical trade remains subject to the most bizarre glitches. Accidents, by definition, happen in all walks and trips of life, but once having happened, are revealed by post-hoc scrutiny to have been eminently, nay, trivially “preventable”. Next time, we boast, we'll avoid spilling the salt, we'll bypass the banana skin under the ladder and we'll secure the loose horseshoe that lost the last war. More space-age specifically, we'll watch out for inelastic rubber washers, shun rash global identifiers, and work around the quirks of FORTRAN FOR loops, all of which have proved to be life- and dollar-threatening.

Of course, digging deeper into fashionable post-Darwinian theory, we must acknowledge that “social evolution”, without which this column might have emerged as a mysterious henge in some foreign field, is due to a long sequence of fortuitous accidents. Random memic mutations, some say, guarantee the survival of fitter crania, neural paradigms, languages, algorithms and software engineering methodologies. Whether we consciously “learn” from our mistakes or not, some argue that there is an ongoing natural “self-correctional” process that converges to error-free nirvana. Fat chance! The optimistic concepts of “inevitable improvement” and “human perfectibility”, fashionable when the previous millennium started [see Note], are hard to relinquish, although the alternatives are so damned depressing, leading to a self-fulfilling why-bother apathy.

The challenge for historians is selecting and recording “significant” events. The so-called random elements (Luther's constipation, Napoleon's insomnia, Hitler's rejected watercolors...) seem to have a ridiculous, chaotic impact on the grand deéroulement. My favorite historian, Barbara Tuchman, warns against the post hoc contingent narrative, but it's impossible to feign ignorance of what happened next. What if, say, Saint Linus had wealthy parents like Bill Gates? What if he had not grown up in the fractal Swedish-Finnish isogloss?

One of the most expensive, embarrassing lessons from the missing Mars probe mishaps was the lack of “unit safety”. We've spent all these years ensuring type-safety (not to mention the oxymoronic thread-safety), whereby oranges and lemons cannot be added without deliberate, fruitless miscasting, yet it seems that a given floating-point value was interpreted as Newtons rather than pounds. Or vice versa. Or was it an understandable confusion between parsecs, meters, yards, chains, rods, perches and poles? We'll get it right next time, unless there are bright Martians anxious to resist our inferior technology.

Note

Stan Kelly-Bootle (skb@crl.com) has been computing on and off since his EDSAC I (Cambridge University, UK) days in the 1950s. He has commented on the unchanging DP scene in many columns (“More than the effin' Parthenon”--Meilir Page-Jones) and books, including The Computer Contradictionary (MIT Press) and UNIX Complete (Sybex).

______________________

Webcast
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers

Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.

Learn More

Sponsored by AMD

White Paper
Red Hat White Paper: Using an Open Source Framework to Catch the Bad Guy

Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6

Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.

Learn more about catching the bad guy in this free white paper.

Learn More

Sponsored by DLT Solutions