Operational Dynamics
Technology, Strategy, and IT Operations Consulting   |   Open Source Research and Development   |   Blogs

Projection:
Background

Motivation

For technical people, collaborating is a solved problem: we use modern distributed version control systems to capture and share changes; the basis of that is that the code we're working on is textual.

But when tasked with writing a presentation, we've all had to deal with Microsoft PowerPoint or the OpenOffice / LibreOffice equivalent, Impress. It's not very much fun. You're need to come to grips with a massive kludgy program to author the slides. You're somewhat forced to use their drawing tools and if you do use external graphics you can't edit them once imported. And most of all, the presentation file is a single opaque binary blob on disk [no matter that Open Document Format is XML; the XML is a) really ugly and b) compressed].

In recent years we've started to see web-based presentation tools, and as CSS 3 has become more widely available and as JavaScript grows in power, you can do some pretty amazing things — not the least of which is create the effect of a presentation, in a web browser.

There's good news and bad news here. On the one hand we almost always want to publish our slides so that people can look at the presentation later; trying to export a .ppt or .odp to HTML is messy. So using a web-based presentation tool is a natural fit for that. The problem is, of course we're back to fighting the browser wars; while I can be sure the presentation works for me I have no idea whether or not it'll look right or even load for you. That is of course the problem that exporting your slide deck to a PDF solves, something that's a lot harder to do in a web browser.

On the balance, though, HTML is the lingua franca of the information age, and being able to use CSS for styling and positing is at least no worse than having to fight the style mechanism in Office. And to the good, we're authoring in a textual environment and we can individually version files and graphical assets making for a much better writing experience.

Many many choices

Having taken the plunge to write a presentation in HTML, you need to select a presentation engine to take care of turning your code into a presentation. Forget standards; everyone has re-invented the wheel and made choices according to their own aesthetic. There are some great tools out there; the original W3C Slidy was widely used. Reveal, Deck, and the most excellent Shower are modern, sexy choices. And there's always the slightly insane Sozi which takes a single SVG and zooms and pans it around the screen.

All great fun, but they're all a bit too focused on transitions and effects and can be a little cumbersome to actually write your presentation in; speaking for myself, I prefer to concentrate on the content I'm delivering and ensuring the slides support and illustrate what I'm trying to say; fighting forward and back through animations and incrementally revealing slides isn't all that fun to watch and can be a serious distraction for the presenter.

The experience writing the presentation is also tremendously important, and that also was a bit lacking in the above mentioned tools. The frustration of having to work in a single huge .html document in particular was a significant motivation. And that has led me to Projection

Features

Projection was heavily inspired by Vadim Makeev's Shower. Much of the voodoo involved in scaling and handling key events is directly adapted from there.

Next: Usage, Up: Overview.


These documents copyright © 2013 Operational Dynamics Consulting, Pty Ltd unless otherwise noted. Copyright of work by other authors is retained by those authors. Most material in this site is made available under an Open Source or Open Content licence; see the top level LICENCE file in that project's source repository for details

Files on this site (notably program code) will be delivered as Content-Type: text/plain unless syntax-highlighted or binary. All times UTC