Saturday, June 18, 2016

Recollections: The CSML During Its Teenage Years

By Hiten Sonpal, Former Intern
I had been working with Tony as a work-study student in 1995 to assemble the Ecole Initiative, a web collection of links that Tony had reviewed. A key feature of the Initiative was temporal searching - users could find events that occurred around a certain date as long as they were added to the database. Although Ecole was a useful resource, finding information about a specific subject nonetheless involved browsing multiple collections and URLs, and this was still tedious. Additionally, Altavista and Lycos, the popular search engines of that time, did not have any provisions to address our specific needs.

The summer of 1997 was about scaling up our fledgling effort and making real Tony's vision of a peer-reviewed, quality-controlled section of the internet in the Internet Applications Laboratory ("IALAB"). This fancy name referred to an empty desk in Tony's office and a $10K budget to cover all the hardware needs for the project AND the salary for my summer internship.

Today, we would create an AWS or Azure account, provision a virtual server and set up CentOS or Ubuntu. Unfortunately, none of those things were available to us. We had previously downloaded a copy of Slackware Linux and ordered a UPS, a tape drive, and two expensive dual-processor Pentium Pro towers from Gateway. Both computers were intended to be configured almost identically for redundancy, but generally meant for two different missions: one for crawling web pages and creating the search database, and the other for serving web pages and executing search queries.

On my first official day of work that summer, Tony handed me a piece of paper with the two static IP addresses that had been assigned to us, and the strange names that he had picked for the machines. I later learned "Castor" and "Pollux" were the Dioskouri twins from Greek mythology, better known in some circles as the Gemini twins. (Naming our servers after the sons of Zeus may have been a bit grand, but then computer science has never been known for meaningful names.)

Although we had a 100 Mbit switched Ethernet connection to the IALAB, 10/100 Ethernet cards were new in this era of blazingly fast 56K modems, e-mail addresses and scandalous ASCII art pin-ups. The Intel 10/100 Ethernet cards on our Pentium Pro machines needed an e100 driver which did not then ship with Slackware. Also, multi-processor support was new to Linux and many drivers were not stable in multi-processor kernels. I had recompiled the kernel for our hardware using the menu-based kernel configuration utility, but adding an unsupported driver to the kernel was a little outside my depth, and simultaneously alien and barbaric as far as the University's IT department was concerned.

So we called our emergency tech support hotline, Tony's brother, Paul, in Houston on how to add this driver. After several long phone calls, numerous painful transfers of different driver versions using a floppy disk, many failed patches, several make errors, and a bunch of kernel oops, we found a driver that worked if we disabled multi-processor support in the machines. From there, I was able to execute my first successful ping to, and then to The rest, as they say, was just software engineering (and quite a lot of it at that.)

Hiten Sonpal is a Computer Engineering graduate of the University of Evansville, and the first intern of the now-named CSML. He is currently an Engineering Director at iRobot Corporation, overseeing the Mechanical Engineering, Far East Engineering and ID/UX groups. In his spare time, Hiten enjoys rooting for the New England Patriots, and swimming and biking with his wife and two kids. This blog entry does not reflect the views of his employer.