& Media Mill News: Shaking hands with the Devil

« New Xserve in the cluster | Main | Major feature rollout »

Shaking hands with the Devil

Despite what you might think, there is a lot of esoteric thought that goes into writing code. Programmers agonize over the elegant way to do something, and feel guilty when resorting to a "hack" - even if the end result is identical. That's not to say that bad code doesn't get written, but it's often because outside constraints demanded it.

Today I had to shake hands with the devil.

It used to be that no two browsers could be expected to perform at all alike, particularly in regards to Javascript. Netscape and IE would do things entirely different. This meant that pages often had whole decision trees to display different code depending on the browser. This was fundamentally The Wrong Way (tm) to do things, as it meant there were tons more places for code to break, and it left the code ugly and hard to maintain. As time has gone on, browsers have gotten better and more flexible, so oftentimes code will render nearly identically across browsers.

Usually.

There's been an issue for a while with the rendering of the "window blind" effect on Internet Explorer. This isn't a problem in Scriptaculous (the library that provides the effect) but rather something to do with the nested divs on the Media Mill myVideos page. One of the features in beta testing right now allows you to drag and drop your videos to arrange them however you like. Adding support for this has exasperated the rendering issue on Internet Explorer 7, such that blocks of text would disappear and reappear as you moused around the screen.

I spend the better part of this afternoon trying to solve the issue, but my CSS-kung foo is insufficient, and so I've resorted to something I had long tried to avoid. I added an IE-specific hack. IE users will no longer get the pretty window-blind effect. I hope that this is a small price to pay for the added coolness of dynamically rearrangeable videos, but it still makes me sad. Cry.