docs/master

view summary.roff @ 190:2443264b1745

Added sloccount graph to the summary.
author markus schnalke <meillo@marmaro.de>
date Wed, 11 Jul 2012 18:35:11 +0200
parents 22feb390ccc4
children 68980dab3236
line source
1 .H0 "Summary
2 .P
3 This document describes and explains my work on mmh.
4 I have streamlined the project by removing programs, facilities,
5 and options that diverted from the main task of mmh, being an MUA.
6 I have modernized the code base removing obsolete functions and
7 activating modern features per default.
8 Furthermore, I have improved the style by refactoring clumpsy code
9 and by identifying and forcing clear concepts.
10 All my work was motivated by Antoine de Saint Exupery's well-known
11 statement:
12 .[
13 antoine de saint exupery: Wind, Sand and Stars (1939)
14 .]
15 .QS
16 It seems that perfection is attained not when there is nothing
17 more to add, but when there is nothing more to remove.
18 .QE
19 .LP
20 Against the common expectations, I hardly added new features.
21 I regard my achievement in the selection of the relevant set of existing
22 features, the choice of sensible defaults, and the extensive
23 focus on structure and concepts.
24 I believe, the result is a system simpler and clearer for both
25 developing and using, without lacking important functionality.
27 .KS
28 .in 1c
29 .so input/sloc.grap
30 .KE
33 .U2 "Outlook
34 .P
35 The work on mmh is not finished.
36 Several tasks are left to do.
37 .P
38 MIME handling is the most complex part of mmh and the one with the
39 highest potential for improvements.
40 The changes already accomplished so far build upon the existing structure,
41 but deeper rework is necessary to integrate MIME handling consistently.
42 For instance, accessing messages and accessing their MIME parts
43 should both covered by a single approach.
44 This requires the sequence notation to provide a way to address
45 MIME parts directly.
46 In general, the sequence notation should become more powerful.
47 For instance, it is currently not possible to access the second last
48 message in a given sequence.
49 Furthermore, displaying messages can be improved.
50 Encrypted messages should be decoded automatically
51 and digital signatures verified on-the-fly.
52 In this rework, MH's unique features need to be preserved,
53 but as well the default behavior should become less surprising.
54 Still, encoding and decoding is not done everywhere it is necessary.
55 The problems of not decoded quotations of the original message in replies
56 and not encoded non-ASCII characters in the message header remain.
57 .P
58 Some of mmh's tools were hardly touched, yet.
59 Among them are
60 .Pn dist ,
61 .Pn rcvdist ,
62 .Pn mark ,
63 .Pn pick ,
64 and
65 .Pn sortm .
66 They should be refactored as well.
67 Related to
68 .Pn sortm
69 is the threaded message view, which is completely missing, so far.
70 .Pn pick
71 could profit from message indexing.
72 These fields deserve further research.
73 .P
74 Nmh's testing framework has not been updated for mmh, yet.
75 All refactoring had been done without the safety net of a test framework.
76 Hence, experience warns that there may be subtle bugs in the code base.
77 .P
78 The features most often asked for are IMAP and Maildir support.
79 But, both of them collide with MH in the same fundamental way as
80 different filesystem approaches collide with Unix.
81 Nevertheless, an abstraction layer could provide a mapping between such
82 storage back-ends and the MH storage format.
83 Or, the mmh tool chest could be reworked to operate on a generic back-end,
84 making the MH storage format only one of many possible back-ends.
85 Research in this area is highly appreciated.
88 .U2 "Relationship to nmh
89 .P
90 The mmh project started as an experimental version of nmh because the
91 nmh community did not welcome my changes in the mainline version.
92 To not slow down my work by the need to convince the community in
93 discussions for each step I liked to take,
94 I started to create an experimental version to convicce by demonstration
95 of the result.
96 .\" behind closed doors; talks I've given
97 My work on mmh was independent of the nmh community. .\" XXX clarify
98 .\" XXX straight?
99 This enabled me to follow my vision straightforwardly and thus produce
100 a result of greater pureness.
101 .P
102 Mmh shall be considered as an inspiration for the future development of nmh.
103 It shall identify weak parts of nmh and suggest possible
104 improvements by change.
105 It shall present a lean appearance that is simpler to understand
106 and work with for developers and users.
107 By all means, my work on mmh shall improve nmh somehow.
108 Improving nmh directly in the way I wanted was impossible
109 due to personal and community-related circumstances.
110 The mmh project is my way to offer my gifts though.
111 .\" XXX zweimal ``my way''
112 .P
113 .\" XXX
114 During my work on mmh, the community of nmh suddenly became very active.
115 In parallel to my work on mmh, they have worked on nmh. \" XXX rewrite
116 There was no collaberation in our work, except that I have pulled some
117 changes from nmh to mmh.
118 Our work was motivated partly by similar and partly by different aims.
119 Although some changes are common among both projects,
120 fundamental differences exist.
121 My experimental version thus more and more felt like being a fork.
122 I am still undecided how I like to treat it.
123 .P
124 I am strongly convinced that the decisions taken for the
125 development of mmh were good ones regarding my goals,
126 and I like to push the project farther in this direction.
129 .ig
130 .U2 "Weaknesses of My Work
131 .P
132 not targeting on the right problems (maildir, imap)
134 .P
135 refactoring requires testing, automated testing
137 .P
138 communication with nmh.
139 worked behind closed doors, but no:
140 talks I've given
142 .P
143 focus on myself.
144 But: If good for me then also good for others.
145 ..