Задумка
В начале апреля у народа появилась идея провести форум для студентов местных вузов, с докладами, соревнованием и призами победителям. На меня выпала подготовка заданий для соревнований. Мы с
+Евгений Доронин засели и за час набрейнштормили идей для заданий. Главной идеей было отсутствие четких требований как в реальной жизни: вы получаете какие-то исходные данные и ваша задача - понять, что же от вас требуется. Задания должны быть командными (программирование не для одночек). Для решения задач должно хватить университетского курса (ожидались четверокурсники). Задачи можно было решать в
лоб, а можно решить написав кусок кода. Задачи должны быть интерактивными и разнообразными, чтобы не тупо сидеть и пялиться в ноутбуки. И должна быть возможность шортката для сообразительных. Ну и в довершение - доклад, который должен был быть максимально абстрактным и не привязанным к какой-либо конкретной технологии (это я вспоминаю те
лекции полтора года назад). Подготовил доклад про начало карьеры разработчика, причем за месяц он сильно уехал от оригинальной темы. Дальше будут впечатления от процесса организации мероприятия.
Первая попытка
Мы подготовили домашнее задание и должны были высылать подавшим заявки, но внезапно выяснилось что посылать решительно некому. Нас уверяли, что шестерни крутятся и все скоро все узнают. Когда за два дня народа не прибавилось, я спросил у знакомой студентки слышали ли они что-нибудь про эту движуху и совсем не удивился, когда выяснилось что никто ничего не знает, а связой при этом пропал и не отвечал на телефоны. Мы с Пандой резко начали думать что делать. Я позвонил Захарову Ю.Н., заведующему моей кафедой, чтобы обсудить ситуацию - он тоже ничего не слышал, хотя по задумке именно заведующие кафедрами должны были предоставить списки крутых студентов. В итоге мы решили миновать промежуточные звенья и заслать емейлы на кафедры. Но время было уже упущено и мы решили перенести мероприятие на послепраздничное время (огород уже посажен, а сессия еще не началась). Зато получили время для более качественной подготовки квеста и докладов.
Вторая попытка
На этот раз набралось 40+ студентов из трех университетов. О да, приятная неожиданность: это не студенты ленивые, а административные работники не хотят работать. Вообще такие люди вызывают у меня атомную ярость своей отрицательной производительностью и тем что воруют у людей время. Достаточно пойти в обход их и все начинает работать. В идеале конечно вообще напрямую, но это не всегда возможно.
Две репитиции доклада, выбрасывание нескольких этапов из квеста за день до мероприятия. Небольшая паника, потому что за час до начала не работает один из этапов, но, к счастью, все обошлось. Выступили на ура, студенты оказались живые - задавали вопросы. Несколько моментов были настолько удачными что зал взрывался смехом. Когда после рассказа про карьеру 1Сника один из студентов попросил рассказать про локализацию игр 1Ской, поставив докладчицу в тупик.
Квест
Состоял из связанной цепочки заданий - для переходя к следующему заданию, нужно решить предыдущее
1. Домашнее задание, дан запароленный zip архив с данными. К архиву прилагается легенда и записка с подсказкой, архив просто вскрыть перебором. (Это почти все сделали, просто скачав переборщик)
2. В архиве находятся логи вида IP:port login pass HTTP-Status. Несколько миллионов строк из них две со статусом 200. Здесь был мой косяк - я закрыл доступ по укзанному адресу и просто забыл его включить, как оказалось самые умные ломились на второй этап из дома (может быть стоило открыть, тогда бы мы увидели победителей еще до начала конкурса). Я указал правильный адрес и все начали на него ломиться. На этом этапе очень многие застряли - всех смутил HTTP который отвечал стандартным апачевским It works. Особо умные попытались доступаться по FTP, попробовать SSH догадалась толко одна комнда. Тут уже отсеялись все, некоторые смогли скачать файлы при помощи pscp, а некотором пришлось давать эти файлы на флешке.
3. В одном из двух аккаунтов (не все догадались проверить оба аккаунта) был запароленный архив с картой офиса, а во втором tar с сотней файлов. Имена фалов были просто шестнадцатеричными кодами символов с паролем к архиву. Это было единственное задание на программирование ну или хотя бы решение в лом на бумажке.
 |
| Необходимо найти клад |
4. Карта офиса, с обведенной локацией. Локация была горшком с надписью Follow the white rabbit. По офису ходил чувак в футболке с кроликом и выдавал следующее задание.
Х. Тут должно было быть еще два этапа: позвонить по телефону и ответить на вопросы (пришлось отбросить, поскольку не успели записать вопросы) и ссылка на сайт где в исходном коде было спрятано следующее задание. Поэтом кролик выдавал сразу следующее задание.
5. Найти в поиске специальный ролик (переозвучили вступительную
речь Гэбриэла из swordfish), где он дает задание подключиться к WiFi и взломать сайт пентагона (была идея вставить процесс интервью из этого же фильма, но по морально-этическим соображениям пришлось отказаться).
6. Когда они подключались и открывали сайт (очевидно пришлось поднять BIND и закрыть доступ к остальному интернету) начинал тикать таймер и показывалась фотка QR кода, который они видели на 4 этапе (тут две из трех команд сделали шорткат, считав этот код еще на обеде). Остальных ждал неприятный сюрприз - они не дожны были успеть ввести код и в браузере вешался куки и их перенаправляло на страницу Game Over. Сам Пентагон я наклепал на CherryPy джаст фо фан (может быть как-нибудь выложу сырцы всего этого безобразия).
Студенты
Больше всего опасался что никто не сделает первое задание, которое ушло домой, но, опять приятная неожиданность, смогли сделать почти все. В каждой команде были ноутбуки и не пришлось париться с правильным разделением команд. Второе необходимое условие для победы - наличие в команде линуксоида смогла обеспечить только одна команда, которая в итоге и одержала победу. Остальным пришлось ждать подсказок для перехода на следующие этапы. Больше всего опечалило то, что на четвертом курсе у студентов отсутствуют навыки быстрого решения простых задач на каких-нибудь скриптовых языках - когда дело дошло до написания кода все начали открывать Delphi и RAD Studio (о боже), Visual Studio (ну хоть что-то), накидывать на форму компоненты и батоны. После 20 минут набирания кода, пришлось им намекнуть: ребята, не укладываетесь по времени, не дублируйте работу, пока один пишет код, откройте гугл и решите задачу в лоб, на это уйдет 5 минут.
Итог: одна команда быстро решила и шорткатнулась, две другие воспользовались подсказками, шли лоб в лоб и победила та, которая шорткатнулась. Пришедшие третьими некоторое время залипали с очисткой кукисов. Первые решили 3-е задание программированием, третьи в лоб, насчет вторых - не уверен, хотя они писали что-то на дельфях.