Mercurial > docs > master
comparison discussion.roff @ 179:b59201e345e5
Applied further corrections by Aaron.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Tue, 10 Jul 2012 23:13:45 +0200 |
parents | 520b3c7abba1 |
children | 731e747a805b |
comparison
equal
deleted
inserted
replaced
178:520b3c7abba1 | 179:b59201e345e5 |
---|---|
1655 I explained my reasons in the commit messages | 1655 I explained my reasons in the commit messages |
1656 in the version control system. | 1656 in the version control system. |
1657 Hence, others can comprehend my view and argue for undoing the change | 1657 Hence, others can comprehend my view and argue for undoing the change |
1658 if I have missed an important aspect. | 1658 if I have missed an important aspect. |
1659 I was quick in dropping parts. | 1659 I was quick in dropping parts. |
1660 I rather re-included falsely dropped parts than going at a slower pace. | 1660 I rather include falsely dropped parts again, than going at a slower pace. |
1661 Mmh is experimental work; it required tough decisions. | 1661 Mmh is experimental work; it requires tough decisions. |
1662 .\" XXX ``exp. work'' schon oft gesagt | 1662 .\" XXX ``exp. work'' schon oft gesagt |
1663 | 1663 |
1664 | 1664 |
1665 .U3 "Forking | 1665 .U3 "Forking |
1666 .P | 1666 .P |
1968 Drafts with attachment headers are converted to MIME automatically by | 1968 Drafts with attachment headers are converted to MIME automatically by |
1969 .Pn send . | 1969 .Pn send . |
1970 The conversion to MIME is invisible to the user. | 1970 The conversion to MIME is invisible to the user. |
1971 The draft stored in the draft folder is always in source form with | 1971 The draft stored in the draft folder is always in source form with |
1972 attachment headers. | 1972 attachment headers. |
1973 If the MIMEification fails, for instance because the file to attach | 1973 If the MIMEification fails (e.g. because the file to attach |
1974 is not accessible, the original draft is not changed. | 1974 is not accessible) the original draft is not changed. |
1975 .P | 1975 .P |
1976 The attachment system handles the forwarding of messages, too. | 1976 The attachment system handles the forwarding of messages, too. |
1977 If the attachment header value starts with a plus character (`\fL+\fP'), | 1977 If the attachment header value starts with a plus character (`\fL+\fP'), |
1978 like in | 1978 like in |
1979 .Cl "Attach: +bob 30 42" , | 1979 .Cl "Attach: +bob 30 42" , |
1990 If the user did not call `mime', a broken message would be sent. | 1990 If the user did not call `mime', a broken message would be sent. |
1991 Therefore, the | 1991 Therefore, the |
1992 .Pe automimeproc | 1992 .Pe automimeproc |
1993 profile entry could be specified to have the `mime' command invoked | 1993 profile entry could be specified to have the `mime' command invoked |
1994 automatically each time. | 1994 automatically each time. |
1995 Unfortunately, this approach conflicted with attachment system | 1995 Unfortunately, this approach conflicted with the attachment system |
1996 because the draft would already be in MIME format at the time | 1996 because the draft would already be in MIME format at the time |
1997 when the attachment system wanted to MIMEify it. | 1997 when the attachment system wanted to MIMEify it. |
1998 To use nmh's attachment system, `mime' must not be called at the | 1998 To use nmh's attachment system, `mime' must not be called at the |
1999 WhatNow prompt and | 1999 WhatNow prompt and |
2000 .Pe automimeproc | 2000 .Pe automimeproc |
2046 This is a difficult task, yet it spares the user irritating work. | 2046 This is a difficult task, yet it spares the user irritating work. |
2047 Determining the correct MIME type of content is partly mechanical, | 2047 Determining the correct MIME type of content is partly mechanical, |
2048 partly intelligent work. | 2048 partly intelligent work. |
2049 Forcing the user to find out the correct MIME type, | 2049 Forcing the user to find out the correct MIME type, |
2050 forces him to do partly mechanical work. | 2050 forces him to do partly mechanical work. |
2051 Letting the computer do the work, can lead to bad choices for difficult | 2051 Letting the computer do the work can lead to bad choices for difficult |
2052 content. | 2052 content. |
2053 For mmh, the latter option was chosen. | 2053 For mmh, the latter option was chosen. |
2054 .P | 2054 .P |
2055 Determining the MIME type by the suffix of the file name is a dumb | 2055 Determining the MIME type by the suffix of the file name is a dumb |
2056 approach, yet it is simple to implement and provides good results | 2056 approach, yet it is simple to implement and provides good results |
2233 .P | 2233 .P |
2234 One should note that this section completely ignores the original | 2234 One should note that this section completely ignores the original |
2235 .Pn show | 2235 .Pn show |
2236 program, because it was not capable to display MIME messages | 2236 program, because it was not capable to display MIME messages |
2237 and is no longer part of mmh. | 2237 and is no longer part of mmh. |
2238 .\" XXX ref to other section | |
2238 Although | 2239 Although |
2239 .Pn mhshow | 2240 .Pn mhshow |
2240 was renamed to | 2241 was renamed to |
2241 .Pn show | 2242 .Pn show |
2242 in mmh, this section uses the name | 2243 in mmh, this section uses the name |
2243 .Pn mhshow , | 2244 .Pn mhshow , |
2244 in order to avoid confusion. | 2245 in order to avoid confusion. |
2245 .\" XXX ref to other section | |
2246 .P | 2246 .P |
2247 In mmh, the basic idea is that | 2247 In mmh, the basic idea is that |
2248 .Pn mhshow | 2248 .Pn mhshow |
2249 should display a message in one single pager session. | 2249 should display a message in one single pager session. |
2250 Therefore, | 2250 Therefore, |
2284 .Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 | 2284 .Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 |
2285 This could already be requested with the, now removed, | 2285 This could already be requested with the, now removed, |
2286 .Sw -serialonly | 2286 .Sw -serialonly |
2287 switch of | 2287 switch of |
2288 .Pn mhshow . | 2288 .Pn mhshow . |
2289 As MIME parts are always processed exclusively , i.e. serially, | 2289 As MIME parts are always processed exclusively, i.e. serially, |
2290 the `%e' escape in | 2290 the `%e' escape in |
2291 .Pe mhshow-show-* | 2291 .Pe mhshow-show-* |
2292 profile entries became useless and was thus removed. | 2292 profile entries became useless and was thus removed. |
2293 .Ci a20d405db09b7ccca74d3e8c57550883da49e1ae | 2293 .Ci a20d405db09b7ccca74d3e8c57550883da49e1ae |
2294 .P | 2294 .P |
2763 Unless they are strongly convinced of the concepts, they will fail. | 2763 Unless they are strongly convinced of the concepts, they will fail. |
2764 I have seen friends of me giving up disappointed | 2764 I have seen friends of me giving up disappointed |
2765 before they truly used the system, | 2765 before they truly used the system, |
2766 although they had been motivated in the beginning. | 2766 although they had been motivated in the beginning. |
2767 They suffer hard enough to get used to the tool chest approach, | 2767 They suffer hard enough to get used to the tool chest approach, |
2768 we should spare them further inconveniences. | 2768 we developers should spare them further inconveniences. |
2769 .P | 2769 .P |
2770 Maintaining compatibility for its own sake is bad, | 2770 Maintaining compatibility for its own sake is bad, |
2771 because the code base collects more and more compatibility code. | 2771 because the code base collects more and more compatibility code. |
2772 Sticking to the compatiblity code means remaining limited; | 2772 Sticking to the compatiblity code means remaining limited; |
2773 whereas adjusting to the changes renders the compatibility unnecessary. | 2773 whereas adjusting to the changes renders the compatibility unnecessary. |
3811 .H2 "Modularization | 3811 .H2 "Modularization |
3812 .P | 3812 .P |
3813 The source code of the mmh tools is located in the | 3813 The source code of the mmh tools is located in the |
3814 .Fn uip | 3814 .Fn uip |
3815 (``user interface programs'') directory. | 3815 (``user interface programs'') directory. |
3816 Each tools has a source file with the same name. | 3816 Each tools has a source file with the name of the command. |
3817 For example, | 3817 For example, |
3818 .Pn rmm | 3818 .Pn rmm |
3819 is built from | 3819 is built from |
3820 .Fn uip/rmm.c . | 3820 .Fn uip/rmm.c . |
3821 Some source files are used for multiple programs. | 3821 Some source files are used for multiple programs. |
3839 Splitting the source code of a large program into multiple files can | 3839 Splitting the source code of a large program into multiple files can |
3840 increase the readability of its source code. | 3840 increase the readability of its source code. |
3841 Most of the mmh tools, however, are simple and straight-forward programs. | 3841 Most of the mmh tools, however, are simple and straight-forward programs. |
3842 With the exception of the MIME handling tools, | 3842 With the exception of the MIME handling tools, |
3843 .Pn pick | 3843 .Pn pick |
3844 is the largest tools. | 3844 is the largest tool. |
3845 It contains 1\|037 lines of source code (measured with | 3845 It contains 1\|037 lines of source code (measured with |
3846 .Pn sloccount ), excluding the MH library. | 3846 .Pn sloccount ), excluding the MH library. |
3847 Only the MIME handling tools (\c | 3847 Only the MIME handling tools (\c |
3848 .Pn mhbuild , | 3848 .Pn mhbuild , |
3849 .Pn mhstore , | 3849 .Pn mhstore , |
3852 are larger. | 3852 are larger. |
3853 Splitting programs with less than 1\|000 lines of code into multiple | 3853 Splitting programs with less than 1\|000 lines of code into multiple |
3854 source files seldom leads to better readability. | 3854 source files seldom leads to better readability. |
3855 For such tools, splitting makes sense | 3855 For such tools, splitting makes sense |
3856 when parts of the code are reused in other programs, | 3856 when parts of the code are reused in other programs, |
3857 and the reused code fragment is not general enough | 3857 and the reused code fragment is (1) not general enough |
3858 for including it in the MH library, | 3858 for including it in the MH library |
3859 or, if the code has dependencies on a library that only few programs need. | 3859 or (2) has dependencies on a library that only few programs need. |
3860 .Fn uip/packsbr.c , | 3860 .Fn uip/packsbr.c , |
3861 for instance, provides the core program logic for the | 3861 for instance, provides the core program logic for the |
3862 .Pn packf | 3862 .Pn packf |
3863 and | 3863 and |
3864 .Pn rcvpack | 3864 .Pn rcvpack |
4019 because | 4019 because |
4020 .Pn comp | 4020 .Pn comp |
4021 does annotate and send messages. | 4021 does annotate and send messages. |
4022 In nmh, there surely exists the tool | 4022 In nmh, there surely exists the tool |
4023 .Pn send , | 4023 .Pn send , |
4024 which does (almost) only send messages. | 4024 which does mainly send messages. |
4025 But | 4025 But |
4026 .Pn comp | 4026 .Pn comp |
4027 and | 4027 and |
4028 .Pn repl | 4028 .Pn repl |
4029 and | 4029 and |
4032 .Pn dist | 4032 .Pn dist |
4033 and | 4033 and |
4034 .Pn whatnow | 4034 .Pn whatnow |
4035 and | 4035 and |
4036 .Pn viamail , | 4036 .Pn viamail , |
4037 they all (!) have the same message sending function included, too. | 4037 they all (!) have the same message sending function included, as well. |
4038 In result, | 4038 In result, |
4039 .Pn comp | 4039 .Pn comp |
4040 sends messages without using | 4040 sends messages without using |
4041 .Pn send . | 4041 .Pn send . |
4042 The situation is the same as if | 4042 The situation is the same as if |