You use a similar process within your typedef'ed stuff, if you're putting it in-place instead of making it a defined data structure and creating a pointer to it.
It's not difficult to figure out the sizes of your data structures.
Memory usage... double word boundaries vs word boundaries. The compiler is not guaranteed to be responsible for proper ordering of declared variables. It is only responsible for translating your code into machine language.
If you declare an int before a double, you end up with 4 bytes (usually, on a 32-bit system) of unused memory/space between the two, because an int is a 4-byte value which starts on a word boundary, where a double is an 8-byte value which starts on a double word boundary. The compiler is not written to reorganize your code, unless, assuming you have an extremely good one, you turn on the optimizer. Some optimizers don't do the job right. Why chance it?
He wasn't wasting the money. He's been going through so much code that was poorly written to begin with, takes hours to run, and has to upgrade its functionality.
During all that time, he's cut run times by at least 50%. He's working for a non-profit, and they don't necessarily have the money to spend on new hardware.
You have fallen into the trap. You are failing to account for the amount of computing time that can be saved. If you can cut the run time of a program in half, there's that much more computing time and power available. Do it to several programs, and you can find yourself with several extra hours of computing time. What you propose is that every time you need to improve your run times, you have to spend an extra $200+. What he did was he cut out the need to continuously spend extra money per the Wintel methodology.
He's trying to weed out the modern day "programmers" who don't know why you should declare doubles before longs and floats, longs and floats before ints and pointers, ints and pointers before shorts, and shorts before chars.
I put it to you thusly: he's trying to save money in the long term, while you're being penny-wise and pound-foolish.
It's a simple answer: Primary desktop placement of the "Get AOL Now" icon. That was the whole reason Microsoft pre-placed that stuff within their installations. AOL and Microsoft had the agreement that AOL uses IE as the basis for its browser, and MS would put the AOL icon right on the desktop.
Of course, why AOL hasn't converted now is beyond me. MS has long since terminated that icon placement in favor of its own MSN one.
OO can actually increase it too. The easier you want to make it for the end user, the more behind-the-scenes work you have to do. While your code may look optimized, the finished product, once compiled, may be a heap of inefficiency.
Yes, this is true with many lanugages... it's very easy to write inefficient code. Unless you're writing well-planned assembler code, you're always going to have some inherent inefficiencies.
There's a small problem with your claim. There still has to be a hook to the unused section of the code in the main one, usually in the form of a function or method call. Each one of those adds a few bytes to the program footprint, so it does cause the size of the loaded code to increase. How many bytes per call are added is entirely dependent on the architecture on which you run. Of course, if it's embedded as part of a localized if/else block, then the size of the loaded code will increase based on what you've added there.
I think all programming students should have to code for a system like this. It gives you a MUCH greater appreciation for what the compiler is doing for you, and what the consequences of simple changes can be.
I agree completely. I've done some programming for OS-9, and when we were creating some software libraries, we had to do was worry about things like program footprint size and memory allocation/deallocation. We were using a cross-compiler and doing development in C and C++. Something as simple as the order in which you declare the variables could make a noticeable difference in program size. Memory allocation and deallocation had to be done by the top level of the program. The support libraries had to be written to accept a memory block to use and how large it was. The last thing we wanted to do was use up the 4MB of RAM (which had to hold the OS, plus any programs you were running) we had by making large chunks of it unusable because it first was malloc()'ed, then free()'ed. We didn't want to risk having whatever garbage collection scheme existed to be able to properly operate... assuming there even was one. (This was 1997.)
Of course, if you want speed, you have to learn to take advantage of the "short circuit" of && and ||. While nobody's really going to notice the several nanoseconds you might use up by doing !strncmp(str1, str2, n), when you process millions of rows from a database, it can make a big difference by not forcing a program pointer jump by saying if (str1[0] == 'a' && !strncmp(str1, str2, n))...
The mindset we have now is a direct result of the prevailing attitude that memory is cheap and processors get faster. A friend of mine is no longer asked to interview prospective candidates because he would always ask questions about optimizing code and making it run faster. The candidates nearly always had the look of a deer caught by headlights, and these supposedly knowledgable programmers (interviewee AND interviewers) couldn't answer these questions.
Oh dear. In this modern society of, "I don't want to think, I just want it to work," mentality, you're asking an awful lot of the common user. The fact that you went out and learned how to do something is admirable, but the majority of people out there just want to be able to turn it on and have it work.
As others have said, a POST does NOT tell you about hardware incompatabilities. In order to ensure that all the hardware will play nice together, you need more than a POST and a quick BIOS test. You need to actually bring up an application or two... which requires that you install some kind of operating system in order to check your configuration, IRQ conflicts, port settings, memory issues, etc.
I've had hardware pass the POST, but when it came time to actually boot, it died. Why? Guess what a POST can't tell you... bad sectors on a hard drive.
There was an attempt to get money refunded because people said that they didn't want Windows pre-installed. The way to get the refund was to take the computer out of the box, put a different OS installation disk in, and install the new OS, completely nuking Windows off the machine. With this done, you could get a refund of the cost of Windows, because you did not accept the terms of the EULA.
When you tried to do this, companies would say that you needed to contact Microsoft for the refund. Microsoft would say you needed to contact the computer seller. Once you finished running around in circles, you found out that it only cost the manufacturer about $1.00 to put the copy of Windows on that machine, and that's what you'd have refunded to you.
Of course, if you needed to get Windows back on the machine, now you'd have to pay the $180 for a full copy of it, because you had to return any and all materials from your computer purchase in order to get your dollar back.
Of course, if you managed to convince the manufacturer to sell you a computer without an operating system pre-installed, you had to pay an extra $10-$50 for that choice. Why? In order to be sure the computer worked in the first place, they had to install Windows to test the peripherals and other devices! Oh, did you want warranty support too? Sorry. "We don't support other operating systems."
The whole pre-installation thing was pure genius on the part of Microsoft's marketing department.
People won't switch because the games aren't there, and the games aren't there because the market share hasn't gotten to a point where it makes sense to provide lots of support.
The whole topic of games development using DirectX vs OpenGL has been discussed to death here. Sure, the game writers could do it in OpenGL instead of DirectX, but Microsoft has apparently made using DirectX extremely easy. Maybe what it will take is someone to write a translation library that will basically translate the DirectX calls into OpenGL calls. Once that's out there, more games can be done for non-Windows systems. While all that's going on, OpenGL must be made friendlier to use than DirectX.
OK, it's a lot... but if you really want to lure the games developers to the side of platform independence, you have to give them a good reason to do so.
How stupid can these people be? Buying from spammers?
You'd be surprised. Some people can't necessarily tell the difference between an e-mail ad from a company with whom they've already conducted business and something that looks very similar. I don't necessarily consider them all to be stupid. They may just be naive about the whole thing. I know that I've taught friends and family some of how to differentiate junk from real, and to always be suspicious of anything that comes in advertising something or asking them to validate credit card, bank account, or other financial information.
If they can be so immoral as to spam you, aren't they more likely to be crooks and defraud you as well?
Not if they're trying to be a legitimate business, or at least maintain a valid business license in the US. I won't do business with spammers, and I tell friends and family the same. They're adults, and can make decisions for themselves. Once I warn them, I've done my part.
If this developer at Microsoft didn't fix "enhanced mode" Windows, then some other developer at Microsoft would have. It's not like Microsoft was aching for cash to hire smart developers to tinker with 80386 instruction sets.
It's also possible that some developer at IBM, Apple, or SomeOtherSoftwareCompany might have gotten it to work, in which case Microsoft itself would've only been a licensee of the technology, not the copyright holder. Microsoft wouldn't necessarily be the dominant desktop player it is, unless it decided to devote all of its energy into other kinds of software, like MS Office.
If we're playing the "What if?" game, we could also ask the question, "What if Steve Jobs didn't hold that lawsuit threat over everyone else when it came to building something with the 'look and feel' of a Mac?" Would Mac be the dominant desktop now? Would OS/2? Would Windows? I know for certain that Jobs is probably kicking himself in the butt over this one all the time.
What they did at one of my previous contracts is that they'd have systems security running password crackers, performing some of the basic, simple substitutions people would do (zero for O, one for L or I, etc). If the password cracker managed to get your password by doing that combined with dictionary searches, it locked your account, and you had to call the help desk to get your account unlocked.
Is that perfect? No. Will it avoid silly stuff like "qwerty"? Yes, if it is set up to search for those things.
The courts have already ruled that the sending of spam itself is
protected by free speech, so long as you do not falsely advertise or advertise that you will provide something that is already illegal. What you could make illegal is exactly what CAN-SPAM does... masking your identity, failure to comply with requests for removal from mailing list, etc. This, apparently, doesn't help.
2) Make it illegal to have ANY financial relationship, direct or indirect, with spammers no matter their origin.
Doesn't that go against the basics of a free market system? What would be the grounds for doing this? You're just entering into a business contract when you do anything like that. Unless they're spamming to do something illegal, as long as both parties meet the terms of the contract, there's nothing the government can really do.
3) Make all earnings coming from products sold thru SPAM, illegal. People will have then to do moneylaundring, which is illegal, too!:)
Oh, how I wish... but if the product or service itself is legal to begin with, this can't be done. You've got a perfectly legal business contract between two parties.
Even when spammers use foreign ISPs, many reside in the U.S. With my proposals 2) and 3), you're forcing them to MOVE OUT.
Hmm... import tarrifs... we could nuke the federal debt if we levy a high enough tarrif on products sold via spammers who spam from foreign sites... their advertising came from outside, therefore tehy should be a "foreign company," subject to the same import regulations anyone else is, even if their warehouse is here in the US...
No, completely disallowing open relays is precisely what I meant. Open relays are the way spammers currently get a lot of it out onto the network.
Go look at your current sendmail config files and see about the "allow relaying" stuff. If you want your mail server to be blacklisted, go right ahead and allow open relays. You can leave it as a configurable option, but when you are an open relay, you are subject to not having any mail sent through you transferred to the recipient.
When you try to outlaw it in the US, someone will move it to Russia, China, or some other country that would just love to get the money from someone who wants to buy bandwidth, server space, computing power, etc.
The only way we'll actually see a reduction in spam is to put true measures in the MTAs such that there is absolutely no way to mask the sender's address or host, and completely disallow any form of relaying. Then, you have to start setting up the MTAs to not accept any mail delivered by older versions.
Yes, I realize the impact this would have on the internet and e-mail delivery... but if you want to eliminate it, or at least be able to truly identify the sender, this is about the only way to actually do it.
Then why have standards at all? That's like writing C code and leaving off the closing curly brace at the end of the main() function, expecting your program to compile. You would be able to write whatever you want, expecting the parser to be able to "do what I mean, not what I say." Standards do not leave room for interpretation on many things. It's like a guy at my last contract who wrote stuff that he said was XML, but when you looked at it, a SAX parser would fail because he failed to close the tag, or make it a self-closing tag. We jokingly referred to it as iML, where "i" was his first initial. We were also lucky that the only stuff reading it was stuff that used his parsing library.
If your client is worried about who's going to get it done the cheapest, well, you normally get what you pay for. If you're providing it the cheapest AND you're making it standards compliant, kudos to you. If your client is looking for the best bang for the buck, as long as your delivery times are met, warranty support is always there, and you're doing it for the best price, to change development/support staff in the middle of things is usually pointless.
Standards exist for a reason. They weren't drawn up by a single person. They were drawn up by a committee of members who come from various sections of the industry. They're set to achieve a reasonable set of expectations. If you have everything compliant to the existing standards, then ANYONE can use it, modify it, etc.
Re:In defense of...
on
Firefox In Print
·
· Score: 2, Insightful
You code for one, but adjust to make sure it works in the other.
Actually, you should code to the standards provided by W3C, when it comes to HTML. If a browser fails to accept it or render it properly, the browser itself is broken, and you have the ability to say, "It's the browser's fault." You then ask the client to file a bug report with the maker of the browser, and proceed to write a temporary fix to at least keep them happy for the moment. Inform your client that you intend to continue providing only W3C-compliant HTML, and that any temporary fixes you provide could go away, based on changes to the standards or other requirements.
If it's JavaScript, well, there are some real differences that you have to code for... event handling, as an example. If you have things done properly, you've already got a script skeleton where you can just fill in the blanks.
Sadly too many developers simply write sites for one browser (usually IE) and don't even spare a thought for users of alternatives.
That's because the most frequent reason for doing an IE-only coding is that IE is far too forgiving of non-compliant HTML. Developers use that as a crutch. It's the old, "Code for the 90%, and then add the stuff to support the 10% as needed," because, thanks to companies like AOL using IE as its built-in browser, it appears that most client connections come from IE. With that "fact," they proceed to develop the pages for the majority of clients.
There's a reason standards like ANSI, POSIX, W3C, and ISO (OK, ISO standards frequently are camels, but that's a totally different topic) exist. By following those standards, anything you write should be portable from platform to platform, or at least within the genre.
Vulnerable operating systems are increasingly moving onto a number of different devices. Last year the Slammer worm infected 13,000 Bank of America ATMs as a result of them moving to a Windows-based operating system.
"I've even seen screenshots of major commercial aeroplanes with Windows 2000-based operating systems," said Mikko Hypponen, director of anti-virus research at Finnish firm F-Secure. "Cars are an obvious target for viruses. It's okay if you don't use the operating system for the engine and the brakes, but when you do..."
Besides, here's a couple of other things, including a
press release from Microsoft about how the BMW 7 series has WinCE as its embedded system, and a discussion
on some of its failures. Old news? Maybe. Still an extremely likely connection.
With the huge proliferation of Windows viruses and worms, it's no surprise that a bluetooth-transmittable one is now available to infect your embedded devices in your major items.
Only this time, you don't have a reset button or three-fingered salute available to you to clean out the memory.
About the only advantage here is that unless someone is able to write to the flash ROM or BIOS or whatever they use to store settings, it should go away if you simply disconnect the battery, let it sit for a few minutes, then reconnect and restart... unless you need some kind of specialized tool that only the dealers will have.
There are multiple reasons why some people won't use Firefox.
"IE Only" pages
You have to convince developers to stop writing "IE Only" pages. You will also have to get someone to write an extension or plug-in for people to be able to get to their Exchange server e-mails.
Corporate policies
Some corporations have "authorized" software lists and strictly enforce them on their computers. They have every right to do so, since the machines are their property, mind you. The real trouble lies in some of the contractual agreements some of these places have. The corporate site licenses can actually prohibit you from installing any Open Source Software on your machine. Microsoft will give better prices for people willing to sign those kinds of agreements. This includes, but is not limited to, web browsers (e.g. Firefox, Mozilla), language interpreters and compilers (e.g. perl, gcc), and text editors and other word processing software (e.g. OpenOffice, emacs).
Those people get used to using IE to the point that when they go home and surf the web, they want consistency, so they just continue to use IE. I keep telling my brother to stop using it except for those pages where it's absolutely required (Windows Update). He just wants consistency. I'm just thankful that he keeps installing the critical updates as they arrive.
Until you start covering primary reasons why some people won't, or in some cases can't, switch, IE will always have at least a partial hold on the browser market.
There are a couple of problems here. Some sites require IE because they want to use some kind of known feature (bug?) or extension (security hole?) in order to render the page a certain way. Sites doing this will frequently do some kind of user agent test and determine what browser is trying to access the site. If it's a non-IE browser, it gets redirected to a page saying, "IE is required to view this site," or something like that.
The other sites just serve up broken HTML. This can be checked by trying to parse the page in the GRE and having it come back with a return code of some kind to say, "Successfully parsed," vs "Invalid HTML." If it comes back with the "Invalid HTML" response, you can then pass it off to IE to see if it will render there.
Overall, by doing this, you defeat the purpose of using Firefox, and you continue to undermine any standards set forth for what proper HTML should look like.
Other software is not your operating system. Your computer can run without the latest games, word processors, spreadsheets, databases, and all those other applications.
Your computer cannot run without an operating system, so to deny any kinds of operating system updates will cause more problems as more and more systems don't get the necessary fixes to keep from having the box commandeered by whomever.
Yes, Microsoft has a right to deny updates/support for pirated software. This could easily become a public relations nightmare, however, when the systems running pirated copies of Windows start causing all kinds of havoc on the internet... not that they don't already, but it will get a lot worse.
Also, if they're offering "discounted" licenses to reduce the amount of piracy in China, Norway, Czech Republic, etc, why do they think they can still charge $180+ for a license in the US? That's a rip-off.
I recall an article here on slashdot within the last couple of weeks that suggested that Moore's Law is slowing down, plateauing, etc., because if it really held true, we'd have 4GHz CPU chips from Intel by now, and we're a little shy of that.
Basically, for us to get to 1024 times the computing power we have now, we'd have to have some kind of surge in R&D into new ways of computing that don't involve silicon chips the way they are now. Have they even ditched 16-bit mode from the Intel CPUs yet? Seems like the microcode necessary to support that is just a big waste of space.
It's not difficult to figure out the sizes of your data structures.
If you declare an int before a double, you end up with 4 bytes (usually, on a 32-bit system) of unused memory/space between the two, because an int is a 4-byte value which starts on a word boundary, where a double is an 8-byte value which starts on a double word boundary. The compiler is not written to reorganize your code, unless, assuming you have an extremely good one, you turn on the optimizer. Some optimizers don't do the job right. Why chance it?
During all that time, he's cut run times by at least 50%. He's working for a non-profit, and they don't necessarily have the money to spend on new hardware.
You have fallen into the trap. You are failing to account for the amount of computing time that can be saved. If you can cut the run time of a program in half, there's that much more computing time and power available. Do it to several programs, and you can find yourself with several extra hours of computing time. What you propose is that every time you need to improve your run times, you have to spend an extra $200+. What he did was he cut out the need to continuously spend extra money per the Wintel methodology.
He's trying to weed out the modern day "programmers" who don't know why you should declare doubles before longs and floats, longs and floats before ints and pointers, ints and pointers before shorts, and shorts before chars.
I put it to you thusly: he's trying to save money in the long term, while you're being penny-wise and pound-foolish.
Of course, why AOL hasn't converted now is beyond me. MS has long since terminated that icon placement in favor of its own MSN one.
Yes, this is true with many lanugages... it's very easy to write inefficient code. Unless you're writing well-planned assembler code, you're always going to have some inherent inefficiencies.
I agree completely. I've done some programming for OS-9, and when we were creating some software libraries, we had to do was worry about things like program footprint size and memory allocation/deallocation. We were using a cross-compiler and doing development in C and C++. Something as simple as the order in which you declare the variables could make a noticeable difference in program size. Memory allocation and deallocation had to be done by the top level of the program. The support libraries had to be written to accept a memory block to use and how large it was. The last thing we wanted to do was use up the 4MB of RAM (which had to hold the OS, plus any programs you were running) we had by making large chunks of it unusable because it first was malloc()'ed, then free()'ed. We didn't want to risk having whatever garbage collection scheme existed to be able to properly operate... assuming there even was one. (This was 1997.)
Of course, if you want speed, you have to learn to take advantage of the "short circuit" of && and ||. While nobody's really going to notice the several nanoseconds you might use up by doing !strncmp(str1, str2, n), when you process millions of rows from a database, it can make a big difference by not forcing a program pointer jump by saying
if (str1[0] == 'a' && !strncmp(str1, str2, n))...
The mindset we have now is a direct result of the prevailing attitude that memory is cheap and processors get faster. A friend of mine is no longer asked to interview prospective candidates because he would always ask questions about optimizing code and making it run faster. The candidates nearly always had the look of a deer caught by headlights, and these supposedly knowledgable programmers (interviewee AND interviewers) couldn't answer these questions.
As others have said, a POST does NOT tell you about hardware incompatabilities. In order to ensure that all the hardware will play nice together, you need more than a POST and a quick BIOS test. You need to actually bring up an application or two... which requires that you install some kind of operating system in order to check your configuration, IRQ conflicts, port settings, memory issues, etc.
I've had hardware pass the POST, but when it came time to actually boot, it died. Why? Guess what a POST can't tell you... bad sectors on a hard drive.
When you tried to do this, companies would say that you needed to contact Microsoft for the refund. Microsoft would say you needed to contact the computer seller. Once you finished running around in circles, you found out that it only cost the manufacturer about $1.00 to put the copy of Windows on that machine, and that's what you'd have refunded to you.
Of course, if you needed to get Windows back on the machine, now you'd have to pay the $180 for a full copy of it, because you had to return any and all materials from your computer purchase in order to get your dollar back.
Of course, if you managed to convince the manufacturer to sell you a computer without an operating system pre-installed, you had to pay an extra $10-$50 for that choice. Why? In order to be sure the computer worked in the first place, they had to install Windows to test the peripherals and other devices! Oh, did you want warranty support too? Sorry. "We don't support other operating systems."
The whole pre-installation thing was pure genius on the part of Microsoft's marketing department.
The whole topic of games development using DirectX vs OpenGL has been discussed to death here. Sure, the game writers could do it in OpenGL instead of DirectX, but Microsoft has apparently made using DirectX extremely easy. Maybe what it will take is someone to write a translation library that will basically translate the DirectX calls into OpenGL calls. Once that's out there, more games can be done for non-Windows systems. While all that's going on, OpenGL must be made friendlier to use than DirectX.
OK, it's a lot... but if you really want to lure the games developers to the side of platform independence, you have to give them a good reason to do so.
You'd be surprised. Some people can't necessarily tell the difference between an e-mail ad from a company with whom they've already conducted business and something that looks very similar. I don't necessarily consider them all to be stupid. They may just be naive about the whole thing. I know that I've taught friends and family some of how to differentiate junk from real, and to always be suspicious of anything that comes in advertising something or asking them to validate credit card, bank account, or other financial information.
If they can be so immoral as to spam you, aren't they more likely to be crooks and defraud you as well?
Not if they're trying to be a legitimate business, or at least maintain a valid business license in the US. I won't do business with spammers, and I tell friends and family the same. They're adults, and can make decisions for themselves. Once I warn them, I've done my part.
It's also possible that some developer at IBM, Apple, or SomeOtherSoftwareCompany might have gotten it to work, in which case Microsoft itself would've only been a licensee of the technology, not the copyright holder. Microsoft wouldn't necessarily be the dominant desktop player it is, unless it decided to devote all of its energy into other kinds of software, like MS Office.
If we're playing the "What if?" game, we could also ask the question, "What if Steve Jobs didn't hold that lawsuit threat over everyone else when it came to building something with the 'look and feel' of a Mac?" Would Mac be the dominant desktop now? Would OS/2? Would Windows? I know for certain that Jobs is probably kicking himself in the butt over this one all the time.
Is that perfect? No. Will it avoid silly stuff like "qwerty"? Yes, if it is set up to search for those things.
MTA, or Mail Transfer Agent, meaning sendmail or postfix, or any similar program that is supposed to deal with SMTP.
The courts have already ruled that the sending of spam itself is protected by free speech, so long as you do not falsely advertise or advertise that you will provide something that is already illegal. What you could make illegal is exactly what CAN-SPAM does... masking your identity, failure to comply with requests for removal from mailing list, etc. This, apparently, doesn't help.
2) Make it illegal to have ANY financial relationship, direct or indirect, with spammers no matter their origin.
Doesn't that go against the basics of a free market system? What would be the grounds for doing this? You're just entering into a business contract when you do anything like that. Unless they're spamming to do something illegal, as long as both parties meet the terms of the contract, there's nothing the government can really do.
3) Make all earnings coming from products sold thru SPAM, illegal. People will have then to do moneylaundring, which is illegal, too! :)
Oh, how I wish... but if the product or service itself is legal to begin with, this can't be done. You've got a perfectly legal business contract between two parties.
Even when spammers use foreign ISPs, many reside in the U.S. With my proposals 2) and 3), you're forcing them to MOVE OUT.
Hmm... import tarrifs... we could nuke the federal debt if we levy a high enough tarrif on products sold via spammers who spam from foreign sites... their advertising came from outside, therefore tehy should be a "foreign company," subject to the same import regulations anyone else is, even if their warehouse is here in the US...
No, completely disallowing open relays is precisely what I meant. Open relays are the way spammers currently get a lot of it out onto the network.
Go look at your current sendmail config files and see about the "allow relaying" stuff. If you want your mail server to be blacklisted, go right ahead and allow open relays. You can leave it as a configurable option, but when you are an open relay, you are subject to not having any mail sent through you transferred to the recipient.
The only way we'll actually see a reduction in spam is to put true measures in the MTAs such that there is absolutely no way to mask the sender's address or host, and completely disallow any form of relaying. Then, you have to start setting up the MTAs to not accept any mail delivered by older versions.
Yes, I realize the impact this would have on the internet and e-mail delivery... but if you want to eliminate it, or at least be able to truly identify the sender, this is about the only way to actually do it.
If your client is worried about who's going to get it done the cheapest, well, you normally get what you pay for. If you're providing it the cheapest AND you're making it standards compliant, kudos to you. If your client is looking for the best bang for the buck, as long as your delivery times are met, warranty support is always there, and you're doing it for the best price, to change development/support staff in the middle of things is usually pointless.
Standards exist for a reason. They weren't drawn up by a single person. They were drawn up by a committee of members who come from various sections of the industry. They're set to achieve a reasonable set of expectations. If you have everything compliant to the existing standards, then ANYONE can use it, modify it, etc.
Actually, you should code to the standards provided by W3C, when it comes to HTML. If a browser fails to accept it or render it properly, the browser itself is broken, and you have the ability to say, "It's the browser's fault." You then ask the client to file a bug report with the maker of the browser, and proceed to write a temporary fix to at least keep them happy for the moment. Inform your client that you intend to continue providing only W3C-compliant HTML, and that any temporary fixes you provide could go away, based on changes to the standards or other requirements.
If it's JavaScript, well, there are some real differences that you have to code for... event handling, as an example. If you have things done properly, you've already got a script skeleton where you can just fill in the blanks.
Sadly too many developers simply write sites for one browser (usually IE) and don't even spare a thought for users of alternatives.
That's because the most frequent reason for doing an IE-only coding is that IE is far too forgiving of non-compliant HTML. Developers use that as a crutch. It's the old, "Code for the 90%, and then add the stuff to support the 10% as needed," because, thanks to companies like AOL using IE as its built-in browser, it appears that most client connections come from IE. With that "fact," they proceed to develop the pages for the majority of clients.
There's a reason standards like ANSI, POSIX, W3C, and ISO (OK, ISO standards frequently are camels, but that's a totally different topic) exist. By following those standards, anything you write should be portable from platform to platform, or at least within the genre.
Vulnerable operating systems are increasingly moving onto a number of different devices. Last year the Slammer worm infected 13,000 Bank of America ATMs as a result of them moving to a Windows-based operating system.
"I've even seen screenshots of major commercial aeroplanes with Windows 2000-based operating systems," said Mikko Hypponen, director of anti-virus research at Finnish firm F-Secure. "Cars are an obvious target for viruses. It's okay if you don't use the operating system for the engine and the brakes, but when you do..."
Besides, here's a couple of other things, including a press release from Microsoft about how the BMW 7 series has WinCE as its embedded system, and a discussion on some of its failures. Old news? Maybe. Still an extremely likely connection.
Only this time, you don't have a reset button or three-fingered salute available to you to clean out the memory.
About the only advantage here is that unless someone is able to write to the flash ROM or BIOS or whatever they use to store settings, it should go away if you simply disconnect the battery, let it sit for a few minutes, then reconnect and restart... unless you need some kind of specialized tool that only the dealers will have.
Two words: Aegis Cruiser
Until you start covering primary reasons why some people won't, or in some cases can't, switch, IE will always have at least a partial hold on the browser market.
The other sites just serve up broken HTML. This can be checked by trying to parse the page in the GRE and having it come back with a return code of some kind to say, "Successfully parsed," vs "Invalid HTML." If it comes back with the "Invalid HTML" response, you can then pass it off to IE to see if it will render there.
Overall, by doing this, you defeat the purpose of using Firefox, and you continue to undermine any standards set forth for what proper HTML should look like.
Your computer cannot run without an operating system, so to deny any kinds of operating system updates will cause more problems as more and more systems don't get the necessary fixes to keep from having the box commandeered by whomever.
Yes, Microsoft has a right to deny updates/support for pirated software. This could easily become a public relations nightmare, however, when the systems running pirated copies of Windows start causing all kinds of havoc on the internet... not that they don't already, but it will get a lot worse.
Also, if they're offering "discounted" licenses to reduce the amount of piracy in China, Norway, Czech Republic, etc, why do they think they can still charge $180+ for a license in the US? That's a rip-off.
I recall an article here on slashdot within the last couple of weeks that suggested that Moore's Law is slowing down, plateauing, etc., because if it really held true, we'd have 4GHz CPU chips from Intel by now, and we're a little shy of that.
Basically, for us to get to 1024 times the computing power we have now, we'd have to have some kind of surge in R&D into new ways of computing that don't involve silicon chips the way they are now. Have they even ditched 16-bit mode from the Intel CPUs yet? Seems like the microcode necessary to support that is just a big waste of space.