tl;dr edition: don’t let this happen to you.
I’ve been working on a couple of iOS applications for my upcoming talk at the Microsoft Exchange Conference. Since MEC starts in just over three weeks, this has become a matter of some importance.
Side note: I often talk about “the Exchange tribe” as a shorthand way to talk about the community with people who aren’t in it. The MEC team has posted a bunch of speaker photos which may help put some faces with the names. These pictures don’t show everything; for example, you can’t see Greg Taylor’s sense of humor, the color of Jeff Mealiffe’s most excellent glasses, exactly how much Scott Schnoll looks like SA Martinez from 311, or what Devin Ganger is trying to karate chop. The pictures are useful for recognizing who’s who, though the rumors that Ross Smith is making a set of MEC speaker trading cards is false as far as I know.
Last night, I unplugged my laptop, tossed it in my bag, and headed for SFO for the redeye to DFW, thence to Huntsville. This morning at DFW, I pulled out the laptop again to work on my code a bit. I had made a stupid mistake the other night: I created a class based on UIViewController instead of UITableViewController, which means that Xcode refused to link the class definition files with the view controller itself in the storyboard editor. That caused a variety of bad behavior, including an inability to link selectors for the “done” and “cancel” buttons in the view
I realized my mistake right after I had deleted the view so that I could recreate it. “No problem,” I thought. “I’ll just restore it with Time Machine.” This, despite the fact that my main Time Machine backup is on a disk back in Mountain View.
So, I tried to do that; I opened Time Machine, found my source folder (/Source/ExOOF in this case), and restored the folder from its most recent update at midnight. Switching back to Finder, I accidentally opened the project in Xcode. I quit Xcode and noticed that Finder was asking me whether I wanted to replace the folder or not. I said “yes” and was greeted by a mysterious Finder error.
Long story short, my working copy is now gone. I can’t restore the Time Machine copy either, as the local replica only contains the project file, not the source code.
“No problem,” says I. “That’s why I have CrashPlan.” A quick trip to the CrashPlan app revealed that… I back up /users/paulr only. When I first set up CrashPlan, I didn’t have anything in /source, so I didn’t back it up. Duh.
So, bottom line: my source code is safe and sound, on a disk on my desk in Mountain View that is completely inaccessible remotely. My app development will have to wait until I get back to Mountain View. I suppose I can work on the accompanying slides, but where’s the fun in that?