Time Machine Saves Bacon
Yeah, I know what you're thinking... That headline sounds like something you might read while standing in the checkout line at the supermarket next to photos of aliens from the future rescuing some baby porkers from the path of a Vogon engineered tornado headed for the next trailer park on their list of sites to demolish to make room for a new highway. Well if that's what you're thinking (come on, admit it, you know you were) then you're wrong. Keep reading for some info about another kind of Time Machine, and another kind of Bacon.
A brief history of Time Machines
First on the list, of course, is The Time Machine by one of the fathers of Science Fiction himself, H. G. Wells, written in 1895. I suspect that there must have been a few nuggets of truth in this fictional work. How else could he know that the basic themes of his work would continue to appeal to the masses more than a century after he created it? What about the many science fictional technologies that have become science facts over the years? Perhaps this same trans 4th dimensional tool was shared with Jules Verne when he wrote about the world-wide communications network that would be created in the 20th century... I expect that it was then passed on to other Sci-Fi greats down through the generations like Asimov, Heinlein, Bradburry, and others...
Next, because it had an impact on my life that I still remember, I should mention the 1960 movie adaptation of The Time Machine. I remember my Grandfather taking me to this movie when I was but a wee lad sometime in the mid 1970's. I remember having to walk the 10 or 12 city blocks from where we parked to where the "surprise" was located. I thought the surprise was going to be ice cream or something and started complaining (loudly) when we passed a perfectly good ice cream shop along the way. I say "walk" but it was more like "run" because my short little boy legs had to keep up with my Grandpa's long, quick strides. Grandpa's favorite form of exercise was walking, (which is why he parked so far away) and if you couldn't keep up you got left in the dust. When we finally got to the surprise, I actually was surprised that it was a movie instead of ice cream, but disappointed that it wasn't a "kids movie" and probably did a bit more complaining at this point. I'm telling you all this about the trip to the theater to help you see the contrast of the trip back. After emerging from the theater a couple hours later my mind was filled with wonder and excitement, and my imagination was running wild and in top gear. I must have floated all the way back to the car because I don't remember a single step of it, or maybe I time traveled and just skipped ahead 30 minutes. In either case, from that day forward I was a definite Sci-Fi fan.
Next stop on our mini time machine tour is Doc Brown's stainless steel De Lorian with its Flux Capacitor in Back to the Future. What kid in the '80s (or half the adults for that matter) didn't dream of being Marty McFly and of the adventures that would be possible with access to a time machine?
Also on the list are Captains Kirk, Picard, Janeway and Archer who often seemed to be dealing with cleaning up one mess or another related to paradoxes spawned from fooling around with the space-time continuum. (You may notice that a name is missing from that list, but personally I don't consider DS9 to be part of the Star Trek family. It's like the Sesame Street game "Which of these things is not like the others?")
The next time machine that I have personal experience with is Guido's Time Machine which is a well known phenomenon in the Python developer community. Here's how it works: In the early days of Python development some Joe Programmer pines for Python FizzlePops in the newsgroup saying something like "FizzlePops are a cool new thing in the furglebergle language. Wouldn't it be great if Python could do that?" Quite often there would be a response five minutes later from Guido saying something like "That's a great idea. I implemented it last week." After it became common knowledge that Guido owns a time machine we can often find references to it being used over much greater lengths of time, for example when a newly requested feature suddenly appears in prior releases of the software, even in releases as much as a few years old! PJE describesit this way:
Pretend that Python is a magic wand that will miraculously do whatever you want without you needing to lifting a finger. Ask, "how does Python already solve my problem?" and "What Python language feature most resembles my problem?" You will be absolutely astonished at how often it happens that thing you need is already there in some form. In fact, this phenomenon is so common, even among experienced Python programmers, that the Python community has a name for it. We call it "Guido's time machine", because sometimes it seems as though that's the only way he could've known what we needed, before we knew it ourselves.
I've had the opportunity now and then to borrow Guido's time machine in my work on wxPython and I have to admit that it is an utterly exhilarating experience! The wxPython users really appreciate it too, and it is the little things like time travel that can really help to build a loyal community around a software development tool and build strength for the future.
What about saving the bacon?
So, if you're still reading along at this point and haven't wandered off into the space-time continuum yourself, you're probably wondering what all this has to do with saving bacon... Well the time machine that is affecting my life today is Apple's Time Machine and the bacon in question is mine. Here's the story: Several days ago the Software Update tool popped up telling me that there is an update to OS X 10.5.3 available. Since I was in the middle of work and I knew that this update would require a reboot I decided that I would deal with it later and just hid the update window and went back to work, where I promptly forgot about the update notice. Fast forward several days to this morning and I need to go out to run some errands. Just before I leave I notice the Software Update icon in the dock and realize that this would be a good time to let the update run since I wont be at my desk for an hour or so anyway. When I get back there's bad news on the screen. The update file was corrupted and so it won't be able to complete the install. I let it reboot expecting (with fingers crossed!) that it will boot back into the non-updated OS X. Nope. The boot hangs and eventually the machine shuts itself off. So then I boot up from an external drive and jump into the Disk Utility app and select the internal hard drive and get more bad news, something like "The file system is corrupted and can not be repaired by this utility. Copy your important data and reinitialize the hard drive as soon as possible." Despair! Anguish! Then my eyes fall on the other external hard drive on my desk, and a smile begins to curl the corners of my mouth and the twinkle returns to my eyes. Time Machine to the rescue! I plug in the time machine disk and check when the last backup was run and find it was only about 40 minutes before the failure. YAY!
So after copying the few things from the internal drive that I know that time machine wasn't backing up (because I told it not to) and then erasing and reformatting the drive, I booted from the Leopard DVD and told it to restore from my time machine backup. And it has been doing exactly that as I've been writing this post from another machine, all 140GB worth of data, music, projects, source code, tools, applications, and everything else chugging along from the time machine back into the Mac. If you've ever had disk failures before and no recent or adequate backups then this is truly a beautiful sight.
Thanks Apple, your Time Machine has just saved my bacon!
The question remains however, do I dare attempt to do the update again?