Archive for September, 2016

One Click Only

Tuesday, September 27th, 2016

Tim Berners-Lee, like Sean Connery playing Captain Ramius in The Hunt for Red October, is asking the web’s governing body to fix the craziness that exists on the Internet around how we buy things. If anyone can get the web to listen, it would be the person who invented it.

Nathaniel Popper of the New York Times wrote an interesting article on this topic this week. You can find the story here. For those of you who read my previous post, this effort might sound quite a bit like the consortium work around the OSI networking standard. Popper writes that the W3C “has brought together the giants of the internet” to create “a new global standard for online payments.” Alternate solutions exist and are already in widespread use. Sound familiar? How do you think this will play out? Will this standardization effort succeed? If so, why? If not, what parts of history will repeat themselves?

I will admit that I’m not much of a shopper, online or in stores. I feel the urge to do too much comparison shopping before I buy anything, and when I get to the point of making a purchase, I don’t mind that it takes me more than a single click. Buying something and parting with money should take time, or at least that was how I was raised. Ever since I first heard of Amazon 1-click, I’ve always felt that this was something that advantaged the seller more than the buyer. Again, what do you think? Is “tap, tap, buy” good for our society?

On the other hand, we could use with better security around web purchases and payments. Shopping online isn’t going away. In fact, it’s growing. The W3C and the members of this group aren’t wrong that more standardization and careful thought around the security issues would benefit us all. My last question for you: So how do we get from here to there?

If you want to learn more about this particular standardization effort, you might visit “Web Payments at W3C.”

OSI: The Internet That Wasn’t

Tuesday, September 20th, 2016

I had fun this week talking with the students about the birth of the Internet, from its roots in the ARPANET through the multitude of networks that sprung up in the 1970s and 1980s. During our discussion, we gave a passing nod to Open Systems Interconnection (OSI) standard that was often compared to TCP/IP. OSI is a poster child for a standard by committee, and in this case the committee was hosted by the International Organization for Standardization (ISO). I was working at Honeywell in the mid-80s, a company supporting the ISO OSI standard, and I was taking evening courses toward my masters degree where I was learning about this “important” standard.

How does OSI and TCP/IP compare? There are lots of articles out on the net about this, but one of my favorite pictures is the following, found at http://fiberbit.com.tw/tcpip-model-vs-osi-model/:

tcp-ip-model-vs-osi-model

As you can see, TCP/IP approaches the world in four pieces. First is the work done above TCP/IP, by an application that uses the network in performing its function. Below TCP/IP is another simple, single box labeled the “Network Interface” that is exactly what it says: the interface to the physical network. The middle is split between TCP (the Transport layer) and IP (the Network layer). On the OSI side, we have three layers above and two layers below the similarly represented (and well defined) Transport and Network layers.

I honestly never understood (and still don’t understand) why it was important to think about the single Application layer in the TCP/IP model as separate Session, Presentation, and Application layers in ISO. I’m sure that it was my own failing, but this was my poster child for unhelpful complexity. Sure, someone smarter than me can imagine applications where a Presentation and Session layer might be useful, but they couldn’t convince me that splitting out this functionality was universally important in the same way that we split the Transport and Network layers. Ok, maybe doing this splitting doesn’t need to be universally important for every application, but it would be nice if splitting out these layers was generative of new ideas.

Anyway, the purpose of this blog post is to encourage my students to read an IEEE Spectrum article from 2013 by Andrew L. Russell, whose title I lifted for the title of this blog post. You can find the article here. I hope you enjoy it as much as I did (and still do).

Whichfinger

Friday, September 16th, 2016

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.

Hello FRSEMR 50N!

Wednesday, September 7th, 2016

Thank you, all, for your engagement in our seminar and your participation on the first day of class. I’m very excited to be back in the classroom and look forward to our Mondays together. We are going to have so much fun this semester.

As I mentioned last Wednesday, we don’t expect you to carefully work through the optional readings. They’re there to add color and context to the main readings (and videos and other required stuff). This past week, for example, I couldn’t resist including Specifications for the Interconnection of a Host and an IMP. If you do nothing else, flip through the pictures at the start of the document and then visit the Harvard Mark I, located in the Science Center. Ok, well, visit it when we uncover it again — it’s currently being protected from the construction going on nearby. Sorry about that.

Flipping to the other optional reading, we talked about J.C.R. Licklider as a visionary and his importance to the development of the ARPANET. But beyond the ARPANET, Licklider was a strong proponent of cooperation between man and machine to produce a better world than either could alone. We will visit this topic again in Week 6, and for now, I just want to highlight the section in his paper that starts on page 10 under the subtitle, “Automatic Speech Production and Recognition.”

I’ve been underwhelmed in my interactions with Siri, but I’m still a techie at heart and can’t wait to get an Amazon Echo. It’s with this context that I read the first sentence in Licklider’s section on automatic speech recognition, which starts by asking “[h]ow desirable and how feasible is speech communication between human operators and computing machines?” In our time, quite desirable, right? We are just starting to scratch the surface of the potential uses of speech recognition, and many articles exist today talking about how Alexa is leading us into the future of intelligent homes.

Then I read the rest of Licklider’s section. He was far ahead of his time in focusing on speech recognition, but his view of the future was clearly clouded by the cultural norms and traditional business practices of his time. For instance, he argued the need for automatic speech recognition because “one can hardly take a military commander or a corporation president away from his work to teach him to type.” Notice the gender bias in this statement. Even if Licklider himself envisioned leadership roles for women, he later writes “that a corporation president would be interested in a symbiotic association with a computer only as an avocation. Business situations usually move slowly enough that there is time for briefings and conferences.” This statement is patently false today.  You need only consider the abundant benefits that Internet companies like Google discovered by running online experiments and rapidly iterating their products to gain marketshare. (See A/B testing for a quick description of what this is and who is using it. Just read the course description; you don’t need to take the course!)

We live in a time of accelerating, technology-driven change. Good speech recognition technology took longer than Licklider’s expected 5 years, but it eventually came. And now, further significant improvements will rapidly appear. That’s a consequence of technological trends that lead to a doubling of transistor density, networking performance, and storage capacity across technology generations.

As we move to talking about the Internet in our present time, I hope we will pause along the way to notice the cultural, business, legal, and other shifts that took place in parallel with the growth of the Internet. And as we imagine the future, I hope we each try to overcome cultural norms and traditional ideas of our time.