docs/master

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