Friday, July 25, 2008

The saga of upgrading Breezy to Hardy (on VMWare)

It all started with me downloading UltimateLAMP, a pre-configured VMWare appliance image, to try out phpOpenChat. I did get the phpOpenChat to work (mostly) with some php script tinkering. Considering my limited knowledge on php, I'm relatively proud of myself. Even the virtual appliance hasn't been updated for almost 3 years, it still works pretty well. So I kinda thought, "why don't I make a good thing better?". My idea is to upgrade it to current software (it's based on Ubuntu Breezy) so I may even able to use it for testing some other things. Simple enough, right?

I didn't quite envision a walk in the park, but it did turn out to be close to an odyssey.

There's no direct path from Breezy to Hardy (the current Ubuntu, version 8.04 LTS). So I had to go to Dapper first (6.06 LTS). I replaced all breezy in apt source list with dapper. A "dist-upgrade" by apt-get got me to Dapper pretty easily (or I thought). But upon restart X no longer ran. Granted this is somewhat a server thing so I don't have to have X, but I just like to have a GUI to make some things easier. I went ahead to install update-manager and used it to upgrade to Hardy, thinking "I'll fix X once I'm there". It took some time to download and set up things. After a restart I found myself in an even worse shape. Hardy couldn't boot into normal mode - it would hang - so I had to drop into recovery. Then I had no network, and of course no X. To get the network to work, I realized I need to recompile vmware-tools, which contains the driver for the interface. But I couldn't: there's no gcc or make -the virtual appliance didn't include it. But without network I couldn't even download build-essential and headers. Damn! I don't want to have to make a CD-ROM...

So I grabbed the original Breezy vmdk and restarted the whole thing. This time I remembered to do snapshots along the way so it's easier to go back. I couldn't install build-essentials under Breezy, because the repository is no longer there. So I did it after getting to Dapper. For some odd reason, at presumeably Dapper level, it showed a Breezy kernel (guess either kernel image isn't there or GRUB wasn't done right). So I couldn't do "install linux-headers-`uname -r`"; instead I had to find the Dapper kernel version from another computer and used it to install the headers. With build-essential and headers I should be able to compile stuff once I'm fully upgraded. When I reached Hardy, things seemed to look better. I even had X running fine, minus mouse, which forced me to learn how to navigate Nautilus with keyboard. I thought instead of recompiling the old vmware-tools, I would just upgrade to the current vmware-tools (Workstation 6). Well, it's also because old vmware-tools reported a wrong kernel version - what the heck is @@VMWARE-release@@ - so it refused to recompile. Mounting the tools iso turned out to be a mini journey too. For some reason it didn't want to work if I make CD-ROM IDE in VM settings (missing ata driver?).

Now I got tools upgraded. Deep breath, restart. Bam! No gdm again. Still no network. WTF? It turned out that the gdm problem is just a missing symlink (/usr/bin/X11/X). But where is my network card? I updated modules.conf to reflect the correct driver, vmxnet (it was using vmnic). I could see vmxnet module loaded. But ifup kept saying "No such device". I remembered the annoying /etc/iftab Ubuntu has. With upgraded VM version, it may well have a new MAC. So I checked iftab and found out it's been replaced by an even more arcane file, /etc/udev/rules.d/70-persistent-net/rules. Opening up that file and sure enough, the old MAC was there with my eth0. And there's also an eth1 with the new MAC. The two lines are in different format. After some thinking I decided to comment out old eth0 and changed the other one's name to from eth1 to eth0. Still, there's no network after restarting networking service. So I restarted the machine (good'ol Windows habit) and guess what? All is merry again!

Hope my experience will be some help to anyone who wants to embark on such feat.

Monday, July 14, 2008

Case study: the wrong way to get new customer - Windows Live ID signup

I recently tried to sign up a Windows Live ID with a non-Microsoft email. The signup page from live.com is here:
https://signup.live.com/newuser.aspx?mkt=en-us&ts=4488890&sh=7rnR&ru=http%3a%2f%2fwww.live.com%2fPassport.aspx%3frequrl%3dhttp%253a%252f%252fwww.live.com%253a80%252f&rx=http%3a%2f%2fget.live.com&rollrs=03&lic=1#ExtHelp
but the page doesn't allow you to use email other than @hotmail.com and @live.com. However when you place the cursor in the box and click the "Get help with this" context link on the right, you'd notice the instructions do say "–Or– Select Use your own e-mail address." Well, something isn't in sync here. Then, if you follow the "Windows Live ID sign up page" in the instructions, it actually brings you to an otherwise identical signup page, which does have the "Use your own email address" checkbox.


Per the spirit of a good conspiracy theory enthusiast, we'll have to rule out the chance of this being a mere overlook. :-) Apparently it's an concerted effort on steering to Microsoft services with perfect defendability on not acting like a monopoly. Well, to an honest consumer, it still feels like a trick. Either play like a whole-heartedly open-standard vendor, or be forthcoming about not being one. Either way I'd like the big M$ a little better.