# HG changeset patch # User markus schnalke # Date 1336556396 -7200 # Node ID 6c63083b4c1986fb68cfd11cd3d40b74679f1ce1 # Parent b687d151eed3c177e0f5a023b8e474cb56ca6cca Wrote text for the Preface; changed headings in Preface and Introduction. diff -r b687d151eed3 -r 6c63083b4c19 ch01.roff --- a/ch01.roff Tue May 08 18:37:12 2012 +0200 +++ b/ch01.roff Wed May 09 11:39:56 2012 +0200 @@ -7,12 +7,7 @@ it headed to. This shall give an overview. -.H1 "Email Prerequisites -.P -XXX Do we really need that? - - -.H1 "What is MH? +.H1 "MH \(en the Mail Handler .P MH is an electronic mail system, originating in the RAND Corporation. Historically, it had been a all-in-one mail system, with both Mail Transfer @@ -109,7 +104,7 @@ and old MH. The look'n'feel is common among them. -.H1 "Understanding the Code and Community +.H1 "nmh: Code and Community .P In order to understand the state, goals and dynamics of a project, one needs to know its history. MH comes from a time before the @@ -157,6 +152,19 @@ .H1 "mmh +.P +I started to work on my experimental version, which I call +\fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011. +In December, when I announced that I would work on an experimental +version, the activity in nmh suddenly rose. Suddently the community +started to move. +After long years of mostly idling, nmh became actively developed again. +What a great result! +Hence, while I was working on mmh, the community was working on nmh +too. My own work went in parallel and mostly unrelated. +.P +Because of several circumstances, my experimental version is rather +a fork today, although this may change again in the future. .U2 "Motivation .P diff -r b687d151eed3 -r 6c63083b4c19 preface.roff --- a/preface.roff Tue May 08 18:37:12 2012 +0200 +++ b/preface.roff Wed May 09 11:39:56 2012 +0200 @@ -5,31 +5,35 @@ the Unix toolchest is a set of file handling tools with a common concept. nmh is the currently most popular implementation of an MH-like mail handling system. +This thesis describes creating an experimental version of nmh, +named \fImmh\fP, +to modernize, stream-line and to exploit the concepts +even more thoroughly. - -.H1 "How the Fun Began" no +.U2 "The Path to this Thesis .P -I have discovered nmh in September 2009. At that time I used to use mutt, -like many command line-attracted Unix users do. -Conceptually nmh had convinced me at once and learning +I have discovered nmh in September 2009. At that time I used to use the +mail client mutt, like many command line-attracted Unix users do. +The concepts of nmh had convinced me at once and thus learning its different model of email handling had been relatively easy. The change was like -managing files in the Unix shell when you are used to graphical file -managers, or like learning vi when you are used to modeless editors. -The change was not trivial but as I was convinced by the concepts and -already managed my files with shell tools and edited with vi, not to -difficult either. -In contrast, setting nmh up to a convenient state became a tendious task +managing files in the Unix shell when being used to graphical file +managers, or like learning vi when being used to modeless editors. +The transition had not been trivial but, as I was convinced by the new +concepts and +already managed my files with shell tools and edited with vi, not too +difficult neither. +In contrast, setting up nmh to a convenient state became a tendious task that took several months. .P -Once having nmh arranged as wished, using it was joy because of its -conceptional elegance and scripting capabilities. +Once having nmh arranged to a convenient state, I enjoyed using it +because of its conceptional elegance and its scripting capabilities. On the other hand, however, it still was inconvenient in handling attachments, non-ASCII character encodings, and similar features of modern emailing. -My setup required more and more scripts and additional configuration -to have nmh act the way I expected it to behave, where my -expectations were rather common to modern emailing than exceptionel. +My setup required more and more additional configuration and helper scripts +to have nmh act the way I expected it to behave, although my +expectations were rather common for modern emailing than exceptionel. 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 @@ -47,9 +51,8 @@ In this point, my opinion differed from the opinion of most others as I voted for the MTA facility of nmh to be removed. .P -Being not able to work on nmh in a way that would be -accepted as part of my official studies, I needed to get my credit -points with some other project. +Being unable to work on nmh in a way that would be +accepted as part of my official studies, I had to pick another project. Half a year later, starting in August 2010, I took one semester off to travel through Latin America. Within this time, I had to do practical computer work for three @@ -91,25 +94,65 @@ work to the present state of nmh. Time should prove me successful or not. Nmh would hardly be hurt by my work as I would not interfere with -them. But nmh could profit from my experiences. +them. But nmh would profit from my experiences. + +.U2 "Focus and Delimitation of the Document .P -I started to work on my experimental version, which I call -\fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011. -In December, when I announced that I would work on an experimental -version, the activity in nmh suddenly rose. Suddently the community -started to move. -After long years of mostly idling, nmh became actively developed again. -What a great result! -Hence, while I was working on mmh, the community was working on nmh -too. My own work went in parallel and mostly unrelated. +This document describes my work on the experimental version, named +\fImmh\fP. It explains the changes I did to nmh, with having the focus +on the reasons for the changes. It discusses technical, historical, +social and philosophical reasons. On the technical side, this document +explains how an existing project was stream-lined by exploiting the +central concepts better and removing rough edges. On the historical +side, changes in the use cases and the features of email and reactions +to them are discussed. Socially, this document describes the effects +and experiences of a newcomer with revolutionary aims entering an old +and matured software projects and its community. Finally, philosophical +thoughts on style, mainly based to the Unix philosophy, are present +throughout the discussions. .P -Because of several circumstances, my experimental version is rather -a fork today, although this may change again in the future. +This document is written for the community \(en developers and users \(en +around MH-like mail systems. +First of all, the document shall propagade the design goals and +implementation decisions of mmh. But as well, it shall clarify my +perception of the +concepts of MH and Unix, and the therefrom resulting point of view. +Further more, the document shall explain this view on nmh and mmh. +Despite the focus on MH-like systems, this document can be useful +to anyone interested in the Unix philosophy, as well as anyone +involved in old software projects, be it code-related or community-related. +.P +The reader is expected to know Unix, C and email well. Good Unix shell +knowledge, including shell scripting, is required. MH relies fundamentally +on the shell. Without the power of the shell, MH becomes a motorbike +without winding roads. +Introductions to Unix and its shell can be found in XXX. +The reader is +expected to be familiar with the C programming language, although the +document should be quite readable without knowledge of C, too. +The book by Kernighan and Ritchie is the definitive guide to C. +Some book about system-level C programming is worthwile additional +literature. Rochkind and Curry have written such books. +As large parts of the code are old, old books are likely more helpful. +The format of email messages as well as the structure of email transfer +systems should be familiar to the reader, at least on a basic level. +It's advisable to have had, at least cross-read, the RFCs 821 and 822. +The book XXX introduces email well, too. +Frequent references to the Unix philosophy will be made. +Gancarz XXX had tried to sum the philosophy up. Even better but less +concrete is the literature by Kernighan and Pike XXX. +The term paper ``Why the Unix Philosophy still matters'' by myself +provides an overview on the topic, including a case study of MH. -.H1 "Organization" no +.U2 "Organization .P -This thesis is split into XXX chapters, ... +Which font for what use. +Meaning of `foo(1)'. +RFCs. +MH vs. nmh vs. mmh. +.P +This thesis is devided into XXX chapters, ... .P .I Chapter 1 introduces ... @@ -121,22 +164,7 @@ covers ... -.\" What audience is expected? -.\" What will not be covered (delimitation). - -.\" General required knowledge (C, email, ...) -.\" cf. Email Prerequisites in the Introduction. - - -.H1 "Conventions" no -.P -Which font for what use. -Meaning of `foo(1)'. -RFCs. -MH vs. nmh vs. mmh. - - -.H1 "Acknowledgments" no +.U2 "Acknowledgments .P To be written at the very end.