comparison intro.roff @ 207:e0e49a8bfbe8

Added refs.
author markus schnalke <meillo@marmaro.de>
date Thu, 12 Jul 2012 11:50:32 +0200
parents 8c0d5bd92f0b
children fead1fc981f0
comparison
equal deleted inserted replaced
206:d8b33fc611be 207:e0e49a8bfbe8
24 where the first implementation followed later. 24 where the first implementation followed later.
25 In spirit, MH is similar to Unix, which 25 In spirit, MH is similar to Unix, which
26 influenced the world more in being a set of system design concepts 26 influenced the world more in being a set of system design concepts
27 than in being a specific software product. 27 than in being a specific software product.
28 The ideas behind Unix are summarized in the \fIUnix philosophy\fP. 28 The ideas behind Unix are summarized in the \fIUnix philosophy\fP.
29 .[
30 gancarz unix philosophy
31 .]
29 MH follows this philosophy. 32 MH follows this philosophy.
30 33
31 .U2 "History 34 .U2 "History
32 .P 35 .P
33 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines 36 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines
34 proposed the design 37 proposed the design
35 of a new mail handling system, called \fIMail Handler\fP (MH), 38 of a new mail handling system, called \fIMail Handler\fP (MH),
36 to superseed RAND's old monolithic \fIMail System\fP (MS). 39 to superseed RAND's old monolithic \fIMail System\fP (MS).
40 .[
41 shapiro gaines mh proposal
42 .]
37 Two years later, in 1979, Bruce Borden took the proposal and implemented a 43 Two years later, in 1979, Bruce Borden took the proposal and implemented a
38 prototype of MH. 44 prototype of MH.
39 Before the prototype's existence, the concept was 45 Before the prototype's existence, the concept was
40 believed to be practically unusable. 46 believed to be practically unusable.
41 But the prototype proved successful and replaced MS thereafter. 47 But the prototype proved successful and replaced MS thereafter.\&
42 In replacing MS, MH grew to provide anything necessary for emailing. 48 .[
49 history of mh website
50 .]
43 .P 51 .P
44 In the early eighties, 52 In the early eighties,
45 the University of California at Irvine (UCI) started to use MH. 53 the University of California at Irvine (UCI) started to use MH.
46 Marshall T. Rose and John L. Romine then became the driving force. 54 Marshall T. Rose and John L. Romine then became the driving force.
47 They took over the development and pushed MH forward. 55 They took over the development and pushed MH forward.
48 RAND had put the code into the public domain by then. 56 RAND had put the code into the public domain by then.
49 MH was developed at UCI at the time when the Internet appeared, 57 MH was developed at UCI at the time when the Internet appeared,
50 when the University of California at Berkeley (UCB) implemented 58 the University of California at Berkeley (UCB) added TCP/IP
51 the TCP/IP stack, and when Eric Allman wrote Sendmail. 59 networking to their distribution, and Eric Allman wrote Sendmail.
52 MH was extended as emailing became more featured. 60 MH was extended as emailing became more featured.
53 The development of MH was closely related to the development of email 61 The development of MH was closely related to the development of email
54 RFCs. 62 RFCs.
55 In the advent of the \fIMultipurpose Internet Mail Extensions\fP (MIME), 63 In the advent of the \fIMultipurpose Internet Mail Extensions\fP (MIME),
56 MH was one of the first implementations of the new email standard. 64 MH was one of the first implementations of the new email standard.
65 MH grew to provide anything necessary for emailing.
57 .P 66 .P
58 In the nineties, the Internet became popular and in December 1996, 67 In the nineties, the Internet became popular and in December 1996,
59 Richard Coleman initiated the \fINew Mail Handler\fP (nmh) project. 68 Richard Coleman initiated the \fINew Mail Handler\fP (nmh) project.
60 Nmh is a fork of MH 6.8.3 and bases strongly on the 69 Nmh is a fork of MH 6.8.3 and bases strongly on the
61 \fILBL changes\fP by Van Jacobson, Mike Karels and Craig Leres. 70 \fILBL changes\fP by Van Jacobson, Mike Karels and Craig Leres.
71 .[
72 lbl changes
73 .]
62 Colman intended to modernize MH and improve its portability and 74 Colman intended to modernize MH and improve its portability and
63 MIME handling capabilities. 75 MIME handling capabilities.
64 This should be done openly within the Internet community. 76 This should be done openly within the Internet community.
65 The development of MH at UCI stopped after the 6.8.4 release in 77 The development of MH at UCI stopped after the 6.8.4 release in
66 February 1996, soon after the development of nmh had started. 78 February 1996, soon after the development of nmh had started.
95 context themselves. 107 context themselves.
96 The user can have one MH context or multiple ones; he can even share it 108 The user can have one MH context or multiple ones; he can even share it
97 with others. 109 with others.
98 .P 110 .P
99 Messages are named by their numeric filename, 111 Messages are named by their numeric filename,
100 but they can have symbolic names, too. 112 but they can have symbolic names, as well.
101 These are either automatically updated 113 These are either one of six system-controlled position names
102 position names such as the next or the last message,
103 or user-settable group names for arbitrary sets of messages. 114 or user-settable group names for arbitrary sets of messages.
104 These names are called sequences. 115 These names are called sequences.
105 Sequences can be bound to the containing folder or to the context. 116 Automatically updated position names exist for the
106 .P 117 first, last, previous, next, current message, and
107 The user's \fIprofile\fP is a file that contains his MH configuration. 118 for the number one beyond the last message.
119 (In mmh, the names of these sequences are abbreviated to the
120 first character.)
121 User-definded sequences can be bound to the folder containing the
122 messages (\fIpublic sequences\fP) or to the user's context
123 (\fIprivate sequences\fP).
124 .P
125 The user's \fIprofile\fP is the file that contains his MH configuration.
108 Default switches for the individual tools can be specified to 126 Default switches for the individual tools can be specified to
109 adjust them to the user's personal preferences. 127 adjust them to the user's personal preferences.
128 These switches will be automatically supplied whenever the specific
129 tool is invoked.
110 Additionally, a single command can be linked under different names 130 Additionally, a single command can be linked under different names
111 with different default values easily. 131 with different default values.
112 Form templates for new messages or for replies are easily changeable, 132 Form templates for new messages and replies, as well as format files
113 and output is adjustable with format files. 133 to adjust the output of tools are easily exchanged in the profile.
114 Almost every part of the system can be adjusted to personal preference. 134 .P
115 .P 135 Switches consist of a single dash (`\fL-\fP') followed by a word.
116 The system is well scriptable and extensible. 136 To ease typing, the word can be abbreviated, given the remaining
117 New MH tools are built out of or on top of existing ones quickly.
118 Furthermore, MH encourages the user to tailor, extend and automate the system.
119 As the MH tool chest was modeled after the Unix tool chest, the
120 properties of the latter apply to the former as well.
121
122
123 .ig \"XXX
124
125 .P
126 To ease typing, the switches can be abbreviated as much as the remaining
127 prefix remains unambiguous. 137 prefix remains unambiguous.
128 If in our example no other switch would start with the letter `t', then 138 If no other switch starts with the letter `t', then any of
129 .Cl "-truncate" , 139 .Cl "-truncate" ,
130 .Cl "-trunc" , 140 .Cl "-trunc" ,
131 .Cl "-tr" , 141 .Cl "-tr" ,
132 and 142 and
133 .Cl "-t 143 .Cl "-t
134 would all be the same. 144 is equal.
135 As a result, switches can neither be grouped (as in 145 As a result, switches can neither be grouped (as in
136 .Cl "ls -ltr" ) 146 .Cl "ls -ltr" )
137 nor can switch arguments be appended directly to the switch (as in 147 nor can switch arguments be appended directly to the switch (as in
138 .Cl "sendmail -q30m" ). 148 .Cl "sendmail -q30m" ).
139 .P
140 Many switches have negating counter-parts, which start with `no'. 149 Many switches have negating counter-parts, which start with `no'.
141 For example 150 For example
142 .Cl "-notruncate 151 .Cl "-notruncate
143 inverts the 152 inverts the
144 .Cl "-truncate 153 .Cl "-truncate
145 switch. 154 switch.
146 They exist to undo the effect of default switches in the profile. 155 They exist to override the effect of default switches in the profile.
147 If the user has chosen to change the default behavior of some tool 156 .P
148 by adding a default switch to the profile, 157 The system is well scriptable and extensible.
149 he can still undo this change in behavior by specifying the inverse 158 Almost every part of the system can be adjusted to personal preference.
150 switch on the command line. 159 New MH tools are built out of or on top of existing ones quickly.
151 160 Furthermore, MH encourages the user to tailor, extend, and automate
152 .. 161 the system.
162 As the MH tool chest was modeled after the Unix tool chest, the
163 properties of the latter apply to the former as well.
164
153 165
154 166
155 .U2 "Using MH 167 .U2 "Using MH
156 .P 168 .P
157 It is strongly recommended to have a look at the MH Book, 169 It is strongly recommended to have a look at the \fIMH Book\fP,
158 which offers a thorough introduction to using MH.
159 .[ [ 170 .[ [
160 peek mh book 171 peek mh book
161 .], Part II] 172 .], Part II]
162 Rose and Romine provide a deeper and more technical 173 which introduces into using MH.
163 though slightly outdated introduction in only about two dozen pages. 174 Rose and Romine provide a deeper and more technical,
175 though slightly outdated, introduction in only about two dozen pages.
164 .[ 176 .[
165 rose romine real work 177 rose romine real work
166 .] 178 .]
167 .P 179 .P
168 Following is an example mail handling session. 180 Following here is an example mail handling session.
169 It uses mmh but is mostly compatible with nmh and old MH. 181 Although it uses mmh, it is mostly compatible with nmh and the
182 original MH.
170 Details might vary but the look and feel is the same. 183 Details might vary but the look and feel is the same.
171 184
172 .so input/mh-session 185 .so input/mh-session
173 186
174 187
261 in parallel. 274 in parallel.
262 .P 275 .P
263 The name \fImmh\fP may stand for \fImodern mail handler\fP, 276 The name \fImmh\fP may stand for \fImodern mail handler\fP,
264 because the project tries to modernize nmh. 277 because the project tries to modernize nmh.
265 Personally however, I prefer to call mmh \fImeillo's mail handler\fP, 278 Personally however, I prefer to call mmh \fImeillo's mail handler\fP,
266 emphasizing that the project follows my visions and preferences. 279 emphasizing that the project is my version of nmh,
280 following my visions and preferences.
267 (My login name is \fImeillo\fP.) 281 (My login name is \fImeillo\fP.)
268 This project model was inspired by \fIdwm\fP, 282 This project model was inspired by \fIdwm\fP,
269 .\" XXX Ref 283 .[
284 dwm website
285 .]
270 which is Anselm Garbe's personal window manager \(en 286 which is Anselm Garbe's personal window manager \(en
271 targeted to satisfy Garbe's personal needs whenever conflicts appear. 287 targeted to satisfy Garbe's personal needs whenever conflicts appear.
272 Dwm had retained its lean elegance and its focused character, whereas 288 Dwm had retained its lean elegance and its focused character, whereas
273 its community-driven predecessor \fIwmii\fP had grown fat over time. 289 its community-driven predecessor \fIwmii\fP
274 .\" XXX ref 290 .[
291 wmii website
292 .]
293 had grown fat over time.
275 The development of mmh should remain focused. 294 The development of mmh should remain focused.
276 295
277 296
278 .U2 "Motivation 297 .U2 "Motivation
279 .P 298 .P
280 MH is the most important of very few command line tool chest email systems. 299 MH is the most important of very few email systems in a tool chest style.
281 Tool chests are powerful because they can be perfectly automated and 300 Tool chests are powerful because they can be perfectly automated and
282 extended. They allow arbitrary kinds of front-ends to be 301 extended. They allow arbitrary kinds of front-ends to be
283 implemented on top of them quickly and without internal knowledge. 302 implemented on top of them quickly and without internal knowledge.
284 Additionally, tool chests are easier to maintain than monolithic 303 Additionally, tool chests are easier to maintain than monolithic
285 programs. 304 programs.
319 It is worthwhile to fork nmh for the development of mmh, 338 It is worthwhile to fork nmh for the development of mmh,
320 because the two projects focus on different goals and differ in 339 because the two projects focus on different goals and differ in
321 fundamental questions. 340 fundamental questions.
322 The nmh community's reluctance regarding change conflicts 341 The nmh community's reluctance regarding change conflicts
323 with my strong desire for it. 342 with my strong desire for it.
343 .[
344 nmh-workers schnalke understanding nmh
345 .]
324 In developing a separate experimental version new approaches can 346 In developing a separate experimental version new approaches can
325 easily be tried out without the need to discuss changes beforehand. 347 easily be tried out without the need to discuss changes beforehand.
326 In fact, revolutionary changes are hardly possible otherwise. 348 In fact, revolutionary changes are hardly possible otherwise.
327 .P 349 .P
328 The mmh project provides the basis on which the aforementioned 350 The mmh project provides the basis on which the aforementioned