docs/master

annotate summary.roff @ 196:a75de0da2fb7

summary: Improvements and cleanup.
author markus schnalke <meillo@marmaro.de>
date Thu, 12 Jul 2012 00:19:09 +0200
parents 68980dab3236
children c299ed65d015
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 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@190 74 .P
meillo@190 75 The features most often asked for are IMAP and Maildir support.
meillo@189 76 But, both of them collide with MH in the same fundamental way as
meillo@190 77 different filesystem approaches collide with Unix.
meillo@190 78 Nevertheless, an abstraction layer could provide a mapping between such
meillo@190 79 storage back-ends and the MH storage format.
meillo@190 80 Or, the mmh tool chest could be reworked to operate on a generic back-end,
meillo@164 81 making the MH storage format only one of many possible back-ends.
meillo@161 82 Research in this area is highly appreciated.
meillo@132 83
meillo@132 84
meillo@132 85 .U2 "Relationship to nmh
meillo@132 86 .P
meillo@161 87 The mmh project started as an experimental version of nmh because the
meillo@192 88 nmh community did not welcome my plans and visions.
meillo@192 89 The need to convincing the community of every change I liked to
meillo@192 90 undertake would have slowed down my work too much.
meillo@192 91 Hence, I created this experimental version to convince by demonstration.
meillo@192 92 .\" This enabled me to follow my vision straightforwardly and thus produce
meillo@192 93 .\" a result of greater pureness.
meillo@0 94 .P
meillo@192 95 While I worked on mmh, nmh's community became very active as well.
meillo@192 96 Although we both worked on the same code base, there was no collaberation.
meillo@192 97 This, I must admit, was my failure because I kept my work hidden
meillo@192 98 from the nmh community.
meillo@192 99 The reasons are personal and community-related.
meillo@192 100 I am sorry for that and I like to improve in the future.
meillo@196 101 Nonetheless, I did not work behind completely closed doors.
meillo@196 102 I discussed within the regional computer community and
meillo@196 103 presented the project in two video-recorded lectures.
meillo@192 104 .[
meillo@192 105 chaosseminar ccc ulm mmh
meillo@192 106 .]
meillo@192 107 .[
meillo@192 108 gpn entropia mmh
meillo@192 109 .]
meillo@192 110 First users appeared and provided feedback.
meillo@161 111 .P
meillo@192 112 Over time, I had to realize that, although nmh and mmh have much
meillo@192 113 in common, the projects target different goals.
meillo@192 114 I am still undecided how to handle it, but my experimental version
meillo@192 115 more and more feels like being a fork.
meillo@196 116 As I am strongly convinced that the path taken for the
meillo@196 117 development of mmh is a good one,
meillo@192 118 I like to push the project farther in this direction.