Mar
02
2010

Building Slides with Ease

This entry is part 1 of 1 in the series Hands-Free Slide Decks

Presentations have a very big limitation – they’re fleeting. As passionate as you may be, you need to ensure that the content you’re trying to pass along stays with your audience. For some talks, a video recording may be sufficient. In my particular area, code snippets and slide handouts are almost a necessity.

As an ideal, I’d like to be able to take my content, and be able to painlessly derive:

  • A presentable set of slides
  • A slidedeck that can be hosted to be reviewed later
  • An outline view of the presentation content
  • A PDF of slides that can be printed and distributed
  • A code repository for any demos
  • A text file of any code snippets used in the presentation
  • Incidental thumbnail images and description text

Much of this can be done using free services like GitHub and Heroku, so we’ll postpone talking about headless Firefox and Selenium, and spend the first half of the tutorial examining just how we can begin creating an integrated environment.

Read the full post »

Nov
12
2009

A Curious Use For Selenium – Slideshows

As a cheap, and tech-agnostic developer, I’ve particularly enjoyed using the Slideshow (S9) gem to create my slidedecks for various presentations I’ve given. Thanks to some phenomenal jQuery, I’m able to write up my talks in Markdown, generate an HTML page, and give my talk directly from the browser.

But I’m a lazy, cheap, tech-agnostic developer. To make things a bit easier, I went to the trouble of creating a continuous build system on my private git repository, that creates my HTML page when I commit the Markdown file, pushes it out to http://slides.kevingisi.com/presentation, and no manual building for me anymore.

There was a problem, however. While S9 will gracefully degrade into an outline format, there was no real way for me to display a nice thumbnail version of the slides. I was left with no distributable of my slidedeck. And sadly, Internet Explorer users were unable to view my slides, because S9 is utterly incompatible with IE (read: S9 was written in the past 10 years).

Enter Selenium! After a bit of setup, I was able to get Selenium working with Firefox-headless, to grab a screenshot of each slide in the slidedeck. Selenium, Firefox-headless, and Xvbf let me grab snapshots of each of my slides, and ImageMagick created a PDFTo make this easy, I took a copy of @jeffrafter’s Crocodile gem, made a few modifications (mainly, executing Javascript calls to advance slides before taking screenshots), set up the X virtual frame buffer out on my server (big thanks to this tutorial: Running Selenium Headless), and boom! Now, I’ve got PNG images of every slide in the deck, ready and available. Throw in a little ImageMagick (convert slide_*.png slide.pdf), and now I’ve got a fine distributable that can be uploaded to SlideShare, printed off, copied, and viewed by Internet Explorer users. Just take a look at the results!

Ruby on Rails: The Third Age

The Ruby on Rails framework is going through some radical changes. Not only are we on the cusp of Rails 3, but new technologies like InheritedResources and Formtastic allow us to do things we never could have dreamed of before. Have you seen Ryan Bates’ tutorial on building a blog in 15 minutes in Rails? Let’s cut that down to five.

Together, we’ll take a look at some of the new gems and plugins that have been released, along with some of the upcoming changes with Rails 3 to see how this technology can make your development experience even easier.

Associated Resources
Slides: HTML | PDF
SpeakerRate
Dates and Locations
Chippewa Valley Code Camp—November 14, 2009

Selenium has notoriously been used for integration testing, and @jeffrafter used it to grab screenshots of submissions for the Rails Rumble 2009, but this modification makes browser-based Slideshows even more accessible!

Oct
25
2009

Kindness in the Development Community

I gave my presentation, No More Excuses: Test Your Javascript!, at the Twin Cities Code Camp yesterday, October 24, 2009. We left town at 6 AM, and managed to get to the conference with plenty of time to spare.

I discovered, once I had found the room, set up my laptop, gotten the display working…I couldn’t get to my slides!the servers at the University of Minnesota were down – I couldn’t get to my slides. I panicked, having only 15 minutes to try and fix the situation before I had to present. As the talk drew nearer, I finally opened up Notepad, grew the font, and listed the title, contact information, and slide url – along with an apology for the network issues.

Assuring my audience that my slides were “awesome”, “flawless”, and otherwise “perfect,” I preceded to begin my talk. Fortunately, I had decided to refocus my talk from a description of particular Javascript libraries, to a discussion of why we need to address current Javascript practices. Using the whiteboard as best as possible, I gave a brief overview of the topics I was going to lightly touch on—Javascript performance, Javascript functionality, and progressive enhancement.

Then, an extraordinary thing happened—one of the audience members (@joelknighton) jumped up and began the process of tethering my laptop to his phone. When he discovered I didn’t have the necessary drivers, he checked in with other audience members who had laptops, and found one that was appropriately set up. All of this while I continued my presentation.

My slides were up and running within about five minutes, and I was able to seamlessly transition over, without losing the audience’s focus, and without having to be particularly redundant. I was able to finish the presentation, and went extremely well. A few things to take away:

Have a local copy of everything

This ought to be a no-brainer, and I was sure that I had a local copy. Furthermore, there had been multiple wifi hotspots last time, so what risk was I really taking? You’ve got to plan for the worst – keep things local, no matter what—nobody likes egg on their face.

Practice slideless talks

Despite not having my slides available for the first 20 minutes or so, I was able to communicate relatively effectively about my topic. Granted, I did have a more difficult time moving through things procedurally, but I was able to get the discussion points across. This is definitely something worth practicing, because if your computer explodes, your slides get deleted, you need to be able to speak on your topic without the visual aids you might have otherwise leaned on.

The development community is fantastic

It would have been extremely easy for individuals to react poorly to my preparation failure. People could have walked out; people could have tweeted cynical comments; people could have glared and tuned out—and I really couldn’t have blamed them. Instead, the audience remained receptive and respectful, sympathized with the situation, and actively helped me fix the problem. I’m extremely humbled and honored to be a member of the development community.

Search