docs/master
changeset 49:d3a02f5e63b3
Various rework.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sat, 19 May 2012 17:56:15 +0200 |
parents | eae5e50381ce |
children | a446f89cc5d9 |
files | ch01.roff ch03.roff |
diffstat | 2 files changed, 66 insertions(+), 49 deletions(-) [+] |
line diff
1.1 --- a/ch01.roff Fri May 18 11:21:51 2012 +0200 1.2 +++ b/ch01.roff Sat May 19 17:56:15 2012 +0200 1.3 @@ -153,66 +153,70 @@ 1.4 1.5 .H1 "nmh: Code and Community 1.6 .P 1.7 -In order to understand the state, goals and dynamics of a project, 1.8 -one needs to know its history. MH predates the Internet, 1.9 -it comes from times before networking was universal, 1.10 -times when emailing was small, short and simple. 1.11 +In order to understand the condition, goals and dynamics of a project, 1.12 +one needs to know the reasons. 1.13 +MH predates the Internet, it comes from times before networking was universal, 1.14 +it comes from times when emailing was small, short and simple. 1.15 Then it grew, spread and adopted to the changes email went through. 1.16 -The core-concepts, however, remained the same. 1.17 -During the 80s a small group of students at the University of 1.18 -California, actively worked on MH. They added features and optimized, 1.19 -like it is common for scientific work. This is still in pre-ANSI C 1.20 -times. The source code contains many ancient parts. Code constructs 1.21 -specific to BSD or hardware of that time are usual. 1.22 +Its core-concepts, however, remained the same. 1.23 +During the Eighties students at UCI actively worked on MH. 1.24 +They added new features and optimized the code for the then popular systems. 1.25 +All this still was in times before POSIX and ANSI C. 1.26 +As large parts of the code stem from this time, today's nmh source code 1.27 +still contains many ancient parts. 1.28 +BSD-specific code and constructs taylored for hardware of that time 1.29 +are frequent. 1.30 .P 1.31 -Nmh started eight years after the ANSI C standard had been 1.32 -established. A more modern coding style entered the code base. Still 1.33 -a part of the developers come from ``the old days''. The developer 1.34 -base became more diverse and thus the code had different style. 1.35 -Programming practices 1.36 -from different decades merged into the project. Different coding 1.37 -styles came together. It appears as if multiple peers added code 1.38 -parts, resulting in a conclomeration rather than a homogenic 1.39 -of-one-cast mail system. Still, the basic concepts hold it together. 1.40 +Nmh started about a decade after the POSIX and ANSI C standards had been 1.41 +established. A more modern coding style entered the code base, but still 1.42 +a part of the developers came from ``the old days''. The developer 1.43 +base became more diverse and thus resulted in code of different style. 1.44 +Programming practices from different decades merged in the project. 1.45 +As several peers added code, the system became more a conclomeration 1.46 +of single tools rather than a homogenic of-one-cast mail system. 1.47 +Still, the existing basic concepts held it together. 1.48 They were mostly untouched throughout the years. 1.49 .P 1.50 -Although, at the surface, nmh is a toolchest, meaning a collection 1.51 -of completely modularized small programs, on the source code level, 1.52 -it is much more interweaved. Parts of the basic functions are 1.53 -collected in a MH standard library, which is good, but often 1.54 -separate functions are compiled into programs, for effiency reasons. 1.55 +Despite the toolchest approach at the surface \(en a collection 1.56 +of separate small programs \(en on the source code level 1.57 +it is much more interweaved. 1.58 +Several separate components were compiled into one program 1.59 +for effiency reasons. 1.60 This lead to intricate innards. 1.61 -The advent of MIME rose the complexity of email by a magnitude. This 1.62 -is visible in nmh. The MIME-related parts are the most complex ones. 1.63 -It's also visible that MIME support had been added on top of the 1.64 -old MH later. The MH style made this easily possible, but it 1.65 -also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP) 1.66 -and had not been thoroughly included into the concepts (e.g. the 1.67 -user-visible access to whole messages and MIME parts are inherently 1.68 -different). 1.69 +Unfortunately, the clear separation on the outside appeared as being 1.70 +pretty interweaved inside. 1.71 .P 1.72 -For backward-compatibility's sake, it is a common understanding to have the 1.73 -default settings to be compatible, requiring any new feature to be 1.74 -explicitely enabled. 1.75 +The advent of MIME rose the complexity of email by a magnitude. 1.76 +This is visible in nmh. The MIME-related parts are the most complex ones. 1.77 +It's also visible that MIME support had been added on top of the old MH core. 1.78 +MH's toolchest style made this easily possible and encourages 1.79 +such approaches, but unfortunately, it lead to duplicated functions 1.80 +and half-hearted implementation of the concepts. 1.81 +.P 1.82 +To provide backward-compatibility, it is a common understanding to not 1.83 +change the default settings. 1.84 In consequence, the user needs to activate modern features explicitely 1.85 to be able to use them. 1.86 -This puts a burden on new users, because nmh 1.87 -out-of-the-box keeps staying in the same ancient style, where users 1.88 -usually want to have it practical for modern emailing. 1.89 -But of course, this depends if nmh is seen to be a front-end or a 1.90 -back-end. 1.91 +This puts a burden on new users, because out-of-the-box nmh remains 1.92 +in the same ancient style. 1.93 +If nmh is seen to be a back-end, then this compatibility surely is important. 1.94 +However, in the same go, new users have difficulties to use nmh for modern 1.95 +emailing. 1.96 +The small but matured community around nmh hardly needs much change 1.97 +as they have their convenient setups since decades. 1.98 1.99 1.100 .H1 "mmh 1.101 .P 1.102 -I started to work on my experimental version in Fall 2011. 1.103 +I started to work on my experimental version in October 2011, 1.104 +when there were no more than three commits to nmh in the previous nine months.. 1.105 In December, when I announced my work on the nmh-workers mailing list, 1.106 .[ 1.107 nmh-workers mmh announce december 1.108 .] 1.109 -the activity in nmh rose heavily. 1.110 +the activity in nmh rose much. 1.111 Suddently the community started to move. 1.112 -This movement was pushed much by Paul Vixie's ``edginess'' message. 1.113 +This movement was heavily pushed by Paul Vixie's ``edginess'' comment. 1.114 .[ 1.115 nmh-workers vixie edginess 1.116 .] 1.117 @@ -225,7 +229,7 @@ 1.118 (My login name is \fImeillo\fP.) 1.119 The project follows my personal considerations and preferences. 1.120 By calling it a personal project, I don't need to justify my decisions, 1.121 -though, still I do. 1.122 +though, still I like to do. 1.123 This enabled me to follow my vision staightly and thus produce 1.124 a result of greater pureness. 1.125 This project model was inspired by the window manager \fIdwm\fP, 1.126 @@ -233,20 +237,20 @@ 1.127 targeted to satisfy Garbe's personal needs whenever conflicts appear. 1.128 dwm had remained much more focused on its original goals, 1.129 whereas its community-driven predecessor \fIwmii\fP had 1.130 -grown large and lost it's leanness. 1.131 +grown big and lost it's lean elegance. 1.132 This should not happen to mmh. 1.133 .P 1.134 -Mmh can also stand for \fImodern mail handler\fP, and this is 1.135 -the variant chosen as titel for this document. One main focus of the 1.136 +Mmh also stands for \fImodern mail handler\fP, and this is 1.137 +the variant chosen to entitel this document. One main focus of the 1.138 project was to modernize nmh. Another main goal is resembled in the 1.139 name \fIminimized mail handler\fP: Drop any parts that don't add 1.140 -to the main task of mmh, being a MUA. 1.141 +to the main task of mmh, being a conceptionally appealing MUA. 1.142 .P 1.143 It should also be noted that \fLstrcmp("mmh","nmh")<0\fP is true. 1.144 Although mmh bases on nmh, it is likely seen as a step backward. 1.145 I agree. 1.146 However, this step backward actually is a step forward, 1.147 -although in another direction. 1.148 +although in a different direction. 1.149 1.150 1.151 .H1 "This Thesis
2.1 --- a/ch03.roff Fri May 18 11:21:51 2012 +0200 2.2 +++ b/ch03.roff Sat May 19 17:56:15 2012 +0200 2.3 @@ -623,3 +623,16 @@ 2.4 .H1 "Code style 2.5 .P 2.6 foo 2.7 + 2.8 + 2.9 + 2.10 +(e.g. the 2.11 +user-visible access to whole messages and MIME parts are inherently 2.12 +different). 2.13 + 2.14 +The \fIMH library\fP 2.15 +.Fn libmh.a 2.16 +collects a bunch of standard functions that many of the MH tools need, 2.17 +like reading the profile or context files. 2.18 +This doesn't hurt the separation. 2.19 +