Most Expensive JavaScript Ever?
ekran writes "A while ago Opera Software needed more servers. Not just a few servers either — they were planning Opera Mini's growth, implementing Opera Link, and My Opera was also growing quickly.
Most of the major hardware vendors grabbed their specs and came back with offers and sample servers shipped all the way to Oslo for testing. One of the biggest vendors, however, did not do their homework. They shipped the server, but when the Opera sysadmins started up the web-admin interface, they were met with a JavaScript statement that managed to piss off the whole company including the CTO. The script, apparently, locked out the Opera web-browser."
it's not HP as the link to what they actually buy shows they bought HP blades (http://www.digi.no/504306/her-kjores-egentlig-opera-mini&bid=6)
my money is going on Dell.
if (is.opera)
{
window.location.href="config/error.htm";
}
Conspiracy theorists unite!
Free Martian Whores!
spoof the agent, just like everyone else who uses Opera
Not that Opera doesn't have serious funding... but I'm going to go out on a limb and say that this javascript would be more expensive, most of the time
.
.
if (is.explorer)
{
window.location.href="config/error.htm";
}
------ The best brain training is now totally free : )
Why? I can see not bothering to test much on Opera, or putting a "We only support browsers X and Y." statement in the manual, or even not bothering about any issues that crop up if you use Opera to access the admin interface; but why would you deliberately add a check that breaks Opera?
The British cartoonist Giles is said to have made himself practically sacking proof by one of his cartoons. The Duke of Edinburgh remarked that "The [Daily, owned by Beaverbrook] Express is a bloody awful newspaper."
Giles promptly did a cartoon of his employer being led off in chains by Yeoman Warders, watched by the Duke, with the caption
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
This nonsense would never happen.
I started as a web developer in the mid-90s. I know how hard it is to develop for multiple browsers and versions. When Netscape and Internet Explorer 4.0 came out, they quickly gained the majority of market share. Many colleagues did not want to keep their sites compatible with 3.x browsers because they felt it was a pain. I would always hear the sentence, "They only have a 5% market share."
To me this was and still is a ridiculous attitude. You're OK randomly raising your middle finger to 1 in 20 potential customers visiting your site? What if that 1 in 20 is the wrong person? Obviously, in this case, they definitely raised their middle finger to the wrong people.
But this gets even worse, because Opera is not obsolete and is fairly standards-compliant. To top it off, the vendor specifically broke the web site for the browser they were too lazy to design for, rather than doing something that makes sense -- like investing time and money to reach a small but tech-savvy segment of the population.
All told -- shamefully -- it makes me feel a little Schadenfreude that it bit them in the rear.
The Institute of Incomplete Research has determined that 9 of out 10
I browsed the comments on the Opera blog and I could not find any definitive answer although HP and Dell are mentioned as possible culprits.
Funny story. I have a large Dell LTO tape array, and it has a web-based management tool. Part of the management web pages generate on-the-fly images in XBM format. IE had a security flaw in the parsing of XBM images, and since XBM images are so rare, Microsoft simply disabled XBM images entirely.
So, I am forced to use firefox to manage the tape array.
Many years ago, we were bidding on a US Postal Service contract to supply computer equipment to all of their offices. We had several pallets of bid material on the loading dock, ready to go. Fortunately, one of the program managers made a last minute check and discovered (in time!) that nobody had bothered to tell the shipping department to ignore the standard, "Ship all contract proposals FedEx, overnight", procedure in this case.....
Actually, he has a very valid point. In your Toyota example, you are forgetting that in order to support Toyota, you have increased development costs and time in order to support a very, very small percentage of users, compounded by the fact that supported browsers are free and can be installed in a matter of minutes.
If you hire a good developer your site should work for all browsers. It's not fucking rocket science.
Literalism isn't a form of humor, it's you being irritating.
48V DC is an odd beast, with odd standards going back to the early days of the Bell System.
In a 48V DC system, the positive side is grounded. This is to prevent corrosion on phone lines in the ground that happens more readily if the system is negative ground.
Since positive is ground, the "live" wire is negative, or -48VDC. Since this is the wire you don't want to lick, or allow to touch the chassis when powered, it is colored red in many deployments. The black wire is ground, you can lick* it all you want.
* -48V DC won't really sting you much if you just touch it unless your hands are wet or you touch it with a wet part of you like your tongue.
You are assuming WAY too much. Some subcontractor wrote software to a specification that said support browsers x and y with functionality a,b,c,..q and pass these tests. To make sure some clever tester didn't find some obscure bug with Opera that would keep him from getting paid he just errored the browser out. This passed functionality testing and was approved. Later this now approved and standard code was delivered with the imbedded management card of a server that just happened to be shipped to Opera. The two events have nothing to do with each other and it unbelievably unlikely that for an account the size of Opera that someone would have done regression testing on their software to make sure it works with Opera's product.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
It is common to deliberately add a check that breaks the whole stuff when some 'unexpected' condition happens. You know, assertions.
Which one is better? Not working at all, or seems like working but a not-so-commonly-used-some-sort-of-admin-command somehow gets screwed and the web browser fires a do-not-touch-this-unless-you-want-complete-meltdown-command because there was some minor difference on the javscript engine parsing some parameters? Yeah, can be extremely rare, but if it isn't tested, nobody can be sure.
Obviously, the best thing to do would be to test all possible conditions. However, if you can't, then there can be three choices:
1) Leave it to the users, Nah, I'm not gonna test it.
2) Launch a big warning message and blame the users if something goes wrong, or
3) Make it never work when some unknown condition is reached.
Number 1 is perfectly reasonable when the worst consequence isn't so bad. For example, a web forum interface, or things like Facebook. Maybe number 2 would be better in most cases. But, if an untested scenario may cause huge, irrecoverable damage, number 3 may be the best choice. (You should remember that the product in question was the server management console, which can bring the whole datacenter down when things go wrong.)
My opinion is that, deliberately excluding Opera was a quite reasonable idea. Trying to sell a product that deliberately excludes Opera (web browser) to Opera (the company) was the stupid idea.
That must be terrible, being forced to use a non-broken browser. I'm so sorry!
Don't forget this was demo hardware from companies responding to a tender. At this point Opera was still evaluating the hardware. Two things seem to have happened:
- the software was implemented with an abort for Opera, either because QA was not done for Opera.
- the vendor didn't appear to know what the primary product of Opera was, and what the browser requirements of their admin interface were.
While the first scenario is bad enough, the second is just unforgivable, since it shows to the customer that the vendor apparently made no attempt to know who their customer was.
Jumpstart the tartan drive.
Browser detection is almost always the wrong way to do things anyway. Test for existence of specific JavaScript properties/methods on objects to find out if they exist. You can generally check for IE-specific behavior just by testing for the presence or absence of JavaScript properties/methods.
if (document.getElementsByClassName) {
/* IE and old browser version */
elts = document.getElementsByClassName("resulttablerow");
} else {
}
By doing this, you won't have to do a browser check at all and your page will "just work" for any browser that implements either the standards-compliant behavior, the IE behavior, or both. You can do the same thing for CSS properties by trying to add the property, then going and trying to read it back for verification. If it isn't there when you go back and check for it, the browser doesn't support the CSS property.
I'm not familiar with Opera's behavior, but in my experience, roughly 99.5% of CSS and JavaScript that works with FireFox also works with Safari and vice versa (as long as you don't try to use bleeding edge HTML5 or CSS3 features). Any browser check that only tests for FireFox is almost always just guaranteed to make a bunch of users mad for no reason.
Check out my sci-fi/humor trilogy at PatriotsBooks.
You asked for it, ladeees and gentlemen! It may not be that grand masterpiece, Ode to a Small Lump of Green Putty I Found in my Armpit One Midsummer Morning, but I think this little joy from Prostetnic Vogon Jeltz should be enough to warm your hearts:
Oh freddled gruntbuggly, ...[drowned out by moaning and screaming]
Thy micturations are to me
As plurdled gabbleblotchits
On a lurgid bee
That mordiously hath bitled out
Its earted jurtles
Into a rancid festering
Now the jurpling slayjid agrocrustles
Are slurping hagrilly up the axlegrurts
And living glupules frart and slipulate
Like jowling meated liverslime
Groop, I implore thee, my foonting turlingdromes
And hooptiously drangle me
With crinkly bindlewurdles,
Or else I shall rend thee in the gobberwarts with my blurglecruncheon
See if I don't.
Cheers!
"What in the name of Fats Waller is that?"
"A four-foot prune."