Ok. Internationalization is a drive to increase the usefulness of software in a global environment by providing messages in easily localizable formats.
It is a very noble initative, made quixotic by the lack of rhetorical study by the top gurus involved. If you think that shortening the word "Internationalization" to "I18n" (the first and last letters of the word held together by a tsmesis of the number of missing letters) is communicative, you have no idea what you are talking about. Get the fuck out of my industry.
d3b
There are a lot of terrible arguments in the world -- for example, yesterday I heard some talking head claim that "Timothy McVeigh ... is the exception that proves the rule [about the efficacy of preventing terrorism through racial profiling]." I don't mind dumb arguments when it's a position I don't like -- shit, if you're still listening to a guy after he says something like that, you aren't interested in logical discourse, you're interested in simple advocacy.
But this guy puts me in an uncomfortable position. I think he's right. But I also think he's completely incapable of explaining or defending his opinion.
First, the errors. I'd like to list them, to get them out of our collective systems. I shan't mention them in my defense.
There. Now, on to the defense.
Microsoft is a software company that has made its trillions not by selling better software, or by selling cheaper software, but by selling it to more people. One might call them the Sears of software. Their software creates a baseline system on which you can do literally anything.
There is an appeal to the concept of the baseline system which is hard to deny. For software vendors, it vastly decreases the support costs associated with introducing complex features. For users, it offers a level of choice and assurance no other product can tough. And for IT personnel, it offers utterly cellular growth -- any machine can do any other machine's job (not withstanding licensing and performance issues) WITHOUT an extreme makeover of the underlying software.
It is often hard to discern what is right in software, and occasionally this problem can be due to implicit coupling.
Consider this: you have a piece of software. It is build on an server. The server handles a lot of the dirty work for you, while performing optimizations and the like to make its own job easier.
The server is completely unaware of how you use its functions in your software. It just does what you tell it to, in the way that it does them according to the contract it provided you with. Ideally, your software should work the same way. Server and software existing independently of the specifics of the other, that's what decoupling is all about. The Right Way to develop software is to decouple operations as much as possible, thus to increase their flexibility and reusability.
However, you have discovered a way to manipulated the server's optimizations to your favor -- you've tricked it into giving you functionality for "free," and begun relying on it. You use your software in a certain way -- possibly even a bizarre way -- and received a benefit without having to do any hard engineering.
Now, you're asked to control the optimization, due to some side effects that occur in certain circumstances. And you're asked to (try at least) do so without tying yourself into the server, or leaving the scope of your own software.
But here's the problem. You may not have made any calls to the server, but you're already coupled to it by relying on its internal functionality to work in a certain way. And the price for doing your optimizations thusly is that you can't manage these applications at the same level. Your software, without calling out of its scope, has been relying on functionality in that other scope. And for your software to have a say in how that
In short: you are either going to have to reinvent the wheel -- recreate your desired functionality at a higher, more software-specific scope -- or you will have to interface with the axle.
Sometimes, I choose to grab that axle. And no, I don't feel good about it.

