Diff for /processmail/process.tex between versions 2.6 and 2.7

version 2.6, 2005/01/24 03:28:53 version 2.7, 2005/02/20 03:24:43
Line 1 Line 1
 %$Id$  %$Id$
 %$Log$  %$Log$
   %Revision 2.7  2005/02/20 03:24:43  boris
   %Wrote readme
   %
 %Revision 2.6  2005/01/24 03:28:53  boris  %Revision 2.6  2005/01/24 03:28:53  boris
 %Re-added  %Re-added
 %  %
Line 44 Line 47
 %  %
 \usepackage[koi8-r]{inputenc}  \usepackage[koi8-r]{inputenc}
 \usepackage[russian]{babel}  \usepackage[russian]{babel}
 \usepackage{pscyr}  \usepackage{t1enc}
 \usepackage{amsmath}  \usepackage{amsmath}
 \newcommand{\prog}[1]{\ensuremath{\text{{\textsl{#1}}}}}  \newcommand{\prog}[1]{\ensuremath{\text{{\textsl{#1}}}}}
   
Line 52 Line 55
   
 \begin{document}  \begin{document}
   
 \title{Программа для обработки писем в IGP}  \title{Программа для обработки писем в ИГП и ИЧБ}
 \author{Boris Veytsman, \texttt{borisv@lk.net}}  \author{Boris Veytsman, \texttt{borisv@lk.net}}
 \date{Февраль 2002}  \date{Февраль 2005}
 \maketitle  \maketitle
 \thispagestyle{empty}  \thispagestyle{empty}
 \tableofcontents  \tableofcontents
Line 66 Line 69
 команды. Прочесть невероятное количество писем, извлечь ответы,  команды. Прочесть невероятное количество писем, извлечь ответы,
 составить таблицу, да еще Собрание Сочинений\dots{} На это вполне может  составить таблицу, да еще Собрание Сочинений\dots{} На это вполне может
 уйти целиком рабочий день. Именно с этой целью по предложению Якова  уйти целиком рабочий день. Именно с этой целью по предложению Якова
 Зайдельмана написана эта программа.  Зайдельмана написана эта программа.  Позднее эта программа
   переписывалась при изменении регламента соревнований, добавлении ИЧБ и
   т.д. 
   
 Идея состоит в следующем. Самый важный этап в деятельности дежурной  Идея состоит в следующем. Самый важный этап в деятельности дежурной
 команды---решить, заслуживает ли данный ответ плюса или минуса. Это мы  команды---решить, заслуживает ли данный ответ плюса или минуса. Это мы
Line 82 Line 87
 \item Время от времени создавать список команд, чьи ответы уже  \item Время от времени создавать список команд, чьи ответы уже
   получены, и слать на информационный лист.    получены, и слать на информационный лист.
 \end{enumerate}  \end{enumerate}
 Необходимо учесть еще два важных обстоятельства:  Необходимо учесть еще несколько важных обстоятельств:
 \begin{enumerate}  \begin{enumerate}
 \item Команда может прислать несколько писем. В этом случае более  \item Команда может прислать несколько писем. В этом случае более
   позднее письмо считается более авторитетным, чем более раннее. Мы    позднее письмо считается более авторитетным, чем более раннее. Мы
Line 92 Line 97
   корректируя взбрыки e-mailа).    корректируя взбрыки e-mailа).
 \item Дежурная команда может оценивать ответы параллельно их  \item Дежурная команда может оценивать ответы параллельно их
   получению. Поэтому нельзя ``забывать'' старые оценки, читая новые.     получению. Поэтому нельзя ``забывать'' старые оценки, читая новые. 
   \item В последнее время в ИГП и ИЧБ принято два зачёта:  спринт и
     стайер.  При этом соблюдаются следующеи правила:
     \begin{enumerate}
     \item Если команда сдала ответ в спринте и не сдала ответ в стайере,
       учитывается ответ, сданный в спринте.
     \item При равенстве количества ответов в стайере победу в стайере
       одерживает команда, показавшая лучший результат в спринте.
     \end{enumerate}
 \end{enumerate}  \end{enumerate}
   
   
Line 194  Subject: Otvety komandy "Stop", 222 Line 207  Subject: Otvety komandy "Stop", 222
 \begin{enumerate}  \begin{enumerate}
 \item Длинный формат  \item Длинный формат
 \begin{verbatim}  \begin{verbatim}
     N  1  2  3  4  5  6  7  8  9 10 11 12  О   Р КОМАНДА      N  1  2  3  4  5  6  7  8  9 10 11 12 О     Р КОМАНДА
   111  +  +  +  +  +  +  +  +  +  +  +  + 12 359 Марсиане    111  +  +  +  +  +  +  +  +  +  +  +  + 12.04 359 Марсиане
   436  +  +  +  +  +  +  +  +  +  +  +  + 12 359 Venera II    436  +  +  +  +  +  +  +  +  +  +  +  + 12.02 359 Venera II
 [...]  [...]
 \end{verbatim}  \end{verbatim}
 \item Короткий формат  \item Короткий формат
 \begin{verbatim}  \begin{verbatim}
     N  123456789012  О  Р   КОМАНДА      N  123456789012  О     Р   КОМАНДА
   111  ++++++++++++  12 359 Марсиане    111  ++++++++++++  12.04 359 Марсиане
   436  ++++++++++++  12 359 Venera II    436  ++++++++++++  12.04 359 Venera II
 [...]  [...]
 Рейтинг  Рейтинг
  1  2  3  4  5  6  7  8  9 10 11 12   1  2  3  4  5  6  7  8  9 10 11 12
Line 213  Subject: Otvety komandy "Stop", 222 Line 226  Subject: Otvety komandy "Stop", 222
 В последних графах стоит полное число взятых вопросов и суммарный  В последних графах стоит полное число взятых вопросов и суммарный
 рейтинг соответственно. В последней строке таблицы---рейтинги  рейтинг соответственно. В последней строке таблицы---рейтинги
 вопросов. В коротком формате вместо строки с рейтингом отдельная  вопросов. В коротком формате вместо строки с рейтингом отдельная
 таблица ``Рейтинг''.  таблица ``Рейтинг''.  В графе ``О'' стоят набранные командой очки в
   данном зачёте (до десятичной точки) и в предыдущем (после точки).
   
 \subsection{Формат собрания сочинений}  \subsection{Формат собрания сочинений}
   
Line 247  s Текст ответа Line 261  s Текст ответа
 \section{Пользовательский интерфейс}  \section{Пользовательский интерфейс}
   
   
   \subsection{Файл настроек}
   \label{sec:conf}
   
   Настройки программы хранятся в файле \prog{parameters.pl}.  Пример
   этого файла приведен ниже:
   \begin{verbatim}
   # Количество зачётов
   $ROUNDS=2;
   
   ###############################################################
   # Следующие настройки индивидуальны для каждого раунда, начиная
   # с первого
   ###############################################################
   
   # Первый раунд
   
   # Название раунда
   
   $NAME[1]="Спринт";
   
   # Вопросы раунда
   
   $MINQUEST[1]=1;
   $MAXQUEST[1]=12;
   
   # Файлы раунда.  Следующий перекрывает предыдущий:
   
   $FILES[1]='sprint.mail';
   
   
   # Второй раунд
   
   # Название раунда
   
   $NAME[2]="Стайер";
   
   # Вопросы раунда
   
   $MINQUEST[2]=1;
   $MAXQUEST[2]=18;
   
   # Файлы раунда.  Следующий перекрывает предыдущий.  Файлы разделены
   # ПРОБЕЛАМИ
   
   $FILES[2]='stayer.mail';
   
   #########################################################
   #   Теперь общие настройки
   #########################################################
   
   
   #
   # Адрес листа z-info
   #
   $address = 'z-info@chgk.info';
   #$address="boris";
   #
   # Обратный адрес дежурной команды и ее название
   #
   $fromaddress = 'borisv@lk.net';
   $DK = '"Дракоша"';
   #
   # $date -- системная процедура, которая вычисляет МОСКОВСКОЕ
   # время. В Линуксе zdump это делает хорошо. В других операционных 
   # системах надо как-то исхитряться...
   #
   $date = "export TZ='Europe/Moscow'; date";
   
   #
   # Процедуры, которые печатают заголовок и конец мейла-напоминания
   #
   sub printheader
   {
   print  <<"END";
   To: $address
   From: $fromaddress
   Subject: Svodka
   MIME-Version: 1.0
   Content-type: text/plain; charset=koi8-r
   Content-Transfer-Encoding: 8bit\n
   
   Уважаемые знатоки!
   
   С вами говорит робот команды $DK
   
   END
   print "На момент ", `$date`, "в зачёте '$NAME[$round]' сданы ответы от команд:\n\n"; 
   }
   
   
   sub printfooter
   {
       print  <<END;
   
   --
   Good luck
   
   -Robot
   END
   
   }
   
   \end{verbatim}
   
   
 \subsection{Основная программа}  \subsection{Основная программа}
   
 Дежурный по туру складывает все письма в файл. Время от времени он  Дежурный по туру складывает все письма в файл. Время от времени он
 запускает команду  запускает команду
 \begin{verbatim}  \begin{verbatim}
 processmail.pl [-d] [-t table_file] [-m mail_file]  [-o results]   processmail.pl [-d] [-t table_file]  [-o results] 
 \end{verbatim}  \end{verbatim}
 где   где 
 \begin{description}  \begin{description}
 \item[table\_file] файл с предыдущими оценками (по умолчанию  \item[table\_file] файл с предыдущими оценками (по умолчанию
   отсутствует),     отсутствует), 
 \item[mail\_file] файл с письмами (по умолчанию---стандартный вход),   
 \item[results] файл с результатами (по умолчанию---стандартный  \item[results] файл с результатами (по умолчанию---стандартный
   выход).     выход). 
 \end{description}  \end{description}
Line 272  processmail.pl [-d] [-t table_file] [-m Line 390  processmail.pl [-d] [-t table_file] [-m
   
 Время от времени дежурный запускает программу  Время от времени дежурный запускает программу
 \begin{verbatim}  \begin{verbatim}
 reminder.pl [-t table_file]  reminder.pl [-r номер_раунда]
 \end{verbatim}  \end{verbatim}
 Она генерирует список команд, которые имеются в файле с таблицей (по  Она генерирует список команд, которые имеются в файле с таблицей (по
 умолчанию---стандартный вход), и посылает его на z-info.  умолчанию---стандартный вход), и посылает его на z-info.
Line 282  reminder.pl [-t table_file] Line 400  reminder.pl [-t table_file]
   
 Итоговая таблица и собрание сочинений генерируются программами  Итоговая таблица и собрание сочинений генерируются программами
 \begin{verbatim}  \begin{verbatim}
 createtable.pl [-d] [-s] [-t table_file] [-m mail_file]  [-o results]   createtable.pl [-d] [-s] [-t table_file]  [-o results] 
 collection.pl  [-d] [-t table_file] [-m mail_file]  [-o results]   collection.pl  [-d] [-t table_file] [-o results] 
 \end{verbatim}  \end{verbatim}
 Ее ключи имеют то же смысл, что и у программы \prog{processmail.pl}.   Ее ключи имеют то же смысл, что и у программы \prog{processmail.pl}. 
 Флаг \prog{-s} означает выбор короткой формы таблицы.  Флаг \prog{-s} означает выбор короткой формы таблицы.
Line 313  collection.pl  [-d] [-t table_file] [-m Line 431  collection.pl  [-d] [-t table_file] [-m
 а элементы---опять таки ссылки на хэши следующего содержания:  а элементы---опять таки ссылки на хэши следующего содержания:
 \begin{description}  \begin{description}
 \item[\prog{score}] \prog{+}, \prog{-} или \prog{?}  \item[\prog{score}] \prog{+}, \prog{-} или \prog{?}
 \item[\prog{teams}] массив команд, давших этот ответ  \item[\prog{teams}] хэш команд, давших этот ответ
 \end{description}  
   
 \subsection{Глобальные переменные}  
   
 Мы используем следующие глобальные переменные:  
 \begin{description}  
 \item[\prog{\$MAXQUEST}] максимальное число вопросов  
 \item[\prog{\$DEBUG}] флаг, показывающий, задана ли debugging mode.  
 \end{description}  \end{description}
   
   

Removed from v.2.6  
changed lines
  Added in v.2.7


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