# HG changeset patch # User meillo@marmaro.de # Date 1267190939 -3600 # Node ID ca929b042039d7428ce220b13f5b859a83bb20f6 # Parent 578d5c84e5c0ad00fea0028a4e14875ad68e3fae more on MH (ch04) diff -r 578d5c84e5c0 -r ca929b042039 unix-phil.ms --- a/unix-phil.ms Fri Feb 26 00:57:37 2010 +0100 +++ b/unix-phil.ms Fri Feb 26 14:28:59 2010 +0100 @@ -952,10 +952,67 @@ and the lesser tenet .I "``allow the user to tailor the environment'' are ideally followed in the design of \s-1MH\s0. +Tailoring the environment is heavily encouraged by the ability to +directly define default options to programs, even different ones +depending on the name under which the program was called. +Software leverage is heavily encouraged by the ease it is to +create shell scripts that run a specific command line, +build of several \s-1MH\s0 programs. +There is few software that so much wants users to tailor their +environment and to leverage the use of the software, like \s-1MH\s0. +Just to make one example: +One might prefere a different listing format for the \f(CWscan\fP +program. +It is possible to take one of the other distributed format files +or to write one yourself. +To use the format as default for \f(CWscan\fP, a single line, +reading +.DS +.CW +scan: -form FORMATFILE +.DE +must be added to \f(CW.mh_profile\fP. +If one wants this different format as an additional command, +he needs to create a link to \f(CWscan\fP, for instance titled +\f(CWscan2\fP. +The line in \f(CW.mh_profile\fP would then start with \f(CWscan2\fP, +as the option should only be in effect when scan was called as +\f(CWscan2\fP. .PP -filters: many tools provide basic FS operations (like mv, rm, ...) -prototypes: affect dev, but MH is very matured +.I "``Make every program a filter'' +is hard to find in \s-1MH\s0. +The reason therefore is that most of \s-1MH\s0's tools provide +basic file system operations for the mailboxes. +\f(CWls\fP, \f(CWcp\fP, \f(CWmv\fP, and \f(CWrm\fP +aren't filters neither. + +.PP +.I "``Build a prototype as soon as possible'' +was again well followed by \s-1MH\s0. +This tenet, of course, focuses on early development, which is +long time ago for \s-1MH\s0. +But without following this guideline at the very beginning, +Bruce Borden may have not convinced the management to ever +create \s-1MH\s0. +In Bruce's own words: +.QP +[...] but [Stockton Gaines and Norm Shapiro] were not able +to convince anyone that such a[n \s-1MH\s0-like] system +would be fast enough to be usable. +I proposed a very short project to prove the basic concepts, +and my management agreed. +Looking back, I realize that I had been very lucky with my first design. +Without nearly enough design work, +I built a working environment and some header files +with key structures and wrote the first few \s-1MH\s0 commands: +inc, show/next/prev, and comp. +[...] +With these three, I was able to convince people that the structure was viable. +This took about three weeks. +.[ +%O FIXME +.] .NH 2 Problems