Mercurial > docs > master
comparison discussion.roff @ 181:eb6eeb10afd5
Various stuff: Checked quotes, s/further more/furthermore/, etc
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Wed, 11 Jul 2012 09:24:47 +0200 |
parents | 731e747a805b |
children | 764738b17b74 |
comparison
equal
deleted
inserted
replaced
180:731e747a805b | 181:eb6eeb10afd5 |
---|---|
272 | 272 |
273 | 273 |
274 .H2 "Non-MUA Tools | 274 .H2 "Non-MUA Tools |
275 .P | 275 .P |
276 One goal of mmh is to remove the tools that are not part of the MUA's task. | 276 One goal of mmh is to remove the tools that are not part of the MUA's task. |
277 Further more, any tools that do not significantly improve the MUA's job | 277 Furthermore, any tools that do not significantly improve the MUA's job |
278 should be removed. | 278 should be removed. |
279 Loosely related and rarely used tools distract from the lean appearance. | 279 Loosely related and rarely used tools distract from the lean appearance. |
280 They require maintenance work without adding much to the core task. | 280 They require maintenance work without adding much to the core task. |
281 By removing these tools, the project shall become more streamlined | 281 By removing these tools, the project shall become more streamlined |
282 and focused. | 282 and focused. |
821 A variety of versions of the database library exist. | 821 A variety of versions of the database library exist. |
822 .[ | 822 .[ |
823 wolter unix incompat notes dbm | 823 wolter unix incompat notes dbm |
824 .] | 824 .] |
825 Complicated autoconf code was needed to detect them correctly. | 825 Complicated autoconf code was needed to detect them correctly. |
826 Further more, the configure switches | 826 Furthermore, the configure switches |
827 .Sw --with-ndbm=ARG | 827 .Sw --with-ndbm=ARG |
828 and | 828 and |
829 .Sw --with-ndbmheader=ARG | 829 .Sw --with-ndbmheader=ARG |
830 were added to help with difficult setups that would | 830 were added to help with difficult setups that would |
831 not be detected automatically or correctly. | 831 not be detected automatically or correctly. |
896 .I username | 896 .I username |
897 to | 897 to |
898 .I fakeusername | 898 .I fakeusername |
899 mapping, based on the password file's GECOS field. | 899 mapping, based on the password file's GECOS field. |
900 The man page | 900 The man page |
901 .Mp mh-tailor(5) | 901 .Mp mh-tailor (5) |
902 described the use case as being the following: | 902 described the use case as being the following: |
903 .QS | 903 .QS |
904 This is useful if you want the messages you send to always | 904 This is useful if you want the messages you send to always |
905 appear to come from the name of an MTA alias rather than your | 905 appear to come from the name of an MTA alias rather than your |
906 actual account name. For instance, many organizations set up | 906 actual account name. For instance, many organizations set up |
911 .P | 911 .P |
912 As mmh sends outgoing mail via the local MTA only, | 912 As mmh sends outgoing mail via the local MTA only, |
913 the best location to do such global rewrites is there. | 913 the best location to do such global rewrites is there. |
914 Besides, the MTA is conceptionally the right location because it | 914 Besides, the MTA is conceptionally the right location because it |
915 does the reverse mapping for incoming mail (aliasing), too. | 915 does the reverse mapping for incoming mail (aliasing), too. |
916 Further more, masquerading set up there is readily available for all | 916 Furthermore, masquerading set up there is readily available for all |
917 mail software on the system. | 917 mail software on the system. |
918 Hence, mmailid masquerading was removed. | 918 Hence, mmailid masquerading was removed. |
919 .Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f | 919 .Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f |
920 .P | 920 .P |
921 The | 921 The |
1878 .H2 "Attachments | 1878 .H2 "Attachments |
1879 .P | 1879 .P |
1880 The mind model of email attachments is unrelated to MIME. | 1880 The mind model of email attachments is unrelated to MIME. |
1881 Although the MIME RFCs (2045 through 2049) define the technical | 1881 Although the MIME RFCs (2045 through 2049) define the technical |
1882 requirements for having attachments, they do not mention the word | 1882 requirements for having attachments, they do not mention the word |
1883 ``attachment''. | 1883 attachment. |
1884 Instead of attachments, MIME talks about ``multi-part message bodies'' | 1884 Instead of attachments, MIME talks about ``multi-part message bodies'' |
1885 [RFC\|2045], a more general concept. | 1885 [RFC\|2045], a more general concept. |
1886 Multi-part messages are messages | 1886 Multi-part messages are messages |
1887 ``in which one or more different | 1887 ``in which one or more different |
1888 sets of data are combined in a single body'' | 1888 sets of data are combined in a single body'' |
2426 is planned but not realized yet. | 2426 is planned but not realized yet. |
2427 .P | 2427 .P |
2428 Both scripts were written for nmh, hence they needed to be adjust | 2428 Both scripts were written for nmh, hence they needed to be adjust |
2429 according to the differences between nmh and mmh. | 2429 according to the differences between nmh and mmh. |
2430 For instance, they use the backup prefix no longer. | 2430 For instance, they use the backup prefix no longer. |
2431 Further more, compatibility support for old PGP features was dropped. | 2431 Furthermore, compatibility support for old PGP features was dropped. |
2432 .P | 2432 .P |
2433 The integrated message signing and encrypting support is one of the | 2433 The integrated message signing and encrypting support is one of the |
2434 most recent features in mmh. | 2434 most recent features in mmh. |
2435 It has not yet had the time to mature. | 2435 It has not yet had the time to mature. |
2436 User feedback and personal experience need to be accumulated to | 2436 User feedback and personal experience need to be accumulated to |
2606 .Fn 6 | 2606 .Fn 6 |
2607 then. | 2607 then. |
2608 If this new message would be removed as well, | 2608 If this new message would be removed as well, |
2609 then the backup of the former message is overwritten. | 2609 then the backup of the former message is overwritten. |
2610 Hence, the ability to restore removed messages did not only depend on | 2610 Hence, the ability to restore removed messages did not only depend on |
2611 the ``sweeping cron job'' but also on the removing of further messages. | 2611 the sweeping cron job but also on the removing of further messages. |
2612 It is undesirable to have such obscure and complex mechanisms. | 2612 It is undesirable to have such obscure and complex mechanisms. |
2613 The user should be given a small set of clear assertions, such as | 2613 The user should be given a small set of clear assertions, such as |
2614 ``Removed files are restorable within a seven-day grace time.'' | 2614 ``Removed files are restorable within a seven-day grace time.'' |
2615 With the addition ``... unless a message with the same name in the | 2615 With the addition ``... unless a message with the same name in the |
2616 same folder is removed before.'' the statement becomes complex. | 2616 same folder is removed before.'' the statement becomes complex. |
2617 A user will hardly be able to keep track of any removal to know | 2617 A user will hardly be able to keep track of any removal to know |
2618 if the assertion still holds true for a specific file. | 2618 if the assertion still holds true for a specific file. |
2619 In practice, the real mechanism is unclear to the user. | 2619 In practice, the real mechanism is unclear to the user. |
2620 The consequences of further removals are not obvious. | 2620 The consequences of further removals are not obvious. |
2621 .P | 2621 .P |
2622 Further more, the backup files are scattered within the whole mail storage. | 2622 Furthermore, the backup files are scattered within the whole mail storage. |
2623 This complicates managing them. | 2623 This complicates managing them. |
2624 It is possible with the help of | 2624 It is possible with the help of |
2625 .Pn find , | 2625 .Pn find , |
2626 but everything would be more convenient | 2626 but everything would be more convenient |
2627 if the deleted messages would be collected in one place. | 2627 if the deleted messages would be collected in one place. |
2926 One application of this rule was the rename of | 2926 One application of this rule was the rename of |
2927 .Fu check_charset() | 2927 .Fu check_charset() |
2928 to | 2928 to |
2929 .Fu is_native_charset() . | 2929 .Fu is_native_charset() . |
2930 .Ci 8d77b48284c58c135a6b2787e721597346ab056d | 2930 .Ci 8d77b48284c58c135a6b2787e721597346ab056d |
2931 The same change fixed a violation of ``Be accurate'' as well. | 2931 The same change fixed a violation of ``Be accurate'' |
2932 .[ [ | |
2933 kernighan pike practice of programming | |
2934 .], p. 4] | |
2935 as well. | |
2932 The code did not match the expectation the function suggested, | 2936 The code did not match the expectation the function suggested, |
2933 as it, for whatever reason, only compared the first ten characters | 2937 as it, for whatever reason, only compared the first ten characters |
2934 of the charset name. | 2938 of the charset name. |
2935 .P | 2939 .P |
2936 More important than using active names is using descriptive names. | 2940 More important than using active names is using descriptive names. |
2993 They are more difficult to do but lead to larger improvements, | 2997 They are more difficult to do but lead to larger improvements, |
2994 especially as they influence the outer shape of the tools as well. | 2998 especially as they influence the outer shape of the tools as well. |
2995 .P | 2999 .P |
2996 At the end of their chapter on style, | 3000 At the end of their chapter on style, |
2997 Kernighan and Pike ask: ``But why worry about style?'' | 3001 Kernighan and Pike ask: ``But why worry about style?'' |
3002 .[ [ | |
3003 kernighan pike practice of programming | |
3004 .], p. 28] | |
2998 Following are two examples of structural rework that show | 3005 Following are two examples of structural rework that show |
2999 why style is important in the first place. | 3006 why style is important in the first place. |
3000 | 3007 |
3001 | 3008 |
3002 .U3 "Rework of \f(CWanno\fP | 3009 .U3 "Rework of \f(CWanno\fP |
3343 .P | 3350 .P |
3344 The MH profile contains the configuration for the user-specific MH setup. | 3351 The MH profile contains the configuration for the user-specific MH setup. |
3345 MH tools read the profile right after starting up, | 3352 MH tools read the profile right after starting up, |
3346 as it contains the location of the user's mail storage | 3353 as it contains the location of the user's mail storage |
3347 and similar settings that influence the whole setup. | 3354 and similar settings that influence the whole setup. |
3348 Further more, the profile contains the default switches for the tools, | 3355 Furthermore, the profile contains the default switches for the tools, |
3349 hence, it must be read before the command line switches are processed. | 3356 hence, it must be read before the command line switches are processed. |
3350 .P | 3357 .P |
3351 For historic reasons, some MH tools did not read the profile and context. | 3358 For historic reasons, some MH tools did not read the profile and context. |
3352 Among them were | 3359 Among them were |
3353 .Pn post /\c | 3360 .Pn post /\c |
3355 .Pn mhmail , | 3362 .Pn mhmail , |
3356 and | 3363 and |
3357 .Pn slocal . | 3364 .Pn slocal . |
3358 The reason why these tools ignored the profile were not clearly stated. | 3365 The reason why these tools ignored the profile were not clearly stated. |
3359 During the discussion on the nmh-workers mailing list, | 3366 During the discussion on the nmh-workers mailing list, |
3367 David Levine posted an explanation, quoting John Romine: | |
3360 .[ | 3368 .[ |
3361 nmh-workers levine post profile | 3369 nmh-workers levine post profile |
3362 .] | 3370 .] |
3363 David Levine posted an explanation, quoting John Romine: | |
3364 .QS | 3371 .QS |
3365 I asked John Romine and here's what he had to say, which | 3372 I asked John Romine and here's what he had to say, which |
3366 agrees and provides an example that convinces me: | 3373 agrees and provides an example that convinces me: |
3367 .QS | 3374 .QS |
3368 My take on this is that | 3375 My take on this is that |
3474 By writing a clean-profile-wrapper, the concept could have been | 3481 By writing a clean-profile-wrapper, the concept could have been |
3475 generalized orthogonally to the whole MH tool chest. | 3482 generalized orthogonally to the whole MH tool chest. |
3476 Then Rose's motivation behind the decision that | 3483 Then Rose's motivation behind the decision that |
3477 .Pn post | 3484 .Pn post |
3478 ignores the profile, as quoted by Jeffrey Honig, | 3485 ignores the profile, as quoted by Jeffrey Honig, |
3486 would have become possible: | |
3479 .[ | 3487 .[ |
3480 nmh-workers post profile | 3488 nmh-workers post profile |
3481 .] | 3489 .] |
3482 would have become possible: | |
3483 .QS | 3490 .QS |
3484 when you run mh commands in a script, you want all the defaults to be | 3491 when you run mh commands in a script, you want all the defaults to be |
3485 what the man page says. | 3492 what the man page says. |
3486 when you run a command by hand, then you want your own defaults... | 3493 when you run a command by hand, then you want your own defaults... |
3487 .QE | 3494 .QE |
3974 .P | 3981 .P |
3975 As I have read a lot in the code base during the last two years, | 3982 As I have read a lot in the code base during the last two years, |
3976 I learned about the easy and the difficult parts. | 3983 I learned about the easy and the difficult parts. |
3977 Code is easy to understand if the influenced code area is small | 3984 Code is easy to understand if the influenced code area is small |
3978 and its boundaries are strictly defined. | 3985 and its boundaries are strictly defined. |
3979 Further more, the code needs to solve the problem in a straight-forward way. | 3986 Furthermore, the code needs to solve the problem in a straight-forward way. |
3980 .P | 3987 .P |
3981 .\" XXX move this paragraph somewhere else? | 3988 .\" XXX move this paragraph somewhere else? |
3982 Reading | 3989 Reading |
3983 .Pn rmm 's | 3990 .Pn rmm 's |
3984 source code in | 3991 source code in |
4017 .Fu exec() | 4024 .Fu exec() |
4018 rather than arbitrary function calls. | 4025 rather than arbitrary function calls. |
4019 .P | 4026 .P |
4020 But the real problem is another: | 4027 But the real problem is another: |
4021 Nmh violates the golden ``one tool, one job'' rule of the Unix philosophy. | 4028 Nmh violates the golden ``one tool, one job'' rule of the Unix philosophy. |
4029 .\" XXX ref | |
4022 Understanding | 4030 Understanding |
4023 .Pn comp | 4031 .Pn comp |
4024 requires understanding | 4032 requires understanding |
4025 .Fn uip/annosbr.c | 4033 .Fn uip/annosbr.c |
4026 and | 4034 and |
4066 speed might even have been a must to prevent MH from being unusably slow. | 4074 speed might even have been a must to prevent MH from being unusably slow. |
4067 Whatever the reasons had been, today they are gone. | 4075 Whatever the reasons had been, today they are gone. |
4068 No longer should we sacrifice readability or conceptional beauty. | 4076 No longer should we sacrifice readability or conceptional beauty. |
4069 No longer should we violate the Unix philosophy's ``one tool, one job'' | 4077 No longer should we violate the Unix philosophy's ``one tool, one job'' |
4070 guideline. | 4078 guideline. |
4079 .\" XXX ref | |
4071 No longer should we keep speed improvements that became unnecessary. | 4080 No longer should we keep speed improvements that became unnecessary. |
4072 .P | 4081 .P |
4073 Therefore, mmh's | 4082 Therefore, mmh's |
4074 .Pn comp | 4083 .Pn comp |
4075 does no longer send messages. | 4084 does no longer send messages. |