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.
Practical Task Scheduling Deployment
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.View Now!
|The Firebird Project's Firebird Relational Database||Jul 29, 2016|
|Stunnel Security for Oracle||Jul 28, 2016|
|SUSE LLC's SUSE Manager||Jul 21, 2016|
|My +1 Sword of Productivity||Jul 20, 2016|
|Non-Linux FOSS: Caffeine!||Jul 19, 2016|
|Murat Yener and Onur Dundar's Expert Android Studio (Wrox)||Jul 18, 2016|
- The Firebird Project's Firebird Relational Database
- Stunnel Security for Oracle
- My +1 Sword of Productivity
- SUSE LLC's SUSE Manager
- Managing Linux Using Puppet
- Non-Linux FOSS: Caffeine!
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Parsing an RSS News Feed with a Bash Script
- Google's SwiftShader Released
- Doing for User Space What We Did for Kernel Space