Jim Caristi and I ran an Extreme Programming (XP) workshop at SIGCSE in Reno. We needed a dozen computers networked together. At least one of the computers had to be running a web server. We wanted to host a Wiki . Since all of us were working on the same codebase, we needed to be able to have CVS clients on all of the computers and server on one of them.
Apple sponsored our workshop by providing eleven iBooks and an Airport base station. Setting up the eleven machines plus my TiBook was trivial. Of course, as it turned out, the Airport base station was superfluous, but it was nice to have. I have been at similar workshops that ran on Windows boxes — they weren’t nearly so easy to set up.
Setting up the Webserver on a Mac is trivial. You open the System preferences, select sharing, check a check box and the Apache Web Server that ships with every copy of Mac OS X is up and working.
Setting up a Wiki is also trivial. I used Ward Cunningham’s Quicki Wiki, but now would probably use the Wiki that is a part of Bob Martin’s Fitnesse application. For the Quicki Wiki I dragged a few CGI scripts into the CGI directory. For Fitnesse I would have started up a Java application.
Getting others configured to find my server also requires no work. On a Mac, open the new Apple browser Safari. Look at the list of Rendezvous servers. One of them was the name of my TiBook — automatically discovered on the local network. Click on it and you’ve found the home page on my machine. Add the appropriate extension and you’re at the Welcome page of my Wiki.
As the technician plugged in and powered up the iBooks, I followed him and took less than a minute to bookmark the Wiki. Later a participant decided to start up the web server on his machine. A click of a check box later and we saw his machine bookmarked in our Safari browsers.
What remained was CVS. The CVS on my TiBook is configured to use ssh. How hard would it be to get everyone running CVS? Turns out it was no problem at all. All Mac OS X boxes ship with CVS included. It took less than a minute per machine to pop open a Terminal window and checkout the repository. I set the CVS_RSH variable to ssh. Then I noted that Rendezvous had named my machine danielsteinberg.local. With this information, I entered the CVS command to do the initial checkout and moved on to the next machine.
It may seem that I’m beating a horse to death but even as an experienced Mac user I was astounded at how easy it was to set up these machines. It took forty-five minutes to set up a lab from scratch.