July 2009 Archives

Mission Critical

| 0 Comments | 1 TrackBack
| | | |

Over the past week plenty of commentary has been made, including my own, in relation to the 40th anniversary of the historic flight of Apollo 11. One comment on Twitter by alexr however caught my specific attention, "SW engineers should take this moment to consider if they'd trust their code to have gotten the LM onto the lunar surface safely."

Indeed a sobering thought at first glance. In this day and age it is quite common to run into a program written by one or more software engineers that seems unstable or error-prone. What if all those engineers had to deal with the rigors of getting their code "flight ready" where billions of dollars and at least 2 men's lives at risk?

But on second thought I think this comment does more harm than good. It seems to imply that either; the challenges of writing critically important, life-and-death software only occurs once in a blue moon1 or that the good-old-days of elite superman programmers who wrote error-free programs are long since gone, replaced by thousands of mediocre programmers writing millions of bug-infested computer code.

Instances of life-or-death situations being directed by computers (hardware and software) might not be an everyday occurrence for a programmer, or even a once in a career occurrence. But it does still occur. I recall the Professor who taught my Assembly Language class in college mentioning his work on a project for Motorola on a car fuel-injection system. The engine had habit of shutting down when entering the presence of electrical interference.

Just imagine driving down a highway at 55 mph only to have your car shutdown while passing by some high-tension power lines..... Now consider the added complexity of today's hybrid engines.

And while not every programming challenge is "life-and-death", plenty of software code in today's world is "mission critical" with millions, if not billions, of dollars at stake.2

In any case the coding of the Lunar Module's software was hardly error-free. In fact in regards to the Apollo 11 moon landing two specific instances occurred with the Eagle's Guidance Computer during the critical decent to the moon's surface.

At 102:38:30 Neil Armstrong calls out a program alarm, "1202". Ten seconds later, Armstrong is asking for feedback from Houston on the error code.3 Houston gives the astronauts a "go" to continue their decent. But less than 5 minutes later, with 2000 feet separating the LM from the surface the ship's computer issues a "1201".



102:42:13 Armstrong: (on-board): Okay. 3000 at 70. 


102:42:17 Aldrin: Roger. Understand. Go for landing. 3000 feet.


102:42:19 Duke: Copy.


102:42:19 Aldrin: Program Alarm. (Pause) 1201


102:42:24 Armstrong: 1201. (Pause) (On-board) Okay, 2000 at 50.


102:42:25 Duke: Roger. 1201 alarm. (Pause) We're Go. Same type. We're Go.


Second round of system issues.


What was a 1201 and 1202 type error? Only that the Apollo Guidance Computer was indicating that it was overloaded with data inputs, couldn't keep up and was resetting itself.

Yeap, that's right, the guidance computer for the LM rebooted, at least twice, during one of the most critical phases of the mission because it ran out of memory.

The problem? An error in one of the crew's check lists had them turn on the rendezvous radar during the landing phase. Of course the LM crew was hardly trying to rendezvous with the Command Module during their decent, but the repeated calls to the computer to process imaginary rendezvous radar data filled up the limited writable computer memory4 the on-board system had, causing the system to repeatedly restart.

Now I suppose somebody will argue that the computer was hardly to blame. It was a user-generated error turning on the rendezvous radar (or a documentation error) not a computer programmer error. Moreover the program was designed to reset itself if it got overloaded on purpose.5

But, that's just it. No programmer, not matter how good, can take into account every possible error or misuse, whether created by the programmer or the user.6 Would you have considered at first that an over-head power line might scramble your car's fuel injection system?

This is where the programming concept of fault-tolerant programming comes into play. The idea is pretty basic; enable the system to continue operating properly in the event of an error. Just as the Apollo spacecraft (and Saturn V launcher) had mechanical backups to keep the physical system running in case of failure the guidance program (and properly designed programs of today) manage the error and keep it from causing catastrophic results.

Thus the statement should not be, engineers consider if you'd trust your code to get the LM to and from the moon safely. Instead it is, do you consider your software fault-tolerant enough to get one to the moon and back safely?



Interesting side note there is a community programming effort that has created a software emulator of the Apollo hardware and software, Virtual AGC and AGS.
  


1 Pardon the pun.

2 And by indirect implication the lives of the employees, customers, stockholders, et al.


3 Sounds eerily familiar for any modern day computer user; the computer reports some cryptic error code and the next step is to go searching for additional information on what's gone wrong.

4 Now a days we classify memory as Read-Only Memory (ROM) or Random Access Memory (RAM) and talk about Gigabytes (109) of RAM for a laptop (or even a smartphone). The Apollo Guidance Computer? About 64 Kilobytes (103) of ROM and only 2 Kilobytes of writable RAM.

5 The idea was to clear the fault and reestablish import tasks, i.e. clear out the waiting calls for calculating unnecessary rendezvous telemetry and reestablish jobs for processing landing telemetry.

6 And just in case you wish to insist that the programmers of yesteryear were superman, well turns out one uncorrected bug could have crashed the LM by trying to flying the craft first "under" the surface then back "over" the surface and then "onto" the surface for a safe landing.

Make No Little Plans

