Идеи на Devdays

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

Ссылка на список

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

Тут пишем идеи. Нумеруйте или подписывайте названия своих идей, чтобы было видно, где начинается новая идея.

Подсказочка: жмём вверхнем правом углу "представиться системе", после авторизации жмём вверху слева "править"

Random Rogalic

Проект для тех, кто успел соскучиться по играм. Предлагаю создать собственную игрушку жанра RPG! Но не абы какую игру со скучным линейным сюжетом и отвратной 3D графикой. А игру с умопомрачительной случайной генерацией всего, что только можно сгенерировать. И сделать все на волшебной ascii-графике под linux-консольку! Фичи:

  • Графика 2D, вид сверху;
  • Уровни - случайные! Уровень представляет из себя лабиринт/подземелье. Населен монстрами и подбираемыми предметами;
  • Монстры - случайные! А точнее:
    • виды монстров - случайные!
      • случайные характеристики вида монстра;
      • случайное имя вида монстра;
    • AI монстров - случайное для каждого вида!
      • случайный характер поведения по отношению к игроку и к другим монстрам
  • Подбираемые предметы - случайные!
    • случайные характеристики предмета;
    • случайное название предмета;

Проект нацелен на:

  • получение опыта проектирования архитектуры realtime приложения;
  • совершенствование навыков использования механизмов наследования в C++;
  • получение опыта по практическому применению алгоритмов на графах.

Требуемые знания: C++, теория графов.

Предложил: Иванов Никита

Randomia

Вдохновившись идеей предыдущего оратора о рандомном рогалике, мне в голову пришла мысль: рогалики -- вещь избитая, и так есть 100500 клонов dungeon crawl со всякими фичами, включая рандомную генерацию карт, монстров, предметов и всего на свете. Чего действительно нет (или по меньшей мере мало) -- это рандомизированных стратегий. Предлагаю сделать что-то подобное, а именно -- стратегию а-ля warcraft (добывай ресурсы -> строй здания -> нанимай юнитов -> нападай на врага) по принципам рогаликов:

  • Рандомные фракции
  • Рандомные ресурсы
  • Рандомные здания у фракций
  • Рандомные нанимаемые юниты в зданиях:
    • Рандомные названия
    • Рандомные характеристики
    • Рандомные типы атаки-защиты
  • Рандомные способности, магии
  • Рандомные апгрейды юнитов и зданий
  • Рандомные герои
  • Рандомная нейтральная фауна

Можно сделать как RTS, так и TBS, писать можно как на C++, так и на Python'е, можно сделать как в ascii-графике, так и нарисовать простенькую гую.

Предложил: Власов Святослав

Плагин для поиска в изображениях

Хотелось бы написать плагинчик под хрому/файрфокс, который позволял бы по нажатию ctrl+F искать не только по тексту на странице, но и по тексту внутри изображений на странице.

Предложил: Власов Святослав

Send me to heaven

Игра на мобильный. Идея в том чтобы подкинуть телефон как можно выше.

Предложил: Гарифуллин Шамиль

Paradise city 2.0

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

Технологии: Unity

Предложил: Гарифуллин Шамиль

MyBookSearch

Кратко: поиск по названию/автору книги. Подробнее: хочу что-нибудь легковесное, легко интегрируемое в Mono или Nautilus (или на худой конец в Chrome), чтобы искать на диске книгу если есть название и/или автор. Примечание: вот аналоги, но без блэкджека и дев прекрасных (и только на винде ):

Точно понадобится: DjVuLibre

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

Visual Studio Graph Vis

Думаю, что у тех кто писал на C++, используя Visual Studio, возникало желание во время дебага визуализировать структуры данных на указателях (деревья, графы, другие иерархические структуры), вместо того, чтобы долго и нудно переходить от одного узла (экземпляр структуры) к другому средствами стандартного дебагера и рисовать это все на листе бумаги, особенно если граф состоит более чем из 10 вершин и в нем много ребер. Предлагается написать что-то вроде плагина для VS, который позволит это сделать.

Предложил: Шугаепов Ильнур

Проверяющая система Electronic-Bash

Все мы недавно испытали на себе некоторый дискомфорт и неудобство при написании контрольных/дз по башу. Не самой последней причиной было то, что проверяющим, разумеется, хочется автоматизировать процесс проверки - однако при обратной связи по e-mail это все выходит довольно громоздко и неудобно. Например, ты отсылаешь задание, надеешься на лучшее, а через три дня, уже после дедлайна, тебе твое задание возвращают, потому что ты принимал входные данные как аргумент из командной строки, а надо было читать со стандартного потока ввода. Предлагается решить эту проблему, позаимствовав идеи у АСМ-программирования, а именно, идеологию проверяющей системы e-judge - ты отправляешь задание, и оно сразу тестируется на сервере, выдавая некоторый вердикт общего вида (Presentation Error, Security Violation, Wrong Answer и т.д.).

Нетрудно догадаться, что понадобится Bash, и что-то еще (на чем будет написана обертка проверяющей системы - возможно, Python).

Предложил: Саввинов Дмитрий

Страх и ненависть в sed

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

