Heartbleed explained with metaphors

April 13, 2014

Heartbleed. To most of us, it’s that mysterious annoyance that has caused us to change passwords for many of our on-line accounts. But can Heartbleed be explained in a way it’s not seen as a fatal hole in the “magic” of the Internet?

While many sites have explained Heartbleed’s literal failures through code and even comic, I felt an explanation with some everyday analogies and metaphors was still lacking…. until I stumbled across Eric Limer’s article on Heartbleed over at Gizmodo. Not only has Eric saved me the time of crafting an explanation, he’s done an admirable job of making the magic of computer code and internet communication simple through his real-world examples.

First, Eric explains how Heartbleed derives it’s name — from “heartbeat,” a standard operation that two computers must use to make sure they’re talking to each other in sync. Since a personal computer and an Web server are disconnected until they have a reason to talk to each other (over the Internet), they must have some way to check to make sure they both stay connected to each other during their conversation. Like calling your bank via telephone, you don’t want to have your phone call disconnected until your business transaction is finished. This “heartbeat” operation is a way to ensure nothing has gone wrong at either end during the computers’ conversation. Eric uses a clever reference to old audio cassette tapes to illustrate this:

It’s like making sure that both spindles in a cassette tape are moving when you’re playing it. If one spindle stops and the other keeps going, something will break.

Heartbleed was named as such because the recently uncovered flaw is in this “heartbeat” operation, or more specifically, the coded instructions for the “heartbeat” procedure that the Web server follows. As I’ve explained in my book, computers don’t have common sense. They follow only the instructions provided (in the form of code), literally. Like a robot/zombie chef, they follow the recipe exactly as written. So the problem of Heartbleed is actually one of an oversight in the written recipe for the “heartbeat” function. And while a human might be able to recognize this type of sloppy instruction in a recipe and compensate, computers cannot.

So what’s the problem? Read the rest of this entry »


What is 64-bit?

October 1, 2013

Have you noticed that the technical specifications for computing technology always seem to be numbers that double after a while? This has particularly been true of numbers with the word “bit” after them. 8-bit. 16-bit. 32-bit. And now, yes, 64-bit is the latest buzz. But if you’re a normal person (not a computer person), what does this mean?

One of my colleagues (Ed) sent me a link to this short article that loosely explains what 64-bit means to you, the normal person: What the iPhone 5s ’64-bit’ processor means, in plain English. I particularly like the library and book analogy. While I see from the comments that the true technophiles object to the explanation, I’m still going to call it good enough for the normal person. By passing it along, I hope it’s helpful to you or someone you know.


APIs explained via a game show

November 12, 2012

Since I’m fond of analogies and metaphors for explanations, here’s the first thing I tell my learner to do when explaining to him/her what an API (Application Programming Interface) is. Watch the first half of this clip from the old game show Who Wants to be a Millionaire, where the contestant uses his “Phone a Friend” lifeline:

What’s “Phone a Friend?” When the contestant gets stuck, he/she can make a single phone call to any friend and ask the question at hand, hoping the friend’s response will be the correct answer (or help lead to the correct answer). Provided the call is made correctly, the question is asked correctly, and the friend is the right person to answer such a question, the response will greatly help the contestant/caller to do something he/she otherwise could not do alone. With that in mind….

What’s an API? It’s when computer code (or an entire program) makes a call to something else to do something it could not otherwise do alone, allowing it to be greater than it is by itself. The call must be made correctly, according to the rules the API specifies, so that the caller can ask correctly and the recipient can understand the request and respond appropriately. And unlike the game show contestants, computer programs aren’t limited to talking with just one API. Programmers/developers often leverage multiple existing APIs to accomplish greater holistic functionality rather than taking the time to develop all the desired functionality themselves. The chances are, most programs you use have been designed to tap some existing API to achieve some part of its functionality.

So, do computer programs do this a lot? You bet. Programs aren’t superheros*; they often just have a lot of friends to call.


* I’ll make an exception for Tron.


Variables vs. Arrays vs. Objects

August 16, 2012

Having recently worked with a couple of groups developing games, I’ve found myself explaining nuances of programming concepts. Here’s one such topic I find I must cover with new developers: when to use a variable vs. an array vs. an object. I whipped up this quick video to explain the difference, and since summer picnic season is upon us, I leveraged some related food and props appropriately…

Stay hungry, my programmers!


Backspace x 10000: a true story about the value of highlighting & modifying

July 3, 2012

The following sounds like it belongs in the annals of computing lore along with other Tales of Tech Urban Legends like the infamous “cupholder” CD-ROM drive incident. But I swear I am not making this up.