| 1 Comment | 0 TrackBacks
| | | |

On July 9, 1970 Republican President Richard M. Nixon authorized the creation of the Environmental Protection Agency (EPA) as a single, independent federal agency tasked with establishing new criteria to guide American into a cleaner future.

Only three months prior the first Earth Day was called for by Gaylord Nelson, a United States Senator from Wisconsin as a way to educate people about the earth's complex environment.

What brought about the renewed focus on our environment and the modern environmental movement some 40 years after the end of the Great Depression's Dust Bowl as well as pioneer environmentalists Theodore Roosevelt, John Muir and Ansel Adams?

The movement has many roots, such as the 1969 Cuyahoga River fire which saw the surface of the river catch fire due to pollutants within the river.

But it should also come as no surprise that the modern environmental movement came on the heels of the "Space Race". That concerns about our environment crystallized in our national consciousness just months after man's first foot steps on another heavenly body, less than two years after Apollo 8's Jim Lovell commented from lunar orbit that "the loneliness up here is awe inspiring. It makes you realize just what you have back on Earth.1"

In fact, on the occasion of NASA's 50th anniversary last October, Air & Space/Smithsonian magazine ranked the top two of fifty most memorable images from NASA's history not of an astronaut, a flag, star, rocket, spacecraft, satellite or aircraft, but of the Earth. The Earth from space, as photographed by the Apollo 17 crew in 1972 and by Apollo 8 in 1968.


"The Earth from here is an oasis in the vastness of space.1"

I mention this because of course today marks the 40th anniversary of Apollo 11's landmark landing on the surface of the Moon, the finishing line of John F. Kennedy's race pitting the United States' engineering ingenuity and political influence against that of the Soviet Union's.

While many will consider the glories of the past today, I suggest instead a look to the glories of the future. In fact, right now the Obama Administration is reviewing NASA's priorities, should we return to the Moon and set a course for Mars, as outlined by his predecessor? Or focus our interests elsewhere?

The question brings a host of other questions. What are our national priorities today? Tomorrow? Are we best served with an investment in returning to the Moon?

Consider that from 1957 to 1975, the United States spent approximately $100 billion to develop, test and land 12 men on the moon.2 For that investment the world not only directly gained knowledge about the Moon and manned-space travel, but laid the foundation for; weather, communication and global positioning satellites and spurred research in computing and land-based telecommunication initiatives, among other technological spinoffs.

In addition the "Space Race" advanced development and application in existing technologies such as fuel-cells, solar power and batteries bringing about great potential in energy conservation, adding practical scientific knowledge alongside the social concern within the environmental movement.

That's a significant return on investment for something many people consider political theater.

But can a renewed investment in NASA achieve the same results? I think it can, so long as the Obama Administration uses the following guidelines in refocusing NASA's priorities:

  • That the government's most effective roles are in funding new exploration which develops new technologies and basic research.
  • That the private sector needs to be engaged on a broad scale; commercial markets work effectively in refining and re-purposing basic technologies into cost effective services.
It would be fool-hearty, even for a popular liberal President, to suggest that the Federal government can do everything. In fact, the space program works best when the government takes the initial step forward and the commercial interests move in to rebuild and re-purpose. On a basic level this can mean corporations refining new technologies, providing services in support of additional exploration and research to NASA.

However, NASA's engagement with our economy needs to extend beyond Boeing and Lockheed Martin. The benefits and advancements made and (still to be gained) suggests that while the opening of space to commerce might first directly benefit only a handful of wealthy space tourists, private individuals joy-riding into the outer reaches of our atmosphere is only the tip of a very large proverbial iceberg.

For example, continuing on a theme with the national priority of energy, climate and resource management as it stands the International Space Station is anything but self-sustaining over the long term. Crews are routinely rotated in and out. In addition, fresh supplies are shuttled to the station with waste materials sent back on the return journey on a regular schedule. Long duration flights that lead to permanent settlements, in Earth orbit, on the Moon or even Mars by necessity will push the limits of known science in regards to energy and climate conservation.

While it might require great creativity in applying these learned tidbits of science and technology into marketable products and services, it requires little imagination to see a correlation between self-sustainable manned space stations and a self-sustainable household.

Of course alternative energy would hardly be the sole beneficiary. Computing and telecommunications could see additional benefits. Others such as health-care and the economy as a whole could see significant growth as well. To be sure a manned mission to Mars is hardly "shovel-ready", but our national issues are not limited to short-term solutions.

While NASA and space exploration many never again capture the hearts and minds of several hundred million, as it did 40 years ago today, that hardly denotes failure. Yet failure to consider the grand impact in productivity and enhancement of life here on Earth in pursuit of manned (and unmanned) space travel will fail, without doubt, in again engaging the creativity of our nation. As the saying goes, "make no little plans. They have no magic to stir men's blood and probably will not themselves be realized."



1 Lovell, Jim, and Jeffrey Kluger. Lost Moon: The Perilous Voyage of Apollo 13 . Boston: Houghton Mifflin, 1994. Print. Pg. 52

2 While the last moon landing was in 1972, Skylab used Apollo developed technologies and the Apollo-Soyuz Test Project in 1975 closed out the "Space Race" between the two nations.

