Source: Andrew McFadden

In the late hours of September 17th, 1996, the day before the WebTV service was scheduled to go online, a group of us (Rick Daley, Lennart Lövstrand me (Andy McFadden), probably Arnold de Leon, plus several others I can't remember) had gathered in the operations center in 275 Alma St., Palo Alto. A collection of network operations and service software engineers were hanging around to bear witness to the official launch of WebTV.

When the fated hour struck, one of the netops folks, Bryce Jasmer, started to go through the registration process with his WebTV box. As with any online service, we figured the good names would go quickly, so it was important to get in and register before The Masses signed up. Besides, there was something nifty about being one of the first people to ever sign up on the "real" service. Until this day, all accounts were "disposable" test accounts.

A few of us were standing around, watching him type, feeling giddy with anticipation and lack of sleep. He'd entered his name, address, and other personal information, and was typing in his user name. This is the name used as the e-mail address. He typed in "jazz", so his e-mail would be "jazz@webtv.net". When he hit "enter" on the wireless keyboard, we heard the "whoom" sound that meant an error dialog was coming up. All eyes turned to the screen.

To understand what happened next, it's important to understand a little something about how the service worked. WebTV was meant to be a family-oriented service, so it was important to screen all user names and other externally visible features for profanity. It's impossible to catch everything, but it's not hard to catch obvious things.

The user names were compared against a set of regular expressions. Regular expressions allow you to match against a pattern. For example, "fu.*bar" would match against all names starting with "fu" and ending with "bar". With carefully-chosen patterns, you can catch and reject blatant instances while accepting words like "shitake" and "matsushita" that have a profane word embedded within them.

The same mechanism was also used to prevent users from selecting "forbidden" names, such as "postmaster", "root", "admin", and "help". We had a text file that looked like this:

admin.*
User names may not start with "admin".
postmaster
You're not the postmaster.
poop
That's a bad word.
weenie
That's a bad word.

An entry had two lines. The first was the regular expression to match, the second was the error message that would be displayed to the user. The service code read the file, grabbing two lines at a time, and when a user name was entered it compared the name against every regular expression. An error dialog was displayed for the first one that matched. If nothing matched, the user name was accepted.

The code that read the file knew how to skip over comments. It did not, however, give any special treatment to blank lines.

Someone had made some changes to the file with the profanity expressions, and while doing so had added a single blank line after the end of the "reserved" names and before the start of the profane words. When the code read the filter list, it grabbed the blank line as the regular expression, and the word that followed as the error message. As luck would have it, a blank-line regular expression matched anything.

It's midnight. We're all a little punchy. Bryce types in a user name, and the box responds with a very simple message.

f--k dialog

We start laughing hysterically. Other people come over, wondering what's up. We point at the screen. They start laughing hysterically.

Over in a different building, Mark Armstrong (the guy in charge of QA) is sitting with Bruce Leak (one of the company founders) in front of a rack of sixteen WebTV boxes. The setup, dubbed "racksville", is connected via a video multiplexer to a large TV that is showing all 16 boxes simultaneously. They've started through the registration process with all of the boxes, using the infra-red keyboard to broadcast commands. We call them up on speaker phone.

Us: "So, how's it going?"

Them: "Everything's fine here."

Us: "Oh, okay. You might notice something when you register a box."

Them: "Really? We haven't seen anything odd yet."

Us: "You will."

Them: "Okay. We're entering the zip code... seems fine. WHOA!!"

The friendly dialog was now popping up on the screens of all sixteen boxes. They suggested that maybe we ought to fix that glitch sometime soon. We thought that was a fine idea.

We fixed the filter file, and eventually changed the code to recognize and ignore blank lines. As far as I know the WebTV service never said "oh, f--k" to any actual customers.


More such crazy stories

© 2023-11-22