annotate preface.roff @ 23:1e4afeb34da7

Rework in the preface.
author markus schnalke <meillo@marmaro.de>
date Tue, 08 May 2012 17:23:02 +0200
parents 3ef5449c1175
children 9be9b47eb52d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
1 .H0 "Preface" no
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
2
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
3 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
4 MH is a set of mail handling tools with a common concept, like
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
5 the Unix toolchest is a set of file handling tools with a common
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
6 concept. nmh is the currently most popular implementation of an
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
7 MH-like mail handling system.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
8
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
9
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
10 .H1 "How the Fun Began" no
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
11 .P
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
12 I have discovered nmh in September 2009. At that time I used to use mutt,
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
13 like many command line-attracted Unix users do.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
14 Conceptually nmh had convinced me at once and learning
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
15 its different model of email handling had been relatively easy.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
16 The change was like
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
17 managing files in the Unix shell when you are used to graphical file
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
18 managers, or like learning vi when you are used to modeless editors.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
19 The change was not trivial but as I was convinced by the concepts and
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
20 already managed my files with shell tools and edited with vi, not to
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
21 difficult either.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
22 In contrast, setting nmh up to a convenient state became a tendious task
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
23 that took several months.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
24 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
25 Once having nmh arranged as wished, using it was joy because of its
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
26 conceptional elegance and scripting capabilities.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
27 On the other hand, however, it still was
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
28 inconvenient in handling attachments, non-ASCII character encodings,
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
29 and similar features of modern emailing.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
30 My setup required more and more scripts and additional configuration
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
31 to have nmh act the way I expected it to behave, where my
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
32 expectations were rather common to modern emailing than exceptionel.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
33 In being a software developer, I wanted to improve the situation.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
34 .P
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
35 In Spring 2010, I asked on the nmh-workers mailing list for the
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
36 possibility to offer a Google Summer of Code project on nmh.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
37 Participating in the development this way appeared attractive to me,
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
38 especially as it would have been possible to have the project
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
39 accepted at university. Although the nmh community
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
40 generally had been positive on the
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
41 suggestion, eventually it had not been possible to manage the
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
42 administrative work. Though my proposal had started the nmh community
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
43 to move. In the following weeks, goals for nmh's future were discussed
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
44 on the list. During the discussions, I became involved in the
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
45 question whether nmh should be an MTA. (Thread subject:
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
46 ``should nmh be an MTA or an MUA?''.)
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
47 In this point, my opinion differed from the opinion of most others
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
48 as I voted for the MTA facility of nmh to be removed.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
49 .P
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
50 Being not able to work on nmh in a way that would be
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
51 accepted as part of my official studies, I needed to get my credit
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
52 points with some other project.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
53 Half a year later, starting in August 2010,
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
54 I took one semester off to travel through Latin America.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
55 Within this time, I had to do practical computer work for three
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
56 months.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
57 This brought me back to nmh.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
58 Richard Sandelman, an active nmh user, made it possible for
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
59 me to work on nmh. Juan Granda, living in Santiago del
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
60 Estero in Argentina, provided a computer and Internet connection for
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
61 my work.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
62 Within the three month, I became familiar with nmh's code base and
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
63 its community. I learned how things work. Quickly it became obvious that
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
64 I wouldn't succeed with my main goal, to improve the character
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
65 encoding handling within the project. One obvious problem is the missing
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
66 transfer decoding of the quoted text in replies.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
67 As this is one of the most intricate parts of the system, the goal
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
68 was simply too difficult to reach.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
69 Instead I improved the code as I read through it. I found minor bugs
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
70 for which I proposed fixes to the community. Also I
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
71 could improve the documentation. When I started with
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
72 larger code changes, I had to discover that the community's wish for
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
73 compatibility was stronger than its wish for convenient
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
74 out-of-the-box setups \(en in contrast with my opinion.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
75 This lead to long discussions, again.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
76 I came to understand their point of view, but it simply is not mine.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
77 .P
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
78 At the end of my three-month project, I had become familiar with
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
79 nmh's code base and its community. I had improved the project a bit
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
80 and I still was convinced that I wanted to go on with that.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
81 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
82 Another half a year later, the end of my studies came within reach.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
83 I needed a topic for my master's thesis.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
84 There was no question: I wanted to work on nmh.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
85 But well, not exactly on nmh,
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
86 because I had accepted that the nmh community has different goals
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
87 than I have. This would result in long discussions and thus few progress.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
88 After careful thought, I decided to start an experimental version of nmh.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
89 I wanted to follow my own ideas of how nmh should look like. I wanted
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
90 to see where that would lead to. I wanted to compare the result of my
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
91 work to the present state of nmh. Time should prove me successful or
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
92 not.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
93 Nmh would hardly be hurt by my work as I would not interfere with
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
94 them. But nmh could profit from my experiences.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
95 .P
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
96 I started to work on my experimental version, which I call
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
97 \fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
98 In December, when I announced that I would work on an experimental
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
99 version, the activity in nmh suddenly rose. Suddently the community
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
100 started to move.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
101 After long years of mostly idling, nmh became actively developed again.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
102 What a great result!
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
103 Hence, while I was working on mmh, the community was working on nmh
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
104 too. My own work went in parallel and mostly unrelated.
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
105 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
106 Because of several circumstances, my experimental version is rather
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
107 a fork today, although this may change again in the future.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
108
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
109
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
110 .H1 "Organization" no
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
111 .P
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
112 foo
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
113
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
114 .H1 "Conventions" no
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
115 .P
5
8cc0af0724c2 Added some text about naming conventions.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
116 .B "Mail client" .
8cc0af0724c2 Added some text about naming conventions.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
117 Synonym for MUA. The part of the mail software the user directly
8cc0af0724c2 Added some text about naming conventions.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
118 interacts with.
23
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
119 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
120
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
121 .H1 "Acknowledgments" no
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
122 .P
1e4afeb34da7 Rework in the preface.
markus schnalke <meillo@marmaro.de>
parents: 8
diff changeset
123 foo
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
124
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
125
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
126 .\" End or Preface. Start of the normal text.
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
127 .\" Switch to arabic page numbers and start on a right page.
8
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
128 .if e \{
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
129 . pn 1
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
130 . af PN 1
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
131 .\}
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
132 .if o \{
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
133 . pn 0
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
134 . af PN 0
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
135 . bp
3ef5449c1175 Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents: 5
diff changeset
136 .\}