docs/master

diff ch01.roff @ 42:af8c46461924

Rework and new text about mmh's name in the Intro.
author markus schnalke <meillo@marmaro.de>
date Wed, 16 May 2012 17:40:34 +0200
parents 22ae3981a76b
children c21ff903c71c
line diff
     1.1 --- a/ch01.roff	Wed May 16 09:35:55 2012 +0200
     1.2 +++ b/ch01.roff	Wed May 16 17:40:34 2012 +0200
     1.3 @@ -16,14 +16,10 @@
     1.4  Most important for this thesis is that MH defines a mail handling concept.
     1.5  In fact, MH had started as a design proposal, not as an implementation,
     1.6  and in spirit it had remained this way. This is similar to Unix, which
     1.7 -influenced the world rather in being a set of system design concepts
     1.8 +influenced the world more in being a set of system design concepts
     1.9  than in being a specific software product.
    1.10 -.P
    1.11 -XXX Link to the Unix phil.
    1.12 -.P
    1.13 -XXX comparision to monolithic mail systems.
    1.14 -.P
    1.15 -XXX Differenciation of MUA and mail system.
    1.16 +These ideas behind Unix are summarized in the \fIUnix philosophy\fP.
    1.17 +MH follows this philosophy.
    1.18  
    1.19  .U2 "History
    1.20  .P
    1.21 @@ -63,15 +59,18 @@
    1.22  .U2 "Concepts
    1.23  .P
    1.24  MH is a toolchest, modelled after the Unix toolchest. It consists of a
    1.25 -set of tools, each covering a specific task of email handling. The programs
    1.26 +set of tools, each covering a specific task of email handling.
    1.27 +The programs
    1.28  operate on a common mail storage. The specific format of the mail storage
    1.29  characterizes MH in the same way like the format of the file system
    1.30  characterizes Unix.
    1.31 +.P
    1.32  The mail storage consists of \fImail folders\fP (directories) and
    1.33  \fPmessages\fP (regular files).
    1.34  Each message is stored in a separate file in the format it had been
    1.35  received (i.e. transfer format). The files are named with ascending numbers
    1.36  in each folder.
    1.37 +.P
    1.38  MH tools maintain a \fIcontext\fP, which includes
    1.39  the current mail folder and current message.
    1.40  Processes in Unix have a similar context, containing the current working
    1.41 @@ -80,6 +79,7 @@
    1.42  context themselves.
    1.43  The user can have one MH context or multiple ones, he can even share it
    1.44  with other users.
    1.45 +.P
    1.46  Messages can have symbolic names. These can be automatically updated
    1.47  position names like being the next or the last message,
    1.48  or user-settable group names for arbitrary sets of messages.
    1.49 @@ -92,9 +92,10 @@
    1.50  are created very easily. This provides shortcuts and tayloring.
    1.51  Form templates for new messages or for replies are easily exchangable.
    1.52  Generally, output is adjustable with format files.
    1.53 +.P
    1.54  The configuration is stored in a file that is called the user's \fIprofile\fP.
    1.55  MH encourages the user to taylor and automate the mail handling.
    1.56 -Almost everypart of the system can be adjusted to personal preference.
    1.57 +Almost every part of the system can be adjusted to personal preference.
    1.58  The system is well scriptable and extendable.
    1.59  As the MH toolchest was modelled after the Unix toolchest, the
    1.60  properties of the latter apply to the former as well.
    1.61 @@ -103,13 +104,15 @@
    1.62  .P
    1.63  Three versions of MH are available today:
    1.64  .IP "Old MH"
    1.65 +.br
    1.66  In most cases this version had been replaced by nmh,
    1.67  but some systems might still provide old MH.
    1.68  The main reasons to still use old MH are historical reasons.
    1.69  MH provides hardly any benefits over nmh.
    1.70  The development of old MH has stopped after the 6.8.4 release in
    1.71  February 1996.
    1.72 -.IP nmh\0
    1.73 +.IP nmh
    1.74 +.br
    1.75  The most widespread version of MH was forked off version 6.8.3 in December
    1.76  1996. It is based on the \fILBL changes\fP.
    1.77  Backward-compatibility to old MH is provided by having new featues deactivated
    1.78 @@ -118,6 +121,7 @@
    1.79  Throughout the previous years, the work on nmh was mostly maintenance work.
    1.80  Development revived in December 2011 and stayed busy since then.
    1.81  .IP mmh
    1.82 +.br
    1.83  This descendent of nmh is the subject of this thesis.
    1.84  It had started as an experimental version, but became de facto a fork.
    1.85  
    1.86 @@ -126,18 +130,53 @@
    1.87  Following is an example mail handling session with mmh.
    1.88  It should be mostly compatible with nmh and old MH.
    1.89  Details might vary but the look'n'feel is the same.
    1.90 -.P
    1.91 -XXX shell mail handling session follows ...
    1.92 +.DS
    1.93 +$ \f(CBinc\fP
    1.94 +Incorporating new mail into inbox...
    1.95 +	
    1.96 +   1+ 2012-05-16 11:16  meillo@dream.home  Hello
    1.97 +   2  2012-05-16 11:17  meillo@dream.home  book
    1.98 +	
    1.99 +$ \f(CBshow\fP
   1.100 +Date:    Wed, 16 May 2012 11:16:00 +0200
   1.101 +To:      meillo
   1.102 +From:    <meillo@dream.home.schnalke.org>
   1.103 +Subject: Hello
   1.104 +	
   1.105 +part       text/plain                  13
   1.106 +mmh is great
   1.107 +	
   1.108 +$ \f(CBnext\fP
   1.109 +Date:    Wed, 16 May 2012 11:17:24 +0200
   1.110 +To:      meillo
   1.111 +From:    <meillo@dream.home.schnalke.org>
   1.112 +Subject: book
   1.113 +	
   1.114 +part       text/plain                  79
   1.115 +Hello meillo,
   1.116 +	
   1.117 +have a look at the ``Daemon book''. You need to read that!
   1.118 +	
   1.119 +foo
   1.120 +	
   1.121 +$ \f(CBrmm 1\fP
   1.122 +	
   1.123 +$ \f(CBscan\fP
   1.124 +   2+ 2012-05-16 11:17  meillo@dream.home  book
   1.125 +	
   1.126 +$
   1.127 +.DE
   1.128  
   1.129  
   1.130  .H1 "nmh: Code and Community
   1.131  .P
   1.132  In order to understand the state, goals and dynamics of a project,
   1.133 -one needs to know its history. MH comes from a time before the
   1.134 -Internet, a time before networking became universal, a time when
   1.135 -emailing was small, short and simple. Then it grew, spread and
   1.136 -adopted to the changes. The core-concepts, however, remained the
   1.137 -same. During the XXX a small group of students at the University of
   1.138 +one needs to know its history. MH predates the Internet,
   1.139 +it comes from times before networking was universal,
   1.140 +times when emailing was small, short and simple.
   1.141 +Then it grew, spread and adopted to the changes email went through.
   1.142 +The core-concepts, however, remained the same.
   1.143 +During the 80s a small group of students at the University of
   1.144  California, actively worked on MH. They added features and optimized,
   1.145  like it is common for scientific work. This is still in pre-ANSI C
   1.146  times. The source code contains many ancient parts. Code constructs
   1.147 @@ -146,10 +185,11 @@
   1.148  Nmh started eight years after the ANSI C standard had been
   1.149  established. A more modern coding style entered the code base. Still
   1.150  a part of the developers come from ``the old days''. The developer
   1.151 -base became more diverse and thus the code. Programming practices
   1.152 +base became more diverse and thus the code had different style.
   1.153 +Programming practices
   1.154  from different decades merged into the project. Different coding
   1.155  styles came together. It appears as if multiple peers added code
   1.156 -parts, resulting in a conclomeration rather than an homogenic
   1.157 +parts, resulting in a conclomeration rather than a homogenic
   1.158  of-one-cast mail system. Still, the basic concepts hold it together.
   1.159  They were mostly untouched throughout the years.
   1.160  .P
   1.161 @@ -179,18 +219,50 @@
   1.162  
   1.163  .H1 "mmh
   1.164  .P
   1.165 -I started to work on my experimental version, which I call
   1.166 -\fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011.
   1.167 -In December, when I announced that I would work on an experimental
   1.168 -version, the activity in nmh suddenly rose. Suddently the community
   1.169 -started to move.
   1.170 -After long years of mostly idling, nmh became actively developed again.
   1.171 -What a great result!
   1.172 -Hence, while I was working on mmh, the community was working on nmh
   1.173 -too. My own work went in parallel and mostly unrelated.
   1.174 +I started to work on my experimental version in Fall 2011.
   1.175 +In December, when I announced my work on the nmh-workers mailing list,
   1.176 +.[
   1.177 +nmh-workers mmh announce december
   1.178 +.]
   1.179 +the activity in nmh rose heavily.
   1.180 +Suddently the community started to move.
   1.181 +This movement was pushed much by Paul Vixie's ``edginess'' message.
   1.182 +.[
   1.183 +nmh-workers vixie edginess
   1.184 +.]
   1.185 +After long years of much stagnation, nmh became actively developed again.
   1.186 +Hence, while I was working on mmh, the community was working on nmh,
   1.187 +in parallel.
   1.188 +
   1.189 +.U2 "Naming
   1.190  .P
   1.191 -Because of several circumstances, my experimental version is rather
   1.192 -a fork today, although this may change again in the future.
   1.193 +The name \fImmh\fP stands for \fImeillo's mail handler\fP,
   1.194 +because mmh is my own version of MH.
   1.195 +(My login name is \fImeillo\fP.)
   1.196 +The project follows my personal considerations and preferences.
   1.197 +By calling it a personal project, I don't need to justify my decisions,
   1.198 +though, still I do.
   1.199 +This enabled me to follow my vision staightly and thus produce
   1.200 +a result of greater pureness.
   1.201 +This project model was inspired by the window manager \fIdwm\fP,
   1.202 +which is Anselm Garbe's personal window manager \(en
   1.203 +targeted to satisfy Garbe's personal needs whenever conflicts appear.
   1.204 +dwm had remained much more focused on its original goals,
   1.205 +whereas its community-driven predecessor \fIwmii\fP had
   1.206 +grown large and lost it's leanness.
   1.207 +This should not happen to mmh.
   1.208 +.P
   1.209 +mmh can also stand for \fImodern mail handler\fP, and this is
   1.210 +the variant chosen as titel for this document. One main focus of the
   1.211 +project was to modernize nmh. Another main goal is resembled in the
   1.212 +name \fIminimized mail handler\fP: Drop any parts that don't add
   1.213 +to the main task of mmh, being a MUA.
   1.214 +.P
   1.215 +It should also be noted that \fLstrcmp("mmh","nmh")<0\fP is true.
   1.216 +Although mmh bases on nmh, it is likely seen as a step backward.
   1.217 +I agree.
   1.218 +However, this step backward actually is a step forward,
   1.219 +although in another direction.
   1.220  
   1.221  .U2 "Motivation
   1.222  .P
   1.223 @@ -199,6 +271,8 @@
   1.224  .U2 "Why it is worth it
   1.225  .P
   1.226  XXX
   1.227 +XXX comparision to monolithic mail systems.
   1.228 +XXX Differenciation of MUA and mail system.
   1.229  
   1.230  .U2 "Target Field
   1.231  .P