comparison ch01.roff @ 47:eae5e50381ce

Rework in Preface and Intro.
author markus schnalke <meillo@marmaro.de>
date Fri, 18 May 2012 11:21:51 +0200
parents 7a33b5adb672
children d28ff07dfc0f d3a02f5e63b3
comparison
equal deleted inserted replaced
46:c9fc47c89d54 47:eae5e50381ce
1 .RN 1 1 .RN 1
2 2
3 .H0 "Introduction 3 .H0 "Introduction
4 .P 4 .P
5 This chapter introduces MH, its history, concepts and how it is used. 5 This chapter introduces MH, its history, concepts and how it is used.
6 Then, it describes nmh's code base and community to give the reader 6 It describes nmh's code base and community to give the reader
7 a better understanding of the state from which mmh started off. 7 a better understanding of the state from which mmh started off.
8 Further more, this chapter lists the motivation and goals of the mmh project. 8 Further more, this chapter outlines the mmh project itself,
9 This chapter introduces MH, nmh and mmh to the reader and outlines 9 describing the motivation for it and its goals.
10 the mmh project itself.
11 10
12 11
13 .H1 "MH \(en the Mail Handler 12 .H1 "MH \(en the Mail Handler
14 .P 13 .P
15 MH is an electronic mail system, originating in the RAND Corporation. 14 MH is a conceptual email system design and its concrete implementation.
16 Most important for this thesis is that MH defines a mail handling concept. 15 Notably, MH had started as a design proposal at RAND Corporation,
17 In fact, MH had started as a design proposal, not as an implementation, 16 where the first implementation followed later.
18 and in spirit it had remained this way. This is similar to Unix, which 17 In spirit, MH is similar to Unix, which
19 influenced the world more in being a set of system design concepts 18 influenced the world more in being a set of system design concepts
20 than in being a specific software product. 19 than in being a specific software product.
21 These ideas behind Unix are summarized in the \fIUnix philosophy\fP. 20 The ideas behind Unix are summarized in the \fIUnix philosophy\fP.
22 MH follows this philosophy. 21 MH follows this philosophy.
23 22
24 .U2 "History 23 .U2 "History
25 .P 24 .P
26 MH is an electronic mail system, originating in the RAND Corporation.
27 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines 25 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines
28 had proposed the design 26 had proposed the design
29 of a new mail handling system, called ``Mail Handler'' (MH), 27 of a new mail handling system, called ``Mail Handler'' (MH),
30 to superseed RAND's old monolithic ``Mail System'' (MS). 28 to superseed RAND's old monolithic ``Mail System'' (MS).
31 Two years later, in 1979, Bruce Borden took the proposal and implemented a 29 Two years later, in 1979, Bruce Borden took the proposal and implemented a
32 prototype of MH. 30 prototype of MH.
33 Before the prototype had been available, the concept was 31 Before the prototype had been available, the concept was
34 believed to be practically unusable because of being too slow. 32 believed to be practically unusable.
35 But the prototype proved successful and replaced MS thereafter. 33 But the prototype had proven successful and replaced MS thereafter.
36 In replacing MS, MH became an all-in-one mail system. 34 In replacing MS, MH grew to an all-in-one mail system.
37 .P 35 .P
38 A decade later, the University of California at Irvine had started to use MH. 36 In the early Eighties,
37 the University of California at Irvine (UCI) had started to use MH.
39 They also took over its development and pushed MH forward. 38 They also took over its development and pushed MH forward.
40 This was the time when the Internet appeared, UCB implemented 39 Marshall T. Rose and John L. Romine became the driving force then.
41 the TCP/IP stack, and Allman wrote Sendmail. 40 This was the time when the Internet appeared, when UCB implemented
42 MH was extended as emailing got more features. 41 the TCP/IP stack, and when Allman wrote Sendmail.
42 MH was extended as emailing became more featured.
43 The development of MH was closely related to the development of email 43 The development of MH was closely related to the development of email
44 RFCs. In the advent of MIME, MH was the first implementation of this new 44 RFCs. In the advent of MIME, MH was the first implementation of this new
45 email standard. 45 email standard.
46 .P 46 .P
47 In the nineties, MH had been moved into the public domain, making it 47 In the Nineties, MH had been moved into the public domain, making it
48 attractive to Free Software developers. 48 attractive to Free Software developers.
49 The Internet had started to become popular and in 1997, 49 The Internet had became popular and in December 1996,
50 Richard Coleman initiated the ``New Mail Handler'' (nmh) project, 50 Richard Coleman initiated the ``New Mail Handler'' (nmh) project.
51 a fork of MH, based on the \fILBL changes\fP by Van Jacobson, Mike Karels 51 The project is a fork of MH 6.8.3 and bases strongly on the
52 and Craig Leres. 52 \fILBL changes\fP by Van Jacobson, Mike Karels and Craig Leres.
53 Colman intended to modernize MH and improve its portability and 53 Colman intended to modernize MH and improve its portability and
54 MIME handling capabilities. 54 MIME handling capabilities.
55 This should be done openly within the Internet community. 55 This should be done openly within the Internet community.
56 The development of MH stopped soon after the development of nmh had started. 56 The development of MH at UCI stopped after the 6.8.4 release in
57 February 1996, soon after the development of nmh had started.
57 Today, nmh almost completely replaced the original MH. 58 Today, nmh almost completely replaced the original MH.
59 Some systems might still provide old MH, but mainly for historical reasons.
60 .P
61 In the last years, the work on nmh was mostly maintenance work.
62 However, the development revived in December 2011 and stayed busy since then.
58 63
59 .U2 "Concepts 64 .U2 "Concepts
60 .P 65 .P
61 MH is a toolchest, modelled after the Unix toolchest. It consists of a 66 MH is a toolchest, modelled after the Unix toolchest. It consists of a
62 set of tools, each covering a specific task of email handling. 67 set of tools, each covering a specific task of email handling, like
63 The programs 68 composing a message, replying to a message, refiling a message to a
64 operate on a common mail storage. The specific format of the mail storage 69 different folder, listing the messages in a folder.
65 characterizes MH in the same way like the format of the file system 70 All of the programs operate on a common mail storage.
66 characterizes Unix.
67 .P 71 .P
68 The mail storage consists of \fImail folders\fP (directories) and 72 The mail storage consists of \fImail folders\fP (directories) and
69 \fPmessages\fP (regular files). 73 \fPmessages\fP (regular files).
70 Each message is stored in a separate file in the format it had been 74 Each message is stored in a separate file in the format it had been
71 received (i.e. transfer format). The files are named with ascending numbers 75 received (i.e. transfer format).
72 in each folder. 76 The files are named with ascending numbers in each folder.
73 .P 77 The specific format of the mail storage characterizes MH in the same way
74 MH tools maintain a \fIcontext\fP, which includes 78 like the format of the file system characterizes Unix.
75 the current mail folder and current message. 79 .P
80 MH tools maintain a \fIcontext\fP, which includes the current mail folder.
76 Processes in Unix have a similar context, containing the current working 81 Processes in Unix have a similar context, containing the current working
77 directory, for instance. In contrast, the process context is maintained 82 directory, for instance. In contrast, the process context is maintained
78 by the Unix kernel automatically, whereas MH tools need to maintain the MH 83 by the Unix kernel automatically, whereas MH tools need to maintain the MH
79 context themselves. 84 context themselves.
80 The user can have one MH context or multiple ones, he can even share it 85 The user can have one MH context or multiple ones, he can even share it
81 with other users. 86 with other users.
82 .P 87 .P
83 Messages can have symbolic names. These can be automatically updated 88 Messages are named by their numeric filename, but they can have symbolic names,
89 too. These are either automatically updated
84 position names like being the next or the last message, 90 position names like being the next or the last message,
85 or user-settable group names for arbitrary sets of messages. 91 or user-settable group names for arbitrary sets of messages.
86 These names are called sequences. 92 These names are called sequences.
87 Sequences can be bound to the folder or to the context. 93 Sequences can be bound to the containing folder or to the context.
88 .P 94 .P
89 New MH tools are built out of or on top of existing ones easily \(en 95 The user's \fIprofile\fP is a file that contains his MH configuration.
90 a property common to toolchests. 96 Default switches for the individual tools can be specified to
91 Multiple versions of the same command with different default values 97 adjust them to the user's personal preferences.
92 are created very easily. This provides shortcuts and tayloring. 98 Multiple versions of the same command with different
93 Form templates for new messages or for replies are easily exchangable. 99 default values can also be created very easily.
94 Generally, output is adjustable with format files. 100 Form templates for new messages or for replies are easily changable,
95 .P 101 and output is adjustable with format files.
96 The configuration is stored in a file that is called the user's \fIprofile\fP.
97 MH encourages the user to taylor and automate the mail handling.
98 Almost every part of the system can be adjusted to personal preference. 102 Almost every part of the system can be adjusted to personal preference.
103 .P
99 The system is well scriptable and extendable. 104 The system is well scriptable and extendable.
105 New MH tools are built out of or on top of existing ones quickly.
106 Further more, MH encourages the user to taylor, extend and automate the system.
100 As the MH toolchest was modelled after the Unix toolchest, the 107 As the MH toolchest was modelled after the Unix toolchest, the
101 properties of the latter apply to the former as well. 108 properties of the latter apply to the former as well.
102 109
103 .U2 "Versions
104 .P
105 Three versions of MH are available today:
106 .IP "Old MH"
107 .br
108 In most cases this version had been replaced by nmh,
109 but some systems might still provide old MH.
110 The main reasons to still use old MH are historical reasons.
111 MH provides hardly any benefits over nmh.
112 The development of old MH has stopped after the 6.8.4 release in
113 February 1996.
114 .IP nmh
115 .br
116 The most widespread version of MH was forked off version 6.8.3 in December
117 1996. It is based on the \fILBL changes\fP.
118 Backward-compatibility to old MH is provided by having new featues deactivated
119 by default. In consequence, the user needs to activate them explicitely to
120 be able to use them.
121 Throughout the previous years, the work on nmh was mostly maintenance work.
122 Development revived in December 2011 and stayed busy since then.
123 .IP mmh
124 .br
125 This descendent of nmh is the subject of this thesis.
126 It had started as an experimental version, but became de facto a fork.
127 110
128 .U2 "Example Session 111 .U2 "Example Session
129 .P 112 .P
130 Following is an example mail handling session with mmh. 113 Following is an example mail handling session with mmh.
131 It should be mostly compatible with nmh and old MH. 114 It should be mostly compatible with nmh and old MH.
206 also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP) 189 also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP)
207 and had not been thoroughly included into the concepts (e.g. the 190 and had not been thoroughly included into the concepts (e.g. the
208 user-visible access to whole messages and MIME parts are inherently 191 user-visible access to whole messages and MIME parts are inherently
209 different). 192 different).
210 .P 193 .P
211 For compatibility's sake, it is a common understanding to have the 194 For backward-compatibility's sake, it is a common understanding to have the
212 default settings to be compatible, requiring any new feature to be 195 default settings to be compatible, requiring any new feature to be
213 explicitely enabled. This puts a burden on new users, because nmh 196 explicitely enabled.
197 In consequence, the user needs to activate modern features explicitely
198 to be able to use them.
199 This puts a burden on new users, because nmh
214 out-of-the-box keeps staying in the same ancient style, where users 200 out-of-the-box keeps staying in the same ancient style, where users
215 usually want to have it practical for modern emailing. 201 usually want to have it practical for modern emailing.
216 But of course, this depends on if nmh is seen to be a front-end or a 202 But of course, this depends if nmh is seen to be a front-end or a
217 back-end. 203 back-end.
218 204
219 205
220 .H1 "mmh 206 .H1 "mmh
221 .P 207 .P
248 dwm had remained much more focused on its original goals, 234 dwm had remained much more focused on its original goals,
249 whereas its community-driven predecessor \fIwmii\fP had 235 whereas its community-driven predecessor \fIwmii\fP had
250 grown large and lost it's leanness. 236 grown large and lost it's leanness.
251 This should not happen to mmh. 237 This should not happen to mmh.
252 .P 238 .P
253 mmh can also stand for \fImodern mail handler\fP, and this is 239 Mmh can also stand for \fImodern mail handler\fP, and this is
254 the variant chosen as titel for this document. One main focus of the 240 the variant chosen as titel for this document. One main focus of the
255 project was to modernize nmh. Another main goal is resembled in the 241 project was to modernize nmh. Another main goal is resembled in the
256 name \fIminimized mail handler\fP: Drop any parts that don't add 242 name \fIminimized mail handler\fP: Drop any parts that don't add
257 to the main task of mmh, being a MUA. 243 to the main task of mmh, being a MUA.
258 .P 244 .P