An Open Source File Updater

I'd like to introduce you to a nifty piece of open source software that can help you better maintain an extensive Mac network -- your own software updater control panel.

If you've investigated other areas of the O'Reilly Network, you know that we spend a lot of time covering open source projects. Among the many interesting aspects of this approach to developing software is that it's a good way to peek under the hood and learn how code is written. An excellent introduction to this approach is published on the O'Reilly Open Source web site.

A great place to see the variety of open source software titles available is SourceForge, which is maintained by a Linux company. Most of the code is for Linux, but there are plenty of titles for Microsoft Windows and Apple Mac OS available as well.

Apple has entered the open source world by making available the source code to some of the foundation of its new Mac OS X operating system (Darwin). However, an OS is extremely complex software which end users would have little
reason to review or customize. Even open source applications such as OpenOffice and The Gimp are very large and difficult for non-programmers to understand. If you're just starting out in open source, it would be better to investigate a smaller project such as the Software Update Control Panel that I'm going to introduce you to today.

IntelliDate

One of the more useful features of Mac OS 9 is the Software Update control panel.
It connects you to an Apple server, compares versions of software installed on
your machine, and allows you to download newer versions that are available.

Schools and businesses that maintain consistent environments on a large number
of computers would want to use this tool for their own applications and project files, but Software Update only works with Apple's system software and Apple's
servers. Wouldn't it be nice to update the files you use from your own server?
Well, you can.

Are you involved in any open source projects for the Mac? If so, tell us about it.Post your comments

IntelliDate is an open source file updater that uses AppleScript to connect
to an Internet server, downloads a list of files and dates, compares them against
the files installed on the local machine, and allows users to download any newer
files from the server. To use it, you will need to install the IntelliDate client
on your Mac and connect to an IntelliDate server.
Currently IntelliDate only works on Mac OS 8 and 9.

The IntelliDate client

To get started, connect to the IntelliDate project summary page at SourceForge and download the latest snapshot (click on "Download" to the right of the "IntelliDate Snapshot" line in the "Latest File Releases" section. This will download a compressed version of the IntelliDate client files to your browser's download folder. If your browser does not uncompress it automatically, drag the compressed file onto a file expander like StuffIt Expander.

Inside the uncompressed folder are the IntelliDate client and Preferences scripts, their source code, a folder of scripting extensions, and a Read Me document. The Read Me doc contains instructions for installing the client.

The IntelliDate server

To update files, you must connect to an IntelliDate server. The server contains an update file in ASCII format containing a list of files, versions, and URLs to download the latest files from. The IntelliDate project includes a sample update file on the SourceForge site. This sample file includes a variety of free updates such as the Microsoft Office 2001 for Mac OS SR1, Adobe Acrobat Reader 5.0, and a variety of Apple software programs.

To make your own IntelliDate server, you will need to be able to upload files to an HTTP server, such as Apache. Creating your own IntelliDate server is quite an involved process. If you are interested in doing this, you should probably join the IntelliDate project.

Setting up the IntelliDate client

The IntelliDate client is much more simple. It's a pair of AppleScripts for creating your IntelliDate preferences and updating files from the server.

The IntelliDate Preferences script will create a file in your Preferences folder specifying the IntelliDate server to connect to, and the folder to download new files to. If you use the Location Manager, you can specify different servers for different locations. If you don't have your own IntelliDate server, use http://intellidate.sourceforge.net.

The IntelliDate script will connect to the selected IntelliDate server, compare the versions of the software referred to with those on your machine, and display a dialog box containing checkboxes for all the newer software. You can check which files you want downloaded.

Currently IntelliDate only downloads files; if the files are installers, you will have to run them yourself.

It's interesting to examine the IntelliDate scripts even if you do not intend to use them to update your files. The IntelliDate script includes a technique that I have never seen before for accessing script objects of an application from inside another application. This technique is described in detail on a web page by John Delacour called Using a Variable to Send Events.

Ask not what open source can do for you, but what you can do for open source

Like most other open source projects, IntelliDate is constantly under construction. The project administrator is working on an XML format for the update file to replace the ASCII format. This will allow backward-compatible changes to the update file format.

If you're interested in contributing to the open source movement, SourceForge is a good place to look for projects. You don't have to be a hardcore C coder. There are projects that use scripting languages, and projects that need graphic artists, testers, and web administrators.

In fact, after looking over many existing open source projects, my opinion is that what open source projects need the most are people to document the software. The majority of the documentation is for building the software and not for using it. In fact, there are many projects that sound interesting but have no user documentation at all.

So, just to recap ... the IntelliDate project is both a handy tool for Mac system administrators, and it's a great way to see how an open source project works. I hope you have time to explore this rewarding area of computing.

Richard Hough
is a web developer for a Vancouver, Canada educational software company.