The Failure of the Internet

How many times in one week can the internet wreak havoc on our lives?

And it was all our fault!

1. The Oscars

Moments before Brian Cullinan handed the (wrong) envelope for best picture to Warren Beatty, he sent a tweet with a picture of a previous Oscar winner. We will debate forever whether or not this is the root cause of him handing over the wrong envelope, but everyone can agree it certainly didn’t help.

2. Amazon Web Services Crashes

Humankind was free from the internet’s tyranny only for three days following the Oscars fiasco. Around noontime on Thursday, March 2, 2017, an Amazon engineer mistyped some code and sent a significant portion of AWS crashing down. Services, such as Slack, used by millions of people were offline or slow to respond. Even small sites and apps, like the prayer book on my iPhone were disrupted by the AWS failure.

3. A single tweet inundates 911 across the nation

The one story you may have missed is quite possibly the scariest. A Wall Street Journal expose this past week tells the story of a computer science student who in order to demonstrate a bug in iOS, wrote a program that dialed 911 over and over on a user’s phone until the phone was shut off. He then distributed a link to this program on Twitter, where it quickly spread. Incredibly high call volumes affected 911 call centers in Washington state, Arizona and Texas. This theoretically prevented legitimate calls from coming through. The story was also covered by Ars Technica back in October 2016.

Analysis

See, one of the greatest things computers and programming are for is for the performance of repeatable events. For example, the blog you are reading now is just a loop of content queried from a database. We rely on computers to prevent human error. But often times, we either don’t take the execution of the repeatable events far enough, or we take it too far. Let’s go through our examples.

In the case of the Oscars, the distribution sequence of the envelopes is predictable. So why not program a machine/robot that the announcers can use to order the envelope they need. Doing so would at least remove the “duplicate envelope” issue, which requires the use of two sets of envelopes so that envelopes can be picked up from both sides of the stage. When an announcer “orders” their envelope from one side of the stage, the machine on the other side of the stage prevents the distribution of that same envelope, or any previous one.

The opposite is true in the case of Amazon Web Services. The programming behind Amazon Web Services means that changes quickly cascade through the system. Another major error here is that a single typo is enough to knock out the entire network. But from my experience I can tell you that typographical errors are common enough that we’ve all done something similar in the past. Hopefully in the aftermath Amazon is focusing on ways that can isolate bad programming and only distribute working code to operational servers.

The final example is a hybrid of humans getting in the way, and of computers doing their job exceptionally well. Calls overwhelmed 911 that particular evening because we constantly like and share on our social networks. It took just a few popular people retweeting the malicious message to bring down one our most critical pieces of infrastructure. On the other hand, the code which the tweet unleashed was exceptional. It did its job, and did it well, dialing 911 faster and faster. Only some quick thinking, by a human no less, was able to stop the flow of calls to 911.

The balance between humans and computers is something we are going to have to grapple with for a long time. This is especially true as computers and artificial intelligence advance.

-->