Running multiple Internet Explorer versions

When developing websites for our company we always, without execption, go through a stage of complete despair, agony and utter rage. That particular moment occurs when we test our work in the lovely browser made by the ever sympathetic software giant Microsoft. Yes, I’m talking about Internet Explorer, always the first to extract all the fun out of web development.

We test in the three “most recent” versions of Internet Explorer — 6,7 and 8. Calling IE6 a “recent” browser always makes me want to shoot somebody, as the fossil is nearly 8 years old. But there are still some fuckwits who think updating software is stupid, because you shouldn’t change something which isn’t (in their eyes) broken, and happily use the piece of garbage for their daily browsing activities.

The situation with IE 6 had one benefit, there was only one version to consider for support. Now there are three, of which two of them are approaching some level of decency regarding CSS and Javascript support and general HTML rendering.
While I applaud the initiative of some developers to stop developing for IE6, I think testing in at least two versions of Internet Explorer will still be a requirement in the near future. To make matters worse Microsoft made Explorer an integral part of its OS — something Neelie Kroes doesn’t particularly like — so you can’t run standalone versions of their browser without performing some serious voodoo.

I used the <a href=http://tredosoft.com/Multiple_IE”>MultipleIE installer by Tredosoft to accomplish the aforementioned voodoo, but they stopped supporting the application a while ago. There is also a Standalone IE 7 package from the same developer, but that doesn’t work very well in conjunction with MultipleIE 6 install and IE 8.

In the recent comments on the MultipleIE page I came across Internet Explorer Collection, which seems to be a viable alternative to Tredosoft’s package. There are still some rough edges, but overall the experience is as smooth as MultipleIE’s parallel install once was.

UPDATE:
One issue I found was the fact that the scripting error dialog didn’t work, it produces an “Error: 153, Unspecified error” (seriously) on my setup. Not that the scripting error messages spit out by IE are generally very helpful. Microsoft seems to think it’s enough to say on which line the error occurred, without referring to the actual file the offending code is located, it only spits out the URL to the page you’re currently viewing, which isn’t necessarily where your Javascript is located. Anyway, you can circumvent the error by installing DebugBar.

Microsoft and excitement (or lack thereof)

Bill Gates
Ars Technica has published a review concerning a beta release for the upcoming Windows 7. All the screenshots and talk about “new” features confirm once more that I just can’t get excited about anything Microsoft ever releases — even when I used their software in the Old Days.

When Apple introduces something it’s hard to not get excited. With KDE now it’s the same and I think it’s because they both publish clearly defined concepts and a clear vision. Microsoft, being a software behemoth, also has a vision, which changes every year or so when the CEO delivers a keynote at a tradeshow, but it’s neither very exciting or truly visionary.

All of Microsoft’s products suffer from the image of being just a tool to get the job done. Windows 7 is certainly not going to change that image, as it’s Vista disguised as an update to Windows XP. But of course it’s going to be used by the majority of the people owning a computer, because it’s a tool to get the job done…

New clothes

Today I finished the new visual theme for this weblog. It should look good in all major browsers, except Internet Explorer (though I’ve noticed font sizes are very small in Konqueror and possibly Safari), but I’m working on that.

Debugging a website for Internet Explorer 6, 7 and the upcoming version 8 always makes me wish Microsoft going bankrupt in the very near future — actually, it’s but one of the many occasions I wish for that. Really, some of the bugs and quirks of IEs rendering engine still baffle me every time I encounter them, most of it is so illogical. Oh, and of course it’s great we still need to use something as horrible as AlphaImageLoader to get decent images with alpha transparency in certain browsers in 2008.

Once I’ve finished with getting it to look nice in all browsers and some code clean-up I might release it should others want to use this theme.

I choose you, Debian, to be my…

So I decided to switch operating systems a couple of weeks ago. I’ve used closed source operating systems all my life, starting with MS-DOS on a Vendex Headstart XT machine (Microsoft still even lists a bug on its website and do watch the hilarious advertisement on Youtube). After that I had to endure both Windows 95, 98 and XP before buying a second hand Apple G4 desktop which came with Mac OS X Panther. When my work required me to be more mobile I decided to buy a MacBook Pro, which were recently introduced at that time. It’s the machine I continue to work with today.

