Итак, вашей команде надо дежурить в соревнованиях Интернет-клуба. Вы написали красивые вопросы, защитились от кверулянтов и апеллянтов, и готовитесь к приему ответов. Но вот проблема -- как справиться с десятками писем от команд-участниц? Комплекс программ Интернет-Клуба ``Что? Где? Когда'' поможет вам. 1. УСТАНОВКА И НАСТРОЙКА ПРОГРАММ А. Зайдите на http://internet.chgk.info/boris/processmail и скачайте файл processmail.zip. Распакуйте этот файл на Вашм компьютере. Вы найдете: - README -- этот файл - processmail.pl, createtable.pl, reminder.pl, collection.pl -- скрипты для обработки почты. - subroutines.pl -- вспомогательный файл, используемый прочими скриптами - parameters.pl -- файл, содержащий настраиваемые параметры программ - process.tex, process.pdf -- техническая документация к программам (если Вы не собираетесь ``влезать вовнутрь'', Вам она не понадобится ) Б. В каждом из файлов processmail.pl, createtable.pl, reminder.pl, collection.pl замените первую строку (#!/usr/local/bin/perl) на ссылку на положение перла в Вашей системе. Сделайте эти файлы выполняемыми (в Юниксе это делает chmod a+x *.pl) В. Посмотрите внимательно файл parameters.pl. В нем Вы можете захотеть изменить ряд параметров: Вот эти параметры задать ОБЯЗАТЕЛЬНО: $NAME[1] и $NAME[2] -- названия зачетов $MINQUEST[1], $MAXQUEST[1], $MINQUEST[2], $MAXQUEST[2] -- номера первого и последнего вопросов в каждом зачете $FILES[1], $FILES[2] -- названия файлов, куда вы складываете письма с ответами в каждом зачете. ВНИМАНИЕ: синтаксис переменных $FILES[1] и $FILES[2] изменился по сравнению с предыдущей версией скриптов! Старый файл parameters.pl работать НЕ БУДЕТ - необходимо его чуть-чуть поправить. Вот эти параметры не являются обязательными: $NOCOUNT[1], $NOCOUNT[2] -- номера вопросов, которые в каждом зачёте должны идти вне зачёта (например, экспериментальная внезачетная бескрылка). Номера, указанные в $NOCOUNT[1], автоматически добавляются к $NOCOUNT[2] (даже если $NOCOUNT[2] пуст), что является удобным и логичным в большинстве случаев. Если же какой-то из номеров из $NOCOUNT[1] нужно *включить обратно* в зачёт во втором зачёте, то впишите его в $NOCOUNT[2] со знаком минус. Вот эти параметры нужны для программы reminder: $fromaddress задает Ваш обратный адрес $DK задает название Вашей команды $date -- системная процедура, которая выдает московское время (если Вы не можете его вычислить, напишите просто $date="";) процедуры printheader и printfooter печатают заголовок Вашего письма-напоминания на лист z-info 2. РАБОТА С ПРОГРАММАМИ А. Просмотрите каждое письмо с ответами -- соблюден ли в нем формат. Вот пример правильно оформленных ответов: *** "Марсиане", 343 #1. Дедка #2. Бабка #3. Внучка #4. Жучка, кошка и мышка *** ПОМНИТЕ: если команда прислала несколько писем, написание названия команды в них должно быть одинаковым. Если у команды еще нет регистрационного номера, поле ``номер'' может быть пропущено. Программа присвоит такой команде регистрационный номер 0. Напомните капитану такой команды, чтобы он срочно связался с Секретарем клуба. Б. Складывайте все ответы на данный зачет в один файл, например, sprint.mail и stayer.mail. Если от команды пришло несколько писем, бросайте туда ВСЕ. Проверьте, что более поздние письма следуют за более ранними. В. Время от времени запускайте reminder.pl -r номер_зачета Например, reminder.pl -r 1 или reminder.pl -r 2 Это пошлет на лист z-info сводку о командах, чьи ответы получены. Но не злоупотребляйте сводками, дабы не рассердить Почтмейстера. Г. Когда ответов скопится достаточно, запустите processmail.pl -o scores Тогда у Вас получится файл scores примерно такого типа: #1. Frequency: 1. Score: ? Хам #1. Frequency: 2. Score: ? Bog .... Замените "?" на "+" и "-" и запишите файл. Если придут новые письма, бросьте их все в тот же файл (НЕ УБИРАЯ СТАРЫХ!!!). Команда processmail.pl -t scores -o scores добавит в файл scores ответы, которых Вы еще не оценили. Примечания: ----------- (1) Если файла scores еще не существует, команда processmail.pl -t scores -o scores выдает ошибку. Используйте processmail.pl -o scores (2) НЕ используйте команду типа processmail.pl -t scores > scores Это приведет к уничтожению ваших старых оценок. Д. Когда срок приема ответов истечет, ПРОВЕРЬТЕ ваши оценки. Неприятно наталкиваться на собственную небрежность, правда? Команда createtable.pl -t scores -o table создаст файл table с таблицей результатов, а команда collection.pl -t scores -o collection создаст файл collecton с собранием сочинений. Если вопросов много, формат вывода команды createtable.pl может оказаться неудобным. В этом случае используйте формат createtable.pl -s -t scores -o table или createtable.pl -m -t scores -o table Ключ -s (от Short) выводит ответы в "сжатом" формате ("++-+-++-+-++-+-"). Ключ -m (от Medium) выводит ответы в "среднем" формате ("++-+- ++-+- ++-+-"). Перед посылкой на общий лист просмотрите файлы еще раз -- а вдруг ошиблись Вы или я? Вот и все! 3. РАЗНЫЕ РАЗНОСТИ В файле process.tex хранится техническая документация к программaм. Если Вы хотите разобраться, как именно работает система, этот файл для Вас. Все программы позволяют при вызове указать ключ -d (debug). С этим ключом программы печатают массу всякой дополнительной информации -- полезной и не очень... 4. АВТОР Борис Вейцман, borisv@lk.net Я благодарен Якову Зайдельману, Льву Горенштейну, Алексу Покрасу и Дмитрию Рубинштейну за помощь в разработке этой программы. $Id: README,v 3.1 2008/03/24 16:01:47 boris Exp $