Strategic Developer: Web-based presentation apps

16.05.2006
When Edward Tufte famously declared that PowerPoint is evil (http://www.infoworld.com/3724), I violently agreed. "If your words or images are not on point," he wrote, "making them dance in color won't make them relevant."

PowerPoint isn't the only villain. I feel the same way about Apple's Keynote, OpenOffice.org's Impress, and all the others. I've always felt that sharing a few well-chosen words and pictures with audiences, both during a presentation on a projection screen and afterward on the Web, should require nothing more than the tools and techniques the Web natively affords.

I don't just preach this doctrine, I also practice it. Long ago I began using simple snippets of JavaScript to control simple HTML slideshows. Every time I gave a talk I wound up tweaking my script, but I was never really satisfied. Then, last week, I discovered HTML Slidy (http://www.w3.org/Talks/Tools/#slidy/), the latest initiative by the prolific Dave Raggett, a W3C Fellow whose other notable contributions include the essential HTML Tidy (http://www.infoworld.com/4143).

Given my skills and inclinations, it's no surprise that I'm an instant convert. To use it, you create a single XHTML file that pulls in CSS stylesheets and JavaScript code. Each slide's content is wrapped in a DIV tag decorated with a class attribute of "slide." Folks like me, who compose directly and easily in HTML, will love it.

Admittedly, folks like me are in the minority. But there are other ways to skin this cat. A WYSIWYG slide editor is in the works. Support for Wiki-style markup is another possibility. Basic implementations of either or both of these techniques can work standalone. Advanced versions can be delivered through the Web, a la Opera Software's OperaShow (http://www.infoworld.com/4144), and my guess is that before the end of the year we'll see more examples of this breed.

If you don't need WYSIWYG training wheels, though, you can put Slidy to work right away. A few core HTML constructs -- paragraphs, lists, tables, images, links -- are all that you need. Slidy's AJAXian effects include auto-numbering of slides, an auto-generated table of contents, auto-scaling of images and fonts, expanding lists, and keyboard and mouse navigation. My favorite feature is progressive display of a set of elements whose parent is decorated with a class attribute of "incremental."