--- processmail/process.tex 2005/01/24 03:28:53 2.6 +++ processmail/process.tex 2005/02/20 03:24:43 2.7 @@ -1,5 +1,8 @@ -%$Id: process.tex,v 2.6 2005/01/24 03:28:53 boris Exp $ +%$Id: process.tex,v 2.7 2005/02/20 03:24:43 boris Exp $ %$Log: process.tex,v $ +%Revision 2.7 2005/02/20 03:24:43 boris +%Wrote readme +% %Revision 2.6 2005/01/24 03:28:53 boris %Re-added % @@ -44,7 +47,7 @@ % \usepackage[koi8-r]{inputenc} \usepackage[russian]{babel} -\usepackage{pscyr} +\usepackage{t1enc} \usepackage{amsmath} \newcommand{\prog}[1]{\ensuremath{\text{{\textsl{#1}}}}} @@ -52,9 +55,9 @@ \begin{document} -\title{Программа для обработки писем в IGP} +\title{Программа для обработки писем в ИГП и ИЧБ} \author{Boris Veytsman, \texttt{borisv@lk.net}} -\date{Февраль 2002} +\date{Февраль 2005} \maketitle \thispagestyle{empty} \tableofcontents @@ -66,7 +69,9 @@ команды. Прочесть невероятное количество писем, извлечь ответы, составить таблицу, да еще Собрание Сочинений\dots{} На это вполне может уйти целиком рабочий день. Именно с этой целью по предложению Якова -Зайдельмана написана эта программа. +Зайдельмана написана эта программа. Позднее эта программа +переписывалась при изменении регламента соревнований, добавлении ИЧБ и +т.д. Идея состоит в следующем. Самый важный этап в деятельности дежурной команды---решить, заслуживает ли данный ответ плюса или минуса. Это мы @@ -82,7 +87,7 @@ \item Время от времени создавать список команд, чьи ответы уже получены, и слать на информационный лист. \end{enumerate} -Необходимо учесть еще два важных обстоятельства: +Необходимо учесть еще несколько важных обстоятельств: \begin{enumerate} \item Команда может прислать несколько писем. В этом случае более позднее письмо считается более авторитетным, чем более раннее. Мы @@ -92,6 +97,14 @@ корректируя взбрыки e-mailа). \item Дежурная команда может оценивать ответы параллельно их получению. Поэтому нельзя ``забывать'' старые оценки, читая новые. +\item В последнее время в ИГП и ИЧБ принято два зачёта: спринт и + стайер. При этом соблюдаются следующеи правила: + \begin{enumerate} + \item Если команда сдала ответ в спринте и не сдала ответ в стайере, + учитывается ответ, сданный в спринте. + \item При равенстве количества ответов в стайере победу в стайере + одерживает команда, показавшая лучший результат в спринте. + \end{enumerate} \end{enumerate} @@ -194,16 +207,16 @@ Subject: Otvety komandy "Stop", 222 \begin{enumerate} \item Длинный формат \begin{verbatim} - N 1 2 3 4 5 6 7 8 9 10 11 12 О Р КОМАНДА - 111 + + + + + + + + + + + + 12 359 Марсиане - 436 + + + + + + + + + + + + 12 359 Venera II + N 1 2 3 4 5 6 7 8 9 10 11 12 О Р КОМАНДА + 111 + + + + + + + + + + + + 12.04 359 Марсиане + 436 + + + + + + + + + + + + 12.02 359 Venera II [...] \end{verbatim} \item Короткий формат \begin{verbatim} - N 123456789012 О Р КОМАНДА - 111 ++++++++++++ 12 359 Марсиане - 436 ++++++++++++ 12 359 Venera II + N 123456789012 О Р КОМАНДА + 111 ++++++++++++ 12.04 359 Марсиане + 436 ++++++++++++ 12.04 359 Venera II [...] Рейтинг 1 2 3 4 5 6 7 8 9 10 11 12 @@ -213,7 +226,8 @@ Subject: Otvety komandy "Stop", 222 В последних графах стоит полное число взятых вопросов и суммарный рейтинг соответственно. В последней строке таблицы---рейтинги вопросов. В коротком формате вместо строки с рейтингом отдельная -таблица ``Рейтинг''. +таблица ``Рейтинг''. В графе ``О'' стоят набранные командой очки в +данном зачёте (до десятичной точки) и в предыдущем (после точки). \subsection{Формат собрания сочинений} @@ -247,18 +261,122 @@ s Текст ответа \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 <