This is a continuation in my series on low bandwidth development.
When it comes to the low bandwidth market of web development, you’re bound to encounter old browsers, or more to the point, “non-modern” browsers. Typically, “modern” browsers are Firefox, Chrome, Opera, and Safari. You may be asking, “What about Internet Explorer?” That one gets tricky. While version 6 is often lumped in to the group, most people don’t consider Explorer a modern browser until version 7 or even 8. Some don’t even consider 8 to be “modern” either as its HTML 5 support is sketchy. Of course, the newest browsers aren’t the truly impossible issue for those of us developing in the low bandwidth environs.
What is difficult is supporting older browsers. There is a lot of Explorer 6 running around still (about 25% of the browsers out there actually). There is even some Explorer 5.5, Explorer for Mac OS 9 (the infamous 5.23), as well as Mozilla, and Netscape. Most of these browsers have been discontinued. It’s hard to even get copies of the old versions let alone an actual system to run them on. Most of the time, you can usually just let this be, but sometimes it’s more of a worry.
One day, when testing out Maneno with IETester (one of the finest things a web developer could ever download), I found that in Explorer 5.5, part of the site would keep refreshing out of control. It was unusable and pretty much unstable. While the site was also ugly to view in 5.5 (because 5.5 is a heap of junk for CSS support), this posed more of a problem and there was definitely no way I was going to bother hunting down the issue for the tiny bit of traffic that arrived on that browser. I realized that this browser would have to be blocked somehow.
A pet project of mine is End6. It’s a simple JavaScript widget that appears only if someone is using Explorer 6 (also a heap of junk for those who don’t know). It’s a simple prompt to get people to upgrade. A bit more than passive and a bit less than aggressive. I’d suggest taking a look if you want to try to get people off Explorer 6, which benefits all of us from end user to developer. Unfortunately this widget isn’t enough. People can still access the site once they click through the warning. No, completely blocking some of these troublesome browsers that could cause the user problems is the only real way to go, as it is for many websites.
So enters browscap.ini. This is a browser definitions system that generally stays up to date with whatever browsers come out. The current version doesn’t yet recognize Firefox 3.5 beta 4, but I wrote that in. It’s available in PHP, ASP, and can be downloaded in a raw form as well to meld to your specific needs. All told, it’s mighty cool.
Maneno is built in PHP, so it’s rather easy to implement. You just edit your php.ini file to point at this ini file and then program as you want for implementation. I check to first make sure that $_SERVER[‘HTTP_USER_AGENT’] isn’t empty as it will often be for search engine spiders or others. Then I call get_browser() and it gives you a lovely, associative array of such things as “browser” and “version”. Run some simple logic to check against them and then kick out users to a warning page (see below) if they have too old of a browser. Post some links to more “modern browsers” so there is a call to upgrade as well. We’re currently blocking anything older than Explorer 6, Firefox 2, all of Mozilla, and all of Netscape. I would have loved to block Explorer 6 as well, but given the high percentage of deployment in our user base, it’s just not possible currently.
All told, these blocked browsers make up about less than 0.75% of Maneno’s traffic. Why care about such a small amount? Well, for starters, upgrading is good for these folks if they do it, since these browsers aren’t generally supported, and in the case of old Explorer version, extremely insecure to use. For another reason, it’s to make sure that people are using browsers that I can test. Otherwise, I don’t want something unforeseen to happen to their system because I couldn’t anticipate it.
But what about if they can’t download a new browser due to super low bandwidth issues? For this, I am currently working on sending small flash drives to selected folks that have Firefox on them in French and English, so that they can install them anywhere that is needed. I encourage others to do the same or bring a burned installation CD with them to do the same thing. And why is there no problem torrent for Firefox? That would make all this a lot easier as it could be downloaded gradually! Maybe Maneno should host this?
Developing and Deploying in Low Bandwidth Part 3