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."
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.
So who was the culprit company ??
Now that it is on /., I am sure that a member of the Slashdot intelligence community could come up with the answer. I offer a reward that will be paid in SMP currency, not in NOK. Sorry about that but I do not have any NOK at my disposal.
currencies:
NOK = Norwegian krone
SMP = Slashdot Mod Points
Everything I write is lies, read between the lines.
A while ago Opera Software needed more servers
I think they still do.
Had the same thing on the webadmin interface for one of their ILO's. Or more precise, it wouldn't work on anything but IE. Hadn't seen that for quite a while.
---
"The chances of a demonic possession spreading are remote -- relax."
And if it was outsourced.
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.
Having tested web based software for IBM before, I'm going to take a stab in the dark and guess it was IBM. Anyone here ever use SCM (Storage Configuration Manager)? It's utter shite; slow, buggy, and unsupported on anything other than firefox and IE.
Remember kids, IBM Hardware = Good. IBM Software = Kill it with fire.
Skiffy is Spiffy, but Ort is tort.
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
Don't be a jackass. Their market share has nothing to do with the article. I don't care about Opera but the story is still funny as hell and worth repeating. I just wish that kind of stuff happened to me at work. :(
I am the lawn!
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
The headline is misinformative. Based upon the headline I would have expected to read about a company hiring a bunch of developers for a lot of money to code something cool in javascript. Perhaps a more appropriate headline is "Javascript locked out Opera, Opera locked out the company."
since they are insignificant in the browser market I'd probably do the same thing.
Then you're a fucking moron.
If you were running a store with a physical presence, would you also ban customers who drove Toyotas, telling them "Toyota is insignificant, and therefore you are not allowed to shop at my store. Come back when you have a Ford or GM"?
Classic case of a company not knowing what their product is used for.
Opera != Work Browser.
Opera == Bestest P0rn Browser ! Swift image resizing, superior mouse gestures, and remaining responsive even after a gazillion tabs are opened.
It's like turning up with your purpose-built race car at the city center, and whining about speed humps.
currencies:
NOK = Norwegian krone
SMP = Slashdot Mod Points
The uncyclopedia will explain:
Free Martian Whores!
http://www.digi.no/504306/her-kjores-egentlig-opera-mini&bid=5
Notice anything odd about the large 48v DC power cables? Like the '+' and '-'... on the wrong lines...
Forget a javascript issue, that there is a pretty huge installation issue.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
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 I'm working on a project with a limited budget and you were going to tell me that enabling support for Opera was going to add even 5% to my total costs, I'd cut it in a heartbeat, because anyone that is using Opera can just switch over to another browser to perform the task at hand*.
The exception to this rule is my wife's office, which mandates Opera use... but it's only because they manage classical musicians and they like the name... it causes them all kinds of problems.
I've already found a defect in the revised sniffer. The variable names "fire" and "moz" appear to indicate that the code above this line would fail on Iceweasel, IceCat, SeaMonkey post-renaming, Fennec, K-Meleon, Epiphany, and other browsers using the same HTML/CSS/JavaScript engine as Firefox. Why is it testing for "fire" and "moz", not "gecko"? Having an alert() pop-up on (I'm guessing) every page is an improvement against immediate redirection to an error page, but it's still an annoyance.
Toyota has the #1 marketshare in the world at something like 15-18%. That's akin to Firefox in terms of share (20-something percent). Opera is lucky if they have 1% of the browser market. It's more like saying Ashok Leyland doen't have a sizable marketshare, therefore we're excluding them from the market.
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.
HP's not much better though:
// supported browser; do nothing
var detect = navigator.userAgent.toLowerCase();
var ie = detect.match(/msie ([\d\.]+)/);
var moz = detect.match(/rv:([\d\.]+)/);
var fire = detect.match(/firefox\/([\d\.]+)/);
if(
( ie!=null && ie[1] >= "6.0" ) ||
( fire!=null && fire[1] >= "1.0.2" ) ||
( moz!=null && moz[1] >= "1.6" )
) {
} else {
alert( "Integrated Lights-Out 2 supports Microsoft Internet Explorer version 6.0 or greater, Firefox version 1.0.2 or greater, and Mozilla version 1.6 or greater. Some functionality may not work and pages may not format correctly on other browser platforms. This browser platform reports it is \""+navigator.userAgent+"\""); }
Of course that's just a warning, not just dumping them to the error page. It IS annoying that we do such stupid browser detection tricks instead of coding to standards. In an ideal world that statement would be something like:
If browser.supports(HTML4) do {} else alert ( "upgrade to a modern browser" );
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
... who was expecting this to involve the new recovery.gov?
Thanks for that, now I feel kinda like an idiot. At least I am now a smarter idiot than I was half an hour ago.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
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.
Ah yes, Dell Remote Access Controllers have a shitty as hell web interface that only seems to work in IE. I think it's supposed to work in firefox but it never has for me.
Photos.
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.
In general, not supporting a 5% market segment because it would cost too much development effort may be a reasonable decision.
In this case, the real WTF was submitting the product in a bid for the vendor of said 5% market segment. And simply throwing an error if Opera is detected. That's like opening a business in a black neighborhood and putting up a sign that says "Niggers not allowed" ;-)
C - the footgun of programming languages
Why would it do that in the first place? It's not a desktop application. It's a damn web page and is not some Google maps wannabe.
Quick way to get 30% Funny 70% Troll: defend Opera browser on
Especially as Ford and GM need many more spare parts than Toyota anyway?
Sorry, couldn't resist
(b)If deploying a system like this, IEC says the positive wire should be BLUE and the negative should be GREY. If the wires are completely isolated (i.e. neither is grounded or connected to PE) the positive wire should be BROWN. In the US (Opera isn't in the US) the wiring convention is WHITE for the return and BLACK for the negative wire. Just DON'T ever use red and black and reverse their normal functions. 48V can make very impressive arcs.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
anyone that is using Opera can just switch over to another browser to perform the task at hand*.
Except Opera has a significant exclusive presence on appliances. For instance, I don't know of any other web browser that can be installed on a Wii or Nintendo DS system without a jailbreak, and there are plenty of phones for which Opera Mini or Opera Mobile is the best web browser. Or was this your * ?
I'd mod you "-1, Annoying as hell typing syntax".
Though to be fair, if you're the kind of person who a) ows a Rolls Royce Phantom (or a Bugatti Veyron, or a Mercedes-MacLaren F1, or...) and b) shops at 7-11, you probably qualify for the Disabled spaces... Mentally.
If you believe everything you read, you'd better not read. - Japanese proverb
You're missing one obvious factor. There are a lot of great browsers written using pre-existing code. Omniweb is a great Mac browser that uses Webkit for HTML, and Spidermonkey for Javascript. The behavior of that javascript is known, but browser detection routines for every minor browser made of major software is ridiculous. You write based on standards, and test in a few major browsers. #2 is the only option. NEVER BLOCK A USER.
As Opera has been complaint to most standards for years, while it took other browsers years to do the same, it is the websites that have the incompatibilities, not Opera.
Driving your nice little environment degrading Toyota Prius to Germany and finding out they have trimmed all branches of trees so that only VW, BMW, Merc and Audi can pass through without being scratched would probably upset you just as much as your statement would to any Opera supporters. And you would not be blaming Toyota, you'd be blaming the German government. Why does the word rationale mean something completely different when it's about IT?
Also, afidel's post is far from "right-on", as he/she/it too makes at least two assumptions (while debunking someone elses!): Opera being an insignificant browser; you're forgetting all mobile devices here. And Opera's request being insignificant. Judging from what's Opera's requirements are, I'm assuming (see, there's one!) they're ready to order some very serious amounts of high-end server stuff.
I don't think they would have minded so much if it reported politely that it doesn't work with Opera, rather than just dumping unceremoniously to an error screen without any indication why. It would make people assume that Opera was itself the problem, when in fact in this case there is no real error.
We DO know the context; it's a flippin' webadmin site! How hard can it be to write it in proper HTML/CSS/whatever?!
Chances are 90% of it was stolen from Open Source PHP stuff anyway.
... and it worked. It displays just fine. Are they trying to make their competitors look good or something?
now we need to go OSS in diesel cars
Generally you can free up the file handles. http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
Got a file stuck? Open a cmd prompt, run 'handle filename' to get a list of file handles for that file. then 'handle -c <HEXHANDLE> -p <PID>'. There ya go, file is forced closed and you can delete it.
Do you Gentoo!?
If you hire a good developer your site should work for all browsers. It's not fucking rocket science.
more to the point, try doing less 'fancy schmancy stuff' and you'll find that simple web forms and UI's work JUST FINE with all browsers. even lynx.
I am not a fulltime web devel (I write software, not web pages) but I have been able to get some web sites up and running that use the form/cgi paradigm and they work across ALL browsers. what's not to work?
oh, you want flash and blinking and 'as you type' stuff that happens?
go elsewhere, then. go write some stupid windows program if you want to 'act that way'.
but that crap does not belong on serious web apps. 'web masters' (what a joke..) have ruined the web with all the blink/fancy crap they try to pull off.
the web was designed so that you would NOT have to check (!) what browser you are sending data to.
why the hell SHOULD a server-side program care how you render data? you've done your job, you tagged paragraphs as paragraphs, lists as lists, images as images. you did what html was designed to do!
just annoys the hell out of me that the web was NOT designed for 'making remote word processors'. it just was never meant for such things. we have twisted this nice interoperable (key term that has lost its meaning, sadly) web into some overly complex beast that 'needs' to know how you render data. or worse, wants to TAKE PART in the font sizing, spacing, colors and so on. what a huge mistake; and its already too late to fix the web at this point; too many idiots are trying to make web programming just another bloated GUI.
in a way, I wish we didn't have such fat pipes or such fast processors. maybe then we'd see a return to sanity and some level of minimalism. that's what web UI's were *supposed* to be. tag the elements and stay the hell away from FORMATING.
--
"It is now safe to switch off your computer."
Some of their ethernet switches block non-IE browsers as well. I forget which is which, but I think the PowerConnect 6000s warn about the browser but let you through, and the 5000s just refuse to let you in when running firefox on linux.
My experience is from a few years ago and perhaps they have fixed their firmware since then, I know I filed a complaint.
Or just use Unlocker: http://ccollomb.free.fr/unlocker/ , it catches failed attempts to delete/move files and pops up a window showing you what's locking the file.
What time is it/will be over there? Check with my iPhone app!
The device we are currently releasing deliberately checks for and disables MSIE.
The reason is the code uses live embedded SVG visualization of the process which MSIE is simply not capable of.
There are no easy and simple alternatives (don't get me started on Flash), and the visualization part is an essential part of the user interface, with various modules clickable to change their state in real time. Also, the SVG files can be directly used as images in the documentation, being 100% valid pictures of projects of whatever the device is to drive. It is not intended for a wide audience and we can mandate the customers to use certain tools (you need training and certification to be allowed to access it at all).
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
You really, REALLY don't want to know why some places mandate the GIMP as a graphics editor.
.sig withheld by request
Way ahead of you, my friend!
.there is enough of everything for everyone.
What's the current SMP/NOK exchange rate?
The same as the current SMP/ATD (Alterian Dollar) exchange rate. The problem here is the Vogons mod everything down except their own poetry.
Reply to That ||
The problem there is that not all browsers follow the standards. Specifically the one that most people still use. Especially in Corporate environments. I know that we make sure out stuff works on IE first, Safari second, firefox third, and then Opera. Because our traffic breaks down to 88% MSIE, 8% Safari/Safari Mobile, 3% FireFox, 1% other.
We've written standards complaint code before that works in everything but MSIE. The previous guy at my post held the opinion "They should upgrade to a real browser". Our company lost sales and he lost his job.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
Stupid practice.
The reason for standards isn't to keep companies like Microsoft in check, though it has that result, and that is good for the marketplace. Standards are supposed to reduce costs. In this particular example, the way your iLO team *should* do the job is to first check for html compliance, then check for IE6 - as the largest-share noncompliant browser, then check for any other non-compliant browsers you can't afford to ignore. At that point, you have 3 ways to branch in your code - compliant, IE6, and unsupported.
The software industry is pretty nearly hopelessly fouled up, because of the lack of clear and properly used standards. A large part of this is Microsoft's fault, though not all, by any means. Unfortunately, rather than software getting better, other industries are getting worse. Customer lock-in is an addictive drug, and in the long term is probably as wise, even from a business sense.
The living have better things to do than to continue hating the dead.
I've seen Opera do some funny things with some RIA's I've written, the same code works on webkit, trident, and gecko with no problems, but Opera does some funny things. My code is probably wrong(it's a hack job on some badly designed pre-existing code, not a clean rewrite), but nevertheless it works fine on everything else.
Seeing that I basically have 3 options.
Any of these three options can be correct, depending on the needs of the business and the severity of the problem. In all reality, no matter how big this guy thinks there server order was, it was probably only a drop in the bucket overall, and in all reality no one was fired and nothing really happened, they lost a sale. They lost it on something stupid, but it's only one sale no matter how big it is(and it likely wasn't really all that big).
Opera is not infallible, they've come up with a few fairly innovative design ideas, but they've always been crippled to a certain extent by ideology. Part of why Opera was and is so fast, and so light is that it is basically incredibly anal about exactly correct HTML syntax. In theory this is a good idea, but in practice it means that Opera has been plagued by pages which don't render correctly for it's entire lifespan. A lot of the web is sort of kludged together because the standards defining how to do things properly are always 2-3 years behind what people are actually doing, a lot of WYSIWYG editors spit out bad code, hand coders make mistakes. All these things happen, and Opera has never been even the remotest bit forgiving(oddly enough firefox is by far the most forgiving, substantially more so than IE) of any of it, which is one of the prime reasons IMO why it never really gets much market penetration despite generally speaking having most of the innovative web ideas before the competition. The fact that until fairly recently it was ad driven or cost money, isn't open source, and doesn't come installed on anyone's PC are of course others. There's really no need to switch to another browser which results in more broken pages, isn't free as in speech, and until very recently wasn't even free as in beer, no mater how innovative it is.
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.
Does this really work? For the given example, does "if (document.gelElementsByClassName)" really mean that it will work the way you expect, for any and every implementation? That's the other part of standards - there's following the standard, and then there's "following the standard", which aren't necessarily interoperable... like Kerberos and a certain unnamed implementation.
The living have better things to do than to continue hating the dead.
This has nothing to do with web standards. The alert message says it's not _supported_ on other browsers. Here "supported" means "someone has actually tested it on every supported version, if it something doesn't work, call us". If anything breaks and you call support, they can't say "that's a bug in your browser". If it is a browser bug they have to work around it.
fortune favors the lucky
Except the Cadillac doesn't specifically forbid Ford executives from riding in it, nor does Airborne refuse to deliver to UPS clients.
-Billco, Fnarg.com
So much wrong - I don't even know where to start.
Stuff happening "as you type" is extremely useful in some circumstances. Excluding that functionality because it might not work is a terrible idea. Updates to small portions of the page instead of waiting for a page reload is a good way to make the site work better and faster.
you don't need a windows program to make it "act that way". You just need proper feature testing and graceful fallback. Unfortunately, that takes a while to test. If a browser has one feature but not another, and another browser is backwards, you could have some strange results depending on the order of feature checking.
Flash can add a lot to the usability as well, again if you have a graceful fallback. And again, different browsers or even different add-ons can change the experience. You can have NoScript blocking both scripts and Flash, or just one or the other. You don't want the website to be 100% flash with no other options - that's just stupid. I don't spend any more time on those sites. It's not the "web masters" creating this problem - it's the people who write requirements for the site (or work with the web dev). They want it to work a certain way, and pay enough to get that done - but not for additional execution paths like graceful fallback.
The web was designed to transfer data. It was not designed to make all data render on all clients. Ideally, every client should support the same feature set. But there are a lot of optional "MAY" or "SHOULD" items just in HTML, making it a vastly different experience even if written 100% to the standard. In an ideal world you'd write it once. But we all know that software has bugs, and we have to be aware that other people's bugs make us as web masters look bad.
A server-side program SHOULD care how you render data, because it can make the difference between an amateurish site and one that looks like a real business. People are more likely to spend time on a site that looks like someone took time with it, as opposed to a fly-by-night operation shoved up in a few hours.
the web was not meant for a lot of things, but it is easy to add simple features which make browsing a lot easier, more intuitive, and entertaining. Images weren't even intended in the original development efforts, but I think you would agree they can help. Especially on commercial sites. Things evolve, and it's stupid to ignore these things just because they weren't intended.
You seem to be advocating zero fonts, zero colors, zero images, zero layout - even I, who browses with scripts off and no flash plugin and uses "ImgLikeOpera" so I can quickly disable/enable images, realize that there are benefits to using all of the enhancements available.
I agree that the web should be browsable with Lynx, but I also think it should be browsable with all the extras, if they add functionality or increase ease of use.
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."
No, that's correct. Black indicates ground, and red indicates power (which is -48V). This is a -48V system, so it's backwards from what you're used to looking at.
But since they are insignificant in the browser market
Opera is only insignificant in U.S. and Asia. It's much more noticeable in Europe in general, and very prominent in Eastern Europe and especially in ex-USSR / CIS countries, topping at about 40% there (and yes, it does overtake Firefox there). Which is still a fairly large market - you might not care about it, but for a lot of companies, it would be silly to ignore it.
Then use a library like jQuery or Mootools. The overhead is low (30-50kb) and the gains in speed, cross-browser support and extra functionality (jQuery's CSS3 selectors in IE!) is enormous.
Even if you're a veteran who knows how to code your way around all the different inconsistencies, it's so much nicer to let a library handle that and focus on what you really need to get done.
You'll eventually run into something or even find that the library maybe working against you in some way. But I want to say that 99% of the time it'll save you time and headaches.
If you can't mod them join them.
It mostly works. It's possible, but not likely, that IE's version of getElementsByClassName does something differently than Firefox's version, but the odds are if they implemented it at all, it's correct.
There are lots of places where a check like this won't help you at all, though. For example, try to figure out which mouse button is pressed when an event occurs-- IE and Firefox/DOM use different methods: http://www.quirksmode.org/js/events_properties.html#button
Now here comes the place where I get modded down for trolling: the IE way of doing things frequently, in fact almost always, makes a hell of a lot more sense than the W3C way. Examples:
1) The existence of "document.readyState" allows a Javascript to know if the document is ready for DOM manipulation even if the Javascript was injected into the page after the ONLOAD event already fired (for example, a Javascript which can either be included in the page or as a bookmarklet.) There's no way to do this using the standards.
2) The IE property name "innerText" makes a hell of a lot more sense than "textContent", since "innerHTML" is already in the standards. "innerHTML" should match "innerText", or "textContent" should match "HTMLContent". The standards make no sense here. Given, IE should implement "textContent" (and in fact I think IE8 does), but FF should also implement "innerText".
3) The above-mentioned mouse button handling code. In Firefox and other standards compliant browsers, there's no way to tell if two buttons were pressed simultaneously. Additionally, there's no (reliable) way for the browser to communicate that no button was pressed at all when the event occurred. The standards on this are retarded.
4) The way IE handles events makes it possible to include static event handlers (i.e. event handlers hard-coded into the HTML) and still receive an event object. As far as I can work out, there's no standards-compliant way to do this.
Comment of the year
Fantastic! I nominate yours for a Slashdot Achievement (which if they don't have then they certainly *should* have!)
Most Tortured Car Analogy of the Year ;)