docs/master

annotate summary.roff @ 235:e58400695ae2

Added tag final version for changeset 348b92755bef
author markus schnalke <meillo@marmaro.de>
date Mon, 16 Jul 2012 11:25:04 +0200
parents 2427d1dadb57
children
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@228 10 All my work was motivated by Antoine de Saint Exup\[eacute]ry's
meillo@228 11 well-known statement:
meillo@161 12 .[
meillo@213 13 antoine de saint exupery wind sand and stars
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 MIME handling is the most complex part of mmh and the one with the
meillo@190 36 highest potential for improvements.
meillo@190 37 The changes already accomplished so far build upon the existing structure,
meillo@190 38 but deeper rework is necessary to integrate MIME handling consistently.
meillo@190 39 For instance, accessing messages and accessing their MIME parts
meillo@190 40 should both covered by a single approach.
meillo@190 41 This requires the sequence notation to provide a way to address
meillo@190 42 MIME parts directly.
meillo@190 43 In general, the sequence notation should become more powerful.
meillo@161 44 For instance, it is currently not possible to access the second last
meillo@161 45 message in a given sequence.
meillo@190 46 Furthermore, displaying messages can be improved.
meillo@189 47 Encrypted messages should be decoded automatically
meillo@190 48 and digital signatures verified on-the-fly.
meillo@190 49 In this rework, MH's unique features need to be preserved,
meillo@190 50 but as well the default behavior should become less surprising.
meillo@190 51 Still, encoding and decoding is not done everywhere it is necessary.
meillo@190 52 The problems of not decoded quotations of the original message in replies
meillo@190 53 and not encoded non-ASCII characters in the message header remain.
meillo@132 54 .P
meillo@190 55 Some of mmh's tools were hardly touched, yet.
meillo@161 56 Among them are
meillo@161 57 .Pn dist ,
meillo@161 58 .Pn rcvdist ,
meillo@161 59 .Pn mark ,
meillo@161 60 .Pn pick ,
meillo@161 61 and
meillo@161 62 .Pn sortm .
meillo@190 63 They should be refactored as well.
meillo@164 64 Related to
meillo@190 65 .Pn sortm
meillo@190 66 is the threaded message view, which is completely missing, so far.
meillo@161 67 .Pn pick
meillo@190 68 could profit from message indexing.
meillo@189 69 These fields deserve further research.
meillo@161 70 .P
meillo@190 71 Nmh's testing framework has not been updated for mmh, yet.
meillo@190 72 All refactoring had been done without the safety net of a test framework.
meillo@190 73 Hence, experience warns that there may be subtle bugs in the code base.
meillo@222 74 As a consequence of the modularization rework (cf. Sec.
meillo@222 75 .Cf modularization ),
meillo@222 76 the compiler can no longer check the integrity of the interfaces
meillo@222 77 when tools invoke each other.
meillo@222 78 Automated testing should detect errors there.
meillo@190 79 .P
meillo@190 80 The features most often asked for are IMAP and Maildir support.
meillo@189 81 But, both of them collide with MH in the same fundamental way as
meillo@228 82 different file system approaches collide with Unix.
meillo@190 83 Nevertheless, an abstraction layer could provide a mapping between such
meillo@190 84 storage back-ends and the MH storage format.
meillo@190 85 Or, the mmh tool chest could be reworked to operate on a generic back-end,
meillo@164 86 making the MH storage format only one of many possible back-ends.
meillo@161 87 Research in this area is highly appreciated.
meillo@132 88
meillo@132 89
meillo@132 90 .U2 "Relationship to nmh
meillo@132 91 .P
meillo@161 92 The mmh project started as an experimental version of nmh because the
meillo@192 93 nmh community did not welcome my plans and visions.
meillo@192 94 The need to convincing the community of every change I liked to
meillo@192 95 undertake would have slowed down my work too much.
meillo@192 96 Hence, I created this experimental version to convince by demonstration.
meillo@0 97 .P
meillo@192 98 While I worked on mmh, nmh's community became very active as well.
meillo@200 99 Although we both worked on the same code base, there was no collaboration.
meillo@192 100 This, I must admit, was my failure because I kept my work hidden
meillo@192 101 from the nmh community.
meillo@192 102 The reasons are personal and community-related.
meillo@192 103 I am sorry for that and I like to improve in the future.
meillo@196 104 Nonetheless, I did not work behind completely closed doors.
meillo@196 105 I discussed within the regional computer community and
meillo@196 106 presented the project in two video-recorded lectures.
meillo@192 107 .[
meillo@192 108 chaosseminar ccc ulm mmh
meillo@192 109 .]
meillo@192 110 .[
meillo@192 111 gpn entropia mmh
meillo@192 112 .]
meillo@192 113 First users appeared and provided feedback.
meillo@161 114 .P
meillo@192 115 Over time, I had to realize that, although nmh and mmh have much
meillo@192 116 in common, the projects target different goals.
meillo@192 117 I am still undecided how to handle it, but my experimental version
meillo@192 118 more and more feels like being a fork.
meillo@196 119 As I am strongly convinced that the path taken for the
meillo@196 120 development of mmh is a good one,
meillo@192 121 I like to push the project farther in this direction.