                   GNKSA  Evaluation Form  2.05

Product Name           : Pan
Product Version        : 0.8.0beta1
Tested on platform     : Solaris
Available for platforms: Linux, FreeBSD, Solaris, other Unix flavors
Evaluation date        : Monday, March 20, 2000
Evaluated by           : Charles Kerr <charles@superpimp.org>

Conclusion
==========

Pan 0.8.0beta1 satisfies the basic GNKSA requirements, and therefore
from now on may proudly carry the Good Net-Keeping Seal of Approval.


Summary
=======

         Pass   Fail   Total   Pass/Fail%
MUSTs     39      0      39    100%/0%
SHOULDs   23      4      27     85%/15%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 100%M
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            85%S
                                                   [GNKSA Score-O-Meter]

Details
=======

Pan 0.8.0beta2 violates `soft' GNKSA requirements (SHOULDs)
in the following way:

    7e   Fails to omit `broken' Message-IDs.
    12c  Can use a bogus e-mail address
    13a  Does not let users cancel their own articles
    13b  Does not enable users to supersede their own articles


Pan 0.8.0beta2 offers the following nice net-keeping
features unmentioned by the GNKSA:

Visual thread display
Sorting articles by author, date, subject, and number of unread messages in a thread
Filtering for articles by read/unread and regular expression subject matches
Can optionally group multipart posts together, representing them as a single post

Pan can be found at <http://www.superpimp.org>


Additional Comments:

1: These can be configured by the user, but are shown by default.
3b: Pan warns if a post is being sent to >5 groups.
3c: Pan warns if a post is being sent to >2 groups with no Followup-To.
6a: A notification dialog tells the user of the redirection.
9b: For obvious reasons, this fails if the user spawns a third-party mailer.
16e: Pan posts synchronously.  The compose window's send button is disabled
     during the send; if successf


Checklist
=========                                                       (M)UST /
                                                                (S)HOULD
1) Displays all essential header information
   Software clearly displays:
   [Y] a) Article's author (From)                                      M
   [Y] b) Article's Subject                                            M
   [Y] c) List of groups posted to (Newsgroups)                        M
   [Y] d) Where (and how) to direct followups (Followup-To)            M
   [Y] e) Where to reply to if not the From-address (Reply-To)         M
[Y] PASS: Satisfies all MUSTs                                          M

2) Provides clear, separate commands for new  posting, followup, and
   e-mail reply
   [Y] a) for posting a new article                                    M
   [Y] b) for posting a followup article                               M
   [Y] c) for replying by e-mail                                       M
   [Y] d) Uses standard terminology                                    S
   [Y] e) Avoids ambiguous terminology                                 S
[Y] PASS: Satisfies all MUSTs                                          M

3) Provides cross-posting functionality
   [Y] a) Allows specifying multiple groups                            M
   [Y] b) Warns about, or prevents, posting to large numbers of groups S
   [Y] c) Strongly encourages setting Followup-To: on large crossposts S
          (`Y' if large crosspostings are disallowed)
[Y] PASS: Satisfies all MUSTs                                          M

4) Allows users to change essential headers
   [Y] a) Allows editing Subject at all times during composition       M
   [Y] b) Allows specifying new Subject of at least 70 characters      M
   [Y] c) Allows setting "Followup-To: poster"                         M
[Y] PASS: Satisfies all MUSTs                                          M

5) Ensures followups and e-mail replies contain a correct Subject
   [Y] a) Prepends "Re: " if (and only if) not already present         M
   [Y] b) Preserves entire original Subject (modulo minor repairs)     M
[Y] PASS: Satisfies all MUSTs                                          M

6) Directs followups to the correct newsgroups
   [Y] a) Initiates e-mail reply rather than a followup posting on
          "Followup-To: poster", clearly informing the user            M
   [Y] b) Posts to groups in Followup-To if present                    M
   [Y] c) Posts to groups in Newsgroups otherwise                      M
[Y] PASS: Satisfies all MUSTs                                          M

7) Make sure followups contain valid References
   [Y] a) Creates References header with Message-ID of original article
          as the last element                                          M
   [Y] b) Includes last three References from original                 M
   [Y] c) Ensures References will fit in 998 characters                M
   [Y] d) Keep as many References from original as fit                 S
   [N] e) Does not propagate broken Message-IDs in original References S
[Y] PASS: Satisfies all MUSTs                                          M

8) Direct e-mail replies to the correct address
   [Y] a) Uses Reply-To if present                                     M
   [Y] b) Uses From address otherwise                                  M
[Y] PASS: Satisfies all MUSTs                                          M

9) Allow the user to change her mind about whether to post or mail (or
   do both) and behave if doing both
   [Y] a) Allows users to change their mind and mail rather than
          post after having initiated a followup message               S
   [Y] b) Allows users to change their mind and post rather than
          mail after having initiated a reply message                  S
   [Y] c) Does not offer both posting and mailing as default behaviour M
   [Y] d) Inserts a notification that the message was posted as well
          as mailed in the e-mail copy when both posting and mailing
          a followup article                                           S
[Y] PASS: Satisfies all MUSTs                                          M

10) Provide adequate quotation and attribution facilities
    [Y] a) Allows including quoted original                            M
    [Y] b) Clearly distinguishes quoted material                       M
    [Y] c) Prefixes quoted material with `>'/`> '                      S
    [Y] d) Omits correctly delimited signatures from quoted material   S
    [Y] e) Provides a means of indicating which part(s) to followup to S
    [Y] f) Attribution line containing original author precedes quotes M
