docs/master

view preface.roff @ 27:b687d151eed3

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