Jul 01 2009

Running Ignite with Impressive

Published by at under design,ignite

eli-and-his-robo-dinosaur-library-by-dugsongPerhaps one of the more stress inducing aspects of throwing together Ignite Ann Arbor, was figuring out how to play all our speaker’s slide decks, with 15 second auto-advance, but also with non-timed slides interspersed between, all while avoiding cross-os font imbroglios and ugly on-screen GUI manipulation. I’ll describe what I used here in nauseating detail. Hopefully this will be useful to other Ignite organizers, or anyone trying to give a talk without whipping out powerpoint.

I’ll be giving a little demo at the MichiPUG meeting July 2nd.

I settled on Impressive, a presentation framework written in python. It allows you to give a slideshow type performance using either PDF files or a directory of images as source. We asked all presenters to submit their slide decks of exactly 20 slides, in PDF format to ensure they were platform independent. We also supplied the projector resolution ahead of time so they would have that information; It was particularly relevant to Laura Fisher‘s talk on ratios. I made additional slides with the Ignite template, an introduction with name and title for each speaker, and a thanks slide. I then exported these as individual one page PDFs with the presenters surname.

At this point, I had three directories (intros, presos, thanks) each with 14 PDFs, using surnames as the filename in each directory. Each presentation was to be kicked off individually. I ended up running Impressive in cygwin, although you could also run it natively. Thus I had a shell script to launch each presentation, also titled by surname. An example shell script:

impressive -T 0 -I single.info -C m.png ./intros/Ackasu.pdf ./presos/Ackasu.pdf ./thanks/Ackasu.pdf

This calls impressive on the three PDFs, which are strung together as though they were one presentation. It also sets the transition time to 0 to eliminate slide transitions, calls the info file single.info, and uses m.png (which was a 1 pixel transparent image) as the pointer icon. The info file system is one of the really powerful tools Impressive offers. You can basically add flat out python to customize the slideshow. My single.info file consisted of this:

for page in xrange(2, 22):
   SetPageProp(page, 'timeout', 15000)

Thus, a 15 second timeout was placed on each slide except the first and last. There is a -a command line option to just flat-out give every slide a particular transition time, but using the .info file let me apply the timeout to just the slides in the actual presentations.

I then made a windows shortcut calling cygwin’s bash.exe and the relevant shell script for each presenter, which I numbered with the speaking order, so that all the shorcuts were in order. During ignite, I could then just go down the list of shortcuts and running each presentation one at a time. Incidentally, we could have changed speaking order by simply reordering the shortcuts.

I think it worked really well. Impressive provided a nice slick way to organize everything and it’s visually pleasing. We didn’t use a fraction of it’s capabilities, which you might want in a differently structured presentation. For instance, you can hit to get a view of all your slides if you have to jump around, you can use a spotlight effect, there’s different transitions (ok, even though the transitions are nicely animated, please, please do not use transitions in the name of all that is holy). Check out the documentation to see what else you can do with it.

2 responses so far

2 Responses to “Running Ignite with Impressive”

  1. […] a nice package. I’ll be giving a little demo tomorrow at MichiPUG. I also wrote up a detailed explanation if you’re […]

  2. Mark A. says:

    Nice simple solution.

Leave a Reply