Years ago a trustworthy colleague told me the true story of one coworker who seemed to take forever meeting deadlines when they involved composing and editing documents in a word processing program. Upon investigation, it was discovered that anytime the coworker found a mistake in a document, she would Backspace, Backspace, Backspace, Backspace, Backspace, Backspace, Backspace, Backspace, Backspace, Backspace over every single letter in the document until she had erased all words up to the typo. She would then begin re-typing the remainder of the document, additional errors would inevitably ensue, and she would again resort to backspacing over all her work. If only she had known the core computing concepts — highlighting and modifying — at her disposal. Just a small bit of knowledge explained the right way would have saved her much time, carpal tunnel surgery, and a lot of new Backspace keys.

I’ve never forgotten that story. It became the genesis for one of the first prop-based analogies I conceived to explain the concept of soft text when writing The Ultimate PC Primer. Here’s the introductory lesson in video form, something I whipped up to commemorate the book’s anniversary and the memory of that funny story that started it all:


How the Internet Works (video)

June 11, 2012

I stumbled across this short and cleverly done video about how a Web page is transferred across the Internet. I applaud the use of the tourist analogy to explain how packets make their way from source to destination.


UPCP 1-Year Anniversary Thoughts (and 15% discount)

May 4, 2012

Today, I’m celebrating the 1-Year anniversary of the publication of The Ultimate PC Primer.  And for the entire month of May, the 15% discount is back. That’s right. This isn’t a one-day special just for Star Wars Day; I’m keeping the party going all month. Use code 3SGC9EP7 to get 15% off all copies when you order here.

In case you haven’t noticed from this blog, I’m pretty passionate about the book’s contents, approach, and mission. Here are some brief thoughts on why a guy with a family and full-time job spends 6 years of his own (precious little spare) time and money producing, of all things, a printed book explaining basic computer concepts…

Nothing else uses the same approach — analogies, metaphors, stories, and illustrations from real, physical things — to explain essential computing concepts. I searched for and even purchased a good number of “intro” computer books, only find they were mostly procedural “how-to” guides. Only one even came close to helping readers actually understand what they were supposed to be learning to use. In short, most computer books assumed readers just needed to know steps to “do” a task. I wanted to help build a foundation from which new users could begin to be self sufficient.

I wanted to help users who truly knew nothing; help them lose the fear, and begin to relate to common computer technology. Many newcomers have at least some pre-existing knowledge or computer exposure, and there are some pretty good books out there for them. But there’s not much in print from major computer book publishers for those who are at absolute ground zero, having never touched a PC before. Some naysayers have suggested to me such a book is already obsolete. Since my day job is handling technology-based training for a Fortune 100 company, I certainly know where those skeptics are coming from. Yes, the PC landscape is changing. But even with tablets, touch and persistent connectivity, many core concepts of computing are very much the same, no matter the device. It’s the mental framework for engaging a personal computing device that most newcomers really need. So while some of the content will undoubtedly eventually become obsolete, the approach certainly won’t. If anything, I’m finding more opportunity than ever to explain computers and other digital technology using that approach.

The book’s target audience is those approaching or in retirement; essentially senior citizens. This is where the greatest gap in adoption still exists. I caught wind of this new Pew research data on Internet usage, and as you can see, there is still a huge gap between those under 65 and those above. (It’s less than 50%  adoption for those 65 and older, though total adoption is 80%. 12% don’t even own a computer!) This is particularly interesting and timely considering I also just read a news article about how US Series E Savings Bonds can now only be purchased online. It’s the latest in a number of government services that can only be acquired via the Internet. You’d think in light of this, plus limited mobility of those older, would actually equate to higher usage than 50%. A lot of the people in the 60 and older demographic clearly think computing and the internet are too difficult to engage later in life. I didn’t want them to be left behind. I wanted to provide the encouragement, break down the fear barrier, and do that through everyday things each reader could relate to. And while I’m a big supporter of local community classes offered by colleges, libraries, and SeniorNet, some newcomers don’t have the gumption to sign-up for such services. It requires admitting in front of others they’re in that segment which knows nothing, feeling like an outsider. That’s precisely why I wrote and published a book (in print) rather than making an e-book, DVD, online video, lecture series or curriculum. I wanted to offer each reader the chance to explore the concepts of computing in the most familiar, safe way possible, at an affordable price.

My book will never sell a million copies. I don’t care. I didn’t do it to become famous or rich. Computer literacy training isn’t my day job (though I can say what I learned by doing it has also helped me professionally in a number of ways.) I did it because I know my approach works, no one else was doing it, and I had what it took to put it all together. It’s my hope it changes a lot of newcomers’ worlds for the better.  And for the rest — the explainers, designers, and developers — I hope the approach and concept — the way of thinking about and presenting intangible, virtual concepts through narratives, analogies, metaphors, and direct comparisons to real-world physical things — helps you think of your users and audiences in new ways as well.

Happy anniversary!