Требования: видимо, знание sed (ну оно у нас и так есть, верно?). Полезными будут знания теории компиляторов, языкостроения ну вообще вот всего вот этого вот.

Предложил: Саввинов Дмитрий

Автогенератор конспектов

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

И я предлагаю написать программу, которая будет автоматически генерировать конспект по видеозаписям. В первом приближении идея в следующем: берем видоеурок, разбираем на аудио и видео. Аудио распознаем с помощью какой-либо библиотеки для распознавания речи (Yandex SpeechKit, google speech api или др.) Из видео с помощью OpenCV выбираем "важные" кадры и составляем это в документ вида "картинка - текст -картинка - текст -..." синхронизируя это по времени, что бы текст соответствовал картинке, под которой он написан. На выходе получаем конспект в pdf,html,epub или в каком-либо другом формате.

Понадобится: С++, OpenCV, Yandex SpeechKit/Google Speech API


Предложил: Чаркин Константин

Выйграй у друга!

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

Нужны руки для: C++, Qt, OpenCV.

Предложил: Михаил Митрофанов

Картина друзей для мгновенного сообщения

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

Нужны руки для: C++, Qt.

Предложил: Михаил Митрофанов

Имиджборд АУ.CH

Анонимный имиджборд, где все студенты могут свободно обсуждать инфу связанную с университетом и учебой (и не только). Руководству университета будет достаточно удобно получать фидбек от студентов. В чем сложности и польза проекта:

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

Предложил: Поляков Семен

WebCam Multi-touch

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

Предложил: Голованов Сергей

Визуальные закладки для Chrome

Раньше были отличные ВЗ от Яндекса, но потом они решили все испортить и переделали их. Старая версия нормально не ставится, новая не очень, альтернативы тоже не хороши (слишком много ненужных вещей). Хотелось бы сделать клон этих ВЗ ([1]). Желательно процентов на 95 сохранить старый дизайн и функциональность + добавить бекап конфига.

Предложил: Голованов Сергей

Punto Switcher for Linux

Под Linux нет НОРМАЛЬНОЙ альтернативы Punto Switcher. Хотелось бы, ее сделать. Понятно, что это явно не дело 3-х дней, но просто поиграться то можно.

Предложил: Голованов Сергей

AU Initiative

В общем-то, многие преподаватели АУ и сама администрация всегда готовы выслушать некоторый фидбек от студентов и, при необходимости, что-то изменить. Однако некоторые вопросы попросту не могут решаться без участия остальной группы или потока (например, если хочется попросить лектора читать лекции быстрее/медленнее, пройти какую-то особую тему и т.д.), другие связаны с какими-то финансовыми вложениями (утрированный пример - покупка кофеварки в общагу). Так или иначе, для административного состава зачастую хотелось бы знать, сколько людей из всего потока поддерживают данное начинание. Не исключено, что инициатива для своего воплощения требует также и некоторой активности со стороны студентов - например, список добровольцев, которые будут ответственными за поддержание кофеварки в чистом виде и рабочем состоянии. Наконец, нельзя исключать и фактор анонимности - многие люди могут стесняться подойти и высказать лично какие-то претензии преподавателю, потому что они хикки скромные и стеснительные люди.

Предлагается решить эту проблему, создав локальный для АУ аналог проекта "Российская общественная инициатива" [ https://www.roi.ru/ ] (только реально работающий). Каждый АУшник сможет, анонимно или с подписью, разместить там некоторую инициативу, далее другие АУшники за нее голосуют, и инициативы, получившие наибольшую поддержку общественности, рассматриваются администрацией. Даже не обязательно администрацией - портал может использоваться для самоорганизации студентов, типа "давайте те, кто живут в общаге, скинутся по 100 рублей на кофеварку".

Стек технологий: ясно, что какой-то Web, точнее сказать не могу, т.к. ни капли в этом не разбираюсь :)

Предложил: Саввинов Дмитрий

Deep image generation

Нейронные сети широко используются в поисковых системах для классификации и поиска похожих изображений. Оказывается, что кроме этого они умеют сами генерировать довольно забавные картинки, преобразуя какое-то исходное изображение. Примеры есть вот здесь: http://googleresearch.blogspot.gr/2015/06/inceptionism-going-deeper-into-neural.html

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

Предложил: Кирилл Пилюгин

Бинарные часы на Arduino

У меня есть контроллер Arduino Uno R3, макетная плата и некоторое количество светодиодов, резисторов и т.д. Хочется попробовать собрать из всего этого добра бинарные часы, которые бы показывали часы(12 или 24 часа) и минуты, и каждую секунду моргали отдельным диодом. Предполагается, что их можно запитать от компьютера и оттуда же брать показания часов. Либо же брать внешний модуль - таймер и снимать время с него, а контроллер питать от кроны.

Что нужно: понимать, как прогать под Ardiuno, не бояться языка С, понимать, как собирать электрические схемы.

Предложил: Жаворонков Эдгар

Плагин для google chrome

Нужно написать плагин, который позволяет прослушать музыку из ВК.

