File:  [Local Repository] / processmail / README
Revision 3.2: download - view: text, annotated - select for diffs - revision graph
Fri Oct 11 15:39:35 2013 UTC (10 years, 8 months ago) by boris
Branches: MAIN
CVS tags: HEAD
Lev's changes

    1: Итак, вашей команде надо дежурить в соревнованиях Интернет-клуба. Вы
    2: написали красивые вопросы, защитились от кверулянтов и апеллянтов, и
    3: готовитесь к приему ответов. Но вот проблема -- как справиться с
    4: десятками писем от команд-участниц?
    5: 
    6: Комплекс программ Интернет-Клуба ``Что? Где? Когда'' поможет вам.
    7: 
    8: 1. УСТАНОВКА И НАСТРОЙКА ПРОГРАММ
    9: 
   10: А. Зайдите на http://internet.chgk.info/boris/processmail и
   11: скачайте файл processmail.zip. Распакуйте этот
   12: файл на Вашм компьютере. Вы найдете:
   13: 
   14:  - README -- этот файл
   15:  - processmail.pl, createtable.pl, reminder.pl, collection.pl --
   16:      скрипты для обработки почты.
   17:  - subroutines.pl -- вспомогательный файл, используемый прочими
   18:      скриптами 
   19:  - parameters.pl -- файл, содержащий настраиваемые параметры программ
   20:  - process.tex, process.pdf -- техническая документация к программам
   21:      (если Вы не собираетесь ``влезать вовнутрь'', Вам она не
   22:      понадобится )
   23: 
   24: Б. В каждом из файлов processmail.pl, createtable.pl, reminder.pl,
   25: collection.pl замените первую строку (#!/usr/bin/perl) на ссылку
   26: на положение перла в Вашей системе. Сделайте эти файлы выполняемыми (в
   27: Юниксе это делает chmod a+x *.pl)
   28: 
   29: В. Посмотрите внимательно файл parameters.pl. В нем Вы можете захотеть
   30: изменить ряд параметров:
   31: 
   32: Вот эти параметры задать ОБЯЗАТЕЛЬНО:
   33:  
   34:   $NAME[1] и $NAME[2] -- названия зачетов
   35:   $MINQUEST[1], $MAXQUEST[1],  $MINQUEST[2], $MAXQUEST[2] -- номера
   36:       первого и последнего вопросов в каждом зачете
   37:   $FILES[1], $FILES[2] -- названия файлов, куда вы складываете письма
   38:       с ответами в каждом зачете. 
   39: 
   40: ВНИМАНИЕ: синтаксис переменных $FILES[1] и $FILES[2] изменился по сравнению
   41: 	  с предыдущей версией скриптов!  Старый файл parameters.pl работать
   42: 	  НЕ БУДЕТ - необходимо его чуть-чуть поправить.
   43: 
   44: Вот эти параметры не являются обязательными:
   45:   $NOCOUNT[1], $NOCOUNT[2] -- номера вопросов, которые в каждом зачёте 
   46:       должны идти вне зачёта (например, экспериментальная внезачетная
   47:       бескрылка).  Номера, указанные в $NOCOUNT[1], автоматически 
   48:       добавляются к $NOCOUNT[2] (даже если $NOCOUNT[2] пуст), что является
   49:       удобным и логичным в большинстве случаев.  Если же какой-то из
   50:       номеров из $NOCOUNT[1] нужно *включить обратно* в зачёт во втором
   51:       зачёте, то впишите его в $NOCOUNT[2] со знаком минус.
   52: 
   53: Вот эти параметры нужны для программы reminder:
   54: 
   55:   $fromaddress задает Ваш обратный адрес
   56:   $DK задает название Вашей команды
   57:   $date -- системная процедура, которая выдает московское время
   58:      (если Вы не можете его вычислить, напишите просто $date="";)
   59:   процедуры printheader и printfooter печатают заголовок Вашего
   60:       письма-напоминания на лист z-info
   61: 
   62: 
   63: 2. РАБОТА С ПРОГРАММАМИ
   64: 
   65: А. Просмотрите каждое письмо с ответами -- соблюден ли в нем
   66: формат. Вот пример правильно оформленных ответов:
   67: *** "Марсиане", 343
   68: #1. Дедка
   69: #2. Бабка
   70: #3. Внучка
   71: #4. Жучка, кошка
   72: и мышка
   73: ***
   74: 
   75: ПОМНИТЕ: если команда прислала несколько писем, написание названия
   76: команды в них должно быть одинаковым.
   77: 
   78: Если у команды еще нет регистрационного номера, поле ``номер'' может
   79: быть пропущено. Программа присвоит такой команде регистрационный номер
   80: 0. Напомните капитану такой команды, чтобы он срочно связался с
   81: Секретарем клуба.
   82: 
   83: Б. Складывайте все ответы на данный зачет в один файл, например,
   84: sprint.mail и stayer.mail. Если от команды пришло несколько писем,
   85: бросайте туда ВСЕ. Проверьте, что более поздние письма следуют за
   86: более ранними.
   87: 
   88: 
   89: В. Время от времени запускайте 
   90: 	reminder.pl -r номер_зачета  
   91: 
   92: Например,
   93: 	reminder.pl -r 1
   94: или
   95: 	reminder.pl -r 2
   96: 
   97: Это пошлет на лист z-info сводку о командах, чьи ответы получены. Но
   98: не злоупотребляйте сводками, дабы не рассердить Почтмейстера.
   99: 
  100: 
  101: Г. Когда ответов скопится достаточно, запустите
  102: 	processmail.pl  -o scores
  103: Тогда у Вас получится файл scores примерно такого типа:
  104: 
  105: #1. Frequency: 1. Score: ?
  106:   Хам
  107: #1. Frequency: 2. Score: ?
  108:   Bog
  109: ....
  110: 
  111: Замените "?" на "+" и "-" и запишите файл. Если придут новые письма,
  112: бросьте их все в тот же файл (НЕ УБИРАЯ СТАРЫХ!!!).  Команда
  113: 	processmail.pl -t scores  -o scores
  114: добавит в файл scores ответы, которых Вы еще не оценили.
  115: 
  116: Примечания:
  117: -----------
  118: (1) Если файла scores еще не существует, команда
  119: 	processmail.pl -t scores  -o scores
  120: выдает ошибку. Используйте
  121: 	processmail.pl   -o scores
  122: (2) НЕ используйте команду типа
  123: 	processmail.pl -t scores > scores
  124: Это приведет к уничтожению ваших старых оценок.
  125: 
  126: 
  127: Д. Когда срок приема ответов истечет, ПРОВЕРЬТЕ ваши оценки. Неприятно
  128: наталкиваться на собственную небрежность, правда?
  129: 
  130: Команда
  131: 	createtable.pl  -t scores -o table
  132: создаст файл table с таблицей результатов, а команда
  133: 	collection.pl  -t scores -o collection
  134: создаст файл collecton с собранием сочинений.
  135: 
  136: Если вопросов много, формат вывода команды createtable.pl может
  137: оказаться неудобным.  В этом случае используйте формат
  138: 	createtable.pl -s  -t scores -o table
  139: или
  140: 	createtable.pl -m  -t scores -o table
  141: Ключ -s (от Short) выводит ответы в "сжатом" формате   ("++-+-++-+-++-+-").
  142: Ключ -m (от Medium) выводит ответы в "среднем" формате ("++-+-  ++-+-  ++-+-").
  143: 
  144: 
  145: У команды collection.pl тоже есть ключи '-m' и '-s'.  По умолчанию,
  146: для каждого вопроса выводятся списки всех полученных ответов, разбитые
  147: на подкатегории "ЗАСЧИТАНО", "НЕ ЗАСЧИТАНО", "НЕ ЯСНО":
  148: 	ВОПРОС 1:
  149: 	
  150: 	ЗАСЧИТАНО:
  151: 	
  152: 	НЕ ЗАСЧИТАНО:
  153: 	- неправильно
  154: 	
  155: 	НЕ ЯСНО:
  156: 	
  157: (даже если в соответствующей подкатегории нет ответов).
  158: 
  159: С ключом -s (от Short) печатаются только те подкатегории, в которых
  160: есть хоть один ответ - а пустые подкатегории ("ЗАСЧИТАНО" и "НЕ ЯСНО"
  161: в примере выше) не печатаются совсем.  Это компактнее, но менее 
  162: предсказуемо.
  163: С ключом -m (от Medium) собрание сочинений будет иметь промежуточный
  164: вид - подкатегории "ЗАСЧИТАНО" и "НЕ ЗАСЧИТАНО" печатаются всегда 
  165: (даже если пустые), а "НЕ ЯСНО" - только если в ней что-то есть.
  166: 
  167: По опыту, наиболее удобный формат для человеческого восприятия 
  168: собраний сочинений - '-m', хотя это, конечно же, дело вкуса.  
  169: В любом случае, если ответы в какой-то подкатегории *есть*, то
  170: они будут напечатаны (т.е. ничего не пропадает, речь только о том,
  171: как программа себя ведет при отсутствии соответствующих ответов).
  172: 
  173: 
  174: Е. Перед посылкой сгенерированных файлов а общий лист просмотрите 
  175: файлы еще раз -- а вдруг ошиблись Вы или я?
  176: 
  177: Вот и все!
  178: 
  179: 
  180: 3. РАЗНЫЕ РАЗНОСТИ
  181: 
  182: В файле process.tex хранится техническая документация к
  183: программaм. Если Вы хотите разобраться, как именно работает система,
  184: этот файл для Вас.
  185: 
  186: Все программы позволяют при вызове указать ключ -d (debug). С этим
  187: ключом программы печатают массу всякой дополнительной информации --
  188: полезной и не очень...
  189: 
  190: 
  191: 4. АВТОР
  192: 
  193: Борис Вейцман, borisv@lk.net
  194: 
  195: Я благодарен Якову Зайдельману, Льву Горенштейну, Алексу Покрасу и
  196: Дмитрию Рубинштейну за помощь в разработке этой программы.
  197: 
  198: $Id: README,v 3.2 2013/10/11 15:39:35 boris Exp $

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>