Devdays spring 2014
And may the odds be ever in your favour.
Содержание
- 1 Темы проектов
- 1.1 GuanoDoc
- 1.2 Code Visualization
- 1.3 Web Notifier
- 1.4 Дунгеон Кравлер
- 1.5 Дранкард Кравлер
- 1.6 DRY
- 1.7 BRO (aka Beta Reduction Online)
- 1.8 Trello
- 1.9 CultSim
- 1.10 Word Cycles (or Word Psychos): The Game
- 1.11 Worst Alarm Clock Ever Android App
- 1.12 Android Usb listener
- 1.13 Прогноз погоды из статистики
- 1.14 Cards against humanity
- 1.15 Corovan: The Game
- 1.16 TurboTranslator
- 1.17 Модернизация через инновации
- 1.18 Парсер-комбинаторы для самых маленьких
- 1.19 EasyPassy
- 1.20 Беседка
Темы проектов
Тут пишем идеи. Нумеруйте или подписывайте названия своих идей, чтобы было видно, где начинается новая идея.
Подсказочка: жмём вверхнем правом углу "представиться системе", после авторизации жмём вверху слева "править"
GuanoDoc
Никто не любит писать джавадоки. Но без них у вас не принимают код. Так давайте их генерировать! Мы можем делать это на основе содержимого кода и названия сущностей.
Предложил Аркадий с подачи Никиты Бубнова.
Code Visualization
Идея визуализировать музыку появилась давно. Вы можете проследить этот вопрос, начиная от первых экспериментов с цветомузыкой, заканчивая эффектами в кончине и игрой AudioSurf.
Хороший код не менее прекрасен чем музыка, но к сожалению не каждому дано это понять. Можно сделать визуализатор кода, который будет делать приятный взгляду непосвященного видеоряд на основе программного кода.
Предложил Калакуцкий Аркадий.
Web Notifier
Мы живем в ужасном мире. Мире, в котором новые задания по статистике выкладываются на вики, а если ты хочешь следить за тем как разворачивается интересная дискуссия или за выходом свежих выпусков любимого комикса/сериала/курса лекций, то ты вынужден регистрироваться в очередном сервисе.
Хватит это терпеть!
Даешь универсальный сервис по отслеживанию изменений.
Хочется уметь отслеживать изменения произвольных страниц, получая уведомления почтой или каким-то другим способом. Хорошо бы уметь следить за фрагментами страницы, игнорируя баннеры и рекламу.
Можно сделать это в виде веб-сервиса или плагина для браузера.
Предложил Калакуцкий Аркадий.
Дунгеон Кравлер
Игра, суть такова. Рогалик с процедурно-генерируемым миром, permadeath. Главный герой просыпается в подземелье, в рваной грязной одежде, ничего не помнить про себя, единственное что у него есть - книга, в книге описано все взаимодействие с игровым миром, в книге изначально есть только первые n страниц (как дышать, как ходить), после чего игрок отправляется в свой нелегкий путь по подземелью. Подземелье рандомно генерируется, пользователю встречаются разные комнаты с квестами, врагами, ресурсами, новыми страницами книги с новыми возможностями (но самая соль, что если вы уже знаете, что делать, то никто вам не помешает сделать все, как вы хотите =)))). В общем, упор на исследование мира, случайности/неожиданный встречи.
Технологии: скорее всего Java, консольный интерфейс (old5k00l).
Предложили: Никита Карташов, Марат Хабибуллин.
Дранкард Кравлер
На основе предыдущей идеи (Дунгеон Кравлер) и одной домашки: Рогалик - симулятор пьяницы, примерные основы правил кажется тут. Пьяниц много - есть возможность добавить слово онлайн в название и в суть - игроки играют за пьяниц. Фичи: прокачка до 80 лвл, косплей и грабежи корованов (с).
Технологии: консольная Java.
Предложил: Бубнов Никита.
DRY
Расширение для Chrome, подсказывающее фразы при общении в VK и проверяющее написанные сообщения на то, что подобное вы уже писали (то же самое при добавлении песенок и так далее). Также нужно было бы сделать возможность шаблонного общения (в смысле, подсказок, что сказать из шаблонов).
Я еще придумал one-liner: put your VK out to DRY!
Технологии: HTML, CSS, javascript, вот это все.
Предложил: Никита Карташов.
BRO (aka Beta Reduction Online)
Веб-приложение наподобие этого, только для редуцирования термов нетипизированного лямбда исчисления. Пользователь вводит терм, программа подсвечивает ему места, которые можно редуцировать, после щелчка на одном из таких мест редуцирует его и выдает результат в котором снова можно выбрать что редуцировать (если, конечно, еще хоть что-то осталось).
Технологии: Haskell/Yesod или Ur/Web.
Предложил: Николай Обедин.
Trello
Trello - система учета задач, которые нужно сделать, задачи можно разбивать на списки, к задачам можно прикреплять вложения комментарии, чек-листы, отмечать человека, ответственного за задачу. (Пример) Официальные клиенты Trello есть под iOS и Android, но нет под Windows Phone. Неофициальные клиенты очень неудобные и некрасивые. Задача - создать красивый клиент под Windows Phone 8 с базовыми функциями.
Технологии: Windows Phone SDK, REST API
Предложил: Даниил Овчинников
CultSim
Из темных пучин варпа мне пришла идея написать симулятор служителя культа: а ля старые симуляторы из 2000х: мы управляем действием ГГ, устраиваем ритуалы, приносим жертвоприношения, боремся с другими культами, начинаем вести свою ячейку и т.д. В общем, простор необычайный, идея относительно просто реализуемая, кроме того спать тоже будет когда.
Технологии: Практически любые, я вижу игрушку десктопной, по сути подобное раньше писали буквально на винформах, нам можно сделать что-то попригляднее.
Предложил: Никита Карташов
Word Cycles (or Word Psychos): The Game
Представьте себе такую игру. Есть 2 игрока, каждый называет по очереди слово на заданную букву, но не просто называет, а запоминает каждое слово, которое он произнёс. По команде судьи "Замкнуть словоцикл!", игроки начинают по очереди повторять слова с самого начала в том порядке, в котором они их называли. Если оба успешно повторили всю цепочку, игра продолжается дальше, накапливаются новые цепочки. Если один из игроков ошибся, забыл слово или не успел произнести очередное слово за определённый интервал времени, который выделяется для ответа, то он проигрывает раунд, а второй получает количество очков, равное длине цикла слов.
Пример успешного замыкания =):
А: торт
В: телега
А: трос
В: треска
Судья: Замкнуть словоцикл!
А: торт
В: телега
А: трос
В: треска
Предлагаю реализовать такую игру в виде вэб странички, чтобы можно было играть по сети с друзьями (например, повесть на github pages). При чём, предлагается сделать такие фичи:
1) Проверка слов - чтобы игроки не писали слова типа "асапсия" или "каминопиство", то есть несуществующие слова, можно использовать какой-нибудь словарь, например API сервиса Яндекс.Словарь, для проверки вводимых слов; сделать для 2ух языков (en, ru)
2) Сделать возможность создавать много параллельных матчей, отображать список и счёт текущих схваток, возможность наблюдать за поединком других людей.
3) Возможно, сделать матчи для 3ёх и более игроков (хотя тут есть тонкости с увеличением времени на ответ)
4) Сделать кучу режимов игры:
- слова на заданные буквы, на случайные, на изменяющиеся буквы в определённой заданной перед схваткой последовательности;
- компьютер как судья, 3тий игрок как судья, компьютер выбирает случайным образом момент замыкания словоцикла, игроки сами выбирают момент замыкания словоцикла;
- словоцикл сбрасывается после замкания или расширяется дальше
- игроки по команде замыкают не свою цепочку, а цепоку опонента (особенно супер будет, если игроков больше, чем 2) - it is madness mode!!!
- вывод содержания текущей цепочки слов на экран перед началом замыкания, чтобы можно было подсмотреть, показ какой-то части цепочки на экране в процессе схватки
и т.д. можно придумать миллион тонкостей и вкусностей. Из всего вышеперечисленного можно будет формировать режим очередного матча на усмотрение опонентов.
В целом, реализация должна быть не сложной и базовые вещи можно успеть за 3 дня, а потом радостно играть весь май!
Технологии: python + some web stuff
Предложил: Марат Хабибуллин
Worst Alarm Clock Ever Android App
основная идея - создать будильник для хитрецов выключающих будильник во сне и желающих улучшить свои навыки в c++
для того чтобы выключить этот будильник надо будет решить задачку на программирование.
Возможный формат:
a) Тестик с каким-то вопросом по теме с вариантами ответов
b) исправление сломанного кода. Например, где-то не хватает какого модификатора, неправильно названа переменная, в общем что-то по мелочи. Для исправления некоторые фрагменты кода можно будет форматировать (может все?). После редактирования если код проходит тесты, то будильник не звонит (или перестает звонить)
с) написать какой-то простенький хрестоматийный алгоритм (привет быстрая сортировка =))
возможны форматы когда будильник звонит первый раз выбранной мелодией и дает какое-то время для того чтобы решить задачку, после чего если задача не решена вовремя (или исчерпаны попытки решения?) начинает верещать свиньей Касперского
Ну и конечно мало просто не дать хозяину телефона (и его соседям) заснуть. Было бы круто прикрутить поддержку твиттера: если не справляешься с будильником приложение будет твитить "Мой будильник знает c++ лучше чем я. Какой позор.....". Ну и если все совсем плохо, то делать ссылку на задачку которую можно отправить друзьям чтобы хоть они заткнули эту шайтан машину.
Вероятные задачи:
Все эти тесты были бы бесполезны если приложение будет легко закрыть, поэтому надо добиться чтобы сервис будильника настолько въелся в телефон, что он должен сработать и из выключенного состояния и даже если само приложение (с тестом) закроют. Иначе говоря надо каким-то образом сделать сервис будильника если уж не бессмертным, то так чтобы он всегда себя заново запускал при попытке его убить.
Для пунктов b и c понадобится как-то прикрутить компилятор.(что наверно тоже непросто)
Привязка твиттера (если дело дойдет)
Маленькое sdk позволяющее делать задачки (задачки + тесты)
Технологии : Android, C++, Twitter api
Предложил: Ворончихин Стас
Android Usb listener
Приложение распознающее сигналы с usb устройства и позволяющее биндить всякие команды на них. Например открыть навигацию, переключить трек, позвонить кому-то и.т.д.
Вся соль заключается в том что интерфейс общения всяких приблуд обычно находится в прошивке и девайс реагирует только на стандартные команды которые были уже предусмотрены, а с таким приложением можно забиндить всякие комбинации для ввода с клавиатуры. А если дело выгорит, то при помощи приблуды типа этой http://www.ebay.com/bhp/bmw-ibus#ht_2197wt_1396 можно заменить магнитолу в машине на крутой планшет. И получим сердитую магнитолу с gps интернетом и angry birds =)
Технологии : Android
Предложил: Ворончихин Стас
Прогноз погоды из статистики
В Питере, особенно весной, очень быстро меняется погода, и прогнозы, особенно сроком больше чем на сутки, имеют обыкновение работать не лучше народных примет.
Есть несколько публичных архивов метеоданных, и по ним видно, что, во-первых, прогнозы и правда здорово врут, а во-вторых, наглядно видны закономерности вроде того, что, как правило, если в это время года где-нибудь в Беларуси плюс двадцать, а у нас плюс пять, и два дня дует южный ветер и падает давление, то, скорее всего, стоит ждать хмурого неба и резкого потепления.
Предлагается обобщить подобные зависимости и сделать сервис, предсказывающий погоду по закономерностям, выведенным из истории наблюдений и фактической погоды в окрестностях.
Если учитывать фактическую погоду в окрестностях, задача мало отличается от составления прогноза в принципе. Интересно как раз проверить, насколько хорошо работают именно статистические методы.
Технологии: whatever
Предложил: Вова
Cards against humanity
Идея реализовать http://cardsagainsthumanity.com/ в виде приложения для Вконтакте и на русском языке(возможно).
Предложил: Семён
Corovan: The Game
Хотел бы предложить сделать игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес... А движок можно поставить так что вдали деревья картинкой, когда подходиш они преобразовываются в 3-хмерные деревья. Можно покупать и т.п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т.п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого...). Ну а если за злого... то значит шпионы или партизаны эльфов иногда нападают, пользователь сам себе командир может делать что сам захочет прикажет своим войскам с ним самим напасть на дворец и пойдет в атаку.
Всего в игре 4 зоны. Т.е. карта и на ней есть 4 зоны, 1 - зона людей (нейтрал), 2- зона императора (где дворец), 3-зона эльфов, 4 - зона злого... (в горах, там есть старый форт...)
Так же чтобы в игре могли не только убить но и отрубить руку и если пользователя не вылечат то он умрет, так же выколоть глаз но пользователь может не умереть а просто пол экрана не видеть, или достать или купить протез, если ногу тоже либо умреш либо будеш ползать либо на коляске котаться, или самое хорошее... поставить протез. Сохранятся можно...
Технологии: С++, qbasic , фортран++ и maya++, NVIDIA 3D
P.S. Я джва года хочу такую игру.
TurboTranslator
Предлагаю сделать такую штуку, которая через микрофончик распознает какую-то речь (лучше всего человеческую), превращает её в текст, отсылает запрос в Google Переводчик, там текст переводится на нужный язык и проговоривается приятным женским/мужским google-вским голосом прямо в наушник или динамик.
Технологии: инновационные - WindowsPhone, C#, Android (опционально)
Предложил: Новокрещенов Константин
Модернизация через инновации
Одному студенту довелось увидеть кусочек прямой линии с президентом, и после того, как верховному главнокомандующему задали дежурный вопрос про то, чем отличается наш Народ от других, у него в голове мелькнула мысль «сейчас про широкую душу скажет». Вторая мысль у Владимира Владимировича в голове мелькнула после слов Владимира Владимировича, который в пиджаке, «немного пошире душой», и сериализовалась бы примерно как «БИНГО!».
Предлагается модернизировать наше открытое правительство, сделав инновационное приложение для игры в Bullshit Bingo по основам содержимого видеозаписей или трансляций выступлений политиков или других публичных персон.
Технологии: Chrome API, Google Speech API, JS
Предложил Владимир Владимирович
Вдохновил Владимир Владимирович
Парсер-комбинаторы для самых маленьких
Продолжаем обмазываться функциональщиной, на сей раз в контексте парсинга. Все знают как офигенны парсер комбинаторы. Есть идея сделать приложение для веба в котором из набора предустановленных комбинаторов можно собрать и протестировать свой парсер. Пользователю при этом не надо знать об аппликативных функторах и прочих страшных штуках, для него комбинаторы - это, натурально, кирпичики: перетащил на канву один, второй, соединил третьим, набрал тестовую строку, нажал "play", получил результат "parsed" или "error". В качестве примера можно посмотреть на поделку от Google.
Технологии: Elm, Fay или, на худой конец, JS
Предложил: Николай Обедин
EasyPassy
После упорного чтения за криптохеши, мне пришла идея сделать дополняху для браузера, которая добавляет в каждому заполняемому полю на страничке (альтернативно: только к <input type="password"/>) выпадающую менюху, где можно выбрать какой-нибудь криптохеш. Тогда вместо того, чтобы запоминать сложные пароли можно просто скормить хешу некий сид, например, "olololpishpish", после чего тот уже отправляет его дайджест. Таким образом, все рады: и сервис (пароль сложный) и вы (пароль для запоминания простой). Я уже джва года жду эту функциональность.
Технологии: HTML, CSS, javascript, вот это все.
Предложил: Никита Карташов
Беседка
Раз уже наступило лето, то можно (за три дня должны управиться) возвести адовейшую крытую беседку перед общагой для того, чтобы можно было культурно и под крышей сидеть и наслаждаться летом и уходящей молодостью.
Технологии: доски, гвозди, молотки, инженерная смекалка.
Предложил: Никита Карташов