she swears <i>geek</i> is a term of endearment

Supporting IE6 – How much does this cost?

June 30th, 2009 Rusty

While it may astound many developers that IE6 is still a popular browser, when you segment your audience with an industry heavy in compliance bureaucracy and political overhead, you find users who are not able to upgrade their office computers.  Their IT department is understaffed and conditioned to resist any innovation that might introduce more work for them.  Thus, you’re stuck supporting an ancient, inferior browser and you are forced to continue to code everything twice – once for modern, standards compliant browsers; once for IE6.  While this is an improvement over times past, its still a legacy behavior that costs real money to business.  How much?  That’s hard to quantify. 

Some deductive cost analysis

Let’s tally up the time it takes me to test a new feature against IE6.  This is an isolated development activity that does not take into account the cost of configuring and maintaining a virtual machine that hosts IE6.  It takes for granted the cost of software licensing necessary to keep an IE6 OS around and to run it.  I am using VMWare so hardware is negligible.  However, you could also include the cost of hardware for a machine that hosts IE6.  There are images available for virtual pc but these are getting harder to find and they expire regularly.  Microsoft wants us to move forward and they make it hard to hold back on upgrading IE6.  Nonetheless, businesses allow their IT departments to shackle their employees because anything that involves IT carries IT costs.  Its a viscous cycle of lock down followed by immobility but that’s outside the scope of my current point. 

I waited for 20 minutes while my IE6 Virtual Machine booted up.  In order to test against my development server, I have to run two Windows virtual machines simultaneously and that pretty much slows the system to a crawl.

To access my server from my IE6 machine, I had to reconfigure my network settings to use bridged networking.  This took another ten minutes before it would connect.  Though my settings were correct, I still couldn’t access the website on my dev server VM.  I had to close down my browsers and try again.  35 minutes into my activity, I am still trying to bring up the page to see how it displays!  Finally, the page loaded correctly. At first, I was very excited to see a perfect page.  Then I realized it was firefox.  I try to limit my risk variables when troubleshooting.  On to IE6, then.

I’ve gotten very good at fixing IE6 issues.  When I brought up the page, it was a disaster.  I quickly identified that my “overflow” was not working and Googled the solution: a fixed width on the overflow container.  jQuery then took care of the rest.  I love that library!  Finally, I had a png file that was being manipulated by the iepngfix behavior so I dumped that.  If I am going to support IE6, its buh bye to png transparency for now.  The pngfix was f’ing up the size of the img.  Sure, I could have specified a fixed height and width on the img tag but that’s so old school. 

About an hour per IE6 page

Sure, this is an isolated and unique event but I think its probably pretty close.  Today I was held up getting the environment running but the fixes were easy.  Tomorrow I won’t have to jump through hoops but the fixes may take longer.  I would be willing to bet that for each page that needs to support IE6, add an hour of work.  Have 100 pages to work through?  100 hours.  At a hip shot rate of $100/hr for average salaried developers and you see that IE6 gets expensive (that is a $10,000 non feature).  It also holds up progress and innovation and lowers moral but focus on what’s important: its expensive.  Again, I am just shooting from the hip on that cost, its most likely much, much higher.

I look forward to the day when I have a systems admin working for me who resists doing his job to keep software current and useful while at the same time refusing to let user serve themselves.  I will have years of pent up frustration to present him or her with.  I hope I am in a pleasant enough mood to find the levity in it.

SEO Class Update

June 9th, 2009 Rusty

I probably should have mentioned this before but I am no longer participating in the WinAtl SEO Training Class in Atlanta.  John and I had scheduling issues such that we could not execute the class as a team.  John Sherrod is going to handle that endeavor, solo, and I am going to pursue training in technology as well.  I will be presenting at the Microsoft Asp.Net User Group in the fall (October 5th, I believe).  The topic will be Search Engine Optimization for Dynamic Websites.

I’ve had a number of people ask me about the class.  It is still on (I believe) and there is still space.  Meanwhile, I am considering a more generic SEO training for those people who are interested.  My concept is really a more of a technical execution training in search optimization for developers and website designers.  Website owners are also welcome if they edit their own content either via CMS or old fashioned Html code.  I may also prepare a webinar session as well.  In addition, I would like to teach iPhone development.  I will be the moderator for the Atlanta iPhone and iTouch Developers User Group and feel there is a huge need for some instructor led training in iPhone development.  With the price drop to $99, its an even more compelling platform!

If you were considering the WinAtl class, go sign up!  John is the cat’s pajamas in Search and I’ll be more than willing to help you and him in any way that I can. 

Curl beeps at me and displays binary on Mac Terminal

June 5th, 2009 Rusty

I went through the very arduous, yet somehow rewarding, experience of building MySQL from scratch on my Mac.
This article explains how and why you might want to install mysql from source on mac os x.
I then finished, went to bed, and this morning decided to use my own Mac (rather than the family mac, ie: my wife’s), and found I had no MySQL. Drat!. Alright, second time is easier, right?

Beep, beep, beep, beep… FAIL

One of the steps required is to use curl to bring down the source.  The first time through, I entered the command as instructed

curl -O http://mysql.he.net/Downloads/MySQL-5.1/mysql-5.1.33.tar.gz

Strange, alien looking glyphs flash past the green themed terminal screen while the computer beeps repeatedly.  I had a hard time finding any reference as to why this might be happening.  I finally gave up, downloaded using Safari, copied manually, and skipped curl.  Today, I was determined to discover the cause.

In reviewing the options, I found an argument to send output to a file rather than the terminal window or STOUT.  That did the trick!  In addition, I added the “progress bar” argument so I had something to watch.

curl -0 http://mysql.he.net/Downloads/MySQL-5.1/mysql-5.1.35.tar.gz -o mysql-5.1.35.tar.gz -#

curl -0 http://mysql.he.net/Downloads/MySQL-5.1/mysql-5.1.35.tar.gz -o mysql-5.1.35.tar.gz -# 

I am now dangerous with curl.  Hope this helps some other Windows defector