docs/master

view summary.roff @ 189:22feb390ccc4

Applied suggestions by Lydi.
author markus schnalke <meillo@marmaro.de>
date Wed, 11 Jul 2012 15:53:53 +0200
parents eb6eeb10afd5
children 2443264b1745
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 improved the style by refactoring clumpsy code
9 and by defining or 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 .P
20 In contrast to the common expectations, I have hardly added new features.
21 I regard my improvements in selecting the relevant set of existing
22 features and exploiting the concepts more thoroughly.
23 I believe, the result is a system simpler and clearer for both
24 developing and using, without lacking important functionality.
27 .U2 "Outlook
28 .P
29 The work done during the project is not finished. \" XXX yet?
30 Several tasks are left to do.
31 .P
32 MIME handling is the most complex part of mmh and it requires
33 general rework.
34 .\" XXX rewrite these sentences for more smoothness
35 The changes already accomplished build upon
36 the existing structure only.
37 To integrate it fully into the concepts.
38 For instance, accessing messages and accessing MIME parts of messages
39 have inherently different concepts, although a single concept should
40 cover both.
41 The sequence notation should provide a way to address MIME parts directly
42 and should be more powerful in general. \" XXX more powerful
43 For instance, it is currently not possible to access the second last
44 message in a given sequence.
45 Also, displaying messages with
46 .Pn show
47 requires further rework.
48 Encrypted messages should be decoded automatically
49 and digital signatures should be verified on-the-fly.
50 The whole task should be aligned with the common behavior of other
51 mail clients.
52 MH's unique features should not be lost, but the default should become
53 less surprising.
54 Transfer-decoding of the quoted text in replies and encoding of non-ASCII
55 characters in message header fields like
56 .Hd Subject
57 remain unsolved.
58 .P
59 Some of mmh's tools were hardly touched during my work.
60 Among them are
61 .Pn dist ,
62 .Pn rcvdist ,
63 .Pn mark ,
64 .Pn pick ,
65 and
66 .Pn sortm .
67 Related to
68 .Pn sortm ,
69 a threaded message view is completely missing in mmh, so far.
70 .Pn pick
71 could be enhanced by message indexing.
72 These fields deserve further research.
73 .P
74 The features most often asked for are Maildir and IMAP support.
75 But, both of them collide with MH in the same fundamental way as
76 different filesystem approaches would collide with Unix.
77 Nevertheless, an abstraction layer could provide a mapping from such
78 storage back-ends to the MH storage format.
79 Or the mmh tool chest could be reworked to operate on a generic back-end,
80 making the MH storage format only one of many possible back-ends.
81 Research in this area is highly appreciated.
82 .\" XXX targeting the right problems?!
83 .P
84 Nmh has a testing framework that supported the developers by detecting
85 several subtle bugs.
86 All refactoring in mmh had been done without the safety net of a test
87 framework.
88 Hence, experience warns that the probability for subtle bugs lurking
89 in the code base is high.
90 Nmh's test framework should be adjusted to mmh and extended.
91 .\" XXX path notation; signing and encrypting
94 .U2 "Relationship to nmh
95 .P
96 The mmh project started as an experimental version of nmh because the
97 nmh community did not welcome my changes in the mainline version.
98 To not slow down my work by the need to convince the community in
99 discussions for each step I liked to take,
100 I started to create an experimental version to convicce by demonstration
101 of the result.
102 .\" behind closed doors; talks I've given
103 My work on mmh was independent of the nmh community. .\" XXX clarify
104 .\" XXX straight?
105 This enabled me to follow my vision straightforwardly and thus produce
106 a result of greater pureness.
107 .P
108 Mmh shall be considered as an inspiration for the future development of nmh.
109 It shall identify weak parts of nmh and suggest possible
110 improvements by change.
111 It shall present a lean appearance that is simpler to understand
112 and work with for developers and users.
113 By all means, my work on mmh shall improve nmh somehow.
114 Improving nmh directly in the way I wanted was impossible
115 due to personal and community-related circumstances.
116 The mmh project is my way to offer my gifts though.
117 .\" XXX zweimal ``my way''
118 .P
119 .\" XXX
120 During my work on mmh, the community of nmh suddenly became very active.
121 In parallel to my work on mmh, they have worked on nmh. \" XXX rewrite
122 There was no collaberation in our work, except that I have pulled some
123 changes from nmh to mmh.
124 Our work was motivated partly by similar and partly by different aims.
125 Although some changes are common among both projects,
126 fundamental differences exist.
127 My experimental version thus more and more felt like being a fork.
128 I am still undecided how I like to treat it.
129 .P
130 I am strongly convinced that the decisions taken for the
131 development of mmh were good ones regarding my goals,
132 and I like to push the project farther in this direction.
135 .ig
136 .U2 "Weaknesses of My Work
137 .P
138 not targeting on the right problems (maildir, imap)
140 .P
141 refactoring requires testing, automated testing
143 .P
144 communication with nmh.
145 worked behind closed doors, but no:
146 talks I've given
148 .P
149 focus on myself.
150 But: If good for me then also good for others.
151 ..