docs/unix-phil

changeset 21:ca929b042039

more on MH (ch04)
author meillo@marmaro.de
date Fri, 26 Feb 2010 14:28:59 +0100
parents 578d5c84e5c0
children 4c21f5b8d716
files unix-phil.ms
diffstat 1 files changed, 59 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/unix-phil.ms	Fri Feb 26 00:57:37 2010 +0100
     1.2 +++ b/unix-phil.ms	Fri Feb 26 14:28:59 2010 +0100
     1.3 @@ -952,10 +952,67 @@
     1.4  and the lesser tenet
     1.5  .I "``allow the user to tailor the environment''
     1.6  are ideally followed in the design of \s-1MH\s0.
     1.7 +Tailoring the environment is heavily encouraged by the ability to
     1.8 +directly define default options to programs, even different ones
     1.9 +depending on the name under which the program was called.
    1.10 +Software leverage is heavily encouraged by the ease it is to
    1.11 +create shell scripts that run a specific command line,
    1.12 +build of several \s-1MH\s0 programs.
    1.13 +There is few software that so much wants users to tailor their
    1.14 +environment and to leverage the use of the software, like \s-1MH\s0.
    1.15 +Just to make one example:
    1.16 +One might prefere a different listing format for the \f(CWscan\fP
    1.17 +program.
    1.18 +It is possible to take one of the other distributed format files
    1.19 +or to write one yourself.
    1.20 +To use the format as default for \f(CWscan\fP, a single line,
    1.21 +reading
    1.22 +.DS
    1.23 +.CW
    1.24 +scan: -form FORMATFILE
    1.25 +.DE
    1.26 +must be added to \f(CW.mh_profile\fP.
    1.27 +If one wants this different format as an additional command,
    1.28 +he needs to create a link to \f(CWscan\fP, for instance titled
    1.29 +\f(CWscan2\fP.
    1.30 +The line in \f(CW.mh_profile\fP would then start with \f(CWscan2\fP,
    1.31 +as the option should only be in effect when scan was called as
    1.32 +\f(CWscan2\fP.
    1.33  
    1.34  .PP
    1.35 -filters: many tools provide basic FS operations (like mv, rm, ...)
    1.36 -prototypes: affect dev, but MH is very matured
    1.37 +.I "``Make every program a filter''
    1.38 +is hard to find in \s-1MH\s0.
    1.39 +The reason therefore is that most of \s-1MH\s0's tools provide
    1.40 +basic file system operations for the mailboxes.
    1.41 +\f(CWls\fP, \f(CWcp\fP, \f(CWmv\fP, and \f(CWrm\fP
    1.42 +aren't filters neither.
    1.43 +
    1.44 +.PP
    1.45 +.I "``Build a prototype as soon as possible''
    1.46 +was again well followed by \s-1MH\s0.
    1.47 +This tenet, of course, focuses on early development, which is
    1.48 +long time ago for \s-1MH\s0.
    1.49 +But without following this guideline at the very beginning,
    1.50 +Bruce Borden may have not convinced the management to ever
    1.51 +create \s-1MH\s0.
    1.52 +In Bruce's own words:
    1.53 +.QP
    1.54 +[...] but [Stockton Gaines and Norm Shapiro] were not able
    1.55 +to convince anyone that such a[n \s-1MH\s0-like] system
    1.56 +would be fast enough to be usable.
    1.57 +I proposed a very short project to prove the basic concepts,
    1.58 +and my management agreed.
    1.59 +Looking back, I realize that I had been very lucky with my first design.
    1.60 +Without nearly enough design work,
    1.61 +I built a working environment and some header files
    1.62 +with key structures and wrote the first few \s-1MH\s0 commands:
    1.63 +inc, show/next/prev, and comp.
    1.64 +[...]
    1.65 +With these three, I was able to convince people that the structure was viable.
    1.66 +This took about three weeks.
    1.67 +.[
    1.68 +%O FIXME
    1.69 +.]
    1.70  
    1.71  .NH 2
    1.72  Problems