docs/master

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