I've given a lot of talks over the years, with varying amounts of live coding and moving parts. For many of them it wasn't uncommon for me to have some sort of notes jotted down as an emergency reminder if my memory fails in the moment, and I always have local fallbacks for any network-dependent demos to avoid being completely hindered by bad connections.
When preparing for my talk at this year's Xamarin Evolve, I found myself in need of more than in previous talks. This talk was, by definition, completely network dependent, as well as totally dependent on a host of third party services I had no control over. Basically this was a nightmare scenario for me as a presenter, and made me question what I was smoking when I pitched the talk. In addition to the prospect of demo fails, I also found myself with far more things on my pre-flight checklist to remember to do before even beginning the presentation. My default way to write notes and lists is to use Markdown, which then lead me to:
Anyone have any recs for Markdown editors/viewers on iOS? Preferably with support for GitHub-flavored Markdown (like checkboxes)
— Greg Shackles (@gshackles) April 18, 2016
I was surprised at the lack of good options I was finding after some initial searching, since it seemed like my needs were extremely basic:
- support for viewing Markdown
- support for GitHub-flavored Markdown (namely checkboxes that you can interact with)
- avoiding the urge to write something myself the week before Evolve
- ideally with split-screen support on an iPad
If you saw my talk at Evolve you might have noticed my sticker-covered laptop, but next to it you can see my iPad assistant:
1Writer
After trying a bunch of different options that didn't quite scratch my itch, including some web-based, my colleague Chris Krycho recommended 1Writer which ended up being perfect for my needs. It also has nice writing and editing support, but I won't really go into that since I didn't actually need that for this use case.
1Writer has built-in Dropbox support, which meant that it could connect to my account that was already being used to store my presentation and notes and load it directly from there. In the rest of this post I'll outline how I set up my flow and used 1Writer to organize my talk's flow and significantly ease my anxiety over missing something.
Create Copy of Base Notes
As I was writing my notes I would store them in a file named script-base.md
in Dropbox. This would serve as the starting point for any run through the talk, be it a practice run or the real thing. 1Writer makes it was to create a duplicate of a document, so each preparation round for a run of the talk would begin by duplicating the base script and giving it an appropriate name:
Checking Off Items
The first section of my script was a list of things that need to be done prior to stepping on stage and delivering the talk. This includes everything from bumping up font sizes, logging into services, turning on Do Not Disturb, etc. Nothing is too simple to leave off the list here, so it's a great way to have a master list of everything you could forget in the moment. As I completed each step I would check it off in the document:
Since this is working off a fresh copy of the script there's no need to worry about having to uncheck everything to start over.
Including Steps for Demos
My goal was to be totally driven by memory for my demos and not have to refer to my assistant, but since it was there anyway it would have been silly to not include details of the entire thing in there. Since I was working in Markdown, it meant that I could easily annotate code that I was planning to write from scratch, which could serve as a reminder of what I needed to write in case of temporary memory loss:
Unlike the earlier section where I'd check off items as I completed them, that was not a goal of mine for the demo section since that would break the flow of the presentation. In my case these checkboxes could just as easily have been bullets, but I left them as checkboxes since it was occasionally useful during preparation when working on timing.
Split Screen
One of the nice-to-haves I was after was support for running in split-screen mode on my iPad. The main reason for this was that it allowed me to run 1Writer side by side with the built-in iOS timer app, which was awesome for being able to have something I could look to and see where I was at without having to break my flow and look somewhere else.
Miscellaneous
1Writer also offered a lot of nice options for theming, fonts, text size, etc, which made it easy to tailor the view to just how I wanted it. I should also note that 1Writer is not a free app. It's currently just $4.99 in the iTunes app store though, which was an absolute bargain for the value I got out of it. I suspect that I'll be taking this approach more often for future talks.