Функциональность:

  - возможность поиска, а затем прослушивания песен
  - добавление в плейлист пользователя новых песен
  - удаление из плейлиста пользователя песен 
  - может быть что то еще

Предложил: Сергей Козлов

Machine Learning Meetings

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

Предложил: Андрей Серебро

Мессенджер-гонец

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

Предложил: Андрей Серебро

Вариация ToDo

Все время забываю какие есть домашние задания и какие у них дедлайны. Еще во время выполнения какой-то работы, полезно делать перерывы и заниматься чем то другим, чтобы потом взглянуть на все свежим взглядом. Можно написать приложение на android, в которое заносишь список дел с приоритетами и дедлайнами. Когда появляется желание что-то поделать, нажимаешь кнопку, оно показывает какую-нибудь задачу (исходя из приоритетов, дедлайнов и задач, котороые выполнялись до этого). После этого приложение через какое-то время оповещает о том что пора отвлечься.

Предложил: Роман Васильев

Навигатор по удлинителям

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

Предложил: Алексей Степанов

Локальный полигон

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

Предложил: Алексей Степанов

Аэропорт

Онлайн игра для телефона на питоне. В нашем ведении находится аэропорт и маленькая деревня вокруг него. Краткий TODO для пользователя:

  • Делай рейсы чтобы открыть рейсы. (в новые города)
  • Покупай новые самолёты
  • Строй служебные здания на территории аэропорта: ангары, дьютифри
  • Развивай деревню: магазины, бары, кафе, школы, аптеки, дворцы спорта, вертолётные заводы, .
  • Развивай армию: истребители, ракеты
  • Играй в мультиплеер - набеги на другие аэропорты - выглядит как морской бой
  • Развивай гусей.

Я четыре года хочу эту игру!

Предложил: Алексей Степанов

Рисовалка клеточных автоматов

Все наверняка видели игру "жизнь". Она является частным случаем клеточного автомата. Предлагаю написать рисовалку произвольных клеточных автоматов(1d или 2d) с произвольным правилом и начальным состоянием. Хочется возможности задания скорости анимации, прокрутку к отдельному шагу и возврат назад.

Предложил: Леонид Сташевский

Распределенное кодирование видео

Удивительно, но современные мобильные устройства могут снимать видео в 4К. Это восхитительно, но когда вы захотите посмотреть такое видео на своем laptop'е, Вас ждет горькое разочарование, так как встроенная графика достаточно хороша для декодирования/кодирования только у поколения процессоров Broadwell и Skylake (наверное, я тут я обманыаю, но не суть). Выход: кодировать видео самостоятельно, а для этого есть FFMPEG. Но на одном laptop'е это жутко долго, поэтому было бы круто разбить файл на части, отправить эти задачи на разные laptop'ы (конечно же у Вас есть друзья, которые Вам помогут кодировать видео, ну или вы арендуете облако). Вот, вот это распределенное кодирование! Вы потом склеиваете у себя на laptop'е полученные по сети обработанные кусочки от worker'ов (друзей) и - счастье.

  • Если вы ничего не поняли, но осознали, что это круто, то мой знакомый расписал тут (с картинками!): http://habrahabr.ru/post/218063/
  • Есть базовая реализация идеи от автора статьи выше. Это 3 файла на Python (client, worker, server). При умеренных танцах с бубном это даже работатет: https://github.com/ValdikSS/distvidc

Что хотелось бы получить? Я вижу это как web-страничка с одной кнопкой ("Выбрать файл"), через которую Вы загружаете Ваше видео, а потом получаете перекодированный результат. На самом деле, если написать качественный менеджер задач, который будет распределять нагрузку по worker'ам, работая с несколькими клиентами одновременно, то будет уже очень круто.

Далее останется создать свое Community c рейтингом, начать получить заказы для кодирования видое от HBO... Ну, вы понимаете)

Предложил: Ваня Абрамов.

Генератор идей для DevDays

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

Видимо понадобится много гуглить. Ну и еще немного машинного обучения.

Предложил: Марк Геллер

Боты и каналы

Суть: запилить бота для telegram у которого будет пара команд аля:

- /add_source SOURCE_NAME URL [???]

Добавляет источник, в котором бот будет следить за изменениям - новыми постами на странице паблика, группы, пользователя вконтакте или, например, под изменениями будет пониматься любые изменения, внесённы в нашу SEWiki (это нужно обдумать).

- /broadcast_to_channel CHANNEL_NAME SOURCE_NAME

Говорит боту, что все изменения, которые происходят в источние SOURCE_NAME должны транслироваться в Telegram-канал с именени CHANNEL_NAME (бот должен быть ручками воздвигнут в администраторы этого канала).

Юзекейсе: Фигачим канал SE2015Channel и добавляем туда бота в админы. Теперь в диалоге с ботом говорим: /add_source "http://vk.com/se2017" SEVKGROUP и /broadcast_to_channel SE2015Channel SEVKGROUP и радуемся тому, что нам теперь не нужно ходить в этот VK, чтоб узнать кто чего понапостил в нашей SE-группе, ведь нам теперь все новости валятся в Telegram.

Предложил: Егор Горбунов