Category Archives: Sixteen Tons

Danny Glasser is typing…

During my Microsoft career I had the opportunity to work on a number of projects that resulted in patents for which I am listed as an inventor. Setting aside the issues surrounding software patents and patent trolling in general, what pride I possess in any patent attached to my name has almost nothing to do with the patent itself, the filing and granting of which are largely the work of attorneys. The pride comes from utility of the work that spurred the patent application and my personal contributions to that work.

I care little about the several patents where I am listed as a co-inventor along with Bill Gates — for example, 8,341,405: Access management in an off-premise environment — despite whatever reflected glory there is from my association with him in the patent records. These patents were part of a “forward patenting” project into which I put minimal effort, so I deserve little if any credit for any inventions that ensued.

Conversely, the patent of which I am most proud is for an invention of which I was responsible for the initial conception and implementation and that remains broadly in use today. In the US patent database it is 6,519,639: System and method for activity monitoring and reporting in a computer network, but to everyone else it is known as the “typing indicator.”

I’ve been thinking about this patent recently because today is the twentieth anniversary of the launch of MSN Messenger 1.0, the product in which the typing indicator debuted. While MSN Messenger is no longer in use, the typing indicator was quickly and widely copied and is still a feature of nearly every chat and messaging app. Whether you use Facebook Messenger, iMessage, WhatsApp, Skype, etc., or a customer support website’s chat plug-in, you encounter the animating dots or “[name] is typing…” message that traces its origin to this work.

David Auerbach explained the typing indicator’s history in detail in Slate five years ago, so I won’t repeat it all here. The summary is that prior to MSN Messenger, real-time chat apps either didn’t indicate to you whether the user on the other side was responding to your message (IRC or AIM), or else they showed you every character that the user typed in real time (Unix talk and ICQ). When we were developing MSN Messenger, we believed we could do something better; something that would give you real-time feedback about whether the other user was typing, while being relatively network efficient and providing the other user a semblance of privacy with their thoughts and typos. I designed and coded the implementation for the detection and communication of the typing indicator, and slapped on a rough UI to create a proof of concept. Once we confirmed with self-hosting that it worked well, David and others designed and implemented the polished UI that shipped in MSN Messenger 1.0.

Since the typing indicator patent covers only the detection and communication mechanisms and not the user interface, David and others who worked on the initial implementation are not listed as inventors on the patent. This does not diminish their contributions to the work. MSN Messenger 1.0 became better known for Microsoft’s IM interoperability battle with AOL, which David has described in his essay Chat Wars.

The reason that the typing indicator patent is significant today — July 22, 2019 — is that the initial application was filed on July 21, 1999, the day before Messenger’s launch, and a US patent typically expires twenty years after filing. This should mean that the original patent protection is no longer in effect as of today, except that Microsoft’s lawyers filed several continuation patents, most recently 7,418,495, so the typing indicator patent has a little bit of life left in it.

That said, Microsoft has never pursued anyone for infringing this patent as far as I know (which is not far). In many cases Microsoft has patent cross-license agreements with the the other products’ owners (e.g. Apple in the case of iMessage) that render the issue moot. Also, it’s possible that newer implementations of the feature don’t infringe on the specific claims made by this family of patents, but I have no idea if anyone has bothered to verify this.

Several years after MSN Messenger first launched, still in the pre-smartphone era, I employed the typing indicator as an example when I visited my child’s first-grade class for one of those “What your parent does for a living” sessions. I created these mock-ups of an IM session to demonstrate to six-year-olds how it worked, and printed them poster-sized:

Hermione poster

Harry poster

[The text of the typing indicator was then “is writing” because pen support had been added to Messenger.]

The quality of these mock-ups should illuminate why someone other than me implemented the shipping version of the typing indicator UI.

Flashback: First Day at Microsoft

Calendar page - August 3, 1987

