docs/master

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