Проекты
Файлы

Mirror`s Edge Catalyst

22 апреля 2016

Сегодня на почту упало письмо с приглашением в закрытую бету Mirror’s Edge Catalyst. Я записывался на нее где-то месяц назад и думал, что бета давно прошла, а я просто в нее не попал. Забавно, кстати, что EA раздает не только код на бету для тебя, но еще и код для одного друга (который я пока что не использовал).

Я вообще люблю играть в беты, потому что можно составить некоторое впечатление об игре, бесплатно поиграть в нее и наиграться понять, хочу ли я ее покупать. Так, например, я играл в Evolve, а также Star Wars: Battlefront и Rainbow Six: Siege. Правда, в случае первой я забыл сделать скриншотов (а графон в игре крутой), а вторая вроде как была публичной, да и я в нее почти не играл.

Управление в новом Mirror’s Edge абсолютно такое же, как и в старом: Space на все подряд, Ctrl на всякие скольжения, правой кнопкой мыши открывать двери, и т.д. Тем не менее, чувствуется оно немного по-другому. Боевка мне как-то не сильно нравится, а выполнение трюков, как и раньше, оставляет смешанные впечатления — то недолетел, то перелетел, то не смог по стене пробежать, хотя видно, что человек бы пробежать по ней смог.

В начале игры нас встречает длинная катсценка от третьго лица. Забавно обыграли очки дополненной реальности, в которых полэкрана занято всякими попапами, и которые, если я правильно понимаю, и обеспечивают «runner’s vision».


Теперь, кстати, не только подсвечиваются интерактивные предметы, но и подсказывается путь, а также показываются кнопки, которые надо нажимать (только во время обучения, подсказывание пути отключается).

Где-то тут я наконец включил в настройках Ultra, но вроде особо ничего не поменялось. Кроме того, иногда HD-текстуры то ли не успевали подгрузиться в каких-то местах, то ли их там просто нет, поскольку предполагается, что игрок там просто пробежит и не заметит.



Игра иногда выдает крутые сочетания цветов и всячески пытается радовать глаз:


Карта выглядит классно, а в режиме прохождения трассы на скорость прикольные скорборды:

По всему убежищу разбросаны красные тапки, а в катсценах бывают забавные детали — например, игра в го или голубь:

Еще дают поиграть в миссию из трейлера:



Когда появляется новый вид противников, показывается небольшая катсценка:

Я еще, наверное, поиграю завтра, но пока что не уверен, что хочу купить эту игру. Вроде бы и Mirror’s Edge, а вроде бы и не хочется опять миллионы этих сайдквестов и собиралок проходить — которые тут довольно назойливо появляются и пытаются тебя увести куда-то в сторону от сюжета.

Кстати, заметил какое-то странное сходство с Dying Light — не столько в геймплее, сколько в подаче персонажей и заданий. Только в Dying Light это выглядело как-то лучше. Зато в Mirror’s Edge визуальный стиль классный.

RuCTF 2016

20 апреля 2016

14 апреля наша команда улетела в Екатеринбург, чтобы поучаствовать в финале RuCTF 2016. Некоторые подробности в этой заметке могут показаться странными или ненужными, но я пишу ее в основном для себя, чтобы в следующий раз легко вспомнить, что нужно было с собой брать и как что работает.

Летали мы российским лоукостером «Победа», в стоимость билета которых не входит примерно ничего, и все дополнительные удобства покупаются за отдельную плату. Например, выбор места в самолете стоит 150 рублей. Мы с ребятами купили себе места в одном ряду, а на регистрации тем не менее получили случайные места. Обратно, правда, выбор места сработал.

Сдав свой багаж (до 10 кг бесплатно) на регистрации и получив посадочный, надо пройти контроль и сесть в самолет. Кстати, мне и еще одному участнику команды выпали места около аварийных выходов у крыла, а там, оказывается, больше пространства для ног.

Несмотря на то, что мы вроде как договаривались, чтобы нашу команду встретили, встречали не нашу команду, а наших попутчиков — и нам пришлось поехать с ними в одном автобусе стоя. Жили они в другой гостинице, поэтому нас высадили минутах в двадцати ходьбы от нашей гостиницы. По пути мы зашли в KFC и даже думали, что нас не заселят, поскольку расчетный час с 13:00, но присмотрелись к договору, по которому у нас ранний заезд, и сразу направились заселяться. В здании не все этажи принадлежали гостинице, и на первом этаже нас встретил какой-то подозрительный ресепшн, с которого нас вскоре перенаправили на пятый этаж.

Там мы показали свой договор и паспорта, получили ключи от номеров и могли выбрать, кто с кем будет жить. По этому поводу они также позвонили через несколько часов по внутреннему номеру на телефон в номере — фича забавная, но особо мы ее не использовали. В номерах были крутые мягкие кровати, мини-бар и небольшой сейф в шкафу. Кроме того, там были тапочки, полотенца, одноразовые наборы для чистки зубов, небольшие бутылочки с шампунем и гелем для душа — в общем, с собой можно брать только технику и футболки. К слову, на день рождения ребята подарили мне футболку, организаторы подарили другую и я взял с собой две помимо той, что была на мне. Конечно, не всегда соревнования совпадают с днем рождения, но тем не менее можно брать меньше одежды, потому что иначе больше одного раза и не наденешь.

В общем, мы завалились спать и только отлежавшись пошли прогуляться по городу. Мы спустились к набережной, перешли на другую сторону и решили зайти куда-нибудь поесть. Неподалеку расположились Макдональдс, Subway, Вилка-Ложка и Пицца Мия, и мы отправились в последний. Они вроде бы готовят пиццу, но кроме нее можно также заказывать картошку, наггетсы и все такое. Так вот там все дешевое и невкусное.

Обратно мы пошли другим путем, прогулялись по одной такой длинной улице, прошли мимо презедентской резеденции, вдоль реки и в очередной раз у нас на пути возник Высоцкий — местный многоэтажный бизнес-центр. Мы решили посетить смотровую площадку и, заплатив по 300 рублей, поднялись на 52-ой этаж, откуда посмотрели на ночной Екатеринбург и попытались сделать несколько фотографий.

На следующий день и я, и мой сосед по номеру проснулись по будильникам — и продолжили спать, потому что ставили их довольно заранее. Когда мы встали, до регистрации оставалось не так много времени. Тем не менее, мы остались на завтрак, который входил в наше проживание, и только после него выдвинулись на регистрацию. Там командам выдавали пакетики с различными сувенирами — какими-то штуками неизвестного назначения от Сбербанка, флешками от них же, любимых всеми магнитиками от Контура, ручками, блокнотиками, программой соревнований и, конечно, футболкой.

Далее было открытие и конференция с докладами. Ничего сильно интересного в них не было. Помимо конференции проводился «квест» Crunch, в который входило не только решение заданий на реверс и веб, но и получение флагов за участие в различных интерактивах — например, взломе замков.

Конференция прерывалась на обед в здешней столовой и на небольшой кофе-брейк с булочками. В целом, вроде бы даже можно было оставаться не голодным, несмотря на то, что есть на этих кофе-брейках было нечего.

В первый день на конференции были баттлы — два человека из разных команд поднимаются на сцену, подключают к своим ноутбукам проекторы и одновременно решают одно и то же задание на глазах у всех остальных. Задания были немного странные, но в целом это было забавно. Участники получают символические призы и за победу, и за проигрыш. В этот день мы снова сходили в Пицца Мия, где пиццу я уже не брал и снова убедился, что и все остальное там не очень.

Второй день начался со специальной олимпиады, прикидывавшейся тасковым CTF. Был отключен интернет, а большинство заданий были завязаны на восстановление поломанных картинок. Потом продолжились доклады на конференции, а после нее был организован круглый стол, на котором должны были присутствовать представители всех команд. Если я правильно понял, пришли представители далеко не всех команд, да и профит от этого собрания мне кажется сомнительным, поскольку все просто пожаловались друг другу и никто ничего не собирается по этому поводу делать. Правда, после круглого стола мы договорились с томскими ребятами о совместных тренировках, так что некоторая польза от этого все-таки была.

Наконец, на третий день проходил сам RuCTF. После завтрака мы погрузились в автобус и отправились в «Ельцин Центр», где и проводились соревнования. Там огромное помещение и не менее огромный экран, на котором демонстрировался скорборд. У каждой команды был собственный столик, а чуть позже организаторы выдали каждой команде по ноутбуку с установленным образом и небольшие трансмиттеры с USB.


После соревнований часть команды отправилась в отель, а я вместе с остальными поехал в бар на «празднование окончания соревновний». Пицца в этом баре была тонкая и маленькая. Организаторы сделали нам бесплатных бутербродов, а потом стали проводить алковикторину. После нее выкатили торт, мы съели по кусочку и решили удалиться с этого мероприятия.

Наконец, в последний день нас ожидало закрытие/награждение и разбор заданий. Я выиграл коллекционную толстовку соревнований, ребят наградили за успехи в олимпиаде. Разбор был на несколько ломаном английском, а некоторые уязвимости были очень странными. После разбора мы еще немного пообщались с другой командой и направились в Subway. Я это заведение не очень люблю, но в этот раз мне удалось составить что-то достаточно съедобное. Рецепт прост: берем сабвей мелт, из овощей не добавляем ничего, кроме салата, и заливаем сырным соусом и кетчупом.

Мы снова вернулись в отель, немного там посидели, собрали вещи, и отправились гулять и искать сувенирные магазины. Мы снова добрались до длинной пешеходной улицы, зашли в магазин настолок и приобрели Bang!. Ребята также купили всяких магнитиков в магазинах неподалеку и мы стали возвращаться. Мы сыграли одну катку и начали выселяться. Всю бухгалтерию на ресепшене сделали сами и положили наши документы в ячейку, чтобы мы могли их забрать при выселении. Мне, кстати, очень понравилось, как работает Яндекс.Такси с их отображением движения такси на карте в реальном времени. На обратном пути ничего особенного не произошло.

Толстовка, кстати, сделала из моей белой футболки нечто, покрытое черным ворсом, но в остальном оказалась очень классной и удобной.

Oracle Database

21 февраля 2016

На этой неделе я пытался установить Oracle Database, к которой я буду подключаться для выполнения задания по базам данных. По заданию я должен написать клиента для базы данных — обязательно Oracle Database — на любом ООП языке. Ну, поскольку клепать интерфейсы из долбанутых свинговых элементов на Java я не хочу, я решил взять PHP — верстать-то всяко проще.

Итак, мне нужно было собрать что-то навроде LAMP, но с Oracle Database вместо MySQL. В предыдущем семестре я подключался к MySQL из Java через JDBC и краем глаза видел что-то про ODBC, да и на лекциях про него упоминали. Именно так я и собрался добираться до базы данных из PHP.

Первое, что мне пришло в голову — взять серверную Ubuntu, да и поставить на нее Apache, PHP и Oracle Database. Это, на самом деле, была первая ошибка — Oracle указывает список «сертифицированных» платформ, на которые их база данных ставится, и Debian в этот список не входит. Тем не менее, найти в интернете туториал по установке именно на Ubuntu было несложно, и я, проделав множество хитрых и не очень манипуляций, умудрился установить эту базу. Правда, это еще не все: ведь нужно было создать экземпляр этой базы (чтобы было к чему подключаться), подключиться к нему (внутри экземпляра сама по себе база не создалась, поэтому при подключении выбрасывалась ошибка) и создать саму базу. Кроме того, на этом пути было множество преград различной сложности, обходить которые приходилось, находя крупицы информации о похожих сложностях в интернете.

Надо заметить, что выбранная Ubuntu Server, конечно, легкая, нормально работает с небольшим виртуальным жестким диском и быстро запускается, но совсем консольная. Я-то не против, но ее нельзя скроллить, и мышь она не поддерживает, и вставить текст из машины-хоста не выходит. Поэтому все надо набирать вручную. Так вот скрипт, который создает базу данных через SQL*Plus, занимает 20 строк. Пример этого скрипта в интернете содержал ошибку, а еще если случайно неправильно что-то набрать, то запускаться он не будет. А может начать работу, поругаться на что-то (например, файл не удалось создать) и завершиться. Если его еще раз после этого запустить, то будет ругаться на то, что какие-то файлы уже созданы. Короче, прежде чем 20 строк печатать, надо сначала еще пройтись и от предыдущего запуска все почистить. В какой-то момент мне это все надоело, и я-таки загуглил, что можно выполнять скрипты из файлов — тогда я этот файл один раз хорошо написал и в виртуалку перекинул. Но раз десять я 20 строк вручную печатал, да.

Короче, я-таки смог настроить базу данных, создать пользователей и все такое, но это еще был не конец. Тут меня поджидал ODBC-драйвер, который Oracle додумались не включать в поставку базы данных, а выкладывать отдельными пакетами на своем тормознутом сайте. Чтобы вся эта связка Oracle Database — Oracle ODBC driver — unixODBC — PHP работала, надо настроить listener, который будет откликаться на некоторое имя (DSN) и сообщать, а к кому же на самом деле обращаться за нашей базой данных. Ты вот его настроишь, а он как будто бы и не работает, когда через PHP обращаешься. А как будто бы и работает, если через консоль. Тем не менее, надо было установить ODBC-драйвер, у которого библиотеки слинкованы с неправильными именами, и надо париться с переименованием/созданием симлинков. Потом надо было настроить unixODBC, чтобы он узнал, что у нас установлен этот драйвер. Еще надо не забыть расширение PHP, которое работает с ODBC.

Наконец, к вечеру второго дня, когда все настроено, ты пытаешься достучаться из PHP до базы данных, и не выходит. Перепроверяешь настройки, пытаешься как-нибудь поменять — никакого прогресса. Разве что еще что-нибудь отваливается.

Ну, тут я не выдержал и написал на Stack Overflow. А сам пошел устанавливать Oracle Database в виртуалку с Solaris, потому что, во-первых, он «сертифицированный», а, во-вторых, для него есть установщик с визуальным интерфейсом. Когда во время установки сама софтина поставилась, а вот справиться с первоначальной настройкой базы данных не смогла, я решил, что еще раз я все это делать не хочу — раз их собственный инсталлятор не может этого сделать, то и я не буду.

На третий день за завтраком я решил погуглить, нельзя ли зарегаться в каком-нибудь сервисе и получить в свое распоряжение Oracle Database с доступом по ODBC. Вместо этого я наткнулся на страницу на сайте Oracle, с которой можно скачать образы операционных систем для виртуальной машины. Эти образы содержали уже установленную и настроенную базу данных (или какую еще софтину — в зависимости от образа). Все, что мне оставалось — установить Apache, PHP и ODBC-драйвер, потому что Oracle сделать этого не удосужился. В общем, установить-то получилось, и даже получалось из PHP обратиться к базе данных через ODBC. Но только из консоли. Когда я делал это, открывая в браузере страницу, Apache падал с сегфолтом. Я даже посмотрел core-файл через gdb — сегфолт происходил в библиотеках ODBC-драйвера Oracle. Это очень странно, поскольку консольный PHP почему-то работал через этот драйвер нормально.

Я написал еще один вопрос на Stack Overflow. К первому появился лишь комментарий, в котором попросили добавить еще немного информации. Надо отметить, что подобная проблема была описана на Stack Overflow, только решение мне не подошло (а решение из комментов — пересобрать unixODBC и PHP — я пробовать не хотел). Я попробовал использовать Nginx вместо Apache, но он точно так же выдавал ошибку.

На четвертый день я скачал еще один готовый образ. На этот раз это был образ от Zend — разработчиков PHP. Это был Oracle Linux 6 (Red Hat Enterprise Linux 6, в который Oracle поставили свои нескучные обои и раздают нахаляву в своих образах), в котором установлены Oracle Database и Zend Server. В общем, тут мне даже не пришлось ставить ни Apache (который используется Zend Server), ни PHP (который настраивается через Zend Server), ни даже ODBC-драйвер от Oracle (потому что он уже был установлен вместе с базой данных). Мне нужно было сделать всего пару вещей: включить ODBC-расширение для PHP (один клик в Zend Server), установить и настроить unixODBC (который по какой-то причине установлен не был) и создать базу данных (тоже немного странно, что ее по умолчанию не было). На этот раз меня снова ждала проблема: ODBC-драйвер Oracle пытался найти библиотеку, которая во всех трех предыдущих случаях была, а в этом почему-то не находилась. Тщательные поиски-таки вывели меня на ее новую версию, я создал симлинк, и ничего не заработало. Точнее, из PHP ничего не заработало — isql спокойно подключался и работал.

Тогда я решил посмотреть, нельзя ли из PHP достучаться до базы данных Oracle каким-нибудь другим способм. Оказывается, можно: OCI8. Опять же, поскольку это образ от Zend, расширение уже было установлено, поэтому мне нужно было лишь скинуть пример в виртуальную машину и поменять DSN, имя пользователя и пароль. Так вот это сработало с первого раза.

Казалось бы, хэппиэнд. Тут надо еще раз вспомнить, что у меня было:

1) Ubuntu Server, на котором все работает, только почему-то ODBC-драйвер не видит базу данных, хотя все настройки правильные;
2) Solaris, на котором никто ничего особо не пробовал делать;
3) Oracle Linux 7 от Oracle, на котором был сегфолт при использовании ODBC-драйвера из PHP через Apache;
4) Oracle Linux 6 от Zend, на котором ODBC не работал, зато с полпинка заработал OCI8.

Немаловажная деталь: Zend Server триальный, и через 30 дней превращается в тыкву Lite-версию. Я понятия не имею, что это будет означать для меня, но и никакого желания потом это все заново перенастраивать у меня тоже нет.

Oracle Linux 7 выглядит стильнее и удобнее, да и пользователи там были настроены получше. Проблема только в том, что он себе отхватил дисков на 60 гб, а та же виртуалка от Zend — всего на 30.

Решил я, короче, попробовать установить OCI8 еще где-нибудь, чтобы можно было выбирать между рабочими виртуалками. В OL7 у меня этого сделать не получилось. Тут я возвращаюсь в Ubuntu Server (на который я выделил всего 10 гб) и пытаюсь установить OCI8 там. Это у меня опять не выходит, но я зачем-то решаю посмотреть на настройки еще раз — теперь-то я знал, как они выглядели на машинах, где все работало, и мог сравнить. Настройки DSN выглядели как-то пространно, хотя я помнил, что на другой машине мне хватало и пяти строчек. Прописываю второй DSN в пять строчек. Работает.

Оказалось, что у меня была глупая ошибка, которую было сложно заметить среди той кучи строк. Второй DSN был настроен без ошибок, а все остальное на машине было в порядке, поэтому я смог подключиться к базе данных через ODBC из PHP.

Я ответил на свой же вопрос на Stack Overflow, удалил Solaris, и пока что планирую использовать виртуалку с Ubuntu в качестве пробного сервера. Виртуалки с Oracle Linux я пока удалять не стал — вдруг пригодятся еще.

Не думаю, что кому-то что-то было понятно из всего этого графоманства, но хочу заметить, что все эти упражнения я провел лишь ради того, чтобы выполнить задание по написанию клиента к базе данных. Не задание по установке операционных систем и не задание по установке и настройке базы данных — по написанию клиента. Возможно, это было бы куда проще, если бы я собирался написать его на Java — особенно, если бы я сразу скачал образ с установленной и настроенной Oracle Database. Только вот это задание должен сделать не один я, а двадцать человек из двух групп. Нельзя было настроить сервер с базой данных один раз, создать каждому студенту по пользователю в базе данных и просто дать всем доступ? Мне кажется, что как-то неправильно, когда задание по написанию клиента к базе данных неявно включает в себя задание по ее установке и настройке. Причем установка и настройка оцениваться не будут, несмотря на то, что без них у студента просто не будет возможности тестировать свой клиент.

Каникулы 2016

21 февраля 2016

В этом году на зимних каникулах я был долго. Летом я участвовал в Google Summer of Code, а потому пять дней в неделю работал по 8 часов (и еще немного по выходным). Да, я много спал, поздно ложился и в принципе мог себе позволить ничего не делать — собственно, я прошел GTA V и третьего Ведьмака — но это не было похоже на обычные трехмесячные летние каникулы, поскольку нужно было работать. На новогодние же каникулы я отправился 27-го декабря, когда сдал досрочно один из экзаменов. Еще по трем я получил автомат, и только один экзамен нужно было сдать — он был 27-го января. Семестр начался 8-го февраля, так что я был дома больше месяца.

Поскольку я додумался поехать в легкой осенней куртке (было довольно тепло), мне пришлось купить новую куртку, чтобы не замерзать на улице и не сидеть дома целыми днями.

Еще до нового года я сходил в парикмахерскую и попрощался со своими длинными волосами. Не то чтобы они мне не нравились — просто за короткими проще ухаживать и они не лезут в глаза.

Длинные волосы, лол.

После нового года я снова сходил на новую часть Звездных войн. Мама больше любит 2D-сеансы, а я уже видел фильм в IMAX в Новосибирске, поэтому мы собирались не тратиться на билеты и посмотреть в 2D, но мама позвала подругу, которая принципиально «ходит на такие фильмы в IMAX». Так что я посмотрел седьмой эпизод в IMAX еще раз и еще раз убедился, что фильм заслуживает 10/10.


Если вы вдруг следите за блогом, то, возможно, помните, что в прошлом году я проходил Dragon Age: Origins. Я вернулся к своим сейвам (которые я, конечно, скопировал, но так и не использовал) и решил продолжить прохождение.

В какой-то момент (я уже прошел Dragon Age 2, но еще не начал следующую часть) я вспомнил про оставшийся у меня старый системник, в котором не хватало разве что жесткого диска да дополнительной планки оперативки, и телевизор на стене моей комнаты. Взял HDMI-кабель, Live USB с Ubuntu — и убедился, что идея нормально сработает. Купил жесткий диск, оперативку, беспроводные клавиатуру и мышь и получилась такая себе приставочка для телевизора, за которой можно спокойно работать с помощью клавиатуры (или спокойно играть, если купить геймпад).

Геймпада у меня не было, поэтому пришлось проходить Dragon Age: Inquisition без него — с беспроводной клавиатурой на ногах и мышью на табуретке неподалеку.


Еще на каникулах я сходил на «Выжившего» и «Омерзительную восьмерку». Первый смотрел с семьей, на второй сходил один. Хотя «Выживший» снят неплохо, каких-то ярких воспоминаний насчет него у меня не осталось. «Омерзительная восьмерка», напротив, мне очень сильно понравилась. Фильм уже давно шел в кинотеатрах, некоторые мои друзья уже его посмотрели, и я знал, что это трехчасовый фильм Тарантино. Я не являюсь большим фанатом Тарантино, поэтому каких-то завышенных ожиданий у меня не было — я вообще ожидал увидеть какой-то «затянутый» трешак.

Я купил билет на утренний сеанс, взял по небольшому стаканчику попкорна и Pepsi и отправился в зал. Людей было немного. С первых минут фильм мне показался каким-то очень уютным. Хорошая музыка во вступительных титрах, симпатичные снежные пейзажи. На самом деле действие фильма почти полностью проходит в такой небольшой таверне. Персонажи ходят по ней, разговаривают, занимаются какими-то своими делами. Все идет неспешно, но кажется не затянутым, а как раз естественным. Сюжет преподносит зрителям некоторые вопросы, и не торопится на них отвечать. Это напоминает чтение интересной книги — можно поразмышлять, кто мог сделать то или это, подумать, в чем был мотив или есть ли у персонажа алиби. В общем, неожиданно для меня фильм оказался одним из самых интересных фильмов, что я смотрел, и попал в список любимых фильмов.


Кроме игр и фильмов у меня еще были комиксы. Я иногда по неизвестным причинам прекращаю их читать, а иногда опять начинаю. Чтобы читать современные комиксы по мере их выхода, я хочу сначала прочитать все вышедшие до этого. Для этого я давно по-быстрому собрал на GameMaker приложение, которое хранит базу комиксов одним ini-файлом и отображает её в окне, где можно отмечать комиксы как прочитанные и удалять ненужные. Из этого же приложения в один клик можно открывать комикс, чтобы начать его читать.

Только запускается это приложение несколько секунд, и его вместе с файлом-базой надо таскать с места на место, чтобы продолжать чтение с того места, на котором остановился раньше. Делать мне было нечего, и за пару дней я собрал полный аналог этого приложения в виде html-страницы. Оно хранит всю информацию, используя браузерный клиентский localStorage. Это означает, что пользоваться приложением можно даже без подключения к интернету, ведь вся информация хранится в браузере.

Правда, между браузерами все еще нужно перемещать то, что в localStorage хранится, но я подумываю прикрутить к этому хранение на сервере. Тогда можно будет сохранять свой прогресс на сервере, загружать его в любом браузере, а после этого пользоваться приложением без необходимости выходить в интернет.


Впервые с выпуска я посетил лицей. Я и до этого приезжал домой, пересекался с одноклассниками, а вот навестить учителей как-то не получалось. В этом же году мы с друзьями собирались и приходили несколько раз — чтобы всех обойти и чтобы еще раз встретиться и пообщаться.

Съездив на экзамен и успешно его сдав, закрыв таким образом свою первую красную сессию, я вернулся домой и понял, что не очень хочу снова учиться. Дома была мягкая кровать, можно было просыпаться во сколько захочется, не нужно было готовить себе еду и ходить стирать вещи. Душ всегда работает, а все друзья в городе и мы могли собираться и общаться, хоть и собирались мы не так часто, как мне хотелось бы.

Кстати, по поводу Google Summer of Code, о котором я упомянул в начале поста. Я недавно решил проверить, не опубликовали ли уже список участвующих в этом году компаний, и наткнулся на запись в блоге, в которой LabLua упомянули меня и в двух абзацах описали мой проект.

KrasCTF 2015 / The Devil

21 октября 2015

Мы тут нашей командой по CTF ездили в Красноярск, на KrasCTF 2015. В ту сторону поезд был весь такой мягкий и с розетками в каждом купе, мы даже достали роутер и поиграли в CTF в Teeworlds. Еду с собой в поезд никто не взял, а поскольку сразу после прибытия нас встретили организаторы и повезли на экскурсию, поесть мы нигде не успели.

С площадки «Царь-рыба» командам показали Енисей и сделали много фотографий. В Красноярске немного холоднее, чем в Новосибирске, но можно было не замерзнуть и в одной куртке без кофты.

Затем мы направились в общежитие. В этот раз мы жили не в 25-этажной общаге с роскошными комнатами и видом на СФУ, а в подвале девятиэтажки. Комната на пять человек, с раздельным санузлом, ванной и стиралкой, кухней с холодильником и микроволновкой и двумя телевизорами — в целом, даже больше, чем в прошлом году. Мы заказали пиццу, поиграли в Teeworlds и Worms, а потом легли высыпаться перед днем соревнований.

С утра опять оказалось, что никто не задумался о завтраке, поэтому мы по-быстрому сходили в небольшой магазинчик, позавтракали и поехали к месту проведения соревнований. В целом все шло так же, как и в прошлый раз — жеребьёвка аудиторий между капитанами, а потом занятие этих аудиторий командами. Правда, в этот раз нам досталась аудитория без большого общего стола, и пришлось сидеть за маленькими отдельными. Выпечки в этот раз было заметно больше, и она не только не закончилась через час, как в прошлый раз, а даже осталась к концу соревнований.

Задания были интересными, хотя новая категория Juristic не относится к CTF в принципе, а Joy был какой-то странный: отжимания, нерешаемый кроссворд и стеганография в реконе. После соревнований произошло награждение — дипломами, флешками и записными книжками, а также кубком за первое место. Потом мы пообщались с разработчиком заданий категории Web и отправились в общежитие. Вскоре оказалось, что организаторы приглашают всех в PEOPLE’S. Без капитана команды мы съездили, посидели, собрали самый большой стол в истории заведения и сфоткались на самодельную селфи-швабру. В общаге мы скоротали остатки вечера за Hedgewars и легли спать.

На следующий день был разбор. Реверс и крипту не разбирали, а у некоторых заданий наше решение отличалось от задуманного. После этого мы вернулись в общежитие, купили в буфете еду на завтрак и стали разбираться с оплатой проживания. Перед отъездом в Новосибирск мы заглянули в Subway, поели, взяли по сабу в поезд и поехали домой. Розеток в купе этого поезда не было, поэтому мы вскоре легли спать.


Возвращаясь с вокзала, я заметил новое извещение на вахте общежития. Мне наконец-то пришла посылка — новый альбом Blue Stahli с крутейшей футболкой, постером и стикерами. Отправленная 1 октября из Чикаго (куда она добиралась из Бурлингтона), она пришла в Новосибирск 10 октября (судя по отметке на извещении), но известили меня об этом ещё через десять дней.

А ещё кто-то заказал M, потому что и раньше заказывал через интернет футболки такого размера, и потому пополнил свою коллекцию футболок не по размеру. Ну хотя бы не маленькая.

1 2 3 4