Twenty-eight years ago today, I started at Microsoft, my first full-time job after completing my bachelor’s degree. Having arrived in Seattle the previous Thursday, I had settled into temporary housing at Hampton Greens on 148th Ave NE and made the short drive to campus in my rented Pontiac 6000 sedan. I wore a Miami Vice-inspired light gray sport jacket that I’d purchased in a mall on Long Island. After employee orientation in Building 1 with about thirty other people, I walked over to Building 2 where I was greeted by my first manager, Ralph Ryan, the development manager of the LAN Manager team.

I spent part of the first day in status meetings, where my new co-workers went over stacks of printed work items lists line-by-line. The morning meeting was about something called the “redirector” and the afternoon meeting was about something called the “API” and also the UI. In between we went to lunch at the cafeteria in the recently-opened Building 5. My co-workers were excited to go there because it was the first cafeteria on campus with a grill, including a menu item called the “Blibbet Burger.”

Over the next few days I got to work. As the most junior member of the team, my first project was to design and code OS/2 LAN Manager’s installation program, based on a few pages of details in the written product specification. I learned that my team was in the Distributed Systems Business Unit, which was led by Paul Maritz. This was part of the Systems Division, led by VP Steve Ballmer, who had signed my offer letter. In the office directly across the hall was Larry Osterman, a grizzled veteran by virtue of his three years of professional experience. I reconnected with friends like Rosie Perera and David Byrne, who were partly responsible for recruiting me there.

I set up the first PC I had ever used: A Compaq Deskpro 386/16 with 1 MB of RAM. It had a 70 MB hard disk, so much capacity that I divided it into three partitions and installed MS-DOS 3.21 on the main one (soon to be replaced with OS 1.0) and Xenix on another one just for comfort. My team was using Microsoft’s SLM source code control system but had yet to set up a shared toolset or an official build process, so I had to walk the halls to collect the various versions of the compiler and libraries needed to build the whole product. (Brian Valentine, who started as the team’s first test manager two weeks after I did, put both of those in place.)

Building 2 at the time housed the Systems Division (except for the Languages group), the IT Group, and what we would now call the corporate data center. The OS/2 group occupied most of the upstairs and the rest of the groups were scattered throughout the first floor. Down the hall from me was a bunch of folks working on something called Windows/386, but most of us paid little attention to them. There was also a peculiar fellow with long red hair and a full beard who talked loudly in the hallways and occasionally had Bill Gates stop by his office.

Interoffice memos were typed by administrative assistants, printed on paper, and manually distributed to our slots in the mail room. The building receptionists used a public-address system to page employees, sometimes throughout all of the buildings at once. I never met Suanne Nagata, but her name echoed from the building’s speakers so often in those days that I will always remember it. There was no voicemail system, so unanswered phone calls were redirected to the central operators, who took messages and sent them via email. The entire company phone list was printed monthly on bright yellow paper and delivered to everybody’s mailslot. There was also an online number lookup tool on the Xenix servers; it was called “phone” and was a grep script. Email was in heavy use internally, but the domain was still several years away, and external email was exchanged via UUCP, typically via the decvax!uw-beaver!microsoft route.

The company had just crossed the 2000-employee threshold and its stock price – nearly 18 months since the IPO – had fallen to $90 per share after having previously reached $110. Both of these were leading indicators, my more cynical colleagues assured me, that the company had become too big and bureaucratic and that its best days were behind it. In one regard they were right, at least in the short term, as the stock price rose again to over $100, then fell precipitously two months later in the Crash of 1987 and didn’t recover for another two years.

LAN Manager 1.0 code complete was six weeks away. The wild ride had begun.

The Top 10 *Real* Reasons that I’m Leaving Microsoft

Dorothy's ruby slippers