The Network is the Computer

| 0 Comments | 1 TrackBack
| | | |

If only 1% of 13 million (13,000) of your users are willing to incur a $10 surcharge within the first week after the release of a significant software upgrade, one has to wonder, how does one make money in the software business?

In this specific case, the 13 million users of Apple's iPod Touch, Apple makes the bulk of its money not on the device's software or even the iTunes Store sales (music, videos or apps), but on the hardware itself. Apple has been and still is, a hardware company. Despite its reputation for cutting edge software.

But if the adoption rate of Apple's iPhone OS 3.0 is any indication, even a token charge for a software upgrade significantly impairs software adoption. So the question remains, how does one make money in the software business these days?

For some companies, the case for users to upgrade can go beyond "new computing features". For example an anti-virus company that charges for upgrades that deal with new threats to computer security. Or a financial software company that releases new software for changes in accounting and tax codes.

Yet even these examples have limits, an anti-virus company can charge for an update to deal with a new type of threat, say an anti-virus software that gets an upgrade to also deal with spyware. But, the software security company would probably be out of business if it charge a fee for every new iteration of a specific threat type, for every new virus that might come along.

Enter Software as a Service (SaaS). Unlike, traditionally boxed PC software SaaS is a model of software retail whereby a provider licenses an application to customers for use as a service on demand. Instead of distributing the software for purchase, the developer/vendor hosts the application in a location where it can be reached by the users when needed.

With this model users don't have to support or update the software themselves. Instead users are charged an access fee (per usage or monthly/yearly subscriptions) to the features they wish to use. Their fee covers the cost for maintaining and updated those specific features. User access (and in turn development and maintenance) can also be subsidized by some third-party, such as an advertiser.

The key is effective, reliable, ubiquitous access to where the application actually resides. In this day in age of computing that means, the Internet and specifically the Worldwide Web. Without this key infrastructure, online services such as Salesforce.com or Facebook would be significantly impaired.

None of this is really new, the concepts behind Software as a Service have been be around for awhile. But, understanding the concept helps to illuminate today's news from Google, the Google Chrome Operating System.

Google's public announcement of their own operating system is indeed a direct challenge to Microsoft's bread and butter family of Windows Operating Systems as reported. But the Google OS isn't a better than Microsoft Windows product, such as Apple's Mac OS X. Nor is Google's OS even focusing on the traditional tasks of managing the interface between the local hardware and user.

Instead Google's operating system, like their own web browser of the same name (Chrome) and mobile operating system (Android), is about simplifying and enhancing access to applications online. In Google's own words the operating system's goal is "to start up and get you onto the web in a few seconds" and will be built around the existing "web platform" so that "web-based applications will automatically work" and will work "not only on Google Chrome OS, but on any standards-based browser on Windows, Mac and Linux."

Google's new operating system is designed to leverage the growing collection of service oriented software that can be found online, including, of course, Google's own suite of applications such as Gmail, Docs and YouTube.

The trick for Google now is not just in implementation, but also adoption. Focusing first on the growing trend of netbooks helps, but thin computing itself is hardly a new concept.

What's It Going to Cost Me?

| 0 Comments | 1 TrackBack
| | | |

Continuing on a theme, Appleinsider estimates that "nearly half of all iPhone users ... jumped at the opportunity to enhance the functionality of their handsets by installing the free iPhone Software 3.0 update" within the first week of the software update's release. However, the very same software update that iPod Touch users can also apply has seen extremely limited adoption.

According to Appleinsider's sources, within four days of the software lease, 44% of iPhone users applied the 3.0 software update while only 1% of iPod Touch downloaded and installed the very same software update.

The difference? Apple uses different accounting methods for the iPhone and iPod lines. As a result, since the initial release of the iPod Touch, Apple has charged a nominal $10 price tag on software updates.

Considering that I rationalized that consumers, much like a business, preform a rough cost-benefit analysis when considering if they should preform a software upgrade or not, this bit of evidence presents something different, that consumers will consider adopting a software upgrade when there is no direct cost associated with the update.

Apply this bit of information to the Windows world and well, it shouldn't shock anyone that Microsoft recently announced that the upcoming Windows 7 release, set for this fall, for consumer versions will be less expensive than similar Vista upgrades.

Microsoft will also eschew the traditional limitation that to qualify for the upgrade pricing a user must be upgrading from the immediately preceding software version. That is Windows XP users and Vista users will qualify for the upgrade price, whereas traditionally only Vista owners would qualify.

And if that wasn't enough, for a limited time Microsoft has cut the price by 50% for those who pre-order their upgrade before July 11th.

Now the question is, will consumers bite?

About the Author

Paul is a technologist and all around nice guy for technology oriented organizations and parties. Besides maintaining this blog and website you can follow Paul's particular pontifications on the Life Universe and Everything on Twitter.

   
   


Subscribe:
Add to Google Reader or Homepage
Add to My AOL

Add to netvibes
Subscribe in Bloglines
Add to Technorati Favorites

Powered
CentOS
Apache
MySQL
Perl
Movable Type Pro