6 марта 2010, 06:25 (5405 дней назад, №8785)Организация Chaos Constructions: Как мы считали голоса
Когда мы начали готовить
Chaos Constructions'2004 (а это был первый
CC, где объединились две команды организаторов -
ENLIGHT'a и предыдущих CC), было уже ясно, что при таком количестве конкурсов и предсказуемо большом числе посетителей, надо решать проблему с быстрым подсчетом голосов.
Голосование с компьютеров не рассматривалось по многим причинам - их просто не могло тогда появиться в достаточном количестве. Голосовали проверенным (с 1995 года) методом - выставляя в анкете желаемое количество баллов каждой из работ. Вопрос был в том, как оперативно подсчитать эти баллы по окончанию конкурсов, чтобы не задерживать церемонию награждения (в воскресенье вечером почти все иногородние стремились успеть на поезд домой).
Появилась высокотехнологичная идея сделать автоматическое распознавание и подсчёт. Я взял на себя аппаратную часть (вебкамера в корпусе с прозрачной стенкой и лампой), Лёник Теренин (SkyWalker) - программную (он как раз по работе занимался сходными вещами).
Естественно, распознавать произвольные рукописные цифры было нереальным, так что дизайн анкет мы адаптировали под машинную обработку - голосующие должны были ставить галочки в пустые квадратики, а каждая страничка анкеты, соответствующая конкурсу, имела специальную область с двоичным кодом конкурса и метками по краям. Чтобы повысить качество распознавания, пришлось отказаться от размножения анкет на ризографе и печатать их на офсете (это значительно дороже).
Требования к ПО также были довольно жёсткие - анкета могла быть мятой, лежать под углом, вместо галочек могли стоять любые знаки, прочерки, точки и т.д.
Всего предусмотреть не удалось. Распознавание работало, но выявились проблемы с неравномерным освещением и сырым софтом. Это всё было бы поправимо (если не в 2004, то в 2005-м), однако выявился смешной ньюанс, который мы не приняли во внимание. А именно - даже при идеальном и мгновенном распознавании обработка такого количества анкет одним устройством происходила намного медленнее, чем ручной подсчёт усилиями 5-10 человек :-)
Когда мы осознали этот факт, срочно написал на Delphi программу, с интерфейсом, похожим на анкету, где квадратикам соответствовали чекбоксы. Был объявлен призыв всех, кто мог держать в руках клавиатуру. В результате удалось в очень сжатые сроки всё посчитать.
С тех пор, вплоть до 2008 года, менялся лишь внешний вид анкет, и программы. Принцип ручного подсчета оказался очень живучим - при отлаженной технологии хватало буквально трёх человек (считать конечно начинали не в авральном порядке после всех конкурсов, а спокойно - по мере сдачи анкет).
Движок, упомянутый в предыдущем посте, был доработан 'ом для импорта голосов и вывода результатов в соответствии с данными по конкурсным работам и их авторам. Кстати, принцип подсчёта баллов был неочевидным и пару-тройку раз менялся, пока не была выбрана подходящая для наших условий формула.
В 2009 году число личных компьютеров посетителей позволило отказаться от анкет и перейти к полностью электронному голосованию. Первый блин, впрочем, был в значительной степени комом (сервер не выдержал нагрузку, когда все рванули голосовать, к тому же логика в ПО была не вполне продуманной). Впрочем, это уже другая история.