[petsc-dev] discoverability

Jed Brown jed at 59A2.org
Sun Feb 21 23:46:12 CST 2010

A discussion last week culminated in the following thought.  Certain
functionality, especially command-line options are not very
discoverable.  Running with -help is quite verbose, especially when
multilevels solvers are in use, and this can be rather overwhelming.
Something that seems readily implementable (provided a cross-platform
GUI toolkit is available) is a hierarchical help browser.  My thought
was that -help_gui could bring up something like a two-pane browser with
options on the left (hierarchical and collapsed by default, perhaps with
"advanced" stuff colored differently) and corresponding man pages on the
right.  All this semantic information is already available, although
"level" is only present in the man pages themselves.

For certain options, such as lists and enums, dropdown menus could be
presented, with the gui producing a suitable command-line.  I don't know
which GUI toolkits are viable options, nor how easy it is to embed HTML
rendering (maybe just wait until everyone has WebKit?).  I just wanted
to put this idea out for something to think about, it seems like it
would improve discoverability and help to eliminate the context switch
between looking up documentation and configuring solvers.

Something I personally would like more is bash completion, but that is
tricky because the available options can't be presented without running
the program.  Cutting the job off early is awkward because some options
aren't available until PCSetUp which is well within the solve phase,
thus it may take a long time to get that far (a matrix needs to be
assembled first).  I'm not sure whether this cost would be excessive
compared to scp and friends which actually establish an SSH session to
the remote machine when you press TAB.


More information about the petsc-dev mailing list