Chapter 16. Building the Chat Room

In late 1996, one of the authors was involved in a project that, at the time, was absolutely fascinating. He and a colleague had been asked by the college where they were teaching if they would be interested in delivering an online Photoshop course.

After a comprehensive examination of the technologies available at the time, they decided to conduct the online sessions using a "chat" format. Then they listed many of the features they wanted to incorporate, such as these:

  • Real-time chat.

  • Up to 60 participants.

  • Fast upload even if the modem was 14.4. (That isn't a typo. People actually used 14.4 modems in 1997.)

  • Participant list to see who is in the class.

  • Instant transcript available for download.

At the time, these capabilities were either nonexistent, split across many commercial products, or grossly overpriced. The decision was made to spend three months building a custom chat room using, among other things, Perl, JavaScript, and HTML.

That it worked was a miracle. That it worked as well as it did was a mystery. Yet, while the course was online, it would pull together a typical class consisting of individuals from Europe, Africa, the United States, and all over Canada. The oddest participant was a young woman who lived within walking distance of the college. On Sunday evenings, we would gather around our home computers and review and discuss that week's Photoshop lesson and homework. When the class ended, the students would stay online for a couple extra hours, getting to know each other, swapping recipes, and generally doing what students do when they are out of class.

So there we were, in the days when Flash was a word for speed or the name of a superhero, using the web for what it does best?serving as a communication medium.

Six years later, Flash has taken on a whole new meaning, and that chat room that took three months to build can be constructed in about an hour and go online in less than half an hour. How far we have come in such a short period of time.