Wednesday, April 28, 2010


In the summer of '90 I had an amazing opportunity that I mostly squandered: I spent a few months working at WATFAC, the Waterloo Foundation for the Advancement of Computing.

I got into this because my computer science teacher at the time (Savio Wong) recommended me for their yearly student work program, which required some level of aptitude for computer programming. Not knowing C I was at a bit of a disadvantage, but I WAS a little BASIC wiz and I had some experience with dBase III, which would turn out to be the big asset.

What they wanted us students to do was to learn how to use the new software they were developing: Application Creation Made Easy (ACME). It was -- for the time -- an amazing package that integrated with their WATCOM SQL engine and a specially built "Foundation" library, and was supposed to do exactly what it said: make it easy for companies to create applications, particularly the types that were front ends for data storage.

Basically, you built a database using WATCOM SQL, and then you went into ACME to add a user interface for it. This interface was -- strangely and perhaps fatally -- built in a spreadsheet, where each cel represented a page. It was up to you -- the application developer -- to place fields for displaying and entering data, and buttons that the user could press, and write the behind-the-scenes code that controlled the flow throughout the program.

The first thing *I* did with it was create an interactive adventure that allowed the player to explore the WATFAC building, because it was a very strange place to work. Formerly located on the corner of University and Phillip (where "The Marble Slab Creamery" is now), it was a refurbished bank, complete with a vault in the basement where we ate our lunch. The whole place was a rigged-up nightmare of tiny rooms and running cables.

In addition we were occasionally overseen by Wes Graham, patron saint of Waterloo computing, wonderful and just a tad eccentric. During his bizarre orientation speech he used an "onion" metaphor to describe the way layers of information are peeled back, but then he got frustrated when he realized that onions don't have the cores that his metaphor demanded. This lead to us lowly co-ops -- so often with free time on our hands -- creating a grand mythology: Wes didn't want to "advance computing," that was just a front for his REAL project: the sinister development of a peach/onion hybrid called "The Ponion."

All of the games, drawings, and stories we made were based around the Ponion mythology. This was better than what the co-op University students were doing: playing battlechess across the local area network. WE never got caught (because our fun and games were created with company tools and looked like work) but when THEY got caught there was absolute hell to pay (and a memorable lecture to the whole group about teamwork and work ethic).

My problem was that I'd been placed in the only large room in WATFAC, a conference area that I called "the circus." This room hosted about twenty computers and was where all the nerdiest computer students were...and me. These guys were hardcore, they smelled a bit, they had loud voices and yawking laughs; the archetypal computer nerds. Since I was several years younger and I DID NOT KNOW C, there were frequent attempts to denigrate me, and equally frequent attempts by me to explain to them that they should try to straighten out their hygiene and their social problems, and never any work getting done because they were all yelling about the jokes in the latest Math newsletter.

Anyway, our REAL purpose at the company was twofold: to be beta testers for the ACME software, and to write full-fledged applications using it that could be demonstrated to local companies like Bell Telephone and the Waterloo Public Library. We were each randomly assigned an application that a company had shown interest in, and unfortunately I got the one I was least passionate about: a tracking program for expense accounts, under the watchful eyes of a local insurance company. It also had the worst name of them all; while others got names such as "InfoBook" and "InfoList," mine was "InfoExp." Difficult to say, even more difficult to enjoy doing.

What I remember most about this process was the attention given to the user experience, particularly in relation to hotkeys. There were few standardized hotkeys back then -- F1 for help was the only function key that had any real meaning across programs -- and the management quickly saw the necessity of standardization. So everybody brainstormed and came up with hard-and-fast rules for what each function key would do in every "Info" program, and we stuck to it.

Another thing I remember about the user experience was trying to organize data onscreen in a way that was friendly AND informative. While the other kids in "the circus" were outperforming each other trying to hack the ACME boot program with C in order to add esoteric and impossible-to-maintain features, I introduced my one innovation: ASCII graphics to create boxes around lists and to separate data from instruction. Simple and effective, but nobody had thought of it before. Within days everybody had a sheet of ASCII codes at their desks.

At the end of it all we had to give presentations of our programs to the companies themselves. I think I've blocked my presentation from memory -- not bad, but not great either -- but I DO remember the presentation that Mike gave.

Mike was the most obnoxious co-op there -- every day he'd make an endless string of bad computer jokes, along the lines of "Database engine won't start? Pour some gas in it! Hyuk hyuk hyuk! Right into the floppy drive! Hyuk hyuk!" -- and his application was for book filing and reference. He used to brag about how fantastic his presentation would be, and when he stood up there in front of the Waterloo Public Library board I saw an obnoxious, pushy braggart become a confused and stuttering fool. Plus all the books in his sample database were by Gary Gygax. Fail.

Eventually the job was over. I got a nice paycheck, a nice evaluation, and a nice reference, plus a free copy of ACME that I used as supplementary income (by creating a locker assignment application for our highschool).

What I remember most, however, is something I haven't even touched on: it was the first time I lived away from home. The parents of my friend Jeff -- who was also in the program -- owned student housing in the university ghetto, and they allowed Jeff and I to stay in an empty house while they renovated it. I remember many evenings mowing the lawn and painting the railings.

Looking back, it seems to me that I enjoyed this "moving out" experiment very much. My parents would drop in occasionally, and I spent some time wandering around the city and hanging out with Waterloo friends. This was when some women had been sexually attacked on the university campus, and I remember little groups of calm vigilantes wandering around campus and checking student IDs.

I also remember the first time I learned not to leave a kettle boiling when you leave for work. I remember playing Dragon Spirit obsessively at Flynn's arcade during lunch hour -- just to escape the airless, windowless lunch-vault -- and also that my Kate Bush obsession had reached its peak: my paychecks were going to vinyl bootlegs from Encore Records, and I picked up my first Peter Gabriel album (III) when I learned that Bush had done vocals for it. My mind was blown.

Now WATFAC is gone, and WATCOM is only really remembered for their compiler (though children of The ICON will remember WATCOM BASIC). Looking back, I think that ACME failed because it was released around the same time as Visual BASIC, and while ACME was more powerful it was also much harder to use. I'd love to see the program again someday.

And Wes Graham? When I went to the University of Waterloo many years later I was thrilled to see him as a "special guest" in a FASS show, playing a janitor. Everybody cheered. Now there is a road named after him.

Bless you, Wes, and your elusive Ponion.

No comments: