Mercurial > docs > master
view ch01.roff @ 3:f3425905d7d1
Some minor rework.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Wed, 07 Mar 2012 14:33:03 +0100 |
parents | 65e4327aa9f8 |
children | 3ef5449c1175 |
line wrap: on
line source
.H0 "Introduction .P This chapter describes the background of the topics in this thesis. General knowledge of electronic mail is assumed. .H1 "What is MH? .P MH is an electronic mail system, originating in the RAND Corporation. Historically, it had been a all-in-one mail system, with Mail Transfer Agent (MTA) and Mail User Agent (MUA). Later, when electronic mail systems changed, Mail Submission Agent (MSA) and Mail Retrieval Agent (MRA) facilities were added. The MTA became less important, whereas the MUA became even more the central part. .P First of all, MH is a style of a mail handling system. It had started as a design proposal, not as an implementation, and had in spirit remained so. This is similar to Unix, which much less is a specific software product, as it is a style of system design. MH is a toolchest of programs, modelled after the Unix toolchest, and it is a specific mail storage format, like Unix has its file system formats. .H2 "Concepts of MH" no .P FIXME .H2 "History of MH" no .P MH is an electronic mail system, originating in the RAND Corporation. In 1977, Norman Shapiro and Stockton Gaines had proposed the design of a new mail handling system, called ``Mail Handler'' (MH) for RAND, to superseed their ``Mail System'' (MS). Two years later, in 1979, XXX took the proposal and implemented a prototype of MH. It proved successful and replaced MS thereafter. .P A decade later, the University of California had started to use MH. They also took over its development and pushed MH forward. This had been the time when the Internet appeared, Berkeley implemented the TCP stack, and Sendmail was born. MH had often contained the first implementation of new RFCs. .P In the nineties, MH had been moved into the public domain, making it attractive to Free Software developers. The Internet had started to become mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler'' (nmh), a fork of MH. He intended to modernize MH, improve its MIME capabilities, and this should be done openly within the Internet community. Today, nmh almost completely replaced the original MH. .H1 "How the Fun Began .P I have discovered nmh in XXX. I used to use mutt, like many command line-attracted Unix users. Nmh had convinced me conceptually at once. Unfortunately, setting it up to a convenient state became a tendious task. Learning its different model of email handling had, in contrast, been relatively easy. Learning to use MH if you are used to monolithic mail clients is like learning vi if you are used to modeless editors. Once having nmh set up, using it was joy because of its conceptional elegance and scripting capabilities, but on the other hand it was inconvenient in handling attachments, non-ASCII character encodings, and similar stuff. I found it wrong to require more and more scripts and configuration to have it act the expected way. In being a software developer, I wanted to improve the situation. .P In Spring 2010, I asked on the nmh-workers mailing list for the possibility to have a Google Summer of Code project on nmh. Being a student, this appeared attractive to me. Eventually, it had not been possible, but the nmh community started to move. In these months nmh's future was discussed and I became part of a ``Does nmh need an MTA'' discussion. There, my opinion differed from the opinion of most others. .P As it hadn't been possible to work on nmh in a way that would be accepted as part of my official studies, I needed to get my credit points in some other way. But half a year later I was back. Starting in Summer 2010, I took one semester off to travel through Latin America. Within this time, I needed to do practical computer work for three months. Richard Sandelman, an active nmh user, made it possible for me to work on nmh during this time. Juan Granda, from Santiago del Estero in Argentina, provided a computer and Internet connection. Within these three month, I became familiar with nmh's code base and its community. I learned how things work. Quickly it was obvious that I wouldn't succeed to improve on the non-ASCII character encoding problems, as this is one of the most intricate parts of the system. Instead I improved code as I read through it. I found minor bugs in the code and could improve the documentation. When I started with larger code changes, I had to discover that the community's wish for compatibility was stronger than its wish for convenient out-of-the-box setups. This lead to long discussions, again. Finally, I understand their point of view, but it's not mine. At the end of my three-month project, I had became familiar with nmh's code base and community, I had improved both a bit, and I still was convinced that I wanted to go on with it. .P Another half a year later, I needed a topic for my master's thesis. Now it was clear: I wanted to work on nmh. No, not exactly nmh, because I had accepted that the nmh community has different goals than I have. The won't be much progress if generally different opinions lead to long discussions. After careful thought, I had decided to start an experimental version of nmh. I wanted to go my way and see where it would lead to. Time would tell if it would prove successful. Nmh would hardly be hurt by my work, but could profit from my experiences later. .P When I started to work on mmh, my experimental version, in Fall 2011, activity in nmh rose suddenly. While I was working on mmh, XXX were working on nmh. After long years of idleing, nmh was actively developed again. That was a good sign. My own work went in parallel and unrelated. Today, my experimental version became de facto a fork. The mail storage, however, is still compatible.