I hate internationalisation. There is nothing as crap, as internationalisation. Once an OS starts getting internationalised it starts dragging with it a pile of shit, known as locales, languages, unicode, and god knows what other crap that all contributes to the bloat, slowdown and general utter uselessness that comes with a Linux distro.
Let me explain why I hate internationalisation.
1. Internationalisation breaks monitors
I use grub2, the default debian bootloader. I hate the fact that grub2 decides to switch to a fancy videomode, so that it can display unicode characters. I like my machine to boot up, in good old 80×25 text mode, thank you. No mode changes. Why no mode changes ?
Because mode changes causes my monitor to adjust sync, blank out, and do all kinds of crap I don’t want it to. It makes me me miss important boot information, and reduces the lifespan of my old CRT.
Mode switching also causes major crap with KVM tools such as HP’s ILO, or SuperMicro IPMI, especially when you’re remote consoling a box over a laggy connection (when is it ever NOT laggy?).
Once again, this stops you from using a computer usefully, which is kinda the frigging point, right ?
Fixing this on debian, is a royal PITA as well.
Observe, from grub.cfg on debian
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
I don’t want that shit, thankyouverymuch, fuckoff.
So, to get around this crap on debian, we have to edit /etc/default/grub, and add
GRUB_VIDEO_BACKEND=dummy
because just
GRUB_VIDEO_BACKEND=
still causes update-grub to load all the vga drivers, and using
GRUB_VIDEO_BACKEND=vga
to force what I thought to be plain old vga, still let grub get it’s grubby paws onto a module that caused a mode switch. That took like an hour to sort out. Hopefully it saves someone some time.
All of this, in the name of presenting a UNICODE fucking font to some non-ASCII dude who probably doesn’t even understand what a bootloader is.
2. Internationalisation breaks keyboards, and monitors
The default debian console-setup gives us UTF-8, and Cyrrilic characters, and in order for it to support this, it has to adjust the console font, which fucks around with the VIDEO MODE yet again. This is an intricate arrangement between the keyboard setup, console setup, and god knows what.
The debian installer doesn’t ask all the questions that a ‘dpkg-reconfigure console-setup’ does, but suffice it to say that if you run it, you finally get given the option on NOT CHANGING THE VIDEO MODE DUE TO KEYBOARD SETTINGS.
Simply choose “Do not change the boot/kernel font” when asked about “Font for the console:”
Or to make the problem go away in an easier fashion, and save the planet by saving CPU cycles, disk space and that pain in your arse:
dpkg --purge console-common console-data console-setup console-terminus console-tools kbd keyboard-configuration
What you are now left with, is glorious, raw ASCII, C based console, the way God and Linus Torvalds intended. Your system bootup time will probably also have decreased by a few seconds.
Greenpeace will love you. I like Greenpeace, I contribute every month.
3. UNICODE Sucks
There’s a reason I’ve always used
LANG=C
in my /etc/environment file. It makes me avoid the bullshit that is UNICODE.
If you have ever seen crap funny characters like
· --where=âwhere_conditionâ, -w âwhere_conditionâ
when viewing a man page, for example on a Redhat box, then you have been the victim of unicode. Unicode is the most stupid idea for “fixing” a working system of character representation that is based on 8 bits, by attempting to hack on more bits, just so that some muppet can see his Chinese character.
What you see is not what you get, and all thanks to someone that doesn’t understand ASCII wanting to see what they get.
I cannot for the life of me think of a more fucked up hack than Unicode.
4. Internationalisation wastes power, and cpu cycles.
In debian squeeze, putting “LANG=C” in your /etc/environment file is somehow “deprecated”. (What, putting an environment variable in the obviously located file is deprecated?)
You are now supposed to stick “LANG=C” into your /etc/default/locale file, which is simply sourced at the same time as /etc/environment would have been sourced.
This is not a biggy, except that some fucking muppet decided it would be a great idea if cron whined about the fact that you are using a “deprecated” file.
Observe, from /etc/init.d/cron, on squeeze
for var in LANG LANGUAGE LC_ALL LC_CTYPE; do
value=`egrep "^${var}=" "$ENV_FILE" | tail -n1 | cut -d= -f2`
[ -n "$value" ] && eval export $var=$value
if [ -n "$value" ] && [ "$ENV_FILE" = /etc/environment ]; then
log_warning_msg "/etc/environment has been deprecated for locale information; use /etc/default/locale for $var=$value instead"
fi
done
A few comments on the above fucked-ness.
- You dumb shit package maintainer
- Thanks for wasting CPU cycles to warn me about a supposedly “deprecated” file, that is fo-sho, NEVER FUCKING GOING TO GO AWAY.
- Why the fuck does cron care about any of this shit ? Cron runs shit at intervals. That is all.
Oh wait, I can answer point 3.
(from /etc/init.d/cron)
# Read the system's locale and set cron's locale. This is only used for
# setting the charset of mails generated by cron. To provide locale
# information to tasks running under cron, see /etc/pam.d/cron.
#
# We read /etc/environment, but warn about locale information in
# there because it should be in /etc/default/locale.
So, all of those CPU cycles were wasted, so that the correct character set can be used for the mails generated by cron. Holy fuck! WAT ?
5. Internationalisation make for insecure software
You need only to google “unicode exploit” to understand the size of the problem. Bytestreams that get interpreted differently based on a file stored on disc, that contains a language and an alternative character set that is managed by a complicated library is just asking for shit.
Language library programmers don’t focus on security, they focus on functionality
6. Internationalisation wastes time, money and resources
I’ve seen some Chinese engineers at work on their glyphical desktops, and if I just think about the amount of time that Microsoft, and other companies have spent, translating every little error message, into every language and character set across the globe — the mind boggles.
I think we’d probably be able to feed every hungry soul on the planet with that kind of effort and money.
To summarize:
- Yes, I’m old skool.
- Alles komputer must run LANG=C, English, and ASCII.
- No, I don’t hate your culture/language/character set, just don’t break mine in the process of fulfilling your glyphical fantasy
- If this is above your abilities then your rights to compute must be revoked
- Internationalisation contributes to global warming
- The sooner the planet speaks a single language, and uses a single character set the better
- That is all.