Mercurial > docs > master
comparison preface.roff @ 197:05a243dffaca
Added refs to the Preface; splitted the bib.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Thu, 12 Jul 2012 00:39:41 +0200 |
parents | eb6eeb10afd5 |
children | 5cd9bacdfcd3 |
comparison
equal
deleted
inserted
replaced
196:a75de0da2fb7 | 197:05a243dffaca |
---|---|
1 .H0 "Preface" no | 1 .H0 "Preface" no |
2 | 2 |
3 .P | 3 .P |
4 I have discovered the mail client \fInmh\fP in fall 2009. | 4 I have discovered the mail client \fInmh\fP |
5 At that time I used \fImutt\fP, as many advanced Unix users do. | 5 .[ |
6 nmh website homepage | |
7 .] | |
8 in fall 2009. | |
9 At that time I used \fImutt\fP, | |
10 .[ | |
11 mutt website | |
12 .] | |
13 as many advanced Unix users do. | |
6 When I read about nmh, its concepts convinced me at once. | 14 When I read about nmh, its concepts convinced me at once. |
7 The transition from mutt to nmh was similar to beginning with | 15 The transition from mutt to nmh was similar to beginning with |
8 file management in the Unix shell when being used to the | 16 file management in the Unix shell when being used to the |
9 \fImidnight commander\fP, | 17 \fImidnight commander\fP, |
18 .[ | |
19 midnight commander website | |
20 .] | |
10 or like starting with vi when being used to modeless editors. | 21 or like starting with vi when being used to modeless editors. |
11 Such a change is not trivial, but, in being convinced by the | 22 Such a change is not trivial, but, in being convinced by the |
12 concepts and by having done similar transitions for file management | 23 concepts and by having done similar transitions for file management |
13 and editing already, it was not too difficult. | 24 and editing already, it was not too difficult. |
14 In contrast, setting up nmh to a convenient state became a tedious task | 25 In contrast, setting up nmh to a convenient state became a tedious task |
20 My setup demanded more and more additional configuration and helper scripts | 31 My setup demanded more and more additional configuration and helper scripts |
21 to have nmh behave the way I wanted; yet my | 32 to have nmh behave the way I wanted; yet my |
22 expectations were rather common for modern emailing. | 33 expectations were rather common for modern emailing. |
23 As a computer scientist and programmer, I wanted to improve the situation. | 34 As a computer scientist and programmer, I wanted to improve the situation. |
24 .P | 35 .P |
25 In spring 2010, I sent a message to the \fInmh-workers\fP mailing list, | 36 In spring 2010, I sent a message |
26 asking for the possibility to offer a Google Summer of Code project for me. | 37 .[ |
38 nmh-workers gsoc | |
39 .] | |
40 to the \fInmh-workers\fP mailing list, | |
41 .[ | |
42 nmh-workers mailing list website | |
43 .] | |
44 asking for the possibility to offer a Google Summer of Code | |
45 .[ | |
46 google summer of code website | |
47 .] | |
48 project for me. | |
27 Participating in the development of nmh in this manner appeared attractive | 49 Participating in the development of nmh in this manner appeared attractive |
28 to me, because I would have been able to work full time on nmh. | 50 to me, because I would have been able to work full time on nmh. |
29 Although the nmh community had reacted generally positive to the suggestion, | 51 Although the nmh community had reacted generally positive to the suggestion, |
30 the administrative work for such a project would had been too much. | 52 the administrative work for such a project would had been too much. |
31 Nonetheless, my proposal had activated the nmh community. | 53 Nonetheless, my proposal had activated the nmh community. |
33 In these discussions, I became involved in the | 55 In these discussions, I became involved in the |
34 question whether nmh should include mail transfer facilities. | 56 question whether nmh should include mail transfer facilities. |
35 .[ | 57 .[ |
36 nmh-workers thread mta mua | 58 nmh-workers thread mta mua |
37 .] | 59 .] |
38 I argued for the MTA of nmh to be removed. | 60 I argued for the Mail Transfer Agent of nmh to be removed. |
39 In this fundamental question, | 61 In this fundamental question, |
40 my opinion differed from the opinion of most others. | 62 my opinion differed from the opinion of most others. |
41 Sadly, besides the discussions, hardly any real work was done. | 63 Sadly, besides the discussions, hardly any real work was done. |
42 Being unable to work on nmh in a way that would be accepted at university | 64 Being unable to work on nmh in a way that would be accepted at university |
43 as part of my studies, I needed to choose another project. | 65 as part of my studies, I needed to choose another project. |
46 I took one semester off to travel through Latin America. | 68 I took one semester off to travel through Latin America. |
47 During my time in Argentina, I wanted to work on free software. | 69 During my time in Argentina, I wanted to work on free software. |
48 This brought me back to nmh. | 70 This brought me back to nmh. |
49 Richard Sandelman, an active nmh user, took care of the official basis. | 71 Richard Sandelman, an active nmh user, took care of the official basis. |
50 Juan Granda, an Argentine free software developer, | 72 Juan Granda, an Argentine free software developer, |
51 provided a computer with Internet connection. | 73 organized a computer with Internet connection. |
52 Thanks to them, I was able to work on nmh during my three-month | 74 Thanks to them, I was able to work on nmh during my three-month |
53 stay in Santiago del Estero, Argentina. | 75 stay in Santiago del Estero, Argentina. |
54 Quickly it became obvious that I would not succeed with my main goal, | 76 Quickly it became obvious that I would not succeed with my main goal, |
55 to improve the character encoding handling. | 77 to improve the character encoding handling. |
56 (One of its ramifications is the | 78 (One of its ramifications is the |
58 As this is one of the most intricate parts of the system, the goal | 80 As this is one of the most intricate parts of the system, the goal |
59 was simply set too high. | 81 was simply set too high. |
60 Instead, I improved the code base as I read through it. | 82 Instead, I improved the code base as I read through it. |
61 I found minor bugs for which I proposed fixes. | 83 I found minor bugs for which I proposed fixes. |
62 Additionally, I improved the documentation in minor ways. | 84 Additionally, I improved the documentation in minor ways. |
63 When I started with larger code changes, | 85 When I started to work on larger code changes, |
64 I had to discover that the community was reluctant to change. | 86 I had to discover that the community was reluctant to change. |
65 Its wish for compatibility was much stronger than its | 87 Its wish for compatibility was much stronger than its |
66 wish for convenient out-of-the-box setups \(en in contrast to my opinion. | 88 wish for convenient out-of-the-box setups \(en in contrast to my opinion. |
67 This, once again, led to long discussions. | 89 This, once again, led to long discussions. |
68 I came to understand their point of view, but it was different to mine. | 90 I came to understand their point of view, but it was different to mine. |
70 nmh's code base and community, | 92 nmh's code base and community, |
71 I had improved the project in minor ways, | 93 I had improved the project in minor ways, |
72 and I still was convinced that I wanted to continue to do so. | 94 and I still was convinced that I wanted to continue to do so. |
73 .P | 95 .P |
74 Another half year later, the end of my studies came within reach. | 96 Another half year later, the end of my studies came within reach. |
75 I needed a topic for my master's thesis. | 97 I needed to choose a topic for my master's thesis. |
76 Without question, I wanted to work on nmh. | 98 Without question, I wanted to work on nmh. |
77 But not exactly on nmh, because I had accepted that its | 99 But not exactly on nmh, because I had accepted that its |
78 community has different goals than I have. | 100 community has different goals than I have. |
79 Working on nmh would result in much discussion and, in consequence, | 101 Working on nmh would result in much discussion and, in consequence, |
80 little progress. | 102 little progress. |
81 After careful thought, I decided to start an experimental version of nmh. | 103 After careful thought, I decided to start an experimental version of nmh. |
82 I wanted to implement my own ideas of how an MH-like system should look like. | 104 I wanted to implement my own ideas of how an MH-like system should |
105 look like. | |
83 I wanted to create a usable alternative version to be compared with | 106 I wanted to create a usable alternative version to be compared with |
84 the present state of nmh. | 107 the present state of nmh. |
85 Eventually, my work would be proven successful or not. | 108 Eventually, my work would be proven successful or not. |
86 In any case, the nmh project would profit from my experiences. | 109 In any case, the nmh project would profit from my experiences. |
87 | 110 |
88 .U2 "Focus of this Document | 111 .U2 "Focus of this Document |
89 .P | 112 .P |
90 This document explains the design goals and implementation decisions | 113 This document explains the design goals and implementation decisions |
91 for mmh. | 114 for mmh, |
92 .\" XXX mmh taucht hier zum ersten mal auf. | 115 .[ |
116 mmh website homepage | |
117 .] | |
118 an experimental version of nmh. | |
93 It discusses technical, historical, social and philosophical considerations. | 119 It discusses technical, historical, social and philosophical considerations. |
94 On the technical side, this document | 120 On the technical side, this document |
95 explains how an existing project was streamlined by removing rough edges | 121 explains how an existing project was streamlined by removing rough edges |
96 and better exploitation of the central concepts. | 122 and better exploitation of the central concepts. |
97 On the historical side, changes through time are discussed, | 123 On the historical side, changes through time are discussed, |
112 to anyone interested in the Unix philosophy and anyone in contact with | 138 to anyone interested in the Unix philosophy and anyone in contact with |
113 old software projects, be it code- or community-related. | 139 old software projects, be it code- or community-related. |
114 .P | 140 .P |
115 The reader is expected to be familiar with Unix, C and emailing. | 141 The reader is expected to be familiar with Unix, C and emailing. |
116 Good Unix shell knowledge is required, because MH relies fundamentally | 142 Good Unix shell knowledge is required, because MH relies fundamentally |
117 on the shell. Without the power of the shell, MH becomes a motorcycle | 143 on the shell. |
144 Without the power of the shell, MH becomes a motorcycle | |
118 without winding roads: boring. | 145 without winding roads: boring. |
119 Introductions to Unix and its shell can be found in \fIThe UNIX Programming | 146 Introductions to Unix and its shell can be found in \fIThe UNIX Programming |
120 Environment\fP by Kernighan and Pike | 147 Environment\fP by Kernighan and Pike |
121 .[ | 148 .[ |
122 kernighan pike unix prog env | 149 kernighan pike unix prog env |
143 can be helpful as additional literature. | 170 can be helpful as additional literature. |
144 Old books are likely more helpful for understanding, | 171 Old books are likely more helpful for understanding, |
145 because large parts of the source code are old. | 172 because large parts of the source code are old. |
146 The reader is expected to know the format of email messages and | 173 The reader is expected to know the format of email messages and |
147 the structure of email transfer systems, at least on a basic level. | 174 the structure of email transfer systems, at least on a basic level. |
148 It's advisable to have cross-read the RFCs 821 and 822. | 175 It's advisable to have cross-read RFC\|821 and RFC\|822. |
149 Furthermore, basic understanding of MIME is good to have. | 176 Furthermore, basic understanding of MIME (RFC\|2045\(en2049) |
177 is good to have. | |
150 The Wikipedia provides good introduction-level information about email. | 178 The Wikipedia provides good introduction-level information about email. |
179 .[ | |
180 wikipedia email | |
181 .] | |
151 .P | 182 .P |
152 Frequent references to the Unix philosophy will be made. | 183 Frequent references to the Unix philosophy will be made. |
153 Gancarz has tried to sum it up in his book | 184 Gancarz has tried to sum it up in his book |
154 \fIThe UNIX Philosophy\fP. | 185 \fIThe UNIX Philosophy\fP. |
155 .[ | 186 .[ |
167 by Kernighan and Pike. | 198 by Kernighan and Pike. |
168 The term paper \fIWhy the Unix Philosophy still matters\fP | 199 The term paper \fIWhy the Unix Philosophy still matters\fP |
169 .[ | 200 .[ |
170 why unix phil still matters schnalke | 201 why unix phil still matters schnalke |
171 .] | 202 .] |
172 by myself | 203 by myself provides an overview on the philosophy, |
173 provides an overview on the philosophy, including a case study of MH. | 204 including a case study of MH. |
174 .P | 205 .P |
175 Although a brief introduction to MH is provided in Chapter 1, the reader | 206 Although a brief introduction to MH is provided in Section |
176 is encouraged to have a look at the \fIMH Book\fP | 207 .Cf mh , |
208 the reader is encouraged to have a look at | |
177 \fIMH & nmh: Email for Users & Programmers\fP by Jerry Peek. | 209 \fIMH & nmh: Email for Users & Programmers\fP by Jerry Peek. |
178 .[ | 210 .[ |
179 peek mh | 211 peek mh |
180 .] | 212 .] |
181 The current version is available freely on the Internet. | 213 The current version is available freely on the Internet. |
202 changes are described and discussed. | 234 changes are described and discussed. |
203 Chapter 3 finishes up by summarizing the achivements and taking | 235 Chapter 3 finishes up by summarizing the achivements and taking |
204 a look into the future of the mmh project. | 236 a look into the future of the mmh project. |
205 .P | 237 .P |
206 .I "Italic font | 238 .I "Italic font |
207 is used to emphasize new terms, and to name software projects and | 239 is used to emphasize new terms, and for names of software projects, |
208 man pages. | 240 literature, and man pages. |
209 .CW "Constant width font | 241 .CW "Constant width font |
210 is used to denote names of programs, files, | 242 is used to denote names of programs, files, |
211 functions, command lines, code excrepts, program input and output. | 243 functions, command lines, code excrepts, program input and output. |
212 .P | 244 .P |
213 References to man pages are printed as ``\c | 245 References to man pages are printed as ``\c |
214 .Mp cat (1)''. | 246 .Mp cat (1)''. |
215 In this case it is a reference to the man page of | 247 In this case it is a reference to the man page of |
216 .Pn cat , | 248 .Pn cat , |
217 which is in section one of the Unix manual. | 249 which is in section one of the Unix manual. |
218 Internet technologies are specified by \fIRequests for Comments\fP (RFCs). | 250 Internet technologies are specified by \fIRequests for Comments\fP (RFCs). |
219 Throughout the document, they are referenced in this way ``RFC\|822''. | 251 Throughout the document, they are referenced as ``RFC\|821''. |
220 A list of relevant RFCs is located at the end of the document. | 252 A list of relevant RFCs is located at the end of the document. |
221 References to literature are printed in backets, like | 253 Literature is cited in backets, such as |
222 .[ ``[ | 254 .[ ``[ |
223 kernighan pike unix programming env | 255 kernighan pike unix programming env |
224 .]]'', within the text. | 256 .]]''. |
225 The full references are collected at the end of the document. | 257 Citations of email messages and websites are in the same style |
258 but distinguished by a prefix. | |
259 For example: | |
260 .[ ``[ | |
261 website mmh | |
262 .]]'' | |
263 and | |
264 .[ ``[ | |
265 nmh-workers mmh announce | |
266 .]]''. | |
267 All references are collected at the end of the document. | |
226 .P | 268 .P |
227 This document describes practical programming work. | 269 This document describes practical programming work. |
228 The code of mmh is managed by the | 270 The code of mmh is managed with the |
229 .Pn git | 271 .Pn git |
230 version control system. | 272 version control system. |
273 .[ | |
274 git website | |
275 .] | |
231 All code changes were checked in. | 276 All code changes were checked in. |
232 In the discussions, references to corresponding code changes are printed | 277 In the discussions, references to corresponding code changes are printed |
233 as ``\c | 278 as ``\c |
234 .Ci 1a2b3c4 ''. | 279 .Ci 1a2b3c4 ''. |
235 The identifier is the seven-letter-prefix of the changeset hash value, | 280 The identifier is the seven-letter-prefix of the changeset hash value, |
237 A change can be looked up in the repository, on the command line with | 282 A change can be looked up in the repository, on the command line with |
238 .Cl "git show XXX" , | 283 .Cl "git show XXX" , |
239 replacing `\f(CWXXX\fP' with the concrete hash value or any unique prefix. | 284 replacing `\f(CWXXX\fP' with the concrete hash value or any unique prefix. |
240 In this example: | 285 In this example: |
241 .Cl "git show 1a2b3c4" . | 286 .Cl "git show 1a2b3c4" . |
242 At the time of writing, changesets can be looked up online this way: | 287 At the time of writing, changesets can be looked up online at: |
243 .CW "http://git.marmaro.de/?p=mmh;a=commitdiff;h=XXX" . | 288 .CW "http://git.marmaro.de/?p=mmh;a=commitdiff;h=XXX" . |
244 But as we all know, URIs are always at risk to change. | 289 But as we all know, URIs are always at risk to change. |
290 .P | |
291 Whenever lines of code were determined, David A. Wheeler's \fIsloccount\fP | |
292 .[ | |
293 sloccount website | |
294 .] | |
295 was used to measure the amount in a comparable way. | |
245 | 296 |
246 | 297 |
247 .U2 "Acknowledgments | 298 .U2 "Acknowledgments |
248 .P | 299 .P |
249 To be written at the very end. | 300 To be written at the very end. |