Mac OS X made life much easier, introducing useful features with each new version of OS X I used (Panther, Tiger and Leopard). Functionality like Exposé and more recently Quick Look might at first appear as useless interface “bling” but in practice really help you navigate your system much more easily. Of course some bling is hopelessly useless, such as implementing something like Cover Flow in a file manager or having a separate desktop layer to store widgets which aren’t particularly handy and don’t follow the standard Apple interface guidelines.

The only closed source, proprietary software I used in the end were my text editor (the excellent skEdit), FTP application (Transmit), invoicing software (iBiz), Mail.app, Safari web browser and the Mac OS X operating system. I already used free and open source software for most of my other daily activities, so why not migrate to a complete free/open source system, I thought?
The announcement of Snow Leopard and the strong rumour that the Power PC platform will be officially abandoned after the new Leopard upgrade by Steve Jobs and Phil Schiller during the WWDC 2008, also made me change my mind about running proprietary software. I’ve come to dislike the radical way with which Apple drops support for its platforms (the last PowerPCs were sold two years ago) and the pace at which software packages start requiring new versions of an operating system. Of course it’s called progress and nobody forces you to upgrade to the latest and greatest. But on the other hand newer versions of applications force you to upgrade your whole system eventually. I’m aware that this is common practice in the world of software — either commercial or free — but the rate at which a platform like Apple is developing this upgrade requirement seems artificial in many ways and driven by the commercial incentive to create a bigger profit. Which is, well, one of the biggest reasons why commercial companies exist.

The drive to progress is also present in the Free/Open Source world, but it doesn’t inherently come at the cost of investing in a new software ecosystem. Take Compiz-Fusion for example, which provides the equivalent of desktop “bling” found in Mac OS X and Windows Vista. While Windows Vista has some to be able to run the Ultimate version of its Aero interface, Compiz can accomplish the same on relatively old hardware. The abundance and freedom of choice is also a big plus. For example, it might not be the best choice to run the latest GNOME or KDE on ancient hardware, but you can choose from a wide variety of desktop environments — like Xfce or Blackbox.

So I decided to switch to use Free/Open Source software. My operating system of choice is Debian. In part because I like the philosophy of the OS composed entirely of free software. Unfortunately I couldn’t live with some closed source stuff (the ATI fglrx drivers), so I enabled the non free repositories in aptitude. Another reason why I chose Debian is the fact that Ubuntu, which seems almost omnipresent on the web these days (most howto resources refer to Ubuntu in some way or another), is based on Debian, so a lot of tutorials on how to set up the system also apply (in part) to Debian.

At first I was a bit hesitant and partitioned my hard drive to accommodate a triple boot install of Mac OS X Leopard, Windows XP (both already there) and Debian. I used these excellent guides regarding the MacBook and MacBook Pro on the Debian wiki. I’m not sure how much of the stuff in those guides is now outdated, but especially the first chapters on how to resize the disk and set up rEFIt was very valuable.
I ended up with Debian on a 8 GB partition working perfectly alongside OS X and Windows on my MacBook Pro. After a few days however, I decided to ditch OS X completely, wiped my hard drive and installed a fresh copy of Debian on my machine which now dual boots Debian and Windows XP, for testing websites in Internet Explorer and because some games don’t yet work in Wine.

I had some problems booting with this setup, because I missed a very important part of the MacBook guide on the Debian wiki. rEFIt took care of my triple boot setup before, but the dual boot situation without OS X requires some other tweaks at the end of the Debian installation. I forgot to synchronize the GPT (GUID Partition Table). From the Debian wiki:

[!] Install the GRUB boot loader on a hard disk:
Do not install the GRUB boot loader. So, leave this menu item and go to the main menu by selecting ‹Go back›.

Synchronize MBR and GPT: Switch to the second virtual console by pressing ctrl-alt-F2, press return to start the shell, and then enter

chroot /target aptitude install refit
/target/sbin/gptsync /dev/sda

and enter ‘y’ at the prompt. This synchronizes the MBR from the GPT, which were made out of sync by parted.

(The directory /target is the directory in which the Debian installer installs the new system and it later becomes the root directory /.)

Then continue with installing your boot loader.

So now Debian unstable/sid is my primary OS and I’ve used it happily for about two weeks now. The reason why I’m running sid is (I started with testing/lenny), despite my comments about forced upgrades above, I really do like to try out new stuff or use more recent applications which are at a very low version number in lenny or etch or do not even exist in those repositories.