I just gave my talk and I think it went swimmingly. One thing that really worked for me was putting it together in Keynote. Despite having a ton of movies and images, most of the tedium was automatically handled by using keynote to do almost all of the work.

My process:

Come up with a talk proposal. Six, actually. Submit them. Hope one gets accepted. Assuming one gets accepted, accept the talk with the organizer. Procrastinate, but hope that you subconsciously chew on it. Work on an outline in omnioutliner. This is important. Print it out, scribble all over it, put edits back in document. Once I’m happy with it, export to powerpoint. Open in keynote. Select my theme, switch all slides to my normal slide master, color all of them bright pink. This is also important. Switch to outline view. From the bottom, on a section by section basis, un-indent each outline item to the top level. This makes a new slide. For each section, switch masters to my section master (but pink sticks). Go to navigator view, indent each normal slide under the section/subsection slide. This lets you collapse-all and work on a section-by-section basis easily. Go either no navigator view or light table view and search out pink slides to work on. Once a slide is “done”, Use “Reapply Master to Slide” to turn off pink. Work on notes and start reading it out loud a lot. Wherever something doesn’t make sense, sounds clunky, or can’t be explained in < 5 seconds, add a slide. Yes, you heard that right, add a slide, or three. These areas need more slides to make connecting the conceptual dots easier for the audience. Do not add more words to the slide.

Usually, steps 5-6 take me the longest amount of time and effort… Getting the outline right is super important. I would much rather fix things at this stage than in the slide stage.

Steps 10-13 get me from 0 slides to 200+ slides in a matter of minutes. It feels fantastic.

Steps 14-15 also take a fair amount of time.

My Optimizations:

All of these steps benefit greatly by adding extra keyboard shortcuts via System Preferences -> Keyboards -> Shortcuts -> App Shortcuts. I have:

Collapse All: Cmd-Opt-0

Expand All: Cmd-Opt-9

Fit in Window: Cmd-Opt-=

Light Table: Cmd-Opt-L

Navigator View: Cmd-Opt-N

Outline View: Cmd-Opt-U

Play Slideshow: Cmd-P (why would I EVER print a keynote?)

Reapply Master: Cmd-Control-M (doesn’t always work? Apple? Help?)

Rehearse Slideshow: Cmd-R

I use these a lot and they help me keep moving.

My Automation:

Figuring stuff out:

Applescript can be a real PITA, but most of the stuff I do is pretty straightforward.

While I don’t have a REPL for applescript, I can introspect on things fairly easily. I almost always have a script on the side with something like the following:

1 2 3 4 5 6 7 8 9 tell application "Keynote" tell front document tell current slide tell movie 1 properties end tell end tell end tell end tell

Which outputs something like:

{opacity:100, parent:slide 40 of document id "1B0AA7F1-A88F-4C42-A6BE-FC67CCC70D1A" of application "Keynote", movie volume:100, class:movie, file name:"lines1.mp4", reflection showing:false, rotation:0, position:{260, 80}, width:1400, reflection value:0, height:919, repetition method:loop, locked:false}

That quickly let’s me know what I can mess with, or let’s me do the math I need to figure out positioning, etc.

Resize Movie

I made this in the midst of working on this latest talk. The 10-15 minutes it took saved me a TON of time. I had 43 movies and 46 images in this talk (eg: count of movies of every slide ). It was easily worth the investment many times over.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 tell application "Keynote" tell front document set myWidth to width set myHeight to height tell current slide tell movie 1 -- since "constrain proportions" is on, only set one: set height to 919 -- set width to 1400 set position to {(myWidth / 2) - (width / 2), (myHeight / 2) - (height / 2)} set repetition method to loop end tell end tell end tell end tell

It takes the (first) movie in the current slide and does the following:

set the height (or the width, but not both) to fit for that master. If I have different masters with different spacing, then I use multiple scripts. I don’t want applescript to have to figure that out (tho, thinking about it, that should be easy based on the master name).

Calculate it’s position to be centered by using the dimensions of the slide vs the dimensions of the image.

Turn on looping.

I’d like it to turn on auto-start as well, but that’s not a property of the movie for some reason and I didn’t want to dive into UI scripting. This script already saved me a ton of time and I felt like I was ahead of the ball for once.

In another case, I wasn’t centering so the maths weren’t as easy. I wound up manually positioning it, figuring out the X/Y, and injecting some of those numbers straight in:

1 2 3 4 5 6 7 8 9 tell movie 1 -- since "constrain proportions" is on, only set one: set height to 800 -- set width to 1400 set position to {myWidth - width - 84, 193} set repetition method to loop end tell

Copy Body To Speaker Note

I also have some scripts to transfer content into speaker notes. This one does the body:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 tell application "Keynote" tell front document set the base slide of the current slide to master slide "Takahashi Blue" tell current slide -- set myTitle to object text of default title item set myBody to object text of default body item set presenter notes to myBody set object text of default body item to "" set body showing to false end tell end tell end tell

Copy Title To Speaker Note

And this one does the title.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 tell application "Keynote" tell front document set the base slide of the current slide to master slide "Takahashi Blue" tell current slide set myTitle to object text of default title item -- set myBody to object text of default body item set presenter notes to myTitle set object text of default title item to "" -- set title showing to false end tell end tell end tell

Miscellaneous Tips:

cmd-F1 toggles mirroring. Works even after you “play” your keynote. Do this if your speaker notes don’t show up on your laptop or projector.

“x” will toggle your speaker notes and slides. Do this if your speaker notes go up on the projector.

“w” and “b” will blank the screen either white or black, respectively.

And very important:

YOU are being recorded. The audience is not. During Q&A, if you do not repeat the question, nobody watching this later will know what was asked.

If I’m in your talk, I’ll remind you, ONCE. After that it is on you.

So… I hope that helps you work on your slides. It certainly has helped me.