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>