docs/master

view ch01.roff @ 2:65e4327aa9f8

Added some introduction text.
author markus schnalke <meillo@marmaro.de>
date Wed, 07 Mar 2012 11:46:18 +0100
parents dc2bfef4cda7
children f3425905d7d1
line source
1 .H0 "Introduction
2 .P
3 This chapter describes the background of the topics in this thesis.
4 General knowledge of electronic mail is assumed.
6 .H1 "What is MH?
7 .P
8 MH is an electronic mail system, originating in the RAND Corporation.
9 Historically, it had been a all-in-one mail system, with Mail Transfer
10 Agent (MTA) and Mail User Agent (MUA).
11 Later, when electronic mail systems changed, Mail Submission Agent (MSA)
12 and Mail Retrieval Agent (MRA) facilities were added.
13 The MTA became less important, whereas the MUA became even more the
14 central part.
15 .P
16 First of all, MH is a style of a mail handling system.
17 It had started as a design proposal, not as an implementation, and
18 had in spirit remained so. This is similar to Unix, which much less
19 is a specific software product, as it is a style of system design.
20 MH is a toolchest of programs, modelled after the Unix toolchest,
21 and it is a specific mail storage format, like Unix has its file system
22 formats.
24 .H1 "History of MH
25 .P
26 MH is an electronic mail system, originating in the RAND Corporation.
27 In 1977, Norman Shapiro and Stockton Gaines had proposed the design
28 of a new mail handling system, called ``Mail Handler'' (MH) for RAND,
29 to superseed their ``Mail System'' (MS).
30 Two years later, in 1979, XXX took the proposal and implemented a
31 prototype of MH. It proved successful and replaced MS thereafter.
32 .P
33 A decade later, the University of California had started to use MH.
34 They also took over its development and pushed MH forward.
35 This had been the time when the Internet appeared, Berkeley implemented
36 the TCP stack, and Sendmail was born. MH had often contained the first
37 implementation of new RFCs.
38 .P
39 In the nineties, MH had been moved into the public domain, making it
40 attractive to Free Software developers. The Internet had started to become
41 mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler''
42 (nmh), a fork of MH. He intended to modernize MH, improve its MIME
43 capabilities, and this should be done openly within the Internet
44 community. Today, nmh almost completely replaced the original MH.
46 .H1 "How the Fun Began
47 .P
48 I have discovered nmh in XXX. I used to use mutt, like many
49 command-line-attracted Unix users. Nmh had convinced me conceptually
50 at once. Unfortunately, setting it up to a convenient state became a
51 tendious task. Learning its different model of email handling had,
52 in contrast, been relatively easy. Learning to use MH if you are used
53 to monolithic mail clients is like learning vi if you are used to
54 modeless editors.
55 Once having nmh set up, using it was joy because of its conceptional
56 elegance and scripting capabilities, but on the other hand it was
57 inconvenient in handling attachments, non-ASCII character encodings,
58 and similar stuff. I found it wrong to require more and more scripts
59 and configuration to have it act the expected way. In being a
60 software developer, I wanted to improve the situation.
61 .P
62 In Spring 2010, I asked on the nmh-workers mailing list for the
63 possibility to have a Google Summer of Code project on nmh. Being a
64 student, this appeared attractive to me. Eventually, it had not been
65 possible, but the nmh community started to move. In these months
66 nmh's future was discussed and I became part of a ``Does nmh need an
67 MTA'' discussion. There, my opinion differed from the opinion of
68 most others.
69 .P
70 As it hadn't been possible to work on nmh in a way that would be
71 accepted as part of my official studies, I needed to get my credit
72 points in some other way. But half a year later I was back. Starting
73 in Summer 2010, I took one semester off to travel through Latin America.
74 Within this time, I needed to do practical computer work for three
75 months. Richard Sandelman, an active nmh user, made it possible for
76 me to work on nmh during this time. Juan Granda, from Santiago del
77 Estero in Argentina, provided a computer and Internet connection.
78 Within these three month, I became familiar with nmh's code base and
79 its community. I learned how things work. Quickly it was obvious that
80 I wouldn't succeed to improve on the non-ASCII character encoding
81 problems, as this is one of the most intricate parts of the system.
82 Instead I improved code as I read through it. I found minor bugs in
83 the code and could improve the documentation. When I started with
84 larger code changes, I had to discover that the community's wish for
85 compatibility was stronger than its wish for convenient
86 out-of-the-box setups. This lead to long discussions, again. Finally,
87 I understand their point of view, but it's not mine.
88 At the end of my three-month project, I had became familiar with
89 nmh's code base and community, I had improved both a bit, and I still
90 was convinced that I wanted to go on with it.
91 .P
92 Another half a year later, I needed a topic for my master's thesis.
93 Now it was clear: I wanted to work on nmh. No, not exactly nmh,
94 because I had accepted that the nmh community has different goals
95 than I have. The won't be much progress if generally different opinions
96 lead to long discussions. After careful thought, I had decided to
97 start an experimental version of nmh. I wanted to go my way and see
98 where it would lead to. Time would tell if it would prove successful.
99 Nmh would hardly be hurt by my work, but could profit from my
100 experiences later.
101 .P
102 When I started to work on mmh, my experimental version, in Fall 2011,
103 activity in nmh rose suddenly. While I was working on mmh, XXX were
104 working on nmh. After long years of idleing, nmh was actively
105 developed again. That was a good sign. My own work went in parallel
106 and unrelated. Today, my experimental version became de facto a fork.
107 The mail storage, however, is still compatible.