From: peter (Peter da Silva) Date: 00:23 on 09 Oct 2003 Subject: Hard coded $FOO 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 10:27 on 16 Apr 2008 by mariachi