comparison ch01.roff @ 48:d28ff07dfc0f

Rework in the Intro, with new text.
author markus schnalke <meillo@marmaro.de>
date Sat, 19 May 2012 17:26:15 +0200
parents eae5e50381ce
children a446f89cc5d9
comparison
equal deleted inserted replaced
47:eae5e50381ce 48:d28ff07dfc0f
311 .P 311 .P
312 Any effort needs to be targeted towards a specific goal 312 Any effort needs to be targeted towards a specific goal
313 in order to be successful. 313 in order to be successful.
314 Following is a description of the imagined typical mmh user. 314 Following is a description of the imagined typical mmh user.
315 mmh should satisfy his needs. 315 mmh should satisfy his needs.
316 Actually, as mmh is my personal version of MH, this is a description
317 of myself.
316 .P 318 .P
317 The target user of mmh likes Unix and its philosophy. 319 The target user of mmh likes Unix and its philosophy.
318 He likes to use programs that are conceptionally appealing. 320 He likes to use programs that are conceptionally appealing.
319 He's familiar with the command line and enjoys its power. 321 He's familiar with the command line and enjoys its power.
320 He is at least capable of shell scripting and wants to improve his 322 He is at least capable of shell scripting and wants to improve his
324 He is able to setup email system components besides mmh, 326 He is able to setup email system components besides mmh,
325 and actually likes the choice to pick the ones he preferes. 327 and actually likes the choice to pick the ones he preferes.
326 He has a reasonably modern system that complies to standards, 328 He has a reasonably modern system that complies to standards,
327 like POSIX and ANSI C. 329 like POSIX and ANSI C.
328 .P 330 .P
329 XXX common scenarios? 331 The typical user invokes mmh commands directly in an interactive
330 .P 332 shell session, but as well, he uses them to automate mail handling tasks.
331 General assumptions of the project are: 333 Likely, he runs his mail setup on a server machine, to which he connects
332 .BU 334 via ssh. He might also have local mmh installations on his workstations,
333 Elegance \(en being simplicity, clarity and generality \(en is most important. 335 but does rather not rely on graphical frontends. He definitely wants
334 .BU 336 to be flexible and thus be able to change his setup to suite his needs.
335 Concepts are more important than concrete implementations. 337 .P
336 .BU 338 The typical mmh user is a programmer himself.
337 Time and space optimizations are only useful if absolutely needed to make 339 He likes to, occasionally, take the opportunity of Free Software to put
338 the software usable. 340 hands on and get involved in the software he uses.
341 Hence, he likes small and clean code bases and he cares for code quality.
342 In general, he believes that:
343 .BU
344 Elegance \(en i.e. simplicity, clarity and generality \(en
345 is most important.
346 .BU
347 Concepts are more important than the concrete implementation.
348 .BU
349 Code optimizations for anything but readability should be avoided
350 if possible.
339 .BU 351 .BU
340 Having a lot of choice is bad. 352 Having a lot of choice is bad.
341 353 .BU
342 .U2 "Work to do 354 Removed code is debugged code.
355
356 .U2 "Goals
343 .P 357 .P
344 The general goals for the mmh project are the following: 358 The general goals for the mmh project are the following:
345 .BU 359 .IP "Stream-lining
346 mmh should be perfectly suited for modern emailing, out-of-the-box. 360 Mmh should be stripped down to its core, which is the MUA part of emailing.
347 This is a necessity to spread among new users. 361 The feature set should be distilled to the ones really needed,
348 .BU 362 effectively removing corner-cases.
349 The system shall be of-one-style. It should feel like cast as one. 363 Functions that are not related to the main task should be removed.
350 .P 364 This includes, the MTA and MRA facilities.
351 To do list: 365 Choice should be reduced to the main options.
352 .BU 366 .IP "Modernizing
353 Remove the MTA and MRA facilities. Mmh shall concentrate on the MUA 367 Mmh's feature set needs to become more modern.
354 task. Mail shall enter mmh's mail storage via the system mail drop 368 Better support for attachment and digital cryptography needs to be added.
355 and it shall leave mmh via the local \fLsendmail\fP command. 369 MIME support needs to be integrated deeper and more naturally.
356 .BU 370 The modern email features need to be readily available, out-of-the-box.
357 Remove any further functions that are not related to mmh's main task. 371 And on the other hand,
358 Bulletin board support is on example. Also remove support for ancient 372 bulletin board support and similar obsolete facilities need to be dropped
359 technologies, like hardcopy terminals. 373 out.
360 .BU 374 Likewise, ancient technologies, like hardcopy terminals, should not
361 Refactor the source code to meet modern style criteria. Use 375 be supported any further.
362 standardized library functions when possible. 376 .IP "Code style
363 .BU 377 Mmh's source code needs to be updated to modern standards.
364 Replace performance optimizations by clear and readable code. 378 Standardized library functions should replace non-standard versions
365 .BU 379 whenever possible.
366 Reduce the feature set to the commonly used one, removing 380 Code should be separated into distinct modules when possible.
367 corner-cases. Set sane default values. 381 Time and space optimizations should to be replaced by
368 .BU 382 clear and readable code.
369 Add better attachment support. Add support for digital signatures and 383 A uniform programming style should prevail.
370 encryption. 384 .IP "Homogenity
371 .BU 385 The available concepts need to be expanded as far as possible.
372 Merge \fLshow\fP and \fLmhshow\fP into one single mail display program. 386 A small set of concepts should prevail thoroughly throughout the system.
373 Integrate MIME support deeper and more natural into MH. 387 The whole system should appear to be of-one-style.
374 .BU 388 It should feel like being cast as one.
375 Provide a ready-to-use setup out-of-the-box.
376
377 .U2 "Methods
378 .P
379 foo