DAVID AUERBACH
`
`Chat Wars
`
`Microsoft vs. AOL
`
`
`
`
`Chat Wars
`
`Microsoft vs. AOL
`
`
`
ÿ
` ÿ
`
`
`Published in: Issue 19: Real Estate
`
`Publication date: Spring 2014
`
`Essays
`
`APMT 1071
`
`APMT 1071
`
`1
`
`
` ÿ
`
`
`Published in: Issue 19: Real Estate
`
`Publication date: Spring 2014
`
`Essays
`
`APMT 1071
`
`APMT 1071
`
`1
`
`
`
`
`
`2
`
`
`
`
`
`Adam Ferris, CA1. 2013.
`
`IN TH E SU M M ER OF 1998 I graduated from college and went to work as a
`
`programmer at Microsoft in Redmond, Washington. I was put on the group that
`
`was building MSN Messenger Service, Microsoft's instant messaging app. The
`
`terrible name came from Marketing, which had become something of a joke for
`
`always picking the clunkiest and least imaginative product names. Buddy List? C
`
`U C Me? MSN Messenger? No, MSN Messenger Service. I’ll call it Messenger for
`
`short.
`
`ÿ ÿ ÿ
`ÿ
` ÿÿÿ
`ÿ
` ÿÿ
`
` ÿÿ
`
` ÿÿ
`ÿ
`ÿ ÿÿÿ
`ÿÿ
`ÿ
`ÿ ÿÿ ÿ
ÿ
`
` ÿÿÿÿ
` ÿÿ
ÿ
`ÿ ÿ
`ÿ ÿ
ÿÿ
`ÿ
`ÿ
` ÿÿ
`ÿ
`
` !ÿ
ÿÿ
ÿÿ
ÿÿ
`
`
ÿÿ"!ÿ#$ÿ%
`&ÿ%ÿ$ÿÿ $ÿ
`ÿÿ ÿ
`&ÿ%ÿ$ÿÿ $ÿ
`ÿÿ ÿ
ÿ
ÿ
ÿÿ ÿ
`
`
` 'ÿÿÿÿÿ ! ÿÿÿÿ ÿ'(#ÿ ÿ
`)' *ÿ+
`
`ÿÿ %,ÿ' ÿÿÿ
` ÿ
`ÿ
` ÿ -ÿ'(#ÿÿ
`
`
` 'ÿÿÿÿÿ ! ÿÿÿÿ ÿ'(#ÿ ÿ
`)' *ÿ+
`
`ÿÿ %,ÿ' ÿÿÿ
` ÿ
`ÿ
` ÿ -ÿ'(#ÿÿ
`ÿ
`
` !ÿÿ .ÿ
` ÿÿÿ./0ÿ!ÿ 1ÿ !
`
`
`2ÿÿ%3.(ÿÿ ÿ'(#ÿ ÿ !ÿ
ÿ' ÿ ÿ+
`
`
`ÿ %,ÿ
`
`
`ÿ %,ÿ
ÿÿ
`ÿ
` ÿ ÿ
`ÿ ÿÿ ÿ
` ÿÿ4//0
` ÿÿÿ ÿ
`
`ÿ
` ÿ ÿ
`ÿ ÿÿ ÿ
` ÿÿ4//0
` ÿÿÿ ÿ
`
5ÿ
`ÿÿ
`ÿ
` ÿ)6
`ÿÿ
`ÿ
` ÿ)6
7*ÿÿÿ
`ÿ
`ÿ
ÿÿ
` ÿ
` ÿ
ÿ
`ÿ ÿ
` ÿÿ ÿÿÿ!ÿ
`ÿ ÿ
` ÿÿ ÿÿÿ!ÿ
ÿ
` ÿ
`ÿ
`
`ÿ
` ÿ
`ÿ
`
`ÿ
ÿÿ
`
` ÿ
` ÿÿ
`ÿÿÿ
`
` ÿ!ÿÿ
`ÿ
`ÿÿÿÿÿ
`ÿ
ÿ
`
` ÿÿ
` ÿ
`ÿ !ÿÿ
` ÿ
`
` ÿÿ
` ÿ
`ÿ !ÿÿ
` ÿ
ÿ
` ÿ
` ÿ
` ÿÿÿÿ
` ÿ
` ÿ
` ÿ
`ÿÿ .ÿÿÿ
`ÿ
` !ÿ ÿ
`ÿÿ
`
`ÿ
`ÿ
` ÿ
` ÿ ÿ
`ÿÿ ÿ!
` ÿ!ÿ8
`
`ÿ
`ÿ
`ÿÿ
`
` ÿ ÿ!
` ÿ
ÿÿÿÿ ÿ)ÿ
`ÿÿ
`ÿÿ
ÿÿÿ
`ÿÿ
`
`9
`ÿÿ
`
`9
`ÿÿ !ÿÿ
`ÿÿ ÿ
` !*ÿÿ ÿÿ
`ÿÿ
`
` ÿ
` ÿ
` !ÿÿ:
` ÿ
ÿÿÿ
` ÿ
`ÿ
` ÿ ÿ
`
` ÿ
`ÿ
` ÿ ÿ
`
ÿ
`
` ÿÿ
; ÿÿ4//<ÿ ÿÿ ÿÿ !ÿ:
` ÿ
`ÿ ÿ
`ÿ
`ÿ
`ÿ
`ÿ ÿÿÿ:
` ÿ ÿÿ
` ÿ
` !ÿÿ
` ÿÿÿ
`ÿ
`
`program that would do everything the other chat programs could, then add a few
`
`At the time the big players in instant messaging were AOL Instant Messenger
`
`(AIM), Yahoo, and ICQ. AIM had tens of millions of users; AOL had become the
`
`country’s biggest dial-up provider in the mid-'90s by blitzing everyone’s
`
`mailboxes with CD-ROMs, and all AOL users instantly became AIM users. Yahoo
`
`and ICQ each had millions of users. Those were big numbers for the 1990s.
`
`It was a large project: on the desktop program (“client"), we had to create a sleek
`
`user interface to let people see their buddies when they came online, allow them
`
`to change the color of the font in a cool way, and so on. That is, we had to create a
`
`wrinkles of our own. The server-side team had to notify users about the comings
`
`and goings of other users, so that if your buddy Gordon logged on, the server
`
`would tell your client that he was there (we, on the client side, had to take the
`
`notification and display it to the user properly). The server side also had to
`
`integrate our functionality with Hotmail, which had tens of millions of users and
`
`which Microsoft had acquired in 1997. It was imperative that every Hotmail user
`
`be able to log on to Messenger with a Hotmail address and password as
`
`seamlessly as possible. This was not simple.
`
`3
`
`
` ÿ
`ÿ ÿ
`ÿ
`ÿ
`ÿ
`ÿ ÿÿÿ:
` ÿ ÿÿ
` ÿ
` !ÿÿ
` ÿÿÿ
`ÿ
`
`program that would do everything the other chat programs could, then add a few
`
`At the time the big players in instant messaging were AOL Instant Messenger
`
`(AIM), Yahoo, and ICQ. AIM had tens of millions of users; AOL had become the
`
`country’s biggest dial-up provider in the mid-'90s by blitzing everyone’s
`
`mailboxes with CD-ROMs, and all AOL users instantly became AIM users. Yahoo
`
`and ICQ each had millions of users. Those were big numbers for the 1990s.
`
`It was a large project: on the desktop program (“client"), we had to create a sleek
`
`user interface to let people see their buddies when they came online, allow them
`
`to change the color of the font in a cool way, and so on. That is, we had to create a
`
`wrinkles of our own. The server-side team had to notify users about the comings
`
`and goings of other users, so that if your buddy Gordon logged on, the server
`
`would tell your client that he was there (we, on the client side, had to take the
`
`notification and display it to the user properly). The server side also had to
`
`integrate our functionality with Hotmail, which had tens of millions of users and
`
`which Microsoft had acquired in 1997. It was imperative that every Hotmail user
`
`be able to log on to Messenger with a Hotmail address and password as
`
`seamlessly as possible. This was not simple.
`
`3
`
`
`
`The initial team consisted of about ten people, though it gradually expanded to
`
`several times that size. On the client side we’d meet to discuss what needed to be
`
`done, what kinds of features we wanted, what we could do and couldn’t do. Then
`
`we’d go and do it. I was 20 years old, the youngest person on the team, and very
`
`I worked on the instant messaging windows: the “type your message here"
`
`window and the “transcript" window above it. I added better font control and
`
`helped make the client work with non-Latin character sets like
`
`Chinese/Japanese/Korean, Indic, Hebrew/Arabic (right-to-left, a particular pain). I
`
`managed when the windows would pop up, how they could be moved around,
`
`and how scrolling worked in them (scroll bars were very buggy in Windows!).
`
`Handling shutdown was a pain, making sure the windows closed down neatly
`
`and all the program’s resources were cleaned up properly without the program
`
`crashing.
`
`green. I was given little chunks of the project to work on at first, then bigger ones.
`
` ÿÿ ÿ
`
ÿÿÿÿÿ ÿÿ
ÿ
ÿ
`
`
ÿ
ÿ ÿ
ÿÿ ÿ
`ÿ
`ÿ
ÿ
ÿ ÿÿ
`
ÿ ÿ
ÿÿ
` ÿ ÿ
` ÿ ÿ
ÿÿ
ÿÿ
ÿ ÿÿ
` ÿ ÿ ÿ
` ÿ ÿ
` ÿÿ ÿ ÿÿÿ
` ÿ ÿ ÿ
` ÿ ÿ
` ÿÿ ÿ ÿÿÿ
ÿ ÿ
ÿ
ÿ ÿ
ÿ
ÿÿ ÿ ÿ
ÿ
`ÿÿ
`ÿÿ
ÿÿÿ
`
`
ÿÿ ÿ!
`ÿÿÿÿÿ"
`ÿÿÿÿÿ"
ÿ ÿÿ
`ÿ ÿÿ ÿ
ÿ
ÿ
#ÿ ÿ$ÿÿ
ÿ %
` ÿ ÿ ÿ$
` ÿ ÿ ÿ$
`%ÿ ÿÿÿÿ ÿÿÿ
`ÿ
` ÿ ÿ ÿ
`ÿÿ ÿ&'ÿ
`
`ÿ
ÿ
`(
`(
)*
)+ÿ
`ÿ,)-
`ÿ. &&ÿÿ
`ÿ/ÿ
` ÿ ÿ ÿ
`ÿ,)-
`ÿ. &&ÿÿ
`ÿ/ÿ
` ÿ ÿ ÿ
ÿ
ÿÿÿ ÿ ÿ
` ÿÿ ÿ
` ÿ ÿ
` ÿÿ ÿ
` ÿ ÿ
`ÿ ÿÿ ÿ.
`ÿ
ÿÿÿÿÿ0
1/
`, ÿ
`, ÿ
ÿ
ÿÿÿ ÿ
ÿ ÿ
ÿ
`
`
ÿ
ÿ
` ÿÿ ÿ
` ÿÿ ÿ
ÿ
`
ÿÿ
` ÿÿÿ ÿ ÿ
`
`
` ÿÿÿ ÿ ÿ
`
`
`-ÿÿ"
ÿ ÿ
ÿÿÿ ÿ ÿÿ
ÿ
ÿ
ÿ
`ÿÿ ÿ
`ÿÿ ÿ
ÿ ÿÿ"
ÿ ÿ, ÿÿ0ÿ"
ÿÿ
`ÿ
` ÿ" ÿ ÿ ÿÿ ÿ ÿÿÿ!
`ÿ
` ÿ" ÿ ÿ ÿÿ ÿ ÿÿÿ!
ÿÿÿÿÿ
`
`
ÿ2
`
`
ÿ
ÿ
ÿÿÿ
ÿÿ!ÿ2
ÿ ÿ
` ÿÿ ÿ
ÿ ÿ ÿ
` ÿ
` ÿ
ÿ ÿÿ
ÿ ÿ
`
`
ÿ ÿ
ÿÿ
ÿÿÿÿ 3ÿ-'ÿ
ÿÿÿ4 ÿ
`
` ÿÿÿ(5ÿ ÿÿÿ ÿÿ
`
`
` ÿÿÿ(5ÿ ÿÿÿ ÿÿ
`
ÿ
ÿÿÿ2
ÿ-'ÿ
` ÿ
` ÿ
ÿ
ÿ
ÿ
ÿÿ
`
ÿ ÿ
ÿÿ
ÿ
` ÿÿ
`2
` ÿÿ
`2
ÿÿÿÿÿÿ
ÿ
ÿ2
`
`
ÿ
ÿ-'
ÿ
ÿ
`ÿ
` ÿ
`ÿ
` ÿ
ÿÿ2
ÿ
ÿ-2ÿ
ÿÿÿ
ÿ
ÿ
ÿÿÿ-2
`
`
ÿÿ2
ÿ0ÿ
` ÿÿ$%
`
` ÿÿ$%
`
ÿ
ÿÿÿÿ
ÿ ÿ
`
` ÿ ÿ-ÿ ÿ
`
` ÿ ÿ-ÿ ÿ
ÿÿ
`
`
ÿ
ÿÿ&
"
ÿ
`ÿ
` ÿ
`ÿ
` ÿ
ÿÿ
ÿÿ
` ÿ
` ÿ
`
ÿ
ÿ
` ÿ ÿ ÿ
` ÿ ÿ ÿ
ÿ, 6ÿ. ÿ
ÿ
`/ÿ
`/ÿ
ÿÿ7
ÿ
`
`
ÿÿ
ÿ
ÿÿÿ ÿ
ÿ
` ÿ
`
` ÿ
`
ÿÿ
`ÿÿ
ÿ
`ÿÿÿ (6)6ÿ.
`ÿÿÿ (6)6ÿ.
ÿ
`ÿ
`)ÿ
`/ÿ
` ÿ
`ÿÿ ÿÿ
`ÿ
`)ÿ
`/ÿ
` ÿ
`ÿÿ ÿÿ
ÿÿ
`
`
ÿÿ
ÿ
`
`
ÿ
ÿ
ÿ ÿ
`
`
ÿ8 ÿ
`
`
ÿÿ, 6ÿ
ÿ (6)6ÿ
`
`ÿ
` ÿ ÿ
`
`ÿ
` ÿ ÿ
ÿÿÿÿ
ÿÿ)
` ÿ
` ÿ-2
` ÿ
` ÿ-2
ÿ
`ÿÿ
`ÿÿ
ÿ8(-9ÿ.ÿÿ8
ÿ
`(
`-ÿÿ9 /ÿ
`(
`-ÿÿ9 /ÿ
ÿÿ ÿÿÿÿ
ÿ ÿ ÿ$%ÿ
`
` ÿÿ:ÿ ÿ ÿ
`
` ÿÿ:ÿ ÿ ÿ
ÿ
ÿÿ
` ÿ ÿ
` ÿ ÿ
ÿ
ÿÿÿÿ-2ÿ
`
`ÿ
`
`After we finished the user part of the program, we had some downtime while
`
`waiting for the server team to finish the Hotmail integration. We fixed every bug
`
`we could find, and then I added another little feature just for fun. One of the
`
`problems Microsoft foresaw was getting new users to join Messenger when so
`
`many people already used the other chat programs. The trouble was that the
`
`programs, then as now, didn't talk to one another; AOL didn’t talk to Yahoo, which
`
`didn't talk to ICO, and none of them, of course, would talk to Messenger. AOL had
`
`the largest user base, so we discussed the possibility of adding code to allow
`
`Messenger to log in to two servers simultaneously, Microsoft's and AOL’s, so that
`
`you could see your Messenger and AIM buddies on a single list and talk to AIM
`
`buddies via Messenger. We called it “interop.”
`
`This wasn’t elegant, but it wasn’t that complicated, either. A program talks to a
`
`server using a well-defined protocol, which is a set of coded instructions sent to
`
`and from the server. HTTP (hypertext transfer protocol), used to request and
`
`transmit web pages, is one of the most common protocols in existence. It is built
`
`on top of TCP/IP (transmission control protocol/internet protocol), the
`
`underlying protocol of the internet itself. Internet companies run servers that
`
`speak these and other protocols. Some protocols, like HTTP and TCP/IP, are
`
`public, documented, and spoken by everyone, but some are private/proprietary
`
`and undocumented. AIM's protocol, known as OSCAR (for Open System for
`
`CommunicAtion in Realtime), was in the latter group. I didn't have the “key" to
`
`decode it. But what my boss and I could do was sign up for an AIM account and
`
`4
`
`
`
`ÿ
`
`After we finished the user part of the program, we had some downtime while
`
`waiting for the server team to finish the Hotmail integration. We fixed every bug
`
`we could find, and then I added another little feature just for fun. One of the
`
`problems Microsoft foresaw was getting new users to join Messenger when so
`
`many people already used the other chat programs. The trouble was that the
`
`programs, then as now, didn't talk to one another; AOL didn’t talk to Yahoo, which
`
`didn't talk to ICO, and none of them, of course, would talk to Messenger. AOL had
`
`the largest user base, so we discussed the possibility of adding code to allow
`
`Messenger to log in to two servers simultaneously, Microsoft's and AOL’s, so that
`
`you could see your Messenger and AIM buddies on a single list and talk to AIM
`
`buddies via Messenger. We called it “interop.”
`
`This wasn’t elegant, but it wasn’t that complicated, either. A program talks to a
`
`server using a well-defined protocol, which is a set of coded instructions sent to
`
`and from the server. HTTP (hypertext transfer protocol), used to request and
`
`transmit web pages, is one of the most common protocols in existence. It is built
`
`on top of TCP/IP (transmission control protocol/internet protocol), the
`
`underlying protocol of the internet itself. Internet companies run servers that
`
`speak these and other protocols. Some protocols, like HTTP and TCP/IP, are
`
`public, documented, and spoken by everyone, but some are private/proprietary
`
`and undocumented. AIM's protocol, known as OSCAR (for Open System for
`
`CommunicAtion in Realtime), was in the latter group. I didn't have the “key" to
`
`decode it. But what my boss and I could do was sign up for an AIM account and
`
`4
`
`
`
` ÿ ÿ ÿ
`
ÿ
ÿ ÿÿ ÿ ÿ ÿ
ÿ
`
`
ÿ
` ÿ ÿÿ ÿ ÿ
`
` ÿ ÿÿ ÿ ÿ
`
ÿ ÿ ÿ ÿ
`
`
ÿ
` ÿ
` ÿÿÿ
` ÿ ÿÿÿ
`ÿ
` ÿ
` ÿÿÿ
` ÿ ÿÿÿ
`ÿ
ÿ ÿ ÿ ÿÿ
ÿ
`
`
ÿ
`
`
ÿ
ÿÿÿ
ÿ ÿ ÿ ÿ
ÿÿ
`
` ÿ ÿ ÿ ÿ ÿ ÿÿ ÿ
`
` ÿ ÿ ÿ ÿ ÿ ÿÿ ÿ
ÿÿ ÿ
ÿ ÿ ÿ
`!"ÿ$!ÿ%%ÿ&"ÿ$$ÿ'$ÿ$$ÿ$%ÿ$$ÿ$(ÿ$$ÿ$$ÿ)'ÿ*+ÿ'+ÿ!,ÿÿ-............/.0
`11ÿ23ÿ14ÿ1(ÿ14ÿ21ÿ1,ÿ1*ÿ$$ÿ$1ÿ$$ÿ$1ÿ$$ÿ!,ÿ$+ÿ4!ÿÿ1"4(45,*.....0.6
`24ÿ23ÿ25ÿ4!ÿ(4ÿ(*ÿ*!ÿ(4ÿ*1ÿ*1ÿ(&ÿ*!ÿ$$ÿ$$ÿ$$ÿ$1ÿÿ%"7689:8;;<:....
`$$ÿ$3ÿ$$ÿ$!ÿ$$ÿ3$ÿ$$ÿ$&ÿ$$ÿ$2ÿ$$ÿ$$ÿ$$ÿ3,ÿ$$ÿ$1ÿÿ................
`$$ÿ$2ÿ1%ÿ25ÿ'%ÿ,5ÿ$$ÿ$3ÿ$$ÿ$$ÿ$$ÿ$4ÿ$$ÿ(,ÿ$$ÿ$!ÿÿ..=7.........>..
`$$ÿ$,ÿ*4ÿ*1ÿ!+ÿ(3ÿ*1ÿ(1ÿ()ÿ()ÿ$$ÿ$1ÿ$$ÿ$!ÿ(4ÿ(%ÿÿ..?;@A;BCC....8D
`
` ÿÿ ÿ
`!"ÿ$!ÿ%%ÿ&"ÿ$$ÿ'$ÿ$$ÿ$%ÿ$$ÿ$(ÿ$$ÿ$$ÿ)'ÿ*+ÿ'+ÿ!,ÿÿ-............/.0
`11ÿ23ÿ14ÿ1(ÿ14ÿ21ÿ1,ÿ1*ÿ$$ÿ$1ÿ$$ÿ$1ÿ$$ÿ!,ÿ$+ÿ4!ÿÿ1"4(45,*.....0.6
`24ÿ23ÿ25ÿ4!ÿ(4ÿ(*ÿ*!ÿ(4ÿ*1ÿ*1ÿ(&ÿ*!ÿ$$ÿ$$ÿ$$ÿ$1ÿÿ%"7689:8;;<:....
`$$ÿ$3ÿ$$ÿ$!ÿ$$ÿ3$ÿ$$ÿ$&ÿ$$ÿ$2ÿ$$ÿ$$ÿ$$ÿ3,ÿ$$ÿ$1ÿÿ................
`$$ÿ$2ÿ1%ÿ25ÿ'%ÿ,5ÿ$$ÿ$3ÿ$$ÿ$$ÿ$$ÿ$4ÿ$$ÿ(,ÿ$$ÿ$!ÿÿ..=7.........>..
`$$ÿ$,ÿ*4ÿ*1ÿ!+ÿ(3ÿ*1ÿ(1ÿ()ÿ()ÿ$$ÿ$1ÿ$$ÿ$!ÿ(4ÿ(%ÿÿ..?;@A;BCC....8D
`
` ÿÿ ÿ
ÿ
ÿJ
`ÿ
` ÿ ÿ ÿ ÿ
`ÿ
` ÿ ÿ ÿ ÿ
ÿ ÿÿ ÿ
`$$ÿ$3ÿ$$ÿ2,ÿ()ÿ!%ÿ!%ÿ!$ÿ23ÿ(%ÿ*)ÿ(!ÿ(&ÿ(2ÿ*)ÿ1&ÿÿ...EC..ÿ"DFG<HFI
`
`$$ÿ$3ÿ$$ÿ2,ÿ()ÿ!%ÿ!%ÿ!$ÿ23ÿ(%ÿ*)ÿ(!ÿ(&ÿ(2ÿ*)ÿ1&ÿÿ...EC..ÿ"DFG<HFI
`
ÿKLMÿ
NOÿÿ
`ÿ ÿ ÿ ÿÿ ÿ ÿ ÿ
`ÿ ÿ ÿ ÿÿ ÿ ÿ ÿ
ÿ
`
` ÿ ÿ ÿ ÿ ÿ ÿÿ
`ÿ
`
` ÿ ÿ ÿ ÿ ÿ ÿÿ
`ÿ
ÿ ÿKLMÿ
NOÿ ÿÿ
` ÿ
` ÿ
ÿ
ÿ ÿ
` ÿ
` ÿ
ÿ
ÿ
ÿ ÿ
ÿP
`ÿ ÿ ÿ
`
`
`ÿ ÿ ÿ
`
`
`
` ÿ ÿ ÿÿ
`ÿ ÿ
ÿ ÿ ÿ ÿ
ÿ ÿ ÿ
`PQÿ
`PQÿ
ÿRÿPQÿ ÿ ÿ ÿÿ
ÿÿ
ÿ ÿ
`ÿ ÿS NÿT ÿ ÿ ÿ ÿÿ
` ÿ ÿ
`
`ÿ ÿS NÿT ÿ ÿ ÿ ÿÿ
` ÿ ÿ
`
ÿ ÿ
`ÿÿ
`ÿÿ
ÿ
`
`
ÿ ÿ ÿ ÿÿ U ÿ ÿ
ÿ ÿ ÿ
ÿ
` ÿ ÿ ÿÿ
` ÿ
` ÿ ÿ ÿÿ
` ÿ
ÿ ÿ