Devdays Весна 2017

Материал из SEWiki
Версия от 17:07, 26 апреля 2017; Avkravtsun (обсуждение | вклад) (Темы проектов)

Перейти к: навигация, поиск

Темы проектов

Чтобы править эту страницу, нужно залогиниться в Sewiki. Тогда сверху будет кнопочка "править". Если у вас нет учётной записи - напишите Мише Кольцову желаемый логин.

Редактировать wiki одновременно нескольким людям стоит осторожно: после внесения правки проверьте, что она действительно сохранилась.

Проекты нумеруются автоматически. Можно вписывать свои идеи проектов в порядке, отличном от "первый вписал - меньше номер".

Сделаем чит-программу или бота для старой компьютерной игры

Для популярных компьютерных игр энтузиасты делают всякие программы:

-ботов, которые играют за тебя;

-примочки, которые помогают в игре, типа дополнительных кнопок;

-альтернативные игровые клиенты, которые позволяют игрокам подключаться к альтернативным серверам;

-читерские программы, которые позволяют получать преимущество в игре (стрелять точно во врагов, видеть всю карту, ...);

-crack-и, которые подбирают серийные номера для бесплатной игры.

Все эти программы запускаются отдельно от игры, но каким-то образом влияют на происходящее в игре. Мне интересно понять, как это вообще происходит.

Идея такая: давайте возьмём какую-нибудь старую игру. Скажем, года до 2003, а то в современных играх античит системы накручивают сильно. Плюс, некоторые старые игры имеют открытый исходный код движка.

И сделаем для этой игры какую-нибудь программу, которая позволяет получить преимущество в игре (например: wallhack\speedhack для counter-strike 1.6, maphack для warcraft 3, бот для diablo 2).

Предложил: Михаил Кольцов

Анализ данных применительно к игре Dota 2

Недавно на kaggle я наткнулся на датасет с матчами многопользовательской игры Dota 2. В нём для каждого матча есть информация об игроках, о ходе игры, чат и всякое разное. Можно попробовать поанализировать, какие факторы влияют на успех\неуспех игрока.

Или посмотреть, как соотносятся фразы игрока в чате с его реальной пользой в игре: верно ли, что человек, который всех кроет матом, на самом деле играет лучше других?

Ожидаемый результат работы: какая-то новая информация про поведение игроков. Год назад меня поразила статья Masters of Control: Behavioral Patterns of Simultaneous Unit Group Manipulation in StarCraft 2, которая указывает на факторы, отделяющие хороших игроков от плохих. Я уверен, что тут море возможностей.

Замечу, что уже есть сайт, собирающий статистику по играм: dotabuff.

Предложил: Михаил Кольцов

WebAssembly 2027

Сейчас разрабатывается стандарт WebAssembly, который позволит (как многие надеятся) достичь скорости native-кода (считай, ассемблер) прямо в браузере. Недавно был достигнут консенсус между разработчиками популярных браузеров насчёт того, как будет выглядеть этот стандарт.

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

Давайте подумаем, что можно сделать с помощью этой новой технологии. Посмотрим незашоренным взглядом в будущее, в 2027 год: что нас ждёт?

Ожидаемый результат: проект сервиса или сервисов, которые будут функционировать в 2027 году, и которые станут возможными благодаря скорости WebAssembly.

Предложил: Михаил Кольцов

GitHub security assessment

Есть такой сайт - HackerOne. На нём компании размещают свои страницы, а пользователи могут туда посылать security-related баги в продуктах этих компаний. Компании платят деньги пользователям, которые нашли крутые баги.

Там же есть страница у GitHub. На странице указано, за какие баги можно получить награду. Например, DDoS и social engineering запрещены.

Давайте посидим и за хакатон найдём какой-нибудь баг в гитхабе. Получим долларов пачку. Почему именно гитхаб? Я думаю, это близкий для каждого разработчика продукт. От его работоспособности зависят многие люди. Например, если будет какая-то уязвимость, позволяющая удалять из чужого репозитория что-нибудь -- это очень серьёзно. Чем серьёзнее проблема, тем больше денег дают.

Хочется подойти к проблеме с программистской стороны. Многие начинающие хакеры используют существующие утилиты для проведения экспериментов (например, для автоматического сканирования сайта). Более продвинутые хакеры пишут скрипты на python. А мы с вами можем написать всё что угодно на том же python!

Ожидаемый результат: найденный баг в github, одобренный представителями компании.

Предложил: Михаил Кольцов

Derived class debugging

Solving YoYo problem. Предлагается взять код из некоторой иерархии наследования, где логика разнесена по разным уровням наследования. Разработать некоторый фреймворк (на крайний случай, пара скриптов на модификацию исходников и пара на то, как как их встроить в популярные IDE) который позволяет видеть весь код на одном экране, без прыгания по уровням иерархии наследования.

Предложил: Кравцун Андрей