Webslum ushers in the new regime of Ryan McKern with a brand new fucking server. It got two processors, yo, and it's significantly less having-a-broken-cd-rom-drive than Webslum 1.
Sometimes, Open Source really pisses me off.
Not the development model, of course. I have no problem with that. Some of my favorite software these days is Open Source. I'm running servers on Gentoo and Firefox is a great web browser. The Open Source tools Apple has adapted for OS X are very nice. SpamAssassin is a great anti-spam engine and you can't go wrong with BitTorrent.
However, Open Source is more than just a development philosophy. For some people, it's become a political tool. For others, it's damn near a religion. For still others, it's a symbol -- a symbol for whatever it is they believe already.
And to these people, the opposite of Open Source is Microsoft.
Huh? Microsoft? That's a company. How can a company be the opposite of a development philosophy? Isn't this a bit like saying the opposite of black is correction fluid? Yes, but the opposite of Open Source must be closed source. And if Open Source is good, then closed source must be bad. And Microsoft, as the biggest closed source company in the world, must also be bad. After all, they used their monopoly to crush Netscape, right? And now they're using it to defeat Linux. Those rogues!
As Sagat once said, Funk Dat. Netscape crushed Netscape; don't you remember how SHITTY Navigator 4.x was? I used to DREAD testing that piece of shit. Netscape's web server was slower, buggier and less secure than IIS. And their "portal" was as it is today: scummy.
Furthermore, Microsoft isn't out to crush Linux. You can't crush a product created by unaffiliated volunteers and offered for free from various locations world wide. But you have to do something -- many prospective customers are hearing that this free product is as good, if not better than, your for-pay product. So, Microsoft funds a series of studies that show their product is worth the price. Duh! Are they supposed to fold up and say "well, that's the end of me!" Linux will survive any attack you throw at it, and getting mad at these studies is pretty foolish. Open Source doesn't lose anything when somebody chooses Microsoft -- and five years ago, Linux wouldn't even be on the same GRAPH as Windows.
Why does Open Source need an opposite in the first place? It is a development philosophy. It was created because a lot of autonomous developers were all working on the same thing and figured it would be worth while to collaborate. It's an alternative, not a replacement. Touting it as the only way to go is short sighted. When it works, it works. When it doesn't work, you have two choices: write your own project or use closed source. Not everybody has the time and the money to develop their own software, and as long as people have money and needs, closed source hasn't outlived its viability. Hating Microsoft because they aren't willing to give you their source code for free is unfair. Some people won't even buy a cow if the milk is free. Do you think they'd buy the milk if the cow were free?
Microsoft recently announced that they would be releasing some of their already free development tools under an Open Source model. They did so, because previously their development tools have been one-time deals. The programmers move on to new things, and the tools would stagnate. Providing them under an OSS license allows MS to provide developers with the ability to share changes to these tools. And yet, the Open Source zealots on slashdot seemed determined to show it as a calculated attack on their model, citing ancient examples, making ridiculous demands like "open the DOC fomat!," taking numerous pot shots at code quality and reiterating common misconceptions about the Shared Source initiative. I wish there was an internet equivalent to turning away in disgust. These people have claimed Microsoft as their enemy without learning anything about the company or its development philisophy. Instead, they treat it as one big straw man in which they can dump all of their hatred and use none of the renowned critical thinking skills that brought them to Open Source in the first damned place.
This is what pisses me off about Open Source zealots. They have taken a great idea -- developers sharing code -- and turned it into some black and white battle where courageous Linux users are trying to slay the dragon of stodgy old for-pay software. Why can't we just share code and be done with it?
Real quick:
This part of the site has no colours in it. But it is NOT black and white. It is greyscale. Black and white art contains only two levels of intensity, and creates the illusion of variance through dithering techniques. Greyscale art, on the other hand, has three or more levels of intensity and acheives variance through shading. Pen art is black and white, pencil and chalk art is greyscale.
This is also different from monochrome. Monochrome means only luminance (brightness) values change, while chrominance (colouration) stays the same. Both black and white and greyscale are monochrome, but so's sepia (brown to amber), as well as old computer monitors that were black and green or black and orange, or the screen on a VirtualBoy which was black and red, a deadly combination.
Incidentally, there's no black at all on this site...the darkest colour is hex #1a1a1a, which may look black but has about 10% more luminance. I didn't want it to be bleak, just dim. I didn't want it to be evilskull. I brighten the shadows of photographs to bring them up to #1a1a1a before posting them, to match the site as close as possible. Pure white, #ffffff on your hexadecimal dial, I'll allow because there's always room for hope.
Computers are dreadfully complicated, covoluted things, full of arbitrary and inscrutable decision paths. It is hard to find any real sense of cohesion in the understanding of computers, because the reason for most of these rules and commands is generally that during the design stage, somebody thought this way was good enough, and nobody with the ability to change it cared enough to expend the effort. The result is that every rule, every interface, every method of use is slightly less than perfect. Everything is either too simple to perform complicated tasks efficiently, or too generalized to perform simple tasks easily.
And yet, there's an elitism among many computer professionals that is discordant. A presiding feeling among "seasoned veterans" that they know all there is to know, that they have got it right, and that anybody who has not acheived the knowledge of their way of doing things is fundamentally wrong, and in most cases, stupid.
Where do these people get off?
Consider the case of UN*X style file permissions. You have a series of files, arranged in a hierarchy of directories. Each directory has three permissions -- read, write and execute -- which can be assigned to three levels of access -- yourself, your group, and everybody else. Fairly simple. But entirely arbitrary. I mean, why a hierarchy? Why not a big pool, or a list? Why discern between file and directory, why not make them the same thing, a "stackable" file? Why three permissions -- why not a fourth, which would allow appending to (but not changing) files? Why use file metadata in the first place, especially if you're planning to maintain a database of file information anyway? What does "execute" mean on a file that is not a program?
Over the years, as users coped with the choice of file permissions, even more decisions were been made. Directory traversal is conrolled by the execute bit. Permissions are set using the command "chmod," a shortening of the term "change modifier." Each permission is a assigned a number constructed using bitwise math, and ordered according to the hierarchy (self, group, everybody else).
Of course, not everybody knows bitwise math -- not that it's difficult, but it's not something you do in the world outside of computers. Of course, not everybody who sees the letters "rwxr-x-r--" are going to immediately align themselves to the thought process that created them. Not everybody is going to guess that "chmod" is a likely term to use to grant somebody access to the file they just loaded to their website. More likely, they'll try "Grant" or "give security" first. And in the end, they'll need a hand to figure it out.
Surely, once they do, they'll find it quite simple, maybe even intuitive. But to get to that level, they'll first have to evade wave upon wave of strange and often irrational information. Information which is not pertinent to the matter at hand nor to the user's life in general. It is, above all, arbitrary. So of course, they're not going to know it. Of course, they're not going to retain it. Do you remember which line is which between trips to the DMV?
And yet, in technical circles, these people are taunted incessantly for their ignorance. They are expected to be supplicant and ashamed of not having intuited things which are not immediately obvious.
It's sickening, really. How are people supposed to adjust to alien ideas and systems if they're afraid to ask questions or experiment? And what is gained by insulting them?
Certainly, it isn't job security. We're seeing technical support and other IT jobs flowing overseas at record rates. You'd think that people would want to endear themselves to their employers and coworkers, to prove their value to the company by being as friendly and open with their knowledge as possible. It should be every IT worker's job to noiselessly shoulder misconceptions and explain what's really going on. It's much harder to fire a guy who's helped you out on numerous occasions and who never yells at you for not knowing how to set up a network printer under active directory (or not wanting to rely on the steps provided in a curt email on how to do so). But when you've got an entire department that's assured of its own technical superiority placing hurdles in front of your employees when they are are trying to get work done, where's the encouragement NOT to save a few thousand dollars by shipping their jobs to Zaire? At least when the Zairians make fun of you, you won't understand it.
It isn't hard to ignore the apparently dumb things people do with computers. All you have to do is close your eyes and think about how well you really understand their jobs and their strengths. When I worked for the Binghamton U. academic computing center, I used to help out PhD students and professors, people who were brilliant in their field but who couldn't forward an email attachment. Obviously they weren't stupid, but to hear my fellow consultants talk you'd think that nearly everybody was a stone cold idiot. I used to do it too, until I discovered that a lot of the people I was insulting were pretty smart, interesting folks who, thanks to my elitism, didn't like me. I quit that bullshit pretty quickly.