Friday, April 28, 2017

We continue with the list of important software incidents in recent history as described here
25) Pirates - On August 24, 2007 Microsoft Windows Genuine Advantage servers suffered an outage. Users who had legitimate copies of Windows XP and Vista were told they had counterfeit. The issue was resolved twelve hours later but not until around 12000 systems were affected worldwide. The bug occurred because a beta software was installed on the WGA servers which affected both activations and validations. The validation service was affected even after the rollback took place. The beta software had not kept pace with the encryption and decryption of product keys out in the field. Consequently, the requests for activation and validation were declined. Its interesting to note that this incident was not the same as an outage. If the WGA servers were offline or the services had become unavailable, customer copies of Windows would have defaulted to genuine. However the Beta software was unable to interpret the product keys and gave an incorrect response. While this impacted activation failures, the validation services were impacted longer even after the beta sofware was rolled back.
26)  When the data is large - Often bugs manifest because there is a lot of manual steps. Take the case of Apple maps in 2012. It was brought in as a replacement for Google Maps. Creating such maps take a lot of work in integrating from different sources often requiring manual supervision and handling. Google had several years to do that while Apple didn't. This led to lakes, train stations, bridges and tourist attractions going missing or mislabeled.  The Washington Monument moved across the street. Riverside Hospital appeared in Jacksonville, Florida while it had ceased to exist several years back. Auckland's main train station was in the middle of the ocean.  Similar issues have surfaced with other map makers as well because the work is inherently tiresome and error prone. Some have even claimed that it is not just data but also operations associated that result in error such as zooming in and zooming out of the maps.
27) Units - Its not just data and operations that need to jive. Software must also comply with standards between companies. Take for instance the failure of Mars Climate Orbiter in 1998.  This was about a 655 million space probe that disintegrated in Martian atmosphere because it was thrusted at a wrong angle It turned out that the thruster's output was calculated by a ground based computer software in non-SI units of pound-seconds instead of the SI-units of newton-seconds that was specified in the contract between NASA and Lockheed. The spacecraft encountered Mars on a trajectory that brought it too close to the planet. #codingexercise
Find the diameter of a binary tree
int diameter (node root )
{
If (root == null) return 0;
Int lh = height(root. Left);
Int rh = height(root.right);
Int ld = diameter (root.left);
Int rd = diameter (root.right);
Return max (lh + rh +1, ld, rd);
}

No comments:

Post a Comment