[Y] PASS: Satisfies all MUSTs                                          M

11) Provide a user-specified "Subject: " header
    [Y] a) Requires non-empty, user-specified Subject for new articles M
    [Y] b) Refuses posting articles without, or with an empty, Subject M
    [Y] c) Does not provide default Subject if user did not set one    M
    [Y] d) Allows changing the Subject at any time while editing       M
[Y] PASS: Satisfies all MUSTs                                          M

12) Provide a valid "From: " header
    [Y] a) Sets "From: " header to syntactically valid e-mail address  M
    [Y] b) Refuses posting articles without a syntactically valid
           "From: " header                                             M
    [N] c) Uses correct e-mail addresses (valid and belonging to the
           user) only, as far as it can possibly know                  S
[Y] PASS: Satisfies all MUSTs                                          M

13) Allow users to both cancel and supersede their own articles (and
    _no_ others!)
    [N] a) Allows cancelling articles                                  S
    [N] b) Allows superseding articles                                 S
    [Y] c) As far as possible, does not allow cancelling or superseding
           other peoples' articles                                     M
    [Y] d) Uses standard terminology                                   S
[Y] PASS: Satisfies all MUSTs                                          M

14) Try to respect the 80-character line-length convention
    [Y] a) Articles are posted as edited, with linebreaking intact     S
    [Y] b) Warns about lines over 80 characters                        S
    [Y] c) Does not refuse to post articles containing long lines      S
    [Y] d) Allows rewrapping quoted text                               S
    [Y] e) Enforces formatting requirements on article after external
           editing (`Y' if there is no support for external editors)   S
[Y] PASS: Satisfies all MUSTs                                          M

15) Separate signatures correctly, and don't use excessive ones
    [Y] a) Uses (and enforces) standard signature delimiter            S
    [Y] b) Warns against or refuses to use excessive signatures        S
[Y] PASS: Satisfies all MUSTs                                          M

16) Try to prevent obvious user errors
    [Y] a) Warns when attempting to post empty articles                M
    [Y] b) Refuses posting empty articles                              S
    [Y] c) Warns when post articles containing quoted material only    M
    [Y] d) Refuses posting quoted-text-only articles                   S
    [Y] e) Warns against posting multiple copies (`Y' if impossible)   M
    [Y] f) Prevents multiple posting entirely                          S
[Y] PASS: Satisfies all MUSTs                                          M

17) Post human-readable articles unless ordered otherwise
    [Y] Does not (and can not) encode or encrypt articles unless
        on explicit user demand                                        M
[Y] PASS: Satisfies all MUSTs                                          M

18) Provide self-protection
    [Y] Allows filtering out annoying articles (killing)               S
[Y] PASS: Satisfies all MUSTs                                          M

19) Be kind to servers, leave room for others
    [Y] a) Does not unnecessarily open multiple connections            M
    [Y] b) Does not generate excessive server load otherwise           M
[Y] PASS: Satisfies all MUSTs                                          M


