Senior Net Citizens and Textual Config Files

I am a senior Net Citizen. The oldest part of my web site, which has been faithfully copied every time I moved the site, has an edit note of "Nov 25 1994"; I guess I have been on the 'web since mid-1994.

Even worse, my first and only claim to emacs-lisp fame, "moccur.el", has a change date of "August 1st, 1991" -- and that was version 1.1; 1.0 must have been created at least a year earlier.

In "internet years", 11 years is a long time.

I found these dates while thinking about the "I love you" virus (current at the time I first wrote this rant). Experts tell us that the virus wouln't have been as harmful as it was if people hadn't such loose security preferences.

Years ago, preferences used to be stored in configuration files. In most of todays programs, there is no readily-accessile textual configuration file. Is this important?, you might ask.

Anyone knows these nice "don't remind me again" checkboxes that are the usual way to force those annoying "you are about to do something dangerous" warnings to shut up. (For some reason, there never seems to be a "shut up for the next 30 minutes" or "shut up while I surf this site" or "shut up 'til next program restart" or even "shut up 'til next reboot", which would be the thing one really wants).

I never manage to find the location in the program where I can turn these warnings on again. The "turn-warnings-off" option was located in a highly modal warning dialogue window, which is disabled by that option. So where is the "turn-it-on-again" option to be found? Answer: At any damn place the programmer thought it might be right! A place which I can't know, a place which I wouldn't remember even if told (I usually don't even remember the wording of the message, except "there was some security-related message"). The result are programs that offer different menu items for "preferences", "settings", "configuration", "profiles", and "accounts", each of which display multi-tabbed dialog forms that often hide the most interesting stuff behind an innocent little "advanced..." button.

This is a user-interface problem, and part of the reason that technically trivial things like "i love you" can create so much harm. Who cares about 128-bit encription when your browser is a wide open security hole that you don't know how to plug?

Compare this to a text config file based system, where things are much less "comfortable", but much more straightforward. An annoying message might contain the text "to disable this message, include the code (setq disable-annoying-message 1) in your .preference file)". This might look "user-unfriendly" to you, but there are some good points:

Back to the "senior citizen" part and the "moccur" emacs module. To this day, I use emacs when working on Unix machines. My .emacs preferences file is a direct descendant of the .emacs file I used 1987. Once, there was some work involved when I migrated from emacs-18 to emacs-19 and worked on both for a while, but these problems could be solved. ("So much work!", I hear you say - to which I answer that I probably have worked more on my Netscape and IE preferences, which had to be re-set each time I rebuild my machine after a crash or installed a new version of the program.)

Todays programs try harder, achieving less. Countless man-hours are spent making the interfaces look more flashy, but in practice render them more useless.

The new Netscape-6 preview is a good example: it doesn't contain the one distinct feature that made Netscape better than IE - the Javascript console. (IE has a big fat flashy Javascript debugger, which almost always doesn't work. It also shows wrong line numbers when reporting errors. It also has no "page info" feature like Netscape. For all practical purposes, IE is useless for debugging DHTML pages. The old Netscape console is fast, always available, and shows correct line numbers. What more does one need when programming scripted HTML?) I could find no feature in the new Netscape that I liked: it looks as ugly as IE on a Mac, it is slow, its Javascript/DOM support is broken (half of the time, window.open() doesn't seem to work!), and it has no console. Ok, it is a beta version, but still. (Did I mention that it has no console?)

Senior Citizens have memories from times past (13 real years count as 40 "internet years"; this ought to qualify as "past"). In computing, "memories" is called "data". Most people (even most programmers) don't remember that part of the data is in the preferences. Preferences are like "muscle memory" - you don't notice their existence, but they have to be trained a long time. I don't want to lose my preferences every time i install new software. The easiest, most flexible, and thus in-my-honest-opinion best way to do this is to use a simple text preference format, that the user knows about. (*)

Only then, users will be able to have an overview of, understand, and question all the preferences that rule their lives.

-- mfx 2000-05-15


(*) Footnote: Netscape uses javascript preferences, which is a good idea. It is also poorly documented, distributed over more than one file, and over more than one directory. I roughly know where my user settings are, but I still can't figure out where netscape stores the profile-meta-information, i.e, where each user resides.