To Slideā€¦or Not To Slide?

Each month, the folks I work with have a Java Lunch. A volunteer gives a 1-hour tech talk on something Java-related, but we’ve also had talks on ANTLR, Ruby, Groovy, and many other technologies. These lunches are fun, informative, and a good way to get free pizza.

I signed myself up to present in November — I plan to show some advanced Swing concepts. There are many reasons to give a presentation:

  • Giving a presentation to your peers is one of the best ways to learn something.
  • A speaking engagement provides a hard deadline, forcing you to get something done.
  • Presentations can be a good way to spread some knowledge.
  • Public speaking is a great career move.

But I already know Swing really well…and I don’t really need a deadline for this. Here is my real motivation:

  • I want to improve my presentation skills.

I want to push the envelope a bit and expand my repertoire beyond PowerPoint with bullet points. I want to learn how to give dynamic presentations that make people say “damn, that kicked ass!” (yep, I stole that from Kathy Sierra). I want them to feel this way because they learned something within the 1 hour time constraint.

Mistakes to Avoid

I think I am a good speaker, but I certainly can improve. Here are some mistakes I (have made and) plan to avoid:

  • Do not include an introduction slide. This wastes precious time because people in this audience already know who I am and what the topic will be.
  • Do not include an “outline” slide. With only 60 minutes, why waste 5 minutes describing what I am about to talk about? I’d rather use my time talking about Swing.
  • Absolutely do not include a “History of Swing” slide. Technology history lessons put people to sleep.
  • Don’t make everything “beginner level”. Far too many technical presentations cater to rookies and are boring. This is particularly true when the audience is a group of consultants who know Java inside and out.

Things That I Would Like to Do

  • Show working code snippets throughout the presentation.
  • Show real working Swing examples.
  • Keep the pace up. We only have an hour.

The goal of a 1-hour presentation is not to teach people details. It is to spark people’s imagination, show them what is possible, and to give people a kick in the pants (or perhaps point them in the right direction) if they are interested in pursuing the technology further.

No Slides?

One idea is to skip the slide show completely. Instead of slides, I could show a series of small Swing examples: real, running programs. After showing each example, I can switch over to an IDE, pointing out the most important code snippets. Small fonts can be an issue, but IDEA makes it easy to zoom in.

Other OCI employees have given presentations in this style and it works very well.

Bullet Points

Most presentations fall into this category, and I refuse to do it this way any more. I will not have a series of slides with bullet points.

Lots of Slides

This is an option I never considered until seeing Archaeopteryx: A Ruby MIDI Generator, via Alex’s blog.

That presentation does show some working code along with a real demo. But the bulk of the presentation consists of hundreds of slides. Giles burns through the slides at a frenetic rate, and the results are phenomenal. I have never seen or given a presentation remotely like this.

What Should I Do?

I feel like I should take one of two avenues. Either go all demo+code, or go the “super fast paced slide show” approach. I must admit, the super fast slide show approach appeals to me for these reasons:

  • It is completely different than what people are used to
  • If done well, it can be extremely entertaining
  • It’s a big challenge
  • It may avoid awkward context switching as I constantly switch back and forth between code examples and demos

That last bullet is important to me. A lot of speakers spend too much of their hour stumbling back and forth between demos, the command prompt, and their IDE. Perhaps if I put everything into a fast-paced, well scripted Keynote presentation, I can avoid these context switches.

What do you think? I just placed an order for slide:ology, perhaps that will inspire me.

iTunes Genius: Rejected from Mensa

A human would never make this mistake:

I initially suspected this happened because the MP3s from Amazon have “(Album Version)” in their titles while the titles in the iTunes store do not.

Simple Test

To confirm my suspicion, I renamed the tracks to match the titles in the iTunes store. Unfortunately, Genius still provides the same “Top Songs You’re Missing”, so I think this flaw goes beyond simple title matching.

I find this odd because iTunes is able to automatically locate the album art. Perhaps some of the intelligence behind the album art locator needs to work its way into the Genius sidebar.

Subversion Auto Props, OSX, Google Code

Some notes for myself, configuring Subversion to work well with Google Code:

  1. On OSX, the Subversion client config file is named ~/.subversion/config
  2. Uncomment this line:
    enable-auto-props = yes
  3. Add these values to the [auto-props] section:
    *.css = svn:mime-type=text/css *.html = svn:mime-type=text/html *.jpg = svn:mime-type=image/jpeg *.png = svn:mime-type=image/png *.txt = svn:mime-type=text/plain *.svg = svn:mime-type=image/svg+xml

Original Comic Artwork

From this point forward, I will publish all new comics and artwork on this blog to my Google Code project:

http://code.google.com/p/stuffthathappens/

I plan to create all future comics using Inkscape, which uses SVG as its native format. I will add the original SVG files and the PNG bitmaps to the Google Code Subversion repository.

The Creative Commons license allows anyone to download, modify, and use these comics, provided you provide “attribution” back to me. All I ask for is a link back to my blog.

What about Old Comics?

I have no plans to add old comics to this new project. Up to this point, I’ve used Xara, which has a proprietary file format and does not export well to SVG. Furthermore, Xara has no OSX version. I plan to use this Subversion project for all future artwork.

Off to the Races

Yesterday’s NOWOPR comic is in the repository now. Have fun!