Some things are meant to happen:
- We will all eventually die
- Windows gets filled with viruses over time (if we don't consider Windows a virus in itself, of course)
- Chavez will rather be talking crap on TV than taking care of doing a real government that will make people happier... or, at least, safer (in the sense of personal safety).
You get the idea... those are facts of nature. But there are others where the planets align in such a way that you are able to sense when they will happen a couple of seconds before they do happen. I had one of those last wednesday.
I was working on a project that had required that I left Bogotá to another city for a week... I was working at a client's installation and was completely isolated from internet. I remember a thought came to my mind: I need to do a backup of all the things I have of the project and send it to my coworkers. 10 seconds later, my laptop was heading to a crash with the floor. Oops! Not good.
The working day was already closing so I had sent the computer into hibernation but the fall happened before the computer shutdown. I tried to restart it (Windows.... but the GNU/Linux part is coming, don't worry... read on). It would fail to start because of a bad checksum of one of its dlls.
See, I'm forced to use Windows on my computer at work but I do must of my work on a Virtual Machine that I cheerfully use on VirtualBox. In the virtual machine is where I keep must of the information of the projects.
Thursday was my last day outside of Bogotá (I was traveling back on friday) so I had to finish all of the tasks I had been assigned to do in 24 hours... with my computer brain-dead, it doesn't look like I'm gonna get a congratulation at the end from my boss.
I always keep a LiveCD with me just in case things like this happen (on other people's computer, normally). I fire it up and the computer responds normally... so I'm able to work on it... even if I don't have all the information about the project. I check and see that the D partition (where the data is) is usable... at least I get to see many files I'm working with and md5sum them.
I head back to the hotel cause I gas leaving already and try to connect to the wireless... but I just can't (It's Kubuntu Jaunty, not lucid.... hope it's better with lucid now). I ask for permission to connect to the router through UTP which I'm granted so I head to the lobby and mails start going back and forth about the support questions I have regarding the project. One of my coworkers through mail tells me to backup the files... damn, why didn't I think of that? I had brought with me a pen drive that came with the hardware of the project so I copy many of its files but not all of them as they are inside a VirtualBox virtual hard drive (switches configurations in time... thanks to version control, plus many other things). I stay there until about 3 or 4 AM and head to bed to try to get some sleep.
8 AM... Here's when the real hacking begins. I start wpa_supplicant by hand to try to see what's going on with the wireless connection. I see a message about non-wpa networks not being allowed to connect through wpa_supplicant. I think we can try something different in this case: /etc/network/interfaces (on debian based distros). I edit it to include the wireless I'm trying to connnect to and its key... something like:
iface eth1 inet dhcp
wireless-essid this is the wireless name
wireless-key this is the key
Save it and try to connect: sudo ifup eth1
I get connected in a couple of seconds... oh, well.... :-S One less problem. Now the data of the project. I have the home of the virtual machine in partition D of the HD (as a matter of fact, I use the whole virtual HD as the home... there's no partition table... the joys of using GNU/Linux) so I need to be able to start VirtualBox so that I get the information of the project out of the virtual machine. I install openssh-server and VirtualBox from repos. I try to start VirtualBox with the home virtual HD and the LiveCD I'm using.... the boot process begins but VirtualBox dies because of memory issues (I have 1 Gg of RAM and running Kubuntu plus virtual box... I knew it easn't going to hold water). I download DSL and try to run the virtual machine with just 64 MBs of ram in "single" mode (dsl single on the boot menu).... and I'm up in a couple of minutes. I mount the home partition on /mnt inside DSL:
mount /dev/sda /mnt
See I didn't use a device name that includes a partition number? That's because, as I said, I'm using the hole HD as a partition instead of using a real partition of the HD. I tar the project and, as you should rememer, I had installed the openssh-server on the liveCD session, right? I sftp it out of the virtual machine inside the liveCD session... and now I'm able to forget about the HD cause I won't need it anymore. Put the project in the Pen Drive and the liveCD + pen drive becomes my new work environment and I move on to do my final work day on site (I did have time to finish all my tasks thanks to GNU/Linux... as usual). Get the congratulations from my boss and go to have a good nigh sleep which I'm already m,issing.
Conclusion: Flexibility is the name of the game... that's why (among other things) I enjoy using GNU/Linux.
PS for those of you wondering how I was able to install software on the liveCD session once I was on-site with no internet connection, should take a look at this article.