UI: Qs to get the ball rolling

Francois-Rene Rideau rideau@clipper.ens.fr
Sun, 12 Mar 95 12:26:54 MET

Dear Joyous Tunespeople,

   In my previous message, I dared say:
>    It seems that the UI project goes from two directions:
> * defining small standard generic modules, which is building the HLL standard
>  library.
> * building interfaces between existing low-level objects and the previous,
>  that is, HLL specifications of these: accessing the video memory as an
>  array, but with special functions satisfying some relations, etc...
   Ark ! In my haste, I forgot the most important (that's not the first time -
see some previous message): !

   The first point was much related to the UI, but was a subproject of the HLL;
the second point was likely a subproject of the LLL.
   Those are part of the UI subproject, and the UI project will indeed have to
cooperate tightly with HLL and LLL; actually, all projects must cooperate
tightly. But that's not all of it: the UI project strives to define generic
and specific objects that help the human easily use, search, learn, maintain,
upgrade, or scale down the objects in the system.

   Here are examples, among others:
* a "preference" manager, so that human user can define contexts, specific
 or generic, founded or parametrized, simple or combined, in which he can
 view other objects. A straightforward application is to manage layout of
 windows in a GUI: it manages how where do display windows, what color/font
 to use, what editor, etc, etc; the user can have standard layouts, standard
 automatic laying out functions, many persistent current layouts, etc.
* structured object editors automatically computed from an object's structure,
 with human parametrization: arrays will be accessed as arrays on the screen
 (like Excel sheets), records as forms, reals as text, scrollbars, knobs,
 joystick position, etc; colors with text name, point&click interface, etc;
 the user (through the preference manager) will persistently modify those
 defaults, to achieve very efficient interaction; he can choose automated
 (pre-recorded or computed) inputs instead of interactive ones, combination
 of interactive and non-interactive ones, just anything.
* an abbreviation/completion manager, that would be again context-dependent
 and highly parametrizable: thus anywhere in the system, and with standard
 input tools (with history, menus, etc), the user needs not write everything
 when there's redundancy. Standard Unix shells do filename completions; tcsh
 and zsh have configurable completion, zsh has fully programmable completion.
 Emacs have some abbreviation manager too. All of these are difficult to use.
 I'm sure we can built some abbreviation manager that would be much more
 friendly, thanks to our orthogonal annotation mechanism.
* an "undo" manager, that records all changes, so every change is reversible,
 up to some point. This can be done in full cooperation with archiving
 mechanism that incrementally save meaningful modifications to floppy/tape.
 With active annotations, it can be done orthogonally to other kind of
 programming, and will be  far more reliable than existing incremental
 archiving programs, that have  coarse time grain, and save blindly
 unmeaningful things. By saving only the  right information (e.g. the
 compressed cooked keyboard/mouse input, etc), plus periodical (once a month)
 saving of original objects (e.g. no need to have a backup of the GCC
 distribution when you can get it by FTP, or the 10 Meg output of a lame
 FORTRAN program that's more easily recomputed than saved to floppy), we can
 provide an archiving both *far* more reliable and *far* more efficient than
 existing crap.
* A syntax for the HLL. This is really a UI problem ! Help !

   Well, perhaps the UI project should be renamed as just Interfaces, as
you see that its range is the interface between objects, the human input
being only particular objects.
   I can't forgive myself to have forgotten all that. I do it frequently,
but when I'm lucid enough, I *know* the UI project is a truely important one.
Please forgive me.

--    ,        	                                ,           _ v    ~  ^  --
-- Fare -- rideau@clipper.ens.fr -- Francois-Rene Rideau -- +)ang-Vu Ban --
--                                      '                   / .          --
Join the TUNES project for a computing system based on computing freedom !
		   TUNES is a Useful, Not Expedient System
WWW URL: http://acacia.ens.fr:8080/home/rideau/Tunes/
IRC: on undernet (e.g. /server us.undernet.org) channel #Tunes
FTP SITE: ftp://frmap711.mathp7.jussieu.fr/pub/scratch/rideau/Tunes/
contains full (~300K) distribution, regular patches (~30K) to upgrade,
and the full (~1400K) mailing list archive for MOOSE & TUNES.
Get any by mail and/or subscribe to patches by sending me mail.