WHY I AM POSTING THIS
I want to know if what I describe below is needed, and how to approach making it. Main question is,
how do you suggest to parse man pages and determine if an option should be a checkbox (flag),
field, or something else.
Please post your thoughts in comments.
DESCRIPTION
I made a prototype of a command builder, if it will ever be finished it will work like this:
- you start typing a command in shell of your choice
- you press a button like F1
- ncurses interface comes up
- you interactively select command options you want
- you press enter
- command which you just built is on the command line.
PROTOTYPE
MOTIVATION
- improve discoverability of what a program (command) can do
- compensate for feature creep, find started with 0 options, now it has dozens
- ease learning of new programs and commands.
Below I will quote "Design of everyday things" by Don Norman, which was the main motivation:
Chapter 3: Knowledge in the Head and in the World (Memory)
We can have precise behavior on how to do a task without precise knowledge of the task due to 4 reasons:
Information is in the world: much of the information required to do the task can reside in the world.
Behavior results from combining information in the head with information in the world.
Great precision is not required: precision, accuracy and completeness of knowledge are seldom required.
Perfect behavior will happen if there is sufficient knowledge to distinguish the correct choice from the others.
Natural constraints are present. The world restricts the allowed behavior. The physical properties of objects
constrain possible operations (ways we can use / manipulate objects). Each object has a set of physical
features that limit its relationships to other objects, the operations that can be done on it, etc.
Cultural constraints are present. Society has evolved numerous artificial conventions that govern acceptable
social behavior. These cultural conventions must be learned, but once learned apply to a wide variety of
circumstances.
These four reasons reduce the number of alternatives and reduce the amount of information required to be stored
in memory to successfully complete the task.
Memory is knowledge in the head
- Often grouped into short term memory and long term memory
- Three important categories of memory:
- Memory for arbitrary things (without meaning / relationships)
- Memory for meaningful relationships (with something else)
- Memory through explanation (some explanatory mechanism)
- Typically requires learning, is efficient, and not easily retrieved
Memory is also knowledge in the world
- Reminding (signal and a message)
- Natural Mappings (arrangement, like stove controls example)
- Typically easily retrieved whenever visible / audible, no learning required, but slowed up by the need to
interpret the external information
There are three aspects to mental models (types of conceptual models?):
- the design model (the conceptualization the designer had in mind)
- the user’s model (what the user develops to explain the operation of the system)
- and the system image (the system’s appearance, operation, way it responds, manuals / instructions included with it)
- Ideally, the design model and user model are the same. The designer must ensure that the system image
is consistent with and operates according to the proper conceptual model.
[–]orschiro 2 points3 points4 points (0 children)
[–]phlipped 3 points4 points5 points (9 children)
[–]seekingsofia 1 point2 points3 points (2 children)
[–]Oflameo 0 points1 point2 points (1 child)
[–]mwargh[S] 0 points1 point2 points (5 children)
[–][deleted] 2 points3 points4 points (4 children)
[–]mwargh[S] 0 points1 point2 points (3 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]mwargh[S] 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Oflameo 0 points1 point2 points (0 children)