These Perl files are a brand-new implementation, in Perl5, of programs
to help you, the PC chair, deal with the mechanics of your job.  There
are variables in some files that you're going to want to tweak
(particularly when you send e-mail out), but otherwise it's a fairly
turnkey process.

I'll first outline the program chair process and point out how the
scripts here can help you.  No doubt, future PC chairs will hack the
scripts.  Hopefully they'll also hack these instructions.

Good luck!

Step 0: Put together your PC.  Create the file "committee.txt", which
will be you database. committee.txt is a series of entries, separated
by a blank line, that look like this (with no indentation in the
actual file):

    Name: J. Michael Stracynski
    Affiliation: Babylonian Productions
    E-Mail: jmsatb5@aol.com
    Handle: jms

You'll be typing the handle everywhere else, so make sure it's
something you won't mind seeing everywhere.  "invite-referees.pl" will
read this file and can be hacked to send an invitation message to
members of your committee.

Step 1: Get the Usenix people to set up a Web submission form for you.
When the submission deadline has passed, they'll give you a big tar
file.  Unpack this in the current directory (creating a subdirectory
called "papers").  Inside there is one subdirectory per paper with all
the info scatters through several files.  The paper IDs from this
(all beginning with a capital L) will be the keys used to index
everything else in the database.  When you untarred/unzipped the
archive that included this README, it included a "papers" directory
with a paper L0, so you could see what these things look like.  Please
delete L0 so it doesn't screw anything up.

Step 2: Look at the titles of all these papers and make sure there
are no duplicate submissions.  Delete (or move aside) the subdirectories
in "papers" that correspond to these duplicates.  The "titles.pl"
program can help you out here.

Step 3: Send out confirmations e-mails to the authors.  The "confirm.pl"
program can help you out here.  Hack it to make sure the e-mail is
coming "from" you, not me.

Step 4: Generate the Web pages.  "make-web.pl" and "make-review-forms.pl"
will do most of the dirty work for you.  Note, there's a reference to
"everything.tar.gz" that's generated.  You should create this file
yourself and stick it in your Web directory along with the HTML and
PDF files.

Step 5: Assign referees to papers.  Take the output of "titles.pl" and
save it to a file called "assignments.txt".  Now, edit it by hand.  I
grouped lines together based roughly on category.  Next, after every
line that says "Lxx: paper title", add a new line that says
"Lxx=alice,bob,charlie" where those are the names of your referees.
Run "print-assignments.pl" early and often to help you balance out
your assignments across all your referees.  Note that lines with anything
else on them will be ignored, so you can write comments and things
into this file to help you out.

When you're happy, you can e-mail the referees by hand to tell them
their assignments and give them the URL of your Web page.  Tell the
referees to e-mail you back the filled-in forms with some canonical
title that you can build an e-mail filtering rule for.  Tell them to
send one message per e-mail, as vanilla as possible (i.e., mail -s
"YourConference: paper review" you@you.com < $paper).

(I use Netscape Mail, so I wrote a rule that found "UsenixSec2001"
in the subject line and refiled it all to a folder.)

Step 6: Relax (or do your own reviews).

Step 7: As you get closer to your PC meeting, run "extract-reviews.pl"
on the mail folder where you've been saving the review messages (and
make sure you've created a directory called "reviews").  The folder is
assumed to be in Berkeley Mail format (used by Netscape, Eudora, UW
imapd, etc.).  You'll need to hack the program a little bit and you'll
have to massage the output (mostly because your referees will prove
unable to follow your simple instructions).  I started with overwrite
on, then gradually added "dont_overwrite" entries for reviewers who
were forwarding me reviews from other people.  But, then they started
sending revised versions of their old reviews.  Then I wrote a simple
shell script to rename the review files.  When all is said and done,
you should have no files with a "-1" suffix in their name.

Step 8: Run "review-sanity-check.pl" early and often.  It helps you
track who's submitted, who hasn't, etc.  It doesn't look at your mail
folder.  It only looks at the extracted files (see above).  There's
a parameter you can set called $maxReviews that will sqelch the
sanity checker to only gripe at you about papers with $maxReviews
or fewer reviews.  If you set it to a large number, you'll get
summaries of everything.

Step 9: run "print-review-summary.pl" to see a sorted list of
what reviews have been submitted.

Step 10: create a subdirectory called "summaries" and run
"make-review-booklet.pl" to generate a bunch of summary files,
suitable for feeding to "enscript -2Gr" for making the packet to hand
to your referees on the day you meet.

Step 11: You want to make sure that referees with conflicts of interest
don't see the private comments, scores, and whatnot for certain papers.
Create a file "conflicts.txt", which is just a list of
  reviewer1: ID ID ID ID ...
  reviewer2: ID ID ID ...
  ...
Then, run "make-title-pages.txt", which writes out a bunch of
files named "title-page-$reviewer.txt" as well as "title-page.txt"
to the summaries directory.  The title pages are meant to be
cover sheets that you put on top of the printed reviews, but
with the scores of referee "conflict" papers blacked out.
When I went to Kinko's, I took my cover sheets with me and
told them to make copies of the reviews without the conflicts
for each cover sheet.  They actually got it right.

Step 12: cd summaries; enscipt -2Gr *; go to Kinko's

Step 13: host your meeting

Step 14: once the committee makes up its mind, you need to create a
file called "paper-status.txt" with the status of each paper.  It
contains a series of entries, separated by a blank line, formatted
like so:
  
    Session: Jumpgate Security
    Papers: Lxx Lyy Lzz
    IT: Michael Garibaldi
    Chair: jms

This has the session title, the papers to be in the session, the
invited talk speaker who's going opposed these papers (you'll probably
need to hack this if you're doing something other than a two-track
conference), and finally, the speaker who's chairing the session.
You can run "print-paper-status.pl", which will read this in and
format it prettier (which makes it easier to catch typos).  Also,
if you're assigning a paper a shepherd, you can note it in the file
like so:

    Shepherd: jms
    Papers: Lxx

Step 15: send e-mail acceptance/rejection notices.  "notify-authors.pl"
will do the right thing, but you're going to want to hack the file
to send e-mail from you, rather than from me.

Step 16 (and thereafter): you may find you need to send e-mail to all
of your authors.  You can hack "email-authors.pl" to do this for you.
Or, you can just run "get-author-list.pl" to print a list of all your
accepted authors, suitable for dropping into your favorite e-mail program.

And, then, you're done!

Enjoy,

Dan Wallach
<dwallach@cs.rice.edu>
6 May 2001