When people leave a job, they tend to spew pablum about “new opportunities” or “spending more time with the family.” Since today is my final day as a Microsoft employee, it’s my chance to set the record straight. Here are the top ten real reasons that I’m leaving Microsoft:

  1. I’m starting a new company to build an enterprise version of Snapchat.
  2. My Microsoft active tenure rank (#63) is now lower than my ladder level.
  3. It took me a week to complete’s Hour of Code.
  4. I must free myself from the tyranny of automated paper towel dispensers.
  5. The Company Store finally sold out its entire backlog of Windows for Workgroups Starter Kits.
  6. I’ve given up trying to figure out what program managers really do.
  7. I only work for CEOs who were at Microsoft when Jimmy Carter was president.
  8. Now that I qualify for AARP discounts, I no longer need the Prime Card.
  9. I can’t bear the thought of not getting a single numeric rating to represent the relative value of an entire year’s work.

And the number one real reason that I’m leaving Microsoft is:

  1. Glinda the Good Witch appeared to me and explained that I’ve had the power to leave all along.

[Updated 25-Jan-2014: Added image and link — DG]

Launching DannyGl 3.0

Twenty-seven years ago last month, I came to Seattle for the first time for my job interview at Microsoft. If my childhood and college years were the “1.0” of my life, then my Microsoft career has been “2.0.” I am now about to leave Microsoft and begin “DannyGl 3.0.” I’ll be around for a few more weeks to help with the current organizational transition; my official last day will be January 24th.

What most drew me to Microsoft all those years ago were the people; the people I knew already who worked there and the people I met when I interviewed. They were universally gifted, accomplished, and passionate about doing the right thing. While I have received enormous gratification from solving hard problems and delivering software products that hundreds of millions of people around the world use every day, learning from and being inspired by such an exceptional group of people on a daily basis has been my favorite part of working at Microsoft. My strongest sense of accomplishment at Microsoft comes not from any code or docs that I’ve written but from the people I’ve helped hire, develop, and mentor during my time here.

While thanking people individually would take too long, I will make one exception for Michele Weinberger Glasser, my wife and partner for most of these years. She has been my greatest source of support and is directly or indirectly responsible for the happiest moments of my life. I daresay that our combined 47 years of Microsoft FTE tenure is probably a record for a couple, though now that it is coming to an end I look forward to seeing this record broken.

You may be thinking, “What is DannyGl 3.0?” In keeping with a Microsoft-inspired release model, I am commencing a personal MQ and concurrently embarking on the 3.0 planning process. Further information about DannyGl 3.0 will require execution of a verbal non-disclosure agreement; this can typically be procured over lunch, a beer, or on a ski lift.

I invite you to “sign my yearbook” by sending email to danny+yearbook <at>, especially if you have a personal story about my contributions to Microsoft. I’ll be sharing this with my kids, so please keep it PG-13.

Thank you for the opportunity to work together. I look forward to our paths crossing again.

Simpler Is Better. Except When It’s Not.

This past summer, the conference rooms in the building where I work were remodeled extensively.  Among the improvements is the installation of a network clock, flush-mounted high up on a wall of each room.  Having a clock in a conference room makes it easier for the participants to track the time of the meeting and stay on schedule.  Having a network clock means that it never has to be set manually because it is automatically synchronized to an official time source.

Except that it’s now ten days since the conversion from Daylight Saving Time to Standard Time and half of the clocks are still on PDT instead of PST.  Not all of them, curiously; some of the clocks have successfully fallen back and some haven’t, with no apparent pattern amongst the different rooms.  In at least one case, two conference rooms side-by-side are on different sides of the DST divide.

What’s funny is that several folks have walked up to the errant clocks and tried to find the button that lets them set the time.  Only there isn’t one, so they end up pushing the mounting screws to see if that will do anything.

Almost Famous

Something I wrote fifteen years ago was quoted in a recently published book:

Philosophy: The build is a piece of software and should be treated as such. The build is among the most heavily used and complex pieces of software in the development group and should be treated as such.

— Danny Glasser, Microsoft developer in the Systems Group, March 9, 1991

A Numbers Game

I’ve had the same office phone extension for eighteen years; however, due to changing areas codes and exchanges I’ve had four different publicly-visible phone numbers during this time.
Actually, that’s not quite true, because at first internal dialing was four digits, and when we switched to the 936 exchange it became five.  So my internal extension did change from XXXX to 6XXXX.
When I started at work they had run out of numbers in the 882 exchange and had started using 867.  Having an 882 number marked you as an old timer.  I only got my 882 number because I happened to occupy the office of a vendor who had been assigned the number, and instead of recycling it they passed it along to me.  For some reason this bugged one of my then-housemates, who had started a couple of months before me but got an 867 number.
The final four digits in the 882 and 867 exchanges were in distinct ranges, hence it was possible to use four-digit dialing without conflicts.  I used to know what those ranges were but it’s long since escaped my memory.  I do remember that 5xxx was in the 867 range, which means that somebody at the company had the immortal 867-5309 as their office phone number.

Talking about The Old New Thing : Buying an entire Egghead Software store

Raymond tells the story of taking a pickup truck to Egghead to buy one copy of each application for compatibility testing.  What he doesn’t mention is that it created a bunch of extra work for him personally, since he was one of the people responsible for investigating and fixing application compatibility issues in Windows 95.

The application that I got from this bonanza was EA Sports’ NHL Hockey 95.  The first time I tried to run it, it attempted to start for a while but never actually got past the initial load; eventually my computer’s hard disk ran out of space.  Raymond came to my office to investigate and discovered that the application was using a memory manager add-on that attempted to determine how much RAM was available in the system by allocating memory in an infinite loop until it got an out-of-memory error.  On traditional MS-DOS this would fail pretty quickly, but on Windows 95 the OS’s virtual memory manager would keep allocating and allocating, and continually enlarging the swap file on the hard disk to handle the requests.  This would keep happening until the hard disk was completely full, which could take a very long time.

Raymond added code to Windows 95 detect this particular memory manager add-on and handle its requests intelligently.  This was a good thing because a number of other MS-DOS applications used the same memory manager.

By the way, I never got very good at NHL Hockey 95.  To be able to compete with the computer player you needed a joystick and all I had was a mouse (they didn’t buy us OS developer types joysticks for our office computers, go figure).  The only times I ever won was when I played an all-star team and the computer played the worst team in the league.

Chicago X

Today’s the 10th anniversary of the public release of Chicago, a.k.a. Windows 95.  As someone who worked on this project for 2 1/2 years, there’s lots I could write, but I’ll limit myself to my favorite launch day story:
In between the official launch event (emceed by Jay Leno) in the morning and the carnival celebration in the evening was a private session that Bill Gates held with the Windows 95 and Office 95 product teams in the large tent where the launch had occurred.  At the time Apple’s copyright infringement lawsuit against Microsoft had recently ended, and someone asked Bill how he thought the launch of Windows 95 would affect Microsoft’s relationship with Apple.  Bill smiled and said something like, “Well, today we finally agree with Apple that Windows 3.1 is a crappy product.”

Riffing on “Proudly Serving My Corporate Masters: Disliking Microsoft”

I’m afraid that Adam gets it wrong when he disagrees with Scoble and Israel in his piece entitled, "Disliking Microsoft".  Industry enmity towards Microsoft dates back to BillG’s famous "Open Letter to Hobbyists" back in 1976.

There are two things that happened in the early-to-mid 1990’s that increased the negative perception of Microsoft.  The first was the toppling of IBM — which up to that time had been the persistent bête noire of the computer industry — from its overwhelming position of leadership in the industry, creating an antipathy vacuum into which Microsoft fit nicely.  To this point, I am reminded of the tired joke about the airplane in the fog in which the punch line is now Microsoft.  When I was in college, the punch line was IBM.

The second was the uptick in political lobbying by some of Microsoft’s main competitors, namely Novell, AOL, and Sun.