comparison 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
comparison
equal deleted inserted replaced
41:443dda7ccb4a 42:af8c46461924
14 .P 14 .P
15 MH is an electronic mail system, originating in the RAND Corporation. 15 MH is an electronic mail system, originating in the RAND Corporation.
16 Most important for this thesis is that MH defines a mail handling concept. 16 Most important for this thesis is that MH defines a mail handling concept.
17 In fact, MH had started as a design proposal, not as an implementation, 17 In fact, MH had started as a design proposal, not as an implementation,
18 and in spirit it had remained this way. This is similar to Unix, which 18 and in spirit it had remained this way. This is similar to Unix, which
19 influenced the world rather in being a set of system design concepts 19 influenced the world more in being a set of system design concepts
20 than in being a specific software product. 20 than in being a specific software product.
21 .P 21 These ideas behind Unix are summarized in the \fIUnix philosophy\fP.
22 XXX Link to the Unix phil. 22 MH follows this philosophy.
23 .P
24 XXX comparision to monolithic mail systems.
25 .P
26 XXX Differenciation of MUA and mail system.
27 23
28 .U2 "History 24 .U2 "History
29 .P 25 .P
30 MH is an electronic mail system, originating in the RAND Corporation. 26 MH is an electronic mail system, originating in the RAND Corporation.
31 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines 27 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines
61 Today, nmh almost completely replaced the original MH. 57 Today, nmh almost completely replaced the original MH.
62 58
63 .U2 "Concepts 59 .U2 "Concepts
64 .P 60 .P
65 MH is a toolchest, modelled after the Unix toolchest. It consists of a 61 MH is a toolchest, modelled after the Unix toolchest. It consists of a
66 set of tools, each covering a specific task of email handling. The programs 62 set of tools, each covering a specific task of email handling.
63 The programs
67 operate on a common mail storage. The specific format of the mail storage 64 operate on a common mail storage. The specific format of the mail storage
68 characterizes MH in the same way like the format of the file system 65 characterizes MH in the same way like the format of the file system
69 characterizes Unix. 66 characterizes Unix.
67 .P
70 The mail storage consists of \fImail folders\fP (directories) and 68 The mail storage consists of \fImail folders\fP (directories) and
71 \fPmessages\fP (regular files). 69 \fPmessages\fP (regular files).
72 Each message is stored in a separate file in the format it had been 70 Each message is stored in a separate file in the format it had been
73 received (i.e. transfer format). The files are named with ascending numbers 71 received (i.e. transfer format). The files are named with ascending numbers
74 in each folder. 72 in each folder.
73 .P
75 MH tools maintain a \fIcontext\fP, which includes 74 MH tools maintain a \fIcontext\fP, which includes
76 the current mail folder and current message. 75 the current mail folder and current message.
77 Processes in Unix have a similar context, containing the current working 76 Processes in Unix have a similar context, containing the current working
78 directory, for instance. In contrast, the process context is maintained 77 directory, for instance. In contrast, the process context is maintained
79 by the Unix kernel automatically, whereas MH tools need to maintain the MH 78 by the Unix kernel automatically, whereas MH tools need to maintain the MH
80 context themselves. 79 context themselves.
81 The user can have one MH context or multiple ones, he can even share it 80 The user can have one MH context or multiple ones, he can even share it
82 with other users. 81 with other users.
82 .P
83 Messages can have symbolic names. These can be automatically updated 83 Messages can have symbolic names. These can be automatically updated
84 position names like being the next or the last message, 84 position names like being the next or the last message,
85 or user-settable group names for arbitrary sets of messages. 85 or user-settable group names for arbitrary sets of messages.
86 These names are called sequences. 86 These names are called sequences.
87 Sequences can be bound to the folder or to the context. 87 Sequences can be bound to the folder or to the context.
90 a property common to toolchests. 90 a property common to toolchests.
91 Multiple versions of the same command with different default values 91 Multiple versions of the same command with different default values
92 are created very easily. This provides shortcuts and tayloring. 92 are created very easily. This provides shortcuts and tayloring.
93 Form templates for new messages or for replies are easily exchangable. 93 Form templates for new messages or for replies are easily exchangable.
94 Generally, output is adjustable with format files. 94 Generally, output is adjustable with format files.
95 .P
95 The configuration is stored in a file that is called the user's \fIprofile\fP. 96 The configuration is stored in a file that is called the user's \fIprofile\fP.
96 MH encourages the user to taylor and automate the mail handling. 97 MH encourages the user to taylor and automate the mail handling.
97 Almost everypart of the system can be adjusted to personal preference. 98 Almost every part of the system can be adjusted to personal preference.
98 The system is well scriptable and extendable. 99 The system is well scriptable and extendable.
99 As the MH toolchest was modelled after the Unix toolchest, the 100 As the MH toolchest was modelled after the Unix toolchest, the
100 properties of the latter apply to the former as well. 101 properties of the latter apply to the former as well.
101 102
102 .U2 "Versions 103 .U2 "Versions
103 .P 104 .P
104 Three versions of MH are available today: 105 Three versions of MH are available today:
105 .IP "Old MH" 106 .IP "Old MH"
107 .br
106 In most cases this version had been replaced by nmh, 108 In most cases this version had been replaced by nmh,
107 but some systems might still provide old MH. 109 but some systems might still provide old MH.
108 The main reasons to still use old MH are historical reasons. 110 The main reasons to still use old MH are historical reasons.
109 MH provides hardly any benefits over nmh. 111 MH provides hardly any benefits over nmh.
110 The development of old MH has stopped after the 6.8.4 release in 112 The development of old MH has stopped after the 6.8.4 release in
111 February 1996. 113 February 1996.
112 .IP nmh\0 114 .IP nmh
115 .br
113 The most widespread version of MH was forked off version 6.8.3 in December 116 The most widespread version of MH was forked off version 6.8.3 in December
114 1996. It is based on the \fILBL changes\fP. 117 1996. It is based on the \fILBL changes\fP.
115 Backward-compatibility to old MH is provided by having new featues deactivated 118 Backward-compatibility to old MH is provided by having new featues deactivated
116 by default. In consequence, the user needs to activate them explicitely to 119 by default. In consequence, the user needs to activate them explicitely to
117 be able to use them. 120 be able to use them.
118 Throughout the previous years, the work on nmh was mostly maintenance work. 121 Throughout the previous years, the work on nmh was mostly maintenance work.
119 Development revived in December 2011 and stayed busy since then. 122 Development revived in December 2011 and stayed busy since then.
120 .IP mmh 123 .IP mmh
124 .br
121 This descendent of nmh is the subject of this thesis. 125 This descendent of nmh is the subject of this thesis.
122 It had started as an experimental version, but became de facto a fork. 126 It had started as an experimental version, but became de facto a fork.
123 127
124 .U2 "Example Session 128 .U2 "Example Session
125 .P 129 .P
126 Following is an example mail handling session with mmh. 130 Following is an example mail handling session with mmh.
127 It should be mostly compatible with nmh and old MH. 131 It should be mostly compatible with nmh and old MH.
128 Details might vary but the look'n'feel is the same. 132 Details might vary but the look'n'feel is the same.
129 .P 133 .DS
130 XXX shell mail handling session follows ... 134 $ \f(CBinc\fP
135 Incorporating new mail into inbox...
136
137 1+ 2012-05-16 11:16 meillo@dream.home Hello
138 2 2012-05-16 11:17 meillo@dream.home book
139
140 $ \f(CBshow\fP
141 Date: Wed, 16 May 2012 11:16:00 +0200
142 To: meillo
143 From: <meillo@dream.home.schnalke.org>
144 Subject: Hello
145
146 part text/plain 13
147 mmh is great
148
149 $ \f(CBnext\fP
150 Date: Wed, 16 May 2012 11:17:24 +0200
151 To: meillo
152 From: <meillo@dream.home.schnalke.org>
153 Subject: book
154
155 part text/plain 79
156 Hello meillo,
157
158 have a look at the ``Daemon book''. You need to read that!
159
160 foo
161
162 $ \f(CBrmm 1\fP
163
164 $ \f(CBscan\fP
165 2+ 2012-05-16 11:17 meillo@dream.home book
166
167 $
168 .DE
131 169
132 170
133 .H1 "nmh: Code and Community 171 .H1 "nmh: Code and Community
134 .P 172 .P
135 In order to understand the state, goals and dynamics of a project, 173 In order to understand the state, goals and dynamics of a project,
136 one needs to know its history. MH comes from a time before the 174 one needs to know its history. MH predates the Internet,
137 Internet, a time before networking became universal, a time when 175 it comes from times before networking was universal,
138 emailing was small, short and simple. Then it grew, spread and 176 times when emailing was small, short and simple.
139 adopted to the changes. The core-concepts, however, remained the 177 Then it grew, spread and adopted to the changes email went through.
140 same. During the XXX a small group of students at the University of 178 The core-concepts, however, remained the same.
179 During the 80s a small group of students at the University of
141 California, actively worked on MH. They added features and optimized, 180 California, actively worked on MH. They added features and optimized,
142 like it is common for scientific work. This is still in pre-ANSI C 181 like it is common for scientific work. This is still in pre-ANSI C
143 times. The source code contains many ancient parts. Code constructs 182 times. The source code contains many ancient parts. Code constructs
144 specific to BSD or hardware of that time are usual. 183 specific to BSD or hardware of that time are usual.
145 .P 184 .P
146 Nmh started eight years after the ANSI C standard had been 185 Nmh started eight years after the ANSI C standard had been
147 established. A more modern coding style entered the code base. Still 186 established. A more modern coding style entered the code base. Still
148 a part of the developers come from ``the old days''. The developer 187 a part of the developers come from ``the old days''. The developer
149 base became more diverse and thus the code. Programming practices 188 base became more diverse and thus the code had different style.
189 Programming practices
150 from different decades merged into the project. Different coding 190 from different decades merged into the project. Different coding
151 styles came together. It appears as if multiple peers added code 191 styles came together. It appears as if multiple peers added code
152 parts, resulting in a conclomeration rather than an homogenic 192 parts, resulting in a conclomeration rather than a homogenic
153 of-one-cast mail system. Still, the basic concepts hold it together. 193 of-one-cast mail system. Still, the basic concepts hold it together.
154 They were mostly untouched throughout the years. 194 They were mostly untouched throughout the years.
155 .P 195 .P
156 Although, at the surface, nmh is a toolchest, meaning a collection 196 Although, at the surface, nmh is a toolchest, meaning a collection
157 of completely modularized small programs, on the source code level, 197 of completely modularized small programs, on the source code level,
177 back-end. 217 back-end.
178 218
179 219
180 .H1 "mmh 220 .H1 "mmh
181 .P 221 .P
182 I started to work on my experimental version, which I call 222 I started to work on my experimental version in Fall 2011.
183 \fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011. 223 In December, when I announced my work on the nmh-workers mailing list,
184 In December, when I announced that I would work on an experimental 224 .[
185 version, the activity in nmh suddenly rose. Suddently the community 225 nmh-workers mmh announce december
186 started to move. 226 .]
187 After long years of mostly idling, nmh became actively developed again. 227 the activity in nmh rose heavily.
188 What a great result! 228 Suddently the community started to move.
189 Hence, while I was working on mmh, the community was working on nmh 229 This movement was pushed much by Paul Vixie's ``edginess'' message.
190 too. My own work went in parallel and mostly unrelated. 230 .[
191 .P 231 nmh-workers vixie edginess
192 Because of several circumstances, my experimental version is rather 232 .]
193 a fork today, although this may change again in the future. 233 After long years of much stagnation, nmh became actively developed again.
234 Hence, while I was working on mmh, the community was working on nmh,
235 in parallel.
236
237 .U2 "Naming
238 .P
239 The name \fImmh\fP stands for \fImeillo's mail handler\fP,
240 because mmh is my own version of MH.
241 (My login name is \fImeillo\fP.)
242 The project follows my personal considerations and preferences.
243 By calling it a personal project, I don't need to justify my decisions,
244 though, still I do.
245 This enabled me to follow my vision staightly and thus produce
246 a result of greater pureness.
247 This project model was inspired by the window manager \fIdwm\fP,
248 which is Anselm Garbe's personal window manager \(en
249 targeted to satisfy Garbe's personal needs whenever conflicts appear.
250 dwm had remained much more focused on its original goals,
251 whereas its community-driven predecessor \fIwmii\fP had
252 grown large and lost it's leanness.
253 This should not happen to mmh.
254 .P
255 mmh can also stand for \fImodern mail handler\fP, and this is
256 the variant chosen as titel for this document. One main focus of the
257 project was to modernize nmh. Another main goal is resembled in the
258 name \fIminimized mail handler\fP: Drop any parts that don't add
259 to the main task of mmh, being a MUA.
260 .P
261 It should also be noted that \fLstrcmp("mmh","nmh")<0\fP is true.
262 Although mmh bases on nmh, it is likely seen as a step backward.
263 I agree.
264 However, this step backward actually is a step forward,
265 although in another direction.
194 266
195 .U2 "Motivation 267 .U2 "Motivation
196 .P 268 .P
197 XXX 269 XXX
198 270
199 .U2 "Why it is worth it 271 .U2 "Why it is worth it
200 .P 272 .P
201 XXX 273 XXX
274 XXX comparision to monolithic mail systems.
275 XXX Differenciation of MUA and mail system.
202 276
203 .U2 "Target Field 277 .U2 "Target Field
204 .P 278 .P
205 XXX Target field and scenarios 279 XXX Target field and scenarios
206 .P 280 .P