annotate intro.roff @ 227:157c92fc1597

Further improvements.
author markus schnalke <meillo@marmaro.de>
date Sun, 15 Jul 2012 23:44:15 +0200
parents 1fa5a74bf138
children a1468cf505fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
22ae3981a76b style: New RN macro to reset page numbers and change their style.
markus schnalke <meillo@marmaro.de>
parents: 32
diff changeset
1 .RN 1
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
2 .H0 "Introduction
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
3 .Id introduction
39
22ae3981a76b style: New RN macro to reset page numbers and change their style.
markus schnalke <meillo@marmaro.de>
parents: 32
diff changeset
4
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
5 .P
227
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
6 MH is a set of mail handling tools with a common concept.
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
7 It is similar to the Unix tool chest, which is a set of file
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
8 handling tools with a common concept.
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
9 \fInmh\fP is the currently most popular implementation of an
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
10 MH-like mail handling system.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
11 This thesis describes an experimental version of nmh, named \fImmh\fP.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
12 .P
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
13 This chapter introduces MH, its history, concepts and how it is used.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
14 It describes nmh's code base and community to give the reader
227
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
15 a better understanding of the project's condition at the time when
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
16 mmh started off.
181
eb6eeb10afd5 Various stuff: Checked quotes, s/further more/furthermore/, etc
markus schnalke <meillo@marmaro.de>
parents: 173
diff changeset
17 Furthermore, this chapter outlines the mmh project itself,
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
18 describing the motivation for it and its goals.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
19
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
20
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
21 .H1 "MH \(en the Mail Handler
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
22 .Id mh
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
23 .P
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
24 MH is a conceptual email system design and its concrete implementation.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
25 MH had started as a design proposal at RAND Corporation,
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
26 where the first implementation followed later.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
27 In spirit, MH is similar to Unix, which
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
28 influenced the world more in being a set of system design concepts
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
29 than in being a specific software product.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
30 The ideas behind Unix are summarized in the \fIUnix philosophy\fP.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
31 .[
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
32 gancarz unix philosophy
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
33 .]
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
34 MH follows this philosophy.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
35
11
9a313c929a2a style: Introduced .U2 for unnumbered .H2.
markus schnalke <meillo@marmaro.de>
parents: 9
diff changeset
36 .U2 "History
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
37 .P
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
38 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
39 proposed the design of a new mail handling system,
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
40 .[
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
41 shapiro gaines mh proposal
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
42 .]
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
43 to superseed RAND's old monolithic \fIMail System\fP (MS).
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
44 One year later, in 1978, Bruce Borden picked up on the
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
45 proposal and implemented a prototype, which he called
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
46 \fIMail Handler\fP (MH).
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
47 Before the prototype's existence, the concept was
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
48 believed to be practically unusable.
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
49 But the prototype \(en written in only three weeks \(en
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
50 proved successful and replaced MS thereafter.\&
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
51 .[ [
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
52 rand note design of mh
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
53 .], p. 4]
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
54 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
55 In the early eighties,
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
56 the University of California at Irvine (UCI) started to use MH.
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
57 Marshall T. Rose and John L. Romine then became the driving force.
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
58 They took over the development and pushed MH forward.
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
59 .[ [
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
60 rand note design of mh
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
61 .], p. 4]
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
62 RAND had put the code into the public domain by then.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
63 MH was developed at UCI at the same time when the Internet appeared,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
64 BSD started to support TCP/IP networking,
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
65 and Eric Allman wrote Sendmail.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
66 MH was extended as emailing became more featured.
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
67 The development of MH was closely related to the development of email RFCs.
204
8c0d5bd92f0b Added full names of abbreviations.
markus schnalke <meillo@marmaro.de>
parents: 202
diff changeset
68 In the advent of the \fIMultipurpose Internet Mail Extensions\fP (MIME),
8c0d5bd92f0b Added full names of abbreviations.
markus schnalke <meillo@marmaro.de>
parents: 202
diff changeset
69 MH was one of the first implementations of the new email standard.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
70 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
71 In the nineties, the Internet became popular and in December 1996,
181
eb6eeb10afd5 Various stuff: Checked quotes, s/further more/furthermore/, etc
markus schnalke <meillo@marmaro.de>
parents: 173
diff changeset
72 Richard Coleman initiated the \fINew Mail Handler\fP (nmh) project.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
73 Nmh is a fork of MH 6.8.3 and bases heavily on the
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
74 \fILBL changes\fP by Van Jacobson, Mike Karels and Craig Leres.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
75 .[
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
76 lbl changes
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
77 .]
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
78 Colman intended to modernize MH and improve its portability and
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
79 MIME handling capabilities.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
80 The development of MH at UCI stopped after the 6.8.4 release in
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
81 February 1996, soon after the development of nmh had started.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
82 Today, nmh is developed openly in the Internet community.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
83 It has almost completely replaced the original MH.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
84 Some systems might still provide the old MH, but hardly for good reasons.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
85 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
86 In the last years, the majority of changes in nmh was maintenance work.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
87 Nevertheless, the development was revived in December 2011
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
88 and stayed busy since then.
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
89
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
90
11
9a313c929a2a style: Introduced .U2 for unnumbered .H2.
markus schnalke <meillo@marmaro.de>
parents: 9
diff changeset
91 .U2 "Concepts
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
92 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
93 MH consists of a set of tools, each covering a specific task of
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
94 email handling, such as composing a message, replying to a message,
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
95 refiling a message to a different folder, listing the messages in a folder.
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
96 The tools are invoked directly from the Unix shell.
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
97 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
98 a rand note design of mh
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
99 .]
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
100 .P
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
101 The tools operate on a common mail storage, which consists of
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
102 \fImail folders\fP (directories) and \fPmessages\fP (regular files).
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
103 Each message is stored in a separate file.
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
104 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
105 a rand note design of mh
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
106 .]
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
107 The files are named with ascending numbers in each folder.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
108 The specific format of the mail storage characterizes MH in the same way
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
109 as the format of the file system characterizes Unix.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
110 .P
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
111 MH tools maintain a \fIcontext\fP, which includes for instance the
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
112 current mail folder.
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
113 Processes in Unix have a similar context, containing the current working
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
114 directory, for instance. In contrast, the process context is maintained
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
115 by the Unix kernel automatically, whereas MH tools need to maintain the MH
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
116 context themselves.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
117 The user can have one MH context or multiple ones; he can even share it
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
118 with others.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
119 .P
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
120 Messages are named by their numeric filename,
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
121 but they can have symbolic names, as well.
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
122 These are either one of six system-controlled position names
208
fead1fc981f0 Added note about the `a' message sequence.
markus schnalke <meillo@marmaro.de>
parents: 207
diff changeset
123 and a shorthand for the range of all messages,
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
124 or user-settable group names for arbitrary sets of messages.
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
125 These names are called sequences.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
126 Automatically updated position names exist for the
208
fead1fc981f0 Added note about the `a' message sequence.
markus schnalke <meillo@marmaro.de>
parents: 207
diff changeset
127 first, last, previous, next, current message, and for the number
fead1fc981f0 Added note about the `a' message sequence.
markus schnalke <meillo@marmaro.de>
parents: 207
diff changeset
128 one beyond the last message.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
129 (In mmh, the names of these sequences are abbreviated to the
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
130 first character.)
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
131 User-definded sequences can be bound to the folder containing the
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
132 messages (\fIpublic sequences\fP) or to the user's context
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
133 (\fIprivate sequences\fP).
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
134 .P
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
135 The user's \fIprofile\fP is the file that contains his MH configuration.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
136 Default switches for the individual tools can be specified to
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
137 adjust them to the user's personal preferences.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
138 These switches will be automatically supplied whenever the specific
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
139 tool is invoked.
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
140 Additionally, a single command can be linked under different names
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
141 with different default values.
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
142 Form templates for new messages and replies, as well as format files
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
143 to adjust the output of tools are easily exchanged in the profile.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
144 Almost every part of the system can be adjusted to personal preference.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
145 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
146 The whole system is well scriptable and extensible.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
147 New MH tools are built out of or on top of existing ones quickly.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
148 MH encourages the user to tailor, extend, and automate the system.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
149 As the MH tool chest was modeled after the Unix tool chest, the
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
150 properties of the latter apply to the former as well.
102
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
151
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
152
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
153
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
154 .U2 "Using MH
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
155 .P
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
156 Many tutorials to using MH
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
157 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
158 rose sweet mh tutorial
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
159 .]
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
160 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
161 moss jackson user's guide for mh
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
162 .]
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
163 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
164 hegardt mh for beginners
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
165 .]
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
166 are old, but still they teach the concepts and basics,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
167 which remained unchanged.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
168 Rose and Romine have written an excellent introduction on a more
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
169 technical level, with pointers to advanced usage.
209
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
170 .[
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
171 rose romine real work
1b38b1c3c01d More refs to MH tutorials.
markus schnalke <meillo@marmaro.de>
parents: 208
diff changeset
172 .]
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
173 For a more recent document, it is strongly recommended to have
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
174 a look at the \fIMH Book\fP,
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
175 .[ [
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
176 peek mh book
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
177 .], Part II]
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
178 especially at its online version.
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
179 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
180 Following here is a sample mail handling session with mmh.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
181 Details might vary to MH and nmh but the look and feel is the same.
82
ff4537327162 Mayor rework: Replaced .DS with .VS, a better verbatim environment.
markus schnalke <meillo@marmaro.de>
parents: 57
diff changeset
182
202
e417f510aaca Reworked the MH example session.
markus schnalke <meillo@marmaro.de>
parents: 197
diff changeset
183 .so input/mh-session
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
184
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
185
131
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
186 .H1 "nmh
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
187 .P
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
188 In order to understand the condition, goals and dynamics of a project,
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
189 one needs to know the reasons behind them.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
190 This section gives background information.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
191 .P
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
192 MH predates the Internet;
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
193 it comes from times before networking was universal;
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
194 it comes from times when emailing was small, short and simple.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
195 Then, MH grew, spread and adapted to the changes email went through.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
196 Its core concepts, however, remained the same.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
197 During the eighties, students at UCI actively worked on MH.
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
198 They added new features and optimized the code for the systems
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
199 popular at that time.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
200 This was in times before POSIX and ANSI C.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
201 As large parts of the code stem from this time, today's nmh source code
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
202 still contains many ancient parts.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
203 BSD-specific code and constructs tailored for hardware of that time
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
204 are frequent.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
205 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
206 Nmh started about one decade after the POSIX and ANSI C standards were
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
207 released.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
208 A more modern coding style entered the code base but still
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
209 a part of the developers were ``of the old type''.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
210 The developer base became more diverse,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
211 thus broadening the range of different coding styles.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
212 Programming practices from different decades merged in the project.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
213 As several peers added code, the system became more a conglomeration
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
214 of single tools rather than a homogeneous of-one-cast mail system.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
215 For that, leadership would have been necessary.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
216 Nevertheless, MH's basic concepts held the project together.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
217 They were mostly untouched throughout the years.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
218 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
219 Though clearly separated on the surface
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
220 \(en as a collection of small, separate programs \(en
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
221 the source code turns out to be fairly interwoven.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
222 Multiple separate components are compiled into a program
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
223 for efficiency reasons.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
224 This leads to intricate innards.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
225 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
226 It is visible in nmh that
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
227 the advent of MIME raised the complexity of email by a magnitude.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
228 The MIME-related parts are the most complex ones.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
229 It is also visible that MIME support was added on top of the old MH core.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
230 MH's tool chest style made this easily possible and encourages
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
231 such approaches, but unfortunately, it led to duplicated functions
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
232 and half-hearted implementation of concepts.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
233 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
234 To provide backward-compatibility, it is a common understanding
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
235 in the nmh community to not change the default settings.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
236 In consequence, users need to activate modern features explicitly
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
237 to be able to use them.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
238 The ancient style in which fresh nmh setups remain to appear
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
239 causes difficulties for new users, as modern email features require
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
240 additional configuration.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
241 The small but mature community around nmh, however, needs little change
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
242 as they have had their convenient setups for decades.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
243
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
244
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
245 .H1 "mmh
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
246 .P
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
247 I started to work on my experimental version in October 2011,
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
248 basing my work on nmh version \fInmh-1.3-dev\fP.
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
249 At that time no more than three commits were made to nmh
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
250 since the beginning of 2011, the latest one being
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
251 .Ci a01a41d031c796b526329a4170eb23f0ac93b949 ,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
252 commited on 2011-04-13.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
253 In December, when I announced my work in progress on the
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
254 nmh-workers mailing list,
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
255 .[
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
256 nmh-workers mmh announce December
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
257 .]
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
258 nmh's community became active, all of a sudden.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
259 This movement was heavily pushed by Paul Vixie's ``edginess'' comment.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
260 .[
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
261 nmh-workers vixie edginess
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
262 .]
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
263 After long years of stagnation, nmh became actively developed again.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
264 Hence, while I was working on mmh, the community was working on nmh,
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
265 in parallel but unrelated.
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
266 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
267 The name \fImmh\fP may stand for \fImodern mail handler\fP,
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
268 because the project tries to modernize nmh.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
269 Personally however, I prefer to call mmh \fImeillo's mail handler\fP,
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
270 emphasizing that the project is my version of nmh,
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
271 following my visions and preferences.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
272 (My login name is \fImeillo\fP.)
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
273 This project model was inspired by \fIdwm\fP,
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
274 which is Anselm Garbe's personal window manager \(en
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
275 targeted to satisfy Garbe's personal needs whenever conflicts appear.
227
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
276 Dwm has retained its lean elegance and its focused character,
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
277 .[
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
278 dwm ohloh
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
279 .]
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
280 whereas its community-driven predecessor \fIwmii\fP had grown
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
281 fat over time.
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
282 .[
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
283 wmii ohloh
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
284 .]
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
285 The development of mmh should remain focused.
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
286
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
287
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
288 .U2 "Motivation
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
289 .P
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
290 MH is the most important of very few email systems in a tool chest style.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
291 Tool chests are powerful because they can be perfectly automated and
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
292 extended.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
293 They allow the implementation of arbitrary kinds of front-ends
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
294 on top of the tool chest quickly and without internal knowledge.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
295 Additionally, tool chests are easier to maintain than monolithic
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
296 programs.
227
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
297 .[ [
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
298 gancarz unix phil
157c92fc1597 Further improvements.
markus schnalke <meillo@marmaro.de>
parents: 223
diff changeset
299 .], p. 14]
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
300 MH-like email tool chests should be kept alive as they fill a market
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
301 niche by providing conceptional elegance and unique scripting qualities.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
302 Mmh tries to create a modern and convenient entry point to MH-like
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
303 systems for new and interested users.
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
304 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
305 The mmh project is motivated by deficits of nmh and
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
306 by my wish for general changes.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
307 At the time the mmh project started, nmh had not yet adjusted to
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
308 modern emailing needs well enough.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
309 The default setup was completely unusable for modern emailing.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
310 Too much setup work was required.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
311 Several modern features were already available,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
312 but the community did not want to have them active by default.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
313 Mmh is my way to change this.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
314 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
315 In my eyes, MH's concepts could be exploited better and
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
316 the style of the tools could be improved.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
317 Both would simplify and generalize the system, providing cleaner
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
318 interfaces and greater software leverage at the same time.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
319 Mmh is my way to demonstrate this.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
320 .P
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
321 In providing multiple parts of the email system, nmh can hardly
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
322 compete with the large specialized projects that focus
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
323 on one of the components only.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
324 The situation could be improved by concentrating the development power
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
325 on the most unique part of MH and letting the user pick his preferred
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
326 set of other mail components.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
327 Today's pre-packaged software components encourage this model.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
328 Mmh is my way to provide this.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
329 .P
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
330 It is worthwhile to fork nmh for the development of mmh,
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
331 because the two projects focus on different goals and differ in
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
332 fundamental questions.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
333 The nmh community's reluctance regarding change conflicts
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
334 with my strong desire for it.
207
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
335 .[
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
336 nmh-workers schnalke understanding nmh
e0e49a8bfbe8 Added refs.
markus schnalke <meillo@marmaro.de>
parents: 204
diff changeset
337 .]
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
338 In developing a separate experimental version, new approaches can
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
339 easily be tried out without the need to discuss changes beforehand.
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
340 In fact, revolutionary changes are hardly possible otherwise.
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
341 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
342 The mmh project provides the basis on which the aforementioned
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
343 ideas can be implemented and demonstrated,
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
344 without the need to change the nmh project or its community.
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
345 Of course, the results of the mmh project shall improve nmh, in the end.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
346 By no means it is my intent to work against the nmh project.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
347
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
348
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
349 .U2 "Target Field
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
350 .P
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
351 Any effort needs to be targeted towards a specific goal
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
352 in order to be successful.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
353 Therefore, a description of an imagined typical mmh user follows.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
354 Actually, as mmh is my personal version of MH,
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
355 this is sort of a description of myself.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
356 Developing software for one's own is a reliable way to produce software
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
357 that matches the user's desires.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
358 .P
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
359 The target user of mmh likes Unix and its philosophy.
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
360 He appreciates to use programs that are conceptionally appealing.
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
361 He is familiar with the command line and enjoys its power.
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
362 He is capable of shell scripting and wants to improve his
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
363 productivity by scripting the mail system.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
364 He uses modern email features, such as attachments,
169
f4ffe121a0a2 Applied excellent suggestions and corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 166
diff changeset
365 non-ASCII text, digital signatures and message encryption in a natural way.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
366 He is able to set up mail system components
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
367 and likes to pick the ones he prefers.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
368 He has a reasonably modern operating system that complies to the
164
5c01017be420 Reacted to suggestions by Aaron Mueller.
markus schnalke <meillo@marmaro.de>
parents: 159
diff changeset
369 POSIX and ANSI C standards.
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
370 .P
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
371 The typical user invokes mmh commands directly in an interactive
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
372 shell session, even on workstations where graphical front-ends could
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
373 be added.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
374 Likely, he runs his mail setup on a server machine,
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
375 to which he connects via ssh.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
376 He might automate mail processing with mmh tools
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
377 but definitely he uses the tools to build better tools.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
378 In any case, he wants to have the flexibility to change
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
379 his setup to suit his needs.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
380 .P
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
381 The typical mmh user is a programmer.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
382 He likes to, occasionally, make use of the opportunity of free software
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
383 by putting hands on and getting involved in software he uses.
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
384 In consequence, he likes small and clean code bases and cares for
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
385 code quality.
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
386 In general, he believes that:
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
387 .BU
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
388 The elegance of source code is most important.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
389 .BU
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
390 Concepts are more important than concrete implementations.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
391 .BU
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
392 Code optimizations for anything but readability should be avoided.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
393 .BU
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
394 Removed code is debugged code.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
395 .BU
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
396 Having a lot of choice is bad.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
397
197
05a243dffaca Added refs to the Preface; splitted the bib.
markus schnalke <meillo@marmaro.de>
parents: 187
diff changeset
398
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
399 .U2 "Goals of the mmh Project
128
76c440261ebb s/stream-lining/streamlining/
markus schnalke <meillo@marmaro.de>
parents: 117
diff changeset
400 .IP "Streamlining
87
7d5b180de542 All kinds of rework plus new refs.
markus schnalke <meillo@marmaro.de>
parents: 83
diff changeset
401 Mmh should be stripped down to its core, which is the user agent (MUA).
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
402 The feature set should be distilled to the indispensable ones,
171
346ff7e201f5 Applied suggestions by Boris.
markus schnalke <meillo@marmaro.de>
parents: 169
diff changeset
403 effectively removing corner cases.
173
4c7db172fb59 Various corrections and improvements.
markus schnalke <meillo@marmaro.de>
parents: 171
diff changeset
404 Parts that do not add to the main task of being a conceptionally
187
5360f5fdb118 Added mail agent figure.
markus schnalke <meillo@marmaro.de>
parents: 181
diff changeset
405 appealing user agent should be removed.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
406 This includes the mail transfer and mail retrieval facilities.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
407 Choice should be reduced to the main options.
131
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
408 All tools should be tightly shaped.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
409 .IP "Modernizing
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
410 Mmh's feature set needs to become more modern.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
411 Better support for attachments, digital signatures, and message
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
412 encryption should be added.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
413 MIME support should be integrated deeper and more naturally.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
414 The modern email features need to be readily available, out-of-the-box.
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
415 On the other hand, obsolete facilities can be dropped out and
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
416 ancient technologies need not be further supported.
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
417 The available concepts should be expanded as far as possible.
131
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
418 A small set of concepts should recur consistently.
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
419 .IP "Styling
212
9317d789cef9 Various improvements and rework.
markus schnalke <meillo@marmaro.de>
parents: 209
diff changeset
420 Mmh's source code should be updated to modern standards.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
421 Standardized library functions should replace non-standard versions
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
422 whenever possible.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
423 Code should be separated into distinct modules when feasible.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
424 Time and space optimizations should to be replaced by
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
425 clear and readable code.
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
426 A uniform programming style should prevail.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
427 The whole system should appear to be of-one-style;
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
428 it should feel like being cast as one.