Program Committee Web Pages for Evaluating Submitted Papers Version 1.0 ----------------------------------------------------------------- DISCLAIMER. I HATE PERL! My perl code probably reflects that fact. In my humble opinion, the programming language Perl has set back an important part of computer science many years. It should be every computer scientist's worst nightmare. Most of the definition of the language is exceptions to rules, exceptions to exceptions, etc. In cases where perl doesn't force one into bad programming practice, it encourages bad programming practice. Expressions mean vastly different things in different contexts. And so on. And so on. And so on. A quote from Larry Wall, creator of Perl: "Perl is intended to be a medium for those who are tired of composing in a formal computer language and want to write some `free verse' without arbitrary restrictions." And he's not talking about placement of whitespace. He is talking about grammar. The Perl official programming style seems to be "guess what might work, then keep changing your program until it seems to work". Why did I use Perl? (1) This is my first real Perl endeavor, and I wanted to see what it is like. (2) Perl seems to be the best language available for CGI web programming, because it is designed around text strings and files, it starts up quickly, and it is fairly efficient. They really blew it; Perl could have been a lovely and useful language. END OF DISCLAIMER ----------------------------------------------------------------- This is a set of Perl programs and HTML files. For an introduction, see the demonstration version http://www.mcs.anl.gov/home/mccune/pc-demo/gate-demo.html I built this system for conference I chaired (CADE-14), and I am packaging it for other chairs who might find it useful. This package is not very polished, and you may need a Perl/CGI programmer to set it up and adapt it to your needs. For example, (1) some of the features are particular to CADE-14, (2) the password mechanism is primitive (but I think secure enough for this purpose), and (3) the voting mechanism is confusing. Also, perl is difficult to debug when started by an HTML server, because it is hard to determine why the program fails (look in the HTML server error log for clues). INSTALLATION (I'm sorry this is so complicated.) First, you should unpack the files and get the demonstration version running at your site in the same way it runs at my site http://www.mcs.anl.gov/home/mccune/pc-demo/gate-demo.html. Unpack the files somewhere in your CGI directory hierarchy (someplace where your HTML server is allowed to execute CGI scripts). After you unpack the files, you should have several subdirectories that may need to be moved to other locations: 1. html/ These are the top-level html files: the entry point to the system. These probably should be your HTML directory hierarchy. 2. demo_ftp_abstract_dir/ These are the abstracts for the demonstration version. I had them on my FTP server, but you may wish to have them on your HTML server. They should not be in a place where the general public can find them. See the file configure.pl. 3. demo_ftp_ps_dir/ These are the PostScript files for the demonstration version. Similar to 2. Also, there should be a directory "extra-programs", which contains utilities for doing various things. Edit the file configure.pl to fit your site: $Conference - set this to the name of your conference $Chair - e-mail address of the program chair $Admin - e-mail address of the person managing these web pages $Web_server - host name of yourHTML server $Conference_url - the home page of your conference Do not change the following 9 variables. $PC_data_file = "PC-DATA"; $File_of_papers = "PAPERS"; $Lock_count_file = "LOCK-COUNT"; $Report_file = "REPORTS"; $Discuss_file = "DISCUSS"; $Vote_file = "VOTE"; $Access_file = "ACCESS"; $Status_file = "STATUS"; $Work_tut_file = "WORK-TUT"; $Password_required - set to 0 for demonstration version, 1 for real version. $Group_password_encrypted - this password allows PC members to assign themselves individual passwords. Select a password, then use the program extra-programs/encrypt.pl to encrypt your password, then put the encrypted password here. $Root_password_encrypted - this password, known to the PC chair only, allows him or her to log in under the name of another pC member. This is useful, for example, if a PC member cannot use the web and asks the chair to enter data. $Discuss_enabled - set to 1 to enable the discussion pages; 0 to disable. The chair may wish to disable the discussion pages until most of the reports have been received. $Summary_enabled - set to 1 to enable the summary pages; 0 to disable. $Short_title_length - When space is lacking, paper titles are truncated truncated to this length. $FTP_ps_dir - the directory containing PostScript files of papers. $FTP_abstract_dir - the directory containing abstracts (plain text) of papers. ------------------------------ FILE PERMISSIONS on data files. The perl programs started by the HTML server have to be able to read and write the data files (ACCESS, DISCUSS, LOCK-COUNT, PAPERS, PC-DATA, REPORTS, STATUS, VOTE). However, if someone points a browser directly at one of the data files, make sure your HTML server does not serve it. With my HTML server, being in the cgi-bin hierarchy with permission 660 (-rw-rw----) is protection enough. You may have to adjust permissions on other files. Also, you may have to edit all of the perl programs (*.pl), replacing the first lines of each with the location of your perl interpreter (use Perl 5). Finally (for the demo version) edit the top-devel html file gate-demo.html so that it refers to this directory (the directory with the data files and Perl CGI programs). If all goes well, at this point, you should be able to run a demonstration version similar to mine. ------------------------------------------------------- Now, you can adapt the system for your conference and program committee. I suggest you make a copy of this directory, so that you can keep the demonstration version working. From now on, you will be using the top-level html file gate.html . 1. Enable passwords: Edit gate.html and register.html so that they refer to this directory. Edit configure.pl and set $Password_required = 0; Now, point your browser at gate.html, and your should be able to register passwords for your (still fictitious) PC. 2. Edit gate.html and register.html, and insert the names of your real program committee. Change PC-DATA to reflect your program committee (see README.PC-DATA for the format). 3. Re-initialize the database by running extra-programs/re-init.pl . This will back up the old data files and create new (empty) data files with (I hope) the correct permissions for your site. At this point, you are using the real PC, but the fictitious set of submitted papers. You can test many things now (registering passwords, filing reports, discussing papers, enable/disable discussion or summary, etc.). 4. Now, I assume all papers have been submitted, and it is time to start the real review process. Edit the file PAPERS, and insert all of the data for each submitted paper. (See the file README.PAPERS for the format.) 5. Run the program extra-programs/re-init.pl to reinitialize the data files REPORTS, DISCUSS, STATUS, VOTE, STATUS, ACCESS. Now you are ready to start the review process. After the review process starts, the data files will be updated automatically by the system. Under normal circumstances, you should not have to edit them. If you must, be careful not to change the field separator marks "##" or field separator marks "-------- end of record --------". If a reviewer makes a mistake in a report, he or she should simply file another report (not ask the chair to change a report). Only the latest report counts. EXTRA PROGRAMS There is a directory (extra-programs) of Perl programs that are designed to be run alone (not by the HTML server). I hate to say this, but to see what they do, look at the code. Execute these programs from this directory, e.g., extra-programs/init.pl. check-papers.pl* to check formatting of PAPERS encrypt* to encrypt root and group passwords for configure.pl get-all-reports.pl* to collect reports for sending to authors get-paper-discussion.pl* to get discussion on one paper get-paper-reports.pl* to get reports (author format) on one paper init.pl* to create empty data files outside-lock.pl* run this when editing data files re-init.pl* to back up then reinitialize the data files report-report.pl* to get a report on PC performance update-status.pl* to update the status column of the summary pages MISCELLANY 1. If a PC member forgets his or her password, you should edit PC-DATA to remove the encrypted password, and tell the PC member to register a new password. 2. The file ACCESS contains detailed information on who logs into the system, from where, and what they do. 3. In case two PC members try to file reports at the same time, the data files are locked when they are updated. In case the PC chair has to manually edit a data file, he or she can run the program extra-programs/outside-lock to lock the data files so that no one will be able to file reports or discussion or votes while you are editing the files. You have to be on the HTML server computer to do this successfully. ---------------------------------------------------------------- | William W. McCune | e-mail: mccune@mcs.anl.gov | | MCS-221 | phone: +1-630-252-3065 | | Argonne National Laboratory | FAX: +1-630-252-5986 | | Argonne, IL 60439-4844 | | | U.S.A. | | | http://www.mcs.anl.gov/home/mccune/ | ----------------------------------------------------------------