Hosting MIT's Simile Exhibit OS project

I’ve been working on an application that makes use of MIT’s Simile Exhibit Open Source project and the other day the MIT server hosting the related JavaScript files went down. Exhibit is described thusly:

Exhibit enables web site authors to create dynamic exhibits of their collections without resorting to complex database and server-side technologies. The collections can be searched and browsed using faceted browsing. Assorted views are provided including tiles, maps, etc.

Here is an example. Based on what I can glean from the Exhibit newsgroup weather played a role but nonetheless it motivated me to investigate moving the sources to my ISP which happens to be discountASP.NET.While the main server appears to be back up and running at least one service needed for the map view extension is still offline making it more or less just a plain map absent the data points that make it interesting.
There was a request on the newsgroups to explain what I did to “self-host” the code so I figured I’d elaborate a bit. The main issue is that throughout the code there are hardcoded references to an MIT server, namely static.simile.mit.edu.
For starters, you’ll need to grab the Exhibit source code from SVN repository located here:
http://simile-widgets.googlecode.com/svn/exhibit/trunk
Fwiw, on Windows, I’m using $g(TortoiseSVN) as my SVN client. Next, correct the URL references in the code that refer to the above server. The source changes look like this:

        /*
         *  Extensions (for backward compatibility)
         */
        if (includeTimeline) {
            scriptURLs.push(useLocalResources ?
                "http://127.0.0.1:8888/exhibit/extensions/time/time-extension.js" :
//                "http://static.simile.mit.edu/exhibit/extensions-2.0/time/time-extension.js");
                "http://www.stevetrefethen.com/simile/exhibit/webapp/extensions/time/time-extension.js");
        }
        if (includeMap) {
            scriptURLs.push(useLocalResources ?
                "http://127.0.0.1:8888/exhibit/extensions/map/map-extension.js" :
//                "http://static.simile.mit.edu/exhibit/extensions-2.0/map/map-extension.js");
                "http://www.stevetrefethen.com/simile/exhibit/webapp/extensions/map/map-extension.js");
        }

Basically, a simple search and replace for “static.simile.mit.edu will suffice to identify the locations that need to be changed. I also made one additional change I’m not sure is necessary which is the following query parameter on the script tag that loads the widget:

Bundling is not something I’ve examined closely though it’s in the interest of saving bandwidth for the amount of Javascript that has to be downloaded. Here is the set of files I modified with the type of changes described above:
Simile Exhibit modified files
Once you’ve made these changes you’ll need to upload the following source directories to your ISP:
simile/exhibit/ajax
simile/exhibit/webapp
simile/exhibit/graphics
Note, the above ajax and webapp directories each have a subdirectory called “site” that contains an example and should not be uploaded. You should now be set to host Exhibit from your own ISP. The map extension requires a Java servlet which you can also self host but since my ISP doesn’t provide that support I’m still relying on MIT’s server for that portion. I’m aware of one such alternative though I couldn’t get that working in the five to ten minutes I spent trying but I’ll likely revisit it as it’s clearly an important piece.
[Updated: March 28] On a somewhat related note I’ve created a simple Exhibit for my companies training engagements here.
[Updated: January 2010] Check out my Facebook application using Exhibit.