comparison ch01.roff @ 27:b687d151eed3

Reorganized the content in the Intro and added placeholders for missing parts.
author markus schnalke <meillo@marmaro.de>
date Tue, 08 May 2012 18:37:12 +0200
parents 9a313c929a2a
children 6c63083b4c19
comparison
equal deleted inserted replaced
26:fc94b960793e 27:b687d151eed3
5 It explains the situation at the start of the project. 5 It explains the situation at the start of the project.
6 It tries to describe from what state the project lifted of and where 6 It tries to describe from what state the project lifted of and where
7 it headed to. This shall give an overview. 7 it headed to. This shall give an overview.
8 8
9 9
10 .H1 "Email Prerequisites
11 .P
12 XXX Do we really need that?
13
14
10 .H1 "What is MH? 15 .H1 "What is MH?
11 .P 16 .P
12 MH is an electronic mail system, originating in the RAND Corporation. 17 MH is an electronic mail system, originating in the RAND Corporation.
13 Historically, it had been a all-in-one mail system, with Mail Transfer 18 Historically, it had been a all-in-one mail system, with both Mail Transfer
14 Agent (MTA) and Mail User Agent (MUA). 19 Agent (MTA) and Mail User Agent (MUA).
15 Later, when electronic mail systems changed, Mail Submission Agent (MSA) 20 Later, when email setups changed, Mail Submission Agent (MSA)
16 and Mail Retrieval Agent (MRA) facilities were added. 21 and Mail Retrieval Agent (MRA) facilities were added.
17 The MTA became less important, whereas the MUA became even more the 22 The MTA became less important, whereas the MUA became even more the
18 central part. 23 central part.
19 .P 24 .P
20 First of all, MH is a style of a mail handling system. 25 MH defines a mail handling concept.
21 It had started as a design proposal, not as an implementation, and 26 It had started as a design proposal, not as an implementation, and
22 had in spirit remained so. This is similar to Unix, which much less 27 in spirit had remained this way. This is similar to Unix, which
23 is a specific software product, as it is a style of system design. 28 rather is a style of system design than specific software product.
29 .P
30 XXX Link to the Unix phil.
31 .P
32 XXX comparision to monolithic mail systems.
33 .P
34 XXX Differenciation of MUA and mail system.
24 35
25 .U2 "History 36 .U2 "History
26 .P 37 .P
27 MH is an electronic mail system, originating in the RAND Corporation. 38 MH is an electronic mail system, originating in the RAND Corporation.
28 In 1977, Norman Shapiro and Stockton Gaines had proposed the design 39 In 1977, Norman Shapiro and Stockton Gaines had proposed the design
29 of a new mail handling system, called ``Mail Handler'' (MH) for RAND, 40 of a new mail handling system, called ``Mail Handler'' (MH) for RAND,
30 to superseed their ``Mail System'' (MS). 41 to superseed their ``Mail System'' (MS).
31 Two years later, in 1979, XXX took the proposal and implemented a 42 Two years later, in 1979, Bruce Borden took the proposal and implemented a
32 prototype of MH. It proved successful and replaced MS thereafter. 43 prototype of MH. It proved successful and replaced MS thereafter.
33 .P 44 .P
34 A decade later, the University of California had started to use MH. 45 A decade later, the University of California had started to use MH.
35 They also took over its development and pushed MH forward. 46 They also took over its development and pushed MH forward.
36 This had been the time when the Internet appeared, Berkeley implemented 47 This had been the time when the Internet appeared, Berkeley implemented
41 attractive to Free Software developers. The Internet had started to become 52 attractive to Free Software developers. The Internet had started to become
42 mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler'' 53 mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler''
43 (nmh), a fork of MH. He intended to modernize MH, improve its MIME 54 (nmh), a fork of MH. He intended to modernize MH, improve its MIME
44 capabilities, and this should be done openly within the Internet 55 capabilities, and this should be done openly within the Internet
45 community. Today, nmh almost completely replaced the original MH. 56 community. Today, nmh almost completely replaced the original MH.
46 .P
47 Three versions of MH are available:
48 .BU
49 .B "Old MH" .
50 In most cases it has been replaced by nmh, but some systems still
51 provide old MH. As nmh is old MH-compatible, there exist few reasons
52 not to upgrade to new.
53 The development of old MH stopped almost completely.
54 .BU
55 .B Nmh .
56 The most widespread version of MH. Backward-compatible to old MH.
57 Provides new featues, which need to be activated explicitely.
58 Its development went slowly in the previous years, but had revived
59 in Fall 2011.
60 .BU
61 .B Mmh
62 A descendent of nmh. Had started as a non-compatible experimental
63 version, but became de facto a fork. Tries to expand the same
64 principle concepts in a more modern way. This version of MH is the
65 subject of this thesis.
66 57
67 .U2 "Concepts 58 .U2 "Concepts
68 .P 59 .P
69 MH is a toolchest, modelled after the Unix toolchest. It consists of a 60 MH is a toolchest, modelled after the Unix toolchest. It consists of a
70 bunch of tools, each covering one task of email handling. These programs 61 bunch of tools, each covering one task of email handling. These programs
85 adjustable with format files. 76 adjustable with format files.
86 .P 77 .P
87 MH allows the user to automate almost everything and to modify amost 78 MH allows the user to automate almost everything and to modify amost
88 any behavior. The system is scriptable and extendable. 79 any behavior. The system is scriptable and extendable.
89 80
90 81 .U2 "Available Versions
91 .H1 "Understanding of the Code and Community 82 .P
83 Three versions of MH are available today:
84 .BU
85 .I "Original MH" .
86 In most cases it has been replaced by nmh, but some systems still
87 provide old MH. As nmh is old MH-compatible, there exist few reasons
88 not to upgrade to new.
89 The development of old MH has stopped after the 6.8.4 release in
90 February 1996.
91 .BU
92 .I nmh .
93 The most widespread version of MH was forked off version 6.8.3 in December
94 1996. It incorporated the \fILBL changes\fP.
95 It provides backward-compatible to old MH by having new featues deactivated
96 by default. To use them, the user needs to activate them explicitely.
97 Its development went slowly in the previous years, but had revived
98 in December 2011.
99 .BU
100 .I mmh .
101 This version is the subject of this thesis.
102 It is a descendent of nmh. It had started as a non-compatible experimental
103 version, but became de facto a fork. It tries to expand the same
104 principle concepts in a more modern way.
105
106 .U2 "Example Session
107 .P
108 Example mail handling session with mmh, but mostly compatible with nmh
109 and old MH. The look'n'feel is common among them.
110
111
112 .H1 "Understanding the Code and Community
92 .P 113 .P
93 In order to understand the state, goals and dynamics of a project, 114 In order to understand the state, goals and dynamics of a project,
94 one needs to know its history. MH comes from a time before the 115 one needs to know its history. MH comes from a time before the
95 Internet, a time before networking became universal, a time when 116 Internet, a time before networking became universal, a time when
96 emailing was small, short and simple. Then it grew, spread and 117 emailing was small, short and simple. Then it grew, spread and
133 usually want to have it practical for modern emailing. 154 usually want to have it practical for modern emailing.
134 But of course, this depends on if nmh is seen to be a front-end or a 155 But of course, this depends on if nmh is seen to be a front-end or a
135 back-end. 156 back-end.
136 157
137 158
138 .H1 "My Vision 159 .H1 "mmh
139 .P 160
140 The general goals of the mmh project are the following: 161 .U2 "Motivation
141 .BU 162 .P
142 I believe that mmh should be perfectly suited for modern emailing, 163 XXX
143 out-of-the-box. 164
144 .BU 165 .U2 "Why it is worth it
145 I care less about compatibility and more about conceptionally elegant 166 .P
146 approaches. 167 XXX
147 .BU 168
148 I care for general, clear, and simple concepts. 169 .U2 "Target Field
149 .BU 170 .P
150 I like to create an of-one-style email system. It should feel like 171 XXX Target field and scenarios
151 cast as one. 172 .P
152 .BU 173 The target user in mind likes Unix and its philosophy.
153 I plan to remove any optimizations that rises obscurity, unless it
154 appears to be neccessary to make mmh usable at all.
155 .P
156 .B "The target user in mind
157 likes Unix and its philosophy.
158 He likes to use programs that are conceptionally appealing. 174 He likes to use programs that are conceptionally appealing.
159 He's familiar with the command line and enjoys its power. 175 He's familiar with the command line and enjoys its power.
160 He is at least capable of shell scripting and wants to improve his 176 He is at least capable of shell scripting and wants to improve his
161 productivity by scripting the mail system. 177 productivity by scripting the mail system.
162 His computer and operating system are from post-ANSI C times. 178 His computer and operating system are from post-ANSI C times.
166 drops, nor does he rely on compatibility to nmh. 182 drops, nor does he rely on compatibility to nmh.
167 He already has and MTA/MSA and MRA running or is able to set them 183 He already has and MTA/MSA and MRA running or is able to set them
168 up. 184 up.
169 He does not want to have to read a book in order to make his MUA 185 He does not want to have to read a book in order to make his MUA
170 usable. 186 usable.
171 187 .P
172 188 XXX Limitations
173 .H1 "Things to do 189
174 .BU 190 .U2 "The Vision
175 Remove any MTA and MRA facilities. Mmh shall concentrate on the MUA 191 .P
192 The general goals of the mmh project are the following:
193 .BU
194 I believe that mmh should be perfectly suited for modern emailing,
195 out-of-the-box.
196 .BU
197 I care less about compatibility and more about conceptionally elegant
198 approaches.
199 .BU
200 I care for general, clear, and simple concepts.
201 .BU
202 I like to create an of-one-style email system. It should feel like
203 cast as one.
204 .BU
205 I plan to remove any optimizations that rises obscurity, unless it
206 appears to be neccessary to make mmh usable at all.
207
208 .U2 "Work to do
209 .BU
210 Remove the MTA and MRA facilities. Mmh shall concentrate on the MUA
176 task. Mail shall enter mmh's mail storage via the system mail drop 211 task. Mail shall enter mmh's mail storage via the system mail drop
177 and it shall leave mmh via the local \fLsendmail\fP command. 212 and it shall leave mmh via the local \fLsendmail\fP command.
178 .BU 213 .BU
179 Remove any further functions that are not related to mmh's main task. 214 Remove any further functions that are not related to mmh's main task.
180 Bulletin board support is on example. Also remove support for ancient 215 Bulletin board support is on example. Also remove support for ancient
193 .BU 228 .BU
194 Merge \fLshow\fP and \fLmhshow\fP into one single mail display program. 229 Merge \fLshow\fP and \fLmhshow\fP into one single mail display program.
195 Integrate MIME support deeper and more natural into MH. 230 Integrate MIME support deeper and more natural into MH.
196 .BU 231 .BU
197 Provide a ready-to-use setup out-of-the-box. 232 Provide a ready-to-use setup out-of-the-box.
233
234
235 .H1 "Goals of this Thesis
236
237 .U2 "Methods
238 .P
239 foo