annotate intro.roff @ 162:5520bbde3767

Renamed Chapter 3 back from `Future of mmh' to `Summary'.
author markus schnalke <meillo@marmaro.de>
date Mon, 09 Jul 2012 17:41:05 +0200
parents 8b411125645d
children 5c01017be420
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
22ae3981a76b style: New RN macro to reset page numbers and change their style.
markus schnalke <meillo@marmaro.de>
parents: 32
diff changeset
2
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
3 .H0 "Introduction
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
4 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
5 MH is a set of mail handling tools with a common concept, similar to
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
6 the Unix tool chest, which is a set of file handling tools with a common
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
7 concept. \fInmh\fP is the currently most popular implementation of an
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
8 MH-like mail handling system.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
9 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
10 .P
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
11 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
12 It describes nmh's code base and community to give the reader
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
13 a better understanding of the state of mmh when it started off.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
14 Further more, this chapter outlines the mmh project itself,
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
15 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
16
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
17
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
18 .H1 "MH \(en the Mail Handler
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
19 .P
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
20 MH is a conceptual email system design and its concrete implementation.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
21 Notably, MH had started as a design proposal at RAND Corporation,
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
22 .\" XXX ref to rand corp.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
23 where the first implementation followed later.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
24 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
25 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
26 than in being a specific software product.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
27 The ideas behind Unix are summarized in the \fIUnix philosophy\fP.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
28 MH follows this philosophy.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
29
11
9a313c929a2a style: Introduced .U2 for unnumbered .H2.
markus schnalke <meillo@marmaro.de>
parents: 9
diff changeset
30 .U2 "History
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
31 .P
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
32 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
33 proposed the design
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
34 of a new mail handling system, called ``Mail Handler'' (MH),
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
35 to superseed RAND's old monolithic ``Mail System'' (MS).
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
36 Two years later, in 1979, Bruce Borden took the proposal and implemented a
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
37 prototype of MH.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
38 Before the prototype's existence, the concept was
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
39 believed to be practically unusable.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
40 But the prototype proved successful and replaced MS thereafter.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
41 In replacing MS, MH grew to an all-in-one mail system.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
42 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
43 In the early eighties,
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
44 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
45 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
46 They took over the development and pushed MH forward.
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
47 RAND had put the code into the public domain by then.
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
48 MH was developed at UCI at the time when the Internet appeared,
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
49 when UCB implemented the TCP/IP stack, and when Allman wrote Sendmail.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
50 MH was extended as emailing became more featured.
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
51 The development of MH was closely related to the development of email
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
52 RFCs. In the advent of MIME, MH was the first implementation of this new
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
53 email standard.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
54 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
55 In the nineties, the Internet became popular and in December 1996,
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
56 Richard Coleman initiated the ``New Mail Handler'' (nmh) project.
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
57 Nmh is a fork of MH 6.8.3 and bases strongly on the
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
58 \fILBL changes\fP by Van Jacobson, Mike Karels and Craig Leres.
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
59 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
60 MIME handling capabilities.
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
61 This should be done openly within the Internet community.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
62 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
63 February 1996, soon after the development of nmh had started.
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
64 Today, nmh has almost completely replaced the original MH.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
65 Some systems might still provide old MH, but mainly for historical reasons.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
66 .P
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
67 In the last years, the work on nmh was mostly maintenance work.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
68 However, the development was revived in December 2011
57
8776101db595 Intro: Fixed the history.
markus schnalke <meillo@marmaro.de>
parents: 54
diff changeset
69 and stayed busy since then.
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
70
11
9a313c929a2a style: Introduced .U2 for unnumbered .H2.
markus schnalke <meillo@marmaro.de>
parents: 9
diff changeset
71 .U2 "Concepts
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
72 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
73 MH consists of a set of tools, each covering a specific task of
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
74 email handling, like composing a message, replying to a message,
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
75 refiling a message to a different folder, listing the messages in a folder.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
76 All of the programs operate on a common mail storage.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
77 .P
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
78 The mail storage consists of \fImail folders\fP (directories) and
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
79 \fPmessages\fP (regular files).
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
80 Each message is stored in a separate file in the format it was
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
81 received (i.e. transfer format).
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
82 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
83 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
84 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
85 .P
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
86 MH tools maintain a \fIcontext\fP, which includes the current mail folder.
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
87 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
88 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
89 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
90 context themselves.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
91 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
92 with others.
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
93 .P
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
94 Messages are named by their numeric filename, but they can have symbolic names,
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
95 too. These are either automatically updated
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
96 position names such as the next or the last message,
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
97 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
98 These names are called sequences.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
99 Sequences can be bound to the containing folder or to the context.
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
100 .P
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
101 The user's \fIprofile\fP is a file that contains his MH configuration.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
102 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
103 adjust them to the user's personal preferences.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
104 Multiple versions of the same command with different
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
105 default values can also be created very easily.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
106 Form templates for new messages or for replies are easily changeable,
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
107 and output is adjustable with format files.
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
108 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
109 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
110 The system is well scriptable and extensible.
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
111 New MH tools are built out of or on top of existing ones quickly.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
112 Further more, MH encourages the user to tailor, extend and automate the system.
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
113 As the MH tool chest was modeled after the Unix tool chest, the
32
6a9abf543297 Rework in the Introduction (about MH).
markus schnalke <meillo@marmaro.de>
parents: 28
diff changeset
114 properties of the latter apply to the former as well.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
115
102
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
116
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
117 .ig \"XXX
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
118
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
119 .P
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
120 To ease typing, the switches can be abbreviated as much as the remaining
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
121 prefix remains unambiguous.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
122 If in our example no other switch would start with the letter `t', then
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
123 .Cl "-truncate" ,
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
124 .Cl "-trunc" ,
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
125 .Cl "-tr" ,
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
126 and
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
127 .Cl "-t
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
128 would all be the same.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
129 As a result, switches can neither be grouped (as in
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
130 .Cl "ls -ltr" )
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
131 nor can switch arguments be appended directly to the switch (as in
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
132 .Cl "sendmail -q30m" ).
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
133 .P
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
134 Many switches have negating counter-parts, which start with `no'.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
135 For example
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
136 .Cl "-notruncate
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
137 inverts the
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
138 .Cl "-truncate
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
139 switch.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
140 They exist to undo the effect of default switches in the profile.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
141 If the user has chosen to change the default behavior of some tool
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
142 by adding a default switch to the profile,
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
143 he can still undo this change in behavior by specifying the inverse
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
144 switch on the command line.
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
145
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
146 ..
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
147
a782488c85f5 More text about attachments mainly, plus some rearrangements.
markus schnalke <meillo@marmaro.de>
parents: 87
diff changeset
148
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
149 .U2 "Using MH
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
150 .P
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
151 It is strongly recommended to have a look at the MH Book,
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
152 which offers a thorough introduction to using MH.
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
153 .[ [
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
154 peek mh book
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
155 .], Part II]
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
156 Rose and Romine provide a deeper and more technical
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
157 though slightly outdated introduction in only about two dozen pages.
54
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
158 .[
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
159 rose romine real work
d9c18bd9ed92 Intro: Filled in the very basics for Using MH.
markus schnalke <meillo@marmaro.de>
parents: 53
diff changeset
160 .]
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
161 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
162 Following is an example mail handling session.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
163 It uses mmh but is mostly compatible with nmh and old MH.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
164 Details might vary 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
165
83
99ab58dc891f New macro: .VF to read verbatim text from file. Outsourced the MH session.
markus schnalke <meillo@marmaro.de>
parents: 82
diff changeset
166 .VF 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
167
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
168
131
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
169 .H1 "nmh
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
170 .P
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
171 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
172 one needs to know the reasons behind them.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
173 This section explains the background.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
174 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
175 MH predates the Internet; it comes from times before networking was universal,
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
176 it comes from times when emailing was small, short and simple.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
177 Then it grew, spread and adapted to the changes email went through.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
178 Its core-concepts, however, remained the same.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
179 During the eighties, students at UCI actively worked on MH.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
180 They added new features and optimized the code for the then popular systems.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
181 All this still was in times before POSIX and ANSI C.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
182 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
183 still contains many ancient parts.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
184 BSD-specific code and constructs tailored for hardware of that time
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
185 are frequent.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
186 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
187 Nmh started about a decade after the POSIX and ANSI C standards were
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
188 established. A more modern coding style entered the code base, but still
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
189 a part of the developers came from ``the old days''. The developer
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
190 base became more diverse, thus broadening the range of different
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
191 coding styles.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
192 Programming practices from different decades merged in the project.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
193 As several peers added code, the system became more a conglomeration
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
194 of single tools rather than a homogeneous of-one-cast mail system.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
195 Still, the existing basic concepts held it together.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
196 They were mostly untouched throughout the years.
2
65e4327aa9f8 Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
197 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
198 Despite the separation of the tool chest approach at the surface
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
199 \(en a collection of small, separate programs \(en
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
200 on the source code level, it is much more interweaved.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
201 Several separate components were compiled into one program
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
202 for efficiency reasons.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
203 This led to intricate innards.
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
204 While clearly separated on the outside,
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
205 the programs turned out to be fairly interweaved inside.
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
206 .\" XXX FIXME rewrite...
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
207 .\" nicht zweimal ``interweaved''
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
208 .\" Unfortunately, the clear separation on the outside turned out to be
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
209 .\" fairly interweaved inside.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
210 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
211 The advent of MIME raised the complexity of email by a magnitude.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
212 This is visible in nmh. 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
213 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
214 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
215 such approaches, but unfortunately, it led to duplicated functions
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
216 and half-hearted implementation of the concepts.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
217 .P
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
218 To provide backward-compatibility, it is a common understanding not to
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
219 change the default settings.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
220 In consequence, the user needs to activate modern features explicitly
47
eae5e50381ce Rework in Preface and Intro.
markus schnalke <meillo@marmaro.de>
parents: 45
diff changeset
221 to be able to use them.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
222 This puts a burden on new users, because out-of-the-box nmh remains
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
223 in the same ancient style.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
224 If nmh is seen to be a back-end, then this compatibility surely is important.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
225 However, in the same go, new users have difficulties using nmh for modern
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
226 emailing.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
227 The small but mature community around nmh needs few change
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
228 as they have had their convenient setups for decades.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
229 .\" XXX Explain more
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
230
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
231
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
232 .H1 "mmh
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
233 .P
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
234 I started to work on my experimental version in October 2011,
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
235 at a time when there had been no more than three commits to nmh
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
236 since the beginning of the year.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
237 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
238 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
239 .[
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
240 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
241 .]
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
242 nmh's community became active, too.
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
243 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
244 .[
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
245 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
246 .]
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
247 After long years of stagnation, nmh became actively developed again.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
248 Hence, while I was working on mmh, the community was once more working
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
249 on nmh, in parallel.
28
6c63083b4c19 Wrote text for the Preface; changed headings in Preface and Introduction.
markus schnalke <meillo@marmaro.de>
parents: 27
diff changeset
250 .P
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
251 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
252 because the project tries to modernize nmh.
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
253 Personally however, I prefer to call mmh \fImeillo's mail handler\fP,
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
254 emphasizing that the project follows 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
255 (My login name is \fImeillo\fP.)
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
256 This project model was inspired by \fIdwm\fP,
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
257 .\" XXX Ref
42
af8c46461924 Rework and new text about mmh's name in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 39
diff changeset
258 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
259 targeted to satisfy Garbe's personal needs whenever conflicts appear.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
260 Dwm had retained its lean elegance and its focused character, whereas
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
261 its community-driven predecessor \fIwmii\fP had grown fat over time.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
262 .\" XXX ref
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
263 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
264
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
265
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
266 .U2 "Motivation
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
267 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
268 MH is the most important of very few command line tool chest email systems.
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
269 Tool chests are powerful because they can be perfectly automated and
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
270 extended. They allow arbitrary kinds of front-ends to be
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
271 implemented on top of them quickly and without internal knowledge.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
272 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
273 programs.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
274 As there are few tool chests for emailing and as MH-like ones are the most
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
275 popular among them, they should be developed further.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
276 This keeps their
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
277 conceptional elegance and unique scripting qualities available to users.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
278 Mmh creates a modern and convenient entry point to MH-like systems
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
279 for new and interested users.
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
280 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
281 The mmh project is motivated by deficits of nmh and
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
282 my wish for general changes, combined
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
283 with the nmh community's reluctancy to change.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
284 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
285 At that time, nmh had not adjusted to modern emailing needs well enough.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
286 The default setup was completely unusable for modern emailing.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
287 Too much setup work was required.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
288 Several modern features were already available but the community
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
289 did not want to have them as default.
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
290 Mmh is a way to change this.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
291 .P
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
292 In my eyes, MH's concepts could be exploited even better and
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
293 the style of the tools could be improved. Both would simplify
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
294 and generalize the system, providing cleaner interfaces and more
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
295 software leverage at the same time.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
296 Mmh is a way to demonstrate this.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
297 .P
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
298 In providing several parts of an email system, nmh can hardly
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
299 compete with the large specialized projects that focus
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
300 on only one of the components.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
301 The situation can be improved by concentrating the development power
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
302 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
303 set of other mail components.
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
304 Today's pre-packaged software components encourage this model.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
305 Mmh is a way to go for this approach.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
306 .P
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
307 It is worthwhile to fork nmh for the development of mmh, because
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
308 the two projects focus on different goals and differ in fundamental questions.
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
309 The nmh community's reluctance regarding change conflicts
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
310 with my strong desire for it.
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
311 In developing a separate experimental version new approaches can
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
312 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
313 In fact, revolutionary changes are hardly possible otherwise.
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
314 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
315 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
316 ideas can be implemented and demonstrated,
106
3c4e5f0a7e7b Included (English language) corrections by Kate.
markus schnalke <meillo@marmaro.de>
parents: 102
diff changeset
317 without the need to change nmh or its community.
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
318 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
319 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
320
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
321
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
322 .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
323 .P
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
324 Any effort needs to be targeted towards a specific goal
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
325 in order to be successful.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
326 Following is a description of imagined typical mmh users.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
327 Mmh should satisfy their needs.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
328 .\" XXX Remove the next sentence?
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
329 Actually, as mmh is my personal version of MH, this is a description
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
330 of myself.
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
331 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
332 The target users of mmh like Unix and its philosophy.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
333 They appreciate to use programs that are conceptionally appealing.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
334 They are familiar with the command line and enjoy its power.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
335 They are at least capable of shell scripting and want to improve their
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
336 productivity by scripting the mail system.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
337 .\" XXX Naturally, he uses ...
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
338 They naturally use modern email features, such as attachments,
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 50
diff changeset
339 non-ASCII text, and digital cryptography.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
340 They are able to setup email system components besides mmh,
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
341 and actually like to have the choice to pick the ones they prefer.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
342 They have a reasonably modern operating system that complies to standards,
43
c21ff903c71c New text on mmh in Intro.
markus schnalke <meillo@marmaro.de>
parents: 42
diff changeset
343 like POSIX and ANSI C.
27
b687d151eed3 Reorganized the content in the Intro and added placeholders for missing parts.
markus schnalke <meillo@marmaro.de>
parents: 11
diff changeset
344 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
345 The typical users invoke mmh commands directly in an interactive
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
346 shell session, but they use them to automate mail handling tasks as well.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
347 Likely, they run their mail setup on a server machine,
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
348 to which they connect via ssh.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
349 They might also have local mmh installations on their workstations,
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
350 where they tend to work with mmh directly in the shell instead
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
351 of using graphical front-ends.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
352 They definitely want to be flexible and thus be able to change
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
353 their setup to suit their needs.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
354 .P
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
355 .\" XXX themself vs. themselves
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
356 Typical mmh users are programmers themselves.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
357 They like to, occasionally, take the opportunity of Free Software to put
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
358 hands on and get involved in the software they use.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
359 Hence, they like small and clean code bases and care for code quality.
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
360 In general, they believe that:
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
361 .BU
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
362 Elegance \(en i.e. simplicity, clarity and generality \(en
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
363 is most important.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
364 .BU
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
365 Concepts are more important than the concrete implementation.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
366 .BU
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
367 Code optimizations for anything but readability should be avoided
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
368 if possible.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
369 .BU
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
370 Having a lot of choice is bad.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
371 .BU
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
372 Removed code is debugged code.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 3
diff changeset
373
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
374 .U2 "Goals
45
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
375 .P
7a33b5adb672 Rework in the Intro.
markus schnalke <meillo@marmaro.de>
parents: 43
diff changeset
376 The general goals for the mmh project are the following:
128
76c440261ebb s/stream-lining/streamlining/
markus schnalke <meillo@marmaro.de>
parents: 117
diff changeset
377 .IP "Streamlining
87
7d5b180de542 All kinds of rework plus new refs.
markus schnalke <meillo@marmaro.de>
parents: 83
diff changeset
378 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
379 The feature set should be distilled to the indispensable ones,
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
380 effectively removing corner-cases.
53
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
381 Parts that don't add to the main task of being a conceptionally
01d06ca2eb1b Rework based on comments by Lydi.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
382 appealing MUA should be removed.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
383 This includes the mail submission and mail retrieval facilities.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
384 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
385 All tools should be tightly shaped.
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
386 .IP "Modernizing
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
387 Mmh's feature set needs to become more modern.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
388 Better support for attachment and digital cryptography should be added.
159
8b411125645d Corrections and improvements by Kate, Phil, Matou, Michi, Lydi.
markus schnalke <meillo@marmaro.de>
parents: 131
diff changeset
389 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
390 The modern email features need to be readily available, out-of-the-box.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
391 On the other hand,
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
392 bulletin board support and similar obsolete facilities can be dropped out.
131
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
393 Likewise, ancient technologies should not be supported any further.
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
394 The available concepts need to be expanded as far as possible.
7c741bc8f719 Reorganized: Converted 4-parted discussion into 3-parted discussion.
markus schnalke <meillo@marmaro.de>
parents: 128
diff changeset
395 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
396 .IP "Styling
48
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
397 Mmh's source code needs to be updated to modern standards.
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
398 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
399 whenever possible.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
400 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
401 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
402 clear and readable code.
d28ff07dfc0f Rework in the Intro, with new text.
markus schnalke <meillo@marmaro.de>
parents: 47
diff changeset
403 A uniform programming style should prevail.
117
97369a93ef39 Corrections by Kate. Again of high quality. :-)
markus schnalke <meillo@marmaro.de>
parents: 107
diff changeset
404 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
405 it should feel like being cast as one.