Staff Client

The database and middle layers have been progressing as expected, but we are choosing a new direction with the client half of things. This is only unfortunate in that the user interface is the most visible and graspable part of the system, and it would have been nice to have screenshots and mockups by this time in the project, even if only to solicit feedback from others. However, we are very fortunate in that we are now utilizing a powerful and versatile framework known as XUL (which stands for XML User Interface Language and is pronounced Zool).

XUL is the technology used by the Mozilla team in their development of the Mozilla and Firefox web browsers, and their Thunderbird email client. It allows for rapid cross-platform application development. And it provides for a clean separation of content from presentation. XUL makes use of the same CSS language that is the standard for web development. We will get the look and aesthetic goodness of web pages (and we expect to get boo-ed and hissed at until we get it right), but we will also get the power and feel of native applications (good keyboard support, drag & drop interfaces, etc.).

There are a few technical challenges, but that is what makes our job fun. Actually laying out the interface and handling events is trivial. We may even use some code generation via the Perl Template Toolkit to alleviate some grunt work. We should have interactive mockups very soon, and interested parties need only install Mozilla Firefox and point that browser to whatever demos we release. Firefox itself is written in XUL and is an excellent example of the flexibility we will gain (witness the proliferation of Firefox extensions and Mozilla plug-ins).

Another exciting (and relatively easy) possibility is to provide a XUL-enriched OPAC for Firefox and Mozilla users. We will still need cross-browser HTML for Internet Explorer and the like, but there’s no real reason not to leverage some of the staff client code for a public client (and for the OPAC’s in the libraries, it’s not a bad idea at all to standardize on Firefox over IE). What we really want to do is make it easy for others to build interfaces. I suspect each of the PINES Developers will have their own custom-built client for power use and debugging before we’re done, and I particularly want one that is text (CHUI) and command line based. I suspect quite a few librarians would be interested in that one.

We will post more soon on other aspects of the project. If you’re interested in XUL, you may want to visit and

— Jason