Hard coded $FOO

[prev] [thread] [next] [lurker] [Date index for 2003/10/09]

From: peter (Peter da Silva)
Subject: Hard coded $FOO
Date: 00:23 on 09 Oct 2003
I hate: hardcoded key bindings, hardcoded file names, fixed array
sizes, hardcoded menus, hardcoded program names, hardcoded mail
headers, hardcoded anything.

If I want to make BOTH Backspace and Delete do "erase char", why the hell
can't I? 4.1BSD had "Alternate erase" in 1980, for god's sake. And I still
have to alternately type "stty erase ^H" and "stty erase ^?" when I find
some keyboard that's got one or the other mapping (DEC-I-mean-Compaq-I-mean-
HP, usually) because you can't "stty erase ^H erase ^?". And, no, I don't
care if GNU Readline ksh tcsh foosh can do that for me, because not every
program can, damnit. This belongs in termio. This should be a bloody matrix
that lets me map all functions to all characters...

Same with the keyboard. In UNIX at least I can map anything to anything
easily. In NT it involves hacking the registry and calculating bitmaps by
hand. In MacOS you have to create a custom keyboard definitions file and
convert it to a resource fork and hide it deep in the system...

And speaking of MacOS, it's got a great preferences system... and even if
you don't want to create a prefs pane for every damn variable in your program,
at least wrap it in something like this:

	NSString textFont = [
		[NSUserDefaults standardUserDefaults] stringForKey:@"textFont"
	];
	if(!textFont) textFont = @"LucidaGrande";

And even if you never create an "advanced prefs", someone else will strings
your app and write it up on ResExcellence or something and you'll get free
advertising.

In Windows, I'm sure you can do the same thing with registry keys. In UNIX,
if you've got any kind of config file just keep adding options to it.

God knows why people can't do this. It should be a reflex.

Generated at 14:02 on 01 Jul 2004 by mariachi 0.52