by Ben Adida.

In the Beginnning ...

Back in the summer of 1995, Philip Greenspun, Brian Tivol and I spent a few weeks in New York working at Hearst Publishing developing the Multimedia Newsstand. The tools available at the time were pretty pathetic. Netscape was at version 1.1 (barely), and about 30% of our visitors were still using v0.9.

Philip had done his homework, though, and had chosen Naviserver as our web server platform. Naviserver was the brainchild of Jim and Doug, two amazing hackers who immediately understood how to build server-side web technology:

  • Built-in, simple, string-oriented, scripting language: Tcl,
  • Efficient multi-threading,
  • Simple and abstracted database access and connection pooling.
We set out to create a web site with daily editorials, magazine sales and ordering, customer tracking, and quite a few more pieces. In about 12 weeks, it was up and running and happy. The Illustra RDBMS would crap out every now and then thanks to the Elan License Manager (among other problems), but overall Hearst was happy. The numerous utility procedures that we created and used that summer came together into what is now the utilities.tcl file in your ACS installation. The information so far should allow you to guess the reason why bt_mergepiece is called bt_mergepiece.

Driving the Idea

It was Philip who then started to use Naviserver (later GNNserver, now AOLserver, all the same product) and Illustra to create a host of services that became greenspun.com, in addition to the early versions of photo.net. Philip created the initial versions of bboard, classified, neighbor-to-neighbor, and many other pieces all in order to manage the growing photo.net community.

Philip continued to push AOLserver, eventually dropping Illustra by hiring Cotton Seed, another hard-core hacker, to write an Oracle driver. Oracle brought a whole new level of scalability and reliability to the thousands of lines of Tcl code already written. At that time, in early 1998, Philip officially created ArsDigita, LLC, in order to push the consulting work he was already doing. He brought on 6 people (Philip, Olin, Cotton, Terence, Ulla, and myself) to carry the initial ArsDigita flag (although I had almost nothing to do with the setup of ArsDigita to begin with).

Philip brought on Jin Choi, one of the only people I know who deserves the title of "monster hacker." Together they went ahead and built entirely new services based on AOLserver/Oracle. The most famous of these was, of course, scorecard.org, an amazing site that anyone claiming to understand web scalability should take a look at (30 db-backed hits/second on Earth day running on one Sun Ultra 2).

And There Was A Toolkit...

It was right around that time that Philip convinced me to come back and work full-time for ArsDigita. Jin, Eve, Tracy, Philip and I worked through the summer of 1998 on various projects (Levi Strauss, Cognet, ASME, Greentravel now away.com), while Philip kept talking about his grand-integration goal: combining all of these pieces into the ArsDigita Community System.

Soon enough, the ACS was real. The first release was posted on December 8th, 1998, after a huge packaging, debugging, and integration effort led by Philip. The ACS became the backbone of all ArsDigita projects, and many hackers around the world started using it.

With the rise of open-source software and the realization that good software can still be free, many people started wondering if the ACS could be made to run on some RDBMS other than Oracle. An Interbase port of the ACS v2.1 was created, but Interbase still cost money at the time (although it should be open-source and free by end of 2000). Many cheered for MySQL, but the lack of transaction and subselects makes it unacceptable for a true ACS (or for any critical system, for that matter).

PostgreSQL

In December 1999, a small group of ACS hackers came together on SourceForge to create the ACS port to PostgreSQL. Following true open-source methods, we gave write permissions to anyone who showed enough competence to help out. The group soon grew to more than 20 people, with about 5 active developers.

The initial name of the project, ACS/pg, was changed to OpenACS as the group realized that there was a need to push porting to possibly other databases than PostgreSQL (Interbase?). OpenACS further represents the importance of a fully open-sourced system that truly works in symbiosis with the Open-Source community.

Philip and his team have done a tremendous job creating the processes and data model necessary to build scalable, reliable online communities. OpenACS hopes to bring this tremendous contribution to the world of fully open-sourced systems, available to anyone interested in building their own online community.