docs/master
diff preface.roff @ 28:6c63083b4c19
Wrote text for the Preface; changed headings in Preface and Introduction.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Wed, 09 May 2012 11:39:56 +0200 |
parents | b687d151eed3 |
children | d996f130e279 |
line diff
1.1 --- a/preface.roff Tue May 08 18:37:12 2012 +0200 1.2 +++ b/preface.roff Wed May 09 11:39:56 2012 +0200 1.3 @@ -5,31 +5,35 @@ 1.4 the Unix toolchest is a set of file handling tools with a common 1.5 concept. nmh is the currently most popular implementation of an 1.6 MH-like mail handling system. 1.7 +This thesis describes creating an experimental version of nmh, 1.8 +named \fImmh\fP, 1.9 +to modernize, stream-line and to exploit the concepts 1.10 +even more thoroughly. 1.11 1.12 - 1.13 -.H1 "How the Fun Began" no 1.14 +.U2 "The Path to this Thesis 1.15 .P 1.16 -I have discovered nmh in September 2009. At that time I used to use mutt, 1.17 -like many command line-attracted Unix users do. 1.18 -Conceptually nmh had convinced me at once and learning 1.19 +I have discovered nmh in September 2009. At that time I used to use the 1.20 +mail client mutt, like many command line-attracted Unix users do. 1.21 +The concepts of nmh had convinced me at once and thus learning 1.22 its different model of email handling had been relatively easy. 1.23 The change was like 1.24 -managing files in the Unix shell when you are used to graphical file 1.25 -managers, or like learning vi when you are used to modeless editors. 1.26 -The change was not trivial but as I was convinced by the concepts and 1.27 -already managed my files with shell tools and edited with vi, not to 1.28 -difficult either. 1.29 -In contrast, setting nmh up to a convenient state became a tendious task 1.30 +managing files in the Unix shell when being used to graphical file 1.31 +managers, or like learning vi when being used to modeless editors. 1.32 +The transition had not been trivial but, as I was convinced by the new 1.33 +concepts and 1.34 +already managed my files with shell tools and edited with vi, not too 1.35 +difficult neither. 1.36 +In contrast, setting up nmh to a convenient state became a tendious task 1.37 that took several months. 1.38 .P 1.39 -Once having nmh arranged as wished, using it was joy because of its 1.40 -conceptional elegance and scripting capabilities. 1.41 +Once having nmh arranged to a convenient state, I enjoyed using it 1.42 +because of its conceptional elegance and its scripting capabilities. 1.43 On the other hand, however, it still was 1.44 inconvenient in handling attachments, non-ASCII character encodings, 1.45 and similar features of modern emailing. 1.46 -My setup required more and more scripts and additional configuration 1.47 -to have nmh act the way I expected it to behave, where my 1.48 -expectations were rather common to modern emailing than exceptionel. 1.49 +My setup required more and more additional configuration and helper scripts 1.50 +to have nmh act the way I expected it to behave, although my 1.51 +expectations were rather common for modern emailing than exceptionel. 1.52 In being a software developer, I wanted to improve the situation. 1.53 .P 1.54 In Spring 2010, I asked on the nmh-workers mailing list for the 1.55 @@ -47,9 +51,8 @@ 1.56 In this point, my opinion differed from the opinion of most others 1.57 as I voted for the MTA facility of nmh to be removed. 1.58 .P 1.59 -Being not able to work on nmh in a way that would be 1.60 -accepted as part of my official studies, I needed to get my credit 1.61 -points with some other project. 1.62 +Being unable to work on nmh in a way that would be 1.63 +accepted as part of my official studies, I had to pick another project. 1.64 Half a year later, starting in August 2010, 1.65 I took one semester off to travel through Latin America. 1.66 Within this time, I had to do practical computer work for three 1.67 @@ -91,25 +94,65 @@ 1.68 work to the present state of nmh. Time should prove me successful or 1.69 not. 1.70 Nmh would hardly be hurt by my work as I would not interfere with 1.71 -them. But nmh could profit from my experiences. 1.72 +them. But nmh would profit from my experiences. 1.73 + 1.74 +.U2 "Focus and Delimitation of the Document 1.75 .P 1.76 -I started to work on my experimental version, which I call 1.77 -\fImmh\fP (for \fImeillo's mail handler\fP), in Fall 2011. 1.78 -In December, when I announced that I would work on an experimental 1.79 -version, the activity in nmh suddenly rose. Suddently the community 1.80 -started to move. 1.81 -After long years of mostly idling, nmh became actively developed again. 1.82 -What a great result! 1.83 -Hence, while I was working on mmh, the community was working on nmh 1.84 -too. My own work went in parallel and mostly unrelated. 1.85 +This document describes my work on the experimental version, named 1.86 +\fImmh\fP. It explains the changes I did to nmh, with having the focus 1.87 +on the reasons for the changes. It discusses technical, historical, 1.88 +social and philosophical reasons. On the technical side, this document 1.89 +explains how an existing project was stream-lined by exploiting the 1.90 +central concepts better and removing rough edges. On the historical 1.91 +side, changes in the use cases and the features of email and reactions 1.92 +to them are discussed. Socially, this document describes the effects 1.93 +and experiences of a newcomer with revolutionary aims entering an old 1.94 +and matured software projects and its community. Finally, philosophical 1.95 +thoughts on style, mainly based to the Unix philosophy, are present 1.96 +throughout the discussions. 1.97 .P 1.98 -Because of several circumstances, my experimental version is rather 1.99 -a fork today, although this may change again in the future. 1.100 +This document is written for the community \(en developers and users \(en 1.101 +around MH-like mail systems. 1.102 +First of all, the document shall propagade the design goals and 1.103 +implementation decisions of mmh. But as well, it shall clarify my 1.104 +perception of the 1.105 +concepts of MH and Unix, and the therefrom resulting point of view. 1.106 +Further more, the document shall explain this view on nmh and mmh. 1.107 +Despite the focus on MH-like systems, this document can be useful 1.108 +to anyone interested in the Unix philosophy, as well as anyone 1.109 +involved in old software projects, be it code-related or community-related. 1.110 +.P 1.111 +The reader is expected to know Unix, C and email well. Good Unix shell 1.112 +knowledge, including shell scripting, is required. MH relies fundamentally 1.113 +on the shell. Without the power of the shell, MH becomes a motorbike 1.114 +without winding roads. 1.115 +Introductions to Unix and its shell can be found in XXX. 1.116 +The reader is 1.117 +expected to be familiar with the C programming language, although the 1.118 +document should be quite readable without knowledge of C, too. 1.119 +The book by Kernighan and Ritchie is the definitive guide to C. 1.120 +Some book about system-level C programming is worthwile additional 1.121 +literature. Rochkind and Curry have written such books. 1.122 +As large parts of the code are old, old books are likely more helpful. 1.123 +The format of email messages as well as the structure of email transfer 1.124 +systems should be familiar to the reader, at least on a basic level. 1.125 +It's advisable to have had, at least cross-read, the RFCs 821 and 822. 1.126 +The book XXX introduces email well, too. 1.127 +Frequent references to the Unix philosophy will be made. 1.128 +Gancarz XXX had tried to sum the philosophy up. Even better but less 1.129 +concrete is the literature by Kernighan and Pike XXX. 1.130 +The term paper ``Why the Unix Philosophy still matters'' by myself 1.131 +provides an overview on the topic, including a case study of MH. 1.132 1.133 1.134 -.H1 "Organization" no 1.135 +.U2 "Organization 1.136 .P 1.137 -This thesis is split into XXX chapters, ... 1.138 +Which font for what use. 1.139 +Meaning of `foo(1)'. 1.140 +RFCs. 1.141 +MH vs. nmh vs. mmh. 1.142 +.P 1.143 +This thesis is devided into XXX chapters, ... 1.144 .P 1.145 .I Chapter 1 1.146 introduces ... 1.147 @@ -121,22 +164,7 @@ 1.148 covers ... 1.149 1.150 1.151 -.\" What audience is expected? 1.152 -.\" What will not be covered (delimitation). 1.153 - 1.154 -.\" General required knowledge (C, email, ...) 1.155 -.\" cf. Email Prerequisites in the Introduction. 1.156 - 1.157 - 1.158 -.H1 "Conventions" no 1.159 -.P 1.160 -Which font for what use. 1.161 -Meaning of `foo(1)'. 1.162 -RFCs. 1.163 -MH vs. nmh vs. mmh. 1.164 - 1.165 - 1.166 -.H1 "Acknowledgments" no 1.167 +.U2 "Acknowledgments 1.168 .P 1.169 To be written at the very end. 1.170