There’s no typo in my title for today’s post. I watched the student sitting next to me type this space-less sequence of characters when Jim and I asked the students in our seminar to type “which finger” at the prompt on their laptop’s terminal window. I’m sure that this student wasn’t the only one to leave out the space, and I would bet that Jim, like me, fully expected the students to “hear” the space in our request.
Let me step back. We’ve been introducing the students to a quick history of the Internet. It’s been a fascinating exercise to run a conversation about a sequence of events that Jim and I experienced directly, but were largely unknown to the students. Like most people my age, I don’t think of myself as that old, but as our 9 year old often reminds me, 45 years ago might as well be an eternity. It’s not just that my son and the students in class didn’t live through the events, but the relentless, exponential pace of Moore’s Law has so fundamentally changed the context around the uses of and constraints on technology that 45 years of technological advances feels like, at least, 450 years in comparison to the rest of the advances in human history.
Interestingly, we had just 10 minutes earlier discussed ASCII encoding with the students, and the table of ASCII encodings was still up on the screen. ASCII stands for American Standard Code for Information Interchange, and it was developed in the 1960s. It set a standard for encoding characters on our computer keyboards — like the letter ‘a’ — in numerical form. Digital computers encode everything as a sequence of ones and zeros (i.e., a number). For example, 97 represents the letter ‘a’ in ASCII, and every computer that supports the ASCII standard knows that 97 represents this letter. Since we have a space bar key on our computer keyboards, when you hit the space bar, our computers record that key stroke as the number 32. The sequence “86 101 114 121 32 99 111 111 108” is “Very cool” with the space and all.
With the ASCII table reminding us that spaces are real things in computing, why did the student type “whichfinger” when I said “which finger”? I don’t know for sure, but here’s a theory that recognizes the different histories under which the students and I grew up. I think it also highlights how fast contexts change under Internet time.
I started using computers in the era of mainframes and minicomputers. You interacted with them by typing at a command line, just like we were asking the students to do that day in class. which is a Unix command, and when you type which at a Unix command prompt, Unix knows that you are asking the utility (i.e., program, or app in today’s world) that implements the which functionality to run. You tell this Unix utility what you want it to do by following which with a list of arguments that Unix passes to the utility. In our case, finger is the sole argument passed.
What I am saying with this sequence of characters (including the space) is that I don’t want to just run the utility which, but I want it to specialize what it does. This is like my wife telling me not that she just wants me to go to the store, but she wants me to go to the store and buy milk. In Unix, someone might write something like this:
UnixPrompt> goToTheStore buy milk
Honey, go to the store. At the store, buy something. And that something is milk.
Unlike me, our students didn’t grow up with mainframes and command lines. They grew up with the Internet and the World Wide Web (a topic of this coming week’s history lesson). If you wanted something done on the WWW, you typed a sequence of characters into the URL box of your favorite web browser. For example, if I wanted to read the Harvard Gazette online, I’d type:
http://news.harvard.edu/gazette/
This is not much different in form than typing which. However, in the world of URLs, if I want to pass a set of parameters to the Gazette website, I would write something like:
http://news.harvard.edu/gazette/story/2016/09/deeper-creativity/?utm_source=SilverpopMailing&utm_medium=email&utm_campaign=09.15.b.2016%20(1)
This says something like: Go to the Gazette website, display the story titled “Deeper Creativity” and pass along some stuff to Google Analytics at that website.
Notice that there are no spaces in this command, and I would claim it is far from easy to read. While the designers of Unix commands wanted to make these commands look like an English command, the designers of web “commands” lived under a different technology domain and one that wasn’t kind to spaces. In fact, the only space in this web “command” is represented by the string %20. We’re trying to let Google Analytics know that the campaign we’re running here is “09.15.b.2016 (1)” where the space in this string had to be replaced with the hexadecimal value 20. What is hexadecimal 20 in base 10? 32. Yup, the ASCII representation for the space key.
So, the students have grown up with web addresses that run words together and never use spaces. It’s “www.washingtonpost.com” and not “www.washington post.com”.
What about my 9-year-old son? He’s neither grown up in the era of mainframes and minicomputers or the era of the WWW. He’s grown up in the era of search engines. Not that he reads the Washington Post, but if he did, he wouldn’t type its Internet address in the URL line of a browser. He would go to Google, type “Washington Post” in the search box, and click on the first displayed result. Spaces are back! And my guess if I verbally asked him to type “which finger” on my computer, he’d include the space.