Ever have one of those moments, after a flurry of activity, and realized what you've accomplished? Now that this summer is over, I realized that I've talked a lot. Three CocoaHeads presentations. Back-to-back 90 minute sessions at two CocoaConfs. Taught a week-long class with some extra evening sessions. Granted, that's not a lot considering some folks who teach week-long classes a couple of times a month, or professional speakers out on a circuit, but for Just Some Dude who'd rather be writing software, it's a lot.
Occasionally I'm asked something related to speaking, so today I'm going to talk about the "leaving home going to the talk" part of the process, assuming you've already got your materials researched, and your presentation prepared.
Redundancy and Repetition is Good and Excellent To The Max
One of my skills is coming up with bad-case scenarios. I think that's what makes me good at tracking down race conditions. If I'm traveling to a speaking or teaching obligation, I think about what can go wrong:
I lose my presentation materials
I lose my computer
I lose my voice
Technology Lets Me Down
Losing Course Materials
I live and die by my materials. I can improvise when necessary (there might not be a projector at the meeting location), but I really like having my prepared material - slides, demos, sample code, lists of links to entertain the bored, and so on. I like copious presenter notes, primarily to jog my memory: "tell this story", "next build shows frowny faces for file dependencies", or to have bits of arcana, particularly things like function argument flags that I don't regularly use. If I can't remember what the Posix
EGRONK return code is, I can glance at the presenter notes.
Before I leave home I make multiple backups and stash them in different places. My laptop, of course, has everything I need. In case my laptop bag gets stolen, or somehow the contents get immersed in something liquid, I have a thumbdrive with the course materials in my checked baggage. I also upload a zip file to my website, and/or put it in DropBox. Much of my stuff is in source code control that's available over the network.
So, if something happens to one copy of my materials I still have multiple avenues to retrieve them. The thumbdrive is my primary recovery source, being faster than snarfing things over a network. In the bad-luck situation of my laptop bag being stolen, and my checked bag getting lost or re-routed, I can still teach using someone else's machine.
Losing the Computer
I love my laptop. I also love my laptop bag. A Targus CityGear that's seven years old and still going strong. I'd be very sad if I lost them. I'd be sad if the computer developed a fatal hard drive problem. But I'm prepared if that happens.
I try to get to the city I'm teaching or presenting in at least day early, arriving during regular business hours. If my machine turns toes-up there's usually an Apple store or local independent Apple retailer I can go to get a new machine. If my machine is fine, I can do some sight-seeing, and maybe carry the camera around and do some photography. If it's an on-site class, the host may have an extra Mac they can lend me. For a regular Big Nerd Ranch class, I can use the server machine to drive my lecturing and demos.
If I have my thumb drive I can get my materials off (and any one-off software, like BigShow, the Big Nerd Ranch slide show software) and be ready to rock. If I don't, then I can find a place with decent internet (Apple Stores can be good for that too) to download what I need.
Losing my Voice
One of the worst things you can do as an instructor is show up at a week-long class sick. You might infect everyone else (which is rude), plus you're not at the top of your game and the customers are not going to get their money's worth. So take care of yourself. The week before I go to speak at a conference or teach a class, I try to avoid stress, eat well, and get a moderate amount of exercise - this is not the week to try five back-to-back two hour long indoor cycling classes.â€¨
Be kind to your voice the week before, too. You might not be miked, and in a big hotel ballroom with air conditioning units running. You'll be projecting your voice, anyway. So avoid wear and tear on your voice by not screaming at high school football games.
When actually teaching and speaking, I keep water nearby. I also keep a bag of Hall's Breezers throat lozenges handy. They're tasty, soothing, and not too sweet. Other throat drop brands (like Ludens) are just too intense for me, and I start drooling (which is embarrassing). If I start getting dry-mouth, or the throat is starting to get irritated, a sip of water is enough to get through the current yakkity-yak session. I don't like to eat a lozenge while speaking - I'm worried I'm going to inhale it, choke, and die. (see what I mean about bad-case scenarios?)
Finally, it's time to for the actual presentation or lecturing. You need to be prepared for many different scenarios that can happen in the wild.
If possible, I like to get a look at the room I'll be in, and hook up my gear to the projector. This makes sure that I (or the conference/class facilitator) have the right cables and adapters to hook things up. This also makes sure the hardware works. I was teaching a class in Germany, and during the pre-class paranoia setup, the bulb exploded. Luckily we were able to procure a bulb before the start of things the next morning. I also check to make sure there's power nearby if I'll be up there for more than a couple of hours.
You should be able to effectively present without your lecture notes. You might not have a presenter display, or it might not be visible. I returned to Little Rock for a high school reunion and gave a talk at Apple Rock, one of the country's oldest still-active Apple user's group. They were quite accepting of me as a 13-year old nerdling, and I owe then a debt of gratitude. For my talk we had a fancy venue at my alma mater, but my computer had to be up in an AV booth for it to feed into the projector system. Another scenario that's happened to me is to be in a small group situation where the projector is broken, and you have everyone clustered around your laptop screen.
You should also be proficient at moving to your next slide with whatever remote controls you use, as well as with the keyboard. I keep extra batteries for my Apple remote. Even then the remote can stop working, as I discovered during CocoaConf/Columbus. I was running through things the night before and my remote didn't work. Replaced the batteries. Still didn't work. Hopped out to Radio Shack for more new batteries. Still broken. Bummer.
I've used the Keynote iOS remote app a couple of times. It's a wonderful app, showing you the current slide and any presenter notes. I've given some talks with it, and I've decided not to use it any more. It doesn't support a bluetooth connection between the phone and the Mac, so you either have to tether (in which case you're stuck close enough to the Mac to just hit the keyboard), or use a WiFi network. Hotel WiFi networks are notoriously flaky, especially in a conference-like situation. Corporate networks sometimes have Bonjour blocked for their guest access.
Setting up a private WiFi network on the laptop sounds like it'd be a good solution. It works for awhile, but then my phone loses its connection partway through. It is never a reliable re-pair for me, requiring deleting the pairing on the phone and in Keynote, and then setting it all back up. It's no fun for the audience watching this when they could be learning from you. It also loses the connection if you juggle out of Keynote for awhile, say to give a five minute LLDB demo.
And speaking of hotel WiFi, I try to make any demos as self-contained as possible. If I need to hit a network service, I make sure I can run it locally. It's cool when you can use the internet for a live demo, but if the facility network won't give you the access, you're stuck.
When doing live demos, such as coding or debugging, I keep intermediate versions from practice sessions around (you do practice, right?). If things are going badly, or I want to skip some steps for an advanced group, I can just Julia Child out a new one. Instead of pulling a pre-made soufflÃ© out of the oven, I go to a folder with the snapshot I want to start at. (Thanks to Advanced iOS Programming instructor Jonathan Saggau for teaching me the verb-form of Julia Child.)
Finally, right before a presentation or starting a class, don't upgrade anything. Use the same Xcode,
lldb, Keynote, Safari, and operating system you've been using for awhile. I try not to even reboot my system during the conference or the class unless Xcode demands it. You never know what new behavior, bug fix, or subtle corner case will make a demo go off the rails.