Review: Interaction 3.03
Company: Media Design in•Progress
Requirements: a local Mac-native Web server
The days of HTML are numbered. XML, the whiz-bang successor to HTML with the ubiquitous distinction of being a Very Good Thing, is poised to give Web pages a much needed upgrade by providing them with the inner skeleton they’ve never had. Interaction would like to help make that happen.
Most of the articles on XML are long on theoretical explanations, but short on practical advice. They’re quick to point out that XML frees you from the fixed tag vocabulary of HTML, and that it lets you whip up new tags as often as you like, as well as the rules that govern how Web browsers should display them. That’s great, but how do you actually implement XML right now? Today’s Web browsers have enough trouble as it is with regular HTML; feeding them new tags isn’t going to get you anywhere. For that reason you need an intermediary between your XML documents and the Web browsers that visit your site.
Interaction is one such middle man. Whenever a page is requested from your Web server, Interaction steps in and converts the XML into browser-friendly HTML code. You take care of the structure of your pages and the way they should be displayed, and Interaction will worry about cross-browser compatibility.
The Proper Setup Is Everything
XML is great, and Interaction provides an equally great service, but don’t get excited just yet. There are a few caveats to consider before you jump on this cutting edge of Web page technology, and first and foremost is price. Interaction’s abilities are better suited to larger sites, especially those that are heavily template or database driven, so at $279 ($195 for an educational license), it’s generally not for small-scale use. Then there’s the fact that Interaction is only available for the Mac. It works with all the Mac-based web server programs (Quid Pro Quo, WebStar, MacHTTP etc.), but if your Web site is currently hosted on a Unix machine of some sort you’re out of luck, likewise if your Web host uses Apache.
One last bit of bad news: if you’re hosting your own site, either from a corporate locale or from a DSL or cable location, Interaction may hurt your server’s peppiness since you’re making the serving process more complicated. Even though server speed is contingent on a number of factors, of which Interaction is only one, it’s still something to keep in mind.
Building the Skeleton
Creating Web pages in XML is very different from coding HTML. The basic concepts are still the same—content is surrounded by pairs of tags that can optionally take one or more attributes—but XML forces you to consider the big picture. If you’re building an e-commerce site, for example, and you already have a database with the relevant information, the job is not so bad; you’ll probably create tags like <PRICE> or <DESCRIPTION> or <PRODUCT NUMBER>. Other types of sites will need different treatment.
If you’re re-coding an existing site, you may want to put certain things like your header or footer or navigation table into separate files, and have each page link to them. Interaction will then merge all the files into one. The Web browser requesting the page gets a single page, but from the server side there can be any number of pieces. You can already do this with regular HTML and Server Side Includes, so this isn’t exactly a new feature. In general, Interaction and its implementation of XML doesn’t give you anything you couldn’t do some other way, but on the other hand it does make things much simpler, and it doesn’t require the expertise of a back-end programmer.
The road to XML with Interaction begins with the Locations window, which lists all the “pages” on your site. They really aren’t pages until they’re served, but for the sake of simplicity we’ll stick with the traditional terminology. Existing HTML files can be imported and edited from here, and you can create new ones. Interaction uses Emilé as its text editor, which was reviewed in last August’s shareware roundup. In addition to adding custom-made tags, you can also include entity references, similar to the environment variables in CGI programming but broader in scope. An entity reference can display what browser someone is using, or the current date and time, as well as the last time a page was uploaded or the number of hits it has received. You can also make your own entity references.
Creating structures for individual pages is only the beginning; Interaction also allows you to implement several services that may have previously been off limits because of their technical complexity, including shopping systems, chat rooms, and forums. Examples of each are included with the Interaction demo.
The Right Style Is Everything
By far the most useful feature of Interaction is its ability to provide scalable style sheets. After installing an extra component called the Stylizer, Interaction will serve different versions of a page depending on which browser asks for it.
Incompatibility is the main problem with style sheets right now. Neither of the major browsers supports them fully, and support in previous versions is worse or nonexistent. So far, the solution has been to use style sheets with extreme care and caution so that a given page looks reasonably the same, no matter which browser is viewing it, even if it involves inefficient HTML code along the way.
Interaction’s solution is to base each individual style on an existing HTML tag. You make the choice, then Interaction does its best to hard-code the style information for older browsers. I might want to create a headline for a page that is 20 pixels big, has bright pink flashing text, and sits in front of a tiled image of brightly burning flame. Relax, it’s just a hypothetical example.
In XML, said headline would be wrapped in a <HEADLINE> tag. If I viewed it under Netscape, I’d get a <H1> tag with a CLASS attribute pointing back to the style sheet at the top of the page. If I viewed it with iCab, however, which doesn’t support style sheets yet, I’d get an <H1> tag plus a <FONT> tag containing the necessary attributes. The results might not be identical, but at least I’ve made an attempt to reduce incompatibility. More sensible page designs would have perfect or near-perfect results.
The beauty of all this is that you don’t have to code two versions of the same file, or worry about serving different style sheets depending on a viewer’s browser. Interaction takes care of all the details.
Is It Worth the Price?
Small businesses could go a long way with Interaction thanks to its shopping component and overall power, further than they might using regular Web development tools. That said, Interaction provides comparatively little in the interface department. It’s not something you can just jump into. All the windows are menu based, so nothing pops up when you launch the application; entering style sheet information is tedious—you can’t duplicate styles from within the program—and the text editor is decidedly minimalist.
In terms of features, context is everything. Yes, you can implement a chat room, but not like the ones you find on AOL or Yahoo!, rather a page that must continually be refreshed. Its ability to tell you how many people are on your site or on a particular page is similarly questionable because a countdown clock is used, which can only describe traffic within a certain window of time. Like the chat service, it’s almost real-time, but not quite. Finally, the speed question; if you use Interaction, you run the risk of slowing down your site.
Version 3.01 is the latest full release of Interaction. An upgrade to version 3.03 is available as a separate download, adding server-side support for the W3C's new XHTML recommendation.