Идеи на Devdays — различия между версиями
(→Архиватор: сжатие со случайным поиском) |
(→Архиватор: сжатие со случайным поиском) |
||
Строка 479: | Строка 479: | ||
Оригинальная идея | Оригинальная идея | ||
+ | http://major-m.livejournal.com/24329.html | ||
http://www.eecs.umich.edu/eecs/SPARC2013/talks/ronittrubinfeld.pdf | http://www.eecs.umich.edu/eecs/SPARC2013/talks/ronittrubinfeld.pdf | ||
Версия 20:48, 30 октября 2014
Did I ever tell you the definition of insanity?
Содержание
- 1 Темы проектов
- 1.1 Генерация данных по Схеме БД
- 1.2 DRY
- 1.3 pahom-lang
- 1.4 jsPerf improved
- 1.5 Paranoido
- 1.6 Аттраптор
- 1.7 Sitcomizer 2
- 1.8 IgnoreMe
- 1.9 MIndex
- 1.10 Порт shout на android (возможно, ios)
- 1.11 Дейтинг для хаскелистов
- 1.12 LaTeX complete
- 1.13 PerfChecker
- 1.14 BuildSystem Converter
- 1.15 Котяфикатор
- 1.16 Простой декомпилятор байткода
- 1.17 Умный декомпилятор байткода
- 1.18 Социальная сеть «вСтоловой»
- 1.19 Lektorium plugin
- 1.20 Presentation sitcomizer
- 1.21 SaaS распознавания чеков крупных продуктовых магазинов
- 1.22 GuavaToStream конвертер
- 1.23 Arduino Router
- 1.24 Gravity Fields
- 1.25 Игонь, Лед, Древесина и Бобер!
- 1.26 SECONF (SE conference)
- 1.27 Gmail Homework Manager
- 1.28 Twiktor
- 1.29 SToR Wars
- 1.30 Stash'n'Read
- 1.31 Лямбда-мэн
- 1.32 Архиватор: сжатие со случайным поиском
Темы проектов
Тут пишем идеи. Нумеруйте или подписывайте названия своих идей, чтобы было видно, где начинается новая идея.
Подсказочка: жмём вверхнем правом углу "представиться системе", после авторизации жмём вверху слева "править"
Генерация данных по Схеме БД
При разработке Базы Данных хочется проверить, что в схеме учтены все бизнес-требования (есть все связи между сущностями, нужные сущности действительно уникальны в разрезе таблицы, длина имени не меньше, чем задано, и т.д.). Для этого нужно заполнить БД семантически-корректными данными (то есть, если, например, столбец Имя, то и должны быть различные имена). Однако процесс заполнения БД данными - крайне рутинная операция. Поэтому, хочется автоматизировать процесс заполнения данными.
С технической точки зрения этот проект состоит из нескольких модулей.
1) Семантический модуль. Отвечает за генерацию правдоподобных данных. То есть, этот модуль принимает запросы (например, "сгенерируй мне Уникальное Name string типа длинной от 3 до 8 символов".) и выдаёт Имена, телефоны и т.д. Конечно же, если невозможно определить, что требуется сгенерировать, то происходит генерация случайнных данных на основе типа и ограничений (например, name1, name2, namename1).
2) Синтаксический модуль. Отвечает за получение ограничений (constraints) по схеме БД (или sql-коду). То есть, этот модуль должен отвечать фразами а-ля: "сгенерируй мне Уникальное Name string типа длинной от 3 до 8 символов".
3) Модуль базы данных. Этот модуль должен работать с базами данных, получать SQL код по схеме (Если это нужно), а также генерировать результирующий SQL код (набор INSERT-запросов).
4) Модуль программы. Этот модуль, грубо говоря, должен обрабатывать IO, а также взаимодействовать с другими модулями программы.
Как я вижу результат.
Результатом работы должны стать 2 программы. Первая программа описана выше (Семантический модуль, Синтаксический модуль, Модуль Базы данных, Модуль программы). Это консольное приложение (а-ля generator.jar), которое умеет работать с пользователем на основе заданных ключей.
Вторая программа - веб приложение. Тут есть интерфейс, в который пользователь может загрузить sql-код схемы БД и получить SQL-код с данными. Веб-приложение - это лишь-только клиент для консольного приложения, которое лежит рядом на сервере.
Технологии: Java, Hibernate, SQL, JavaScript, bootstrap 3.
Предложил: Павлюченко Денис.
DRY
Расширение для Chrome, подсказывающее фразы при общении в VK и проверяющее написанные сообщения на то, что подобное вы уже писали (то же самое при добавлении песенок и так далее). Также нужно было бы сделать возможность шаблонного общения (в смысле, подсказок, что сказать из шаблонов).
Технологии: HTML, CSS, javascript, вот это все.
Предложил: Никита Карташов.
pahom-lang
Вдохновившись LOLCODE написать медленный и беспонтовый, но вполне себе Тьюринг-полный (возможно функциональный) язык программирования, где все управлящие структруы - фразы из известной кинокартины.
Технологии: Java, C++, Python, Haskell, Scala?
Предложил: Никита Карташов
jsPerf improved
Есть такой сервис для тестирования производительности JavaScript кода -- jsPerf. Суть такова: пользователь публикует набор js-сниппетов, затем с разных браузеров заходят люди, агрегируется статистика времени выполнения по разным браузерам. Для таймеров использует benchmark.js, так что суть самого сервиса весьма проста.
Идея в том, чтобы сделать что-то похожее, но исправить недостатки и добавить фичи:
- Достаёт система защиты от спама. Можно было бы использовать OpenAuth (github'а например).
- Очень неудобное редактирование.
- В окошке не работает подсветка, нельзя нажать таб.
- Для всех сниппетов можно определить функции setup и teardown (которые вызываются до и после каждого сниппета). Внутри всё это склеивается в один исходник. При этом, легко допустить какую-нибудь глупую опечатку в названии общей переменной. Было бы неплохо сразу конструировать финальный исходник и прогонять на нём какой-нибудь линтер, сообщая пользователю об ошибках.
- Статистика по версиям браузеров (Chrome 31 и 32 считаются разными) не очень репрезентативна (версии Chrome выходят часто, бывают регрессии/баги). Можно добавить другие способы агрегации статистики:
- По семействам браузеров (Chrome, Firefox, IE).
- По годам (в среднем актуальных на 20??-й год версиях браузеров).
- По проценту пользователей на данный момент (как могут выглядеть усреднённые данные для браузеров, которыми пользуется 60% пользователей на данный момент). Это нужно потому, что некоторые хаки/идиомы с развитием JS VM`ов теряют смысл. Статистику можно брать оттуда же, откуда берёт Can I Use.
- Возможность смотреть статистику по разным ревизиям сниппетов будет полезной.
- Возможность объединять бенчмарки в наборы, чтобы можно было кинуть друзьям одну ссылку, которая бы прогоняла все бенчмарки.
- Перезагрузки страниц в 2014-м году -- жуткий анахронизм.
Технологии: Backend простой -- всё равно, на чём писать. На frontend хотелось бы React.js.
Предложил: Лёша Цветков.
Paranoido
Для составления дел и всяких заметок последнее время использую workflowy. По сути, обычные иерархические списки, только удобные, быстрые и с возможностью расшарить список кому-нибудь.
Но после кражи фотографий Дженнифер Лоуренс из iCloud, у меня зародился червячёк недоверия к клауд сервисам. Не говоря уж о том, что скоро хранить персональные данные россиян можно будет только в России. И как в этой атмосфере недоверия и неопределённости можно спокойно писать идеи для devdays в отдельный список?
Поэтому предлагаю сделать децентрализованный сервис ту-ду списков с шэрингом, и опционально с шифрованием и простым деплойментом.
Название Paranoido (по-русски "паранойду" или "паранойдо") -- сокращение от Paranoid To-Do.
В итоге, хотелось бы получить веб-апп.
Предложил: Лёша Цветков.
Аттраптор
Как известно, трактор — вещь, полезность которой во многих отраслях народного хозяйства сложно переоценить. Немного удручает лишь тот факт, что с его помощью можно преодолеть лишь достаточно небольшие расстояния. Однако, не стоит унывать! Покинуть пределы Солнечной системы нам поможет аттрактор — межгалактический трактор.
Глубины космоса коварны и полны опасностей. Главную угрозу космическому путешественнику представляют древние служители Темной стороны Силы — межзвездные комары. С мощным гулом носятся они по беззвучному пространству, сталкиваясь со всем на своем пути и обрекая живое на гибель. Лишь мудрые Йоды способны бороздить просторы Вселенной наравне с комарами в попытках противостоять им.
Однако, оседлавшему аттрактор трактористу не страшны комары, ибо аттрактор — это еще и свирепый раптор. Да-да, тот самый, что убывает насекомых наповал! Светлый водитель должен быть осторожен, потому что может случайно рассечь вместо комара и доброго Йоду. С другой стороны, Темные адепты прекрасно знают о боевых свойствах аттракторов и не стесняются использовать их в своих целях...
Итак, хотелось бы сделать простую игру (думаю, что в 3D; возможно, в браузере), в которой игрок мог бы управлять полетом аттрактора в космосе, истребляя комаров и уклоняясь от Йод. Впрочем, стоит предоставить игроку свободу выбора: пусть сам выбирает свою сторону Силы.
Число очков игрока сделаем изначально равным нулю. За убийство комара будем добавлять очки, за убийство Йоды — отбирать. Если игрок уйдет в минус, значит он злой, если в плюс — добрый. В зависимости от числа очков можно перекрашивать аттрактор в разные цвета и добавлять эффекты по вкусу. Крутость результата будет зависеть от его абсолютного значения.
Если захочется избавить игру от возможности летать бесконечно, можно добавить какие-нибудь убивающие астероиды. Ну и постепенно увеличивать скорость полета или что-нибудь в этом роде.
Хотелось бы сделать так, чтобы аттрактор постоянно менял свою форму. Отрисовывать его можно как угодно, подойдут самые безумные вещи. Предлагается подумать над управлением: можно дать возможность искажать пространство или делать еще что-нибудь в таком роде.
Предложил: Богдан Бугаев.
Sitcomizer 2
Ребята, как в прошлый раз, только теперь смешнявые картинки и как следует.
Технологии: java на андройд, чад кутежа.
Предложил: Никита Карташов.
IgnoreMe
Дичайшая консольная прога, на вход ваш проект, на выходе - гитигноры для него.
Технологии: вообще что угодно.
Предложил: Никита Карташов.
MIndex
Кроссплатформенный индекс, содержащий информацию о музыкальной коллекции пользователя.
Хранит:
- общеизвестные теги (артист, альбом и т.д.);
- малоизвестные теги (тональность, громкость и т.д.);
- техническую информацию (размер, битрейт, частота дискретизации)
- путь к файлу.
Поддерживает:
- поиск, запрос - строка без какого-либо форматирования;
- инкрементальное обновление;
- mp3, flac, wav, остальные форматы по желанию.
Индекс не делает избыточных чтений при обновлении (т.е. не читает файл целиком, чтобы узнать все теги).
Если вы заинтересовались и готовы представить проект на распределении, напишите мне, я в этот день присутствовать не смогу :)
Предложил: Семен Прошев
Порт shout на android (возможно, ios)
Не так давно зарелизился крутой IRC клиент - [1]. Это NodeJS приложение, позволяющее поднять собственный IRC сервер, к которому можно коннектиться с помощью браузера. Клиент у них тоже есть. Демо: [2]
Хочется всё это портировать на андроид. Для этого нужно подружиться с запуском NodeJS на android (смотрим в сторону [3]), а также обернуть веб-клиент в какой-нибудь мобильный фреймворк на JavaScript (классика - [4]).
Технологии: JavaScript, Node.JS, HTML5, Android SDK (Java).
Предложил: Павлюченко Денис.
Дейтинг для хаскелистов
Как все мы знаем, Хаскель - язык будущего.
Но чтобы показать, что Хаскель - язык, полезный в быту при решении повседневных задач среднестатистического веб-программиста, а также помочь уже просветлённым найти друга на лекцию по теории категорий, предлагаю написать на оном дейтинг (назвать можно "вМонаде", например).
Планируемый product value:
1. Авторизация будет только через гитхаб.
2. Поисковой запрос должен быть валидной программой на хаскеле.
3. В качестве ограничений приватности (кто может написать, кто добавить в друзяшки) можно будет добавить задачи на хаскеле (с ручным апрувом).
4. Гуй для слабаков: интерфейс должен быть по большей части текстовым, а управление, как в виме.
Технологии: типизированное лямбда-исчисление и параметрический полиморфизм.
Предложил: лже-Саймон Пейтон-Джонс
LaTeX complete
Открыл для себя writelatex, он торт, но там нет даже самого просто автокомплита, было бы круто его запилить как плагин для хрома.
Технологии: HTML, CSS, javascript, вот это все.
Предложил: Никита Карташов.
PerfChecker
Статический анализ уже давно спасает нас, находя ошибки в наших проектах, но статические анализаторы учитывают только особенности ЯП, а не используемых фреймворков.
Идея - набор правил статического анализа для нахождения типичных ошибок в "классических" java фреймворках (spring, hibernate, ...). Можно попробовать написать правила для, например, PMD для нахождения перфомансных проблем, вроде n+1, подъем бинов по классу и т.д.
В случае успеха, это будет реально востребованный проект с кучей звезд на гитхабе!
Технологии: Java, Статический анализ
Предложил: Сергей Целовальников
BuildSystem Converter
Иногда для решения проблем требуется перевести проект с одной системы сборки на другую, это мучительно и чревато ошибками, хочется автоматизировать это хоть как-нибудь.
Идея - Конвертер между системами сбоки приложений (maven, gradle, sbt, leiningen ...)
Можно попробовать реализовать общее синтаксическое дерево для всех систем сборки, а затем конвертер между всеми системами. Коненчо, т.к. некорые системы сборки императивные, другие декларативные - идеально конвертить между ними не получится, но в рамках дев-дейс можно попробовать сделать хотя-бы базу, конвертор зависимостей и компиляции.
Технологии: Java, Куча систем сборки
Предложил: Сергей Целовальников
Котяфикатор
Берем текст и весь мат превращаем котяток, кошечек и подобное. Примеры не приведу, иначе забанят.
Технологии: любые.
Предложил: Никита Карташов.
Простой декомпилятор байткода
Простой декомпилятор байткода, интегрированный в IDE. Всегда хотелось написать, но не было времени.
Технологии: Java, байткод
Предложил: Сергей Целовальников
Умный декомпилятор байткода
Тут увидел, что чувак выше написал, что хотел написать декомпилятор байт-кода - так вот, это прошлый век!
Идея - просканировать тонны open-source кода и его скомпилированного байт-кода, сохранить соответствие и каким-нибудь крутым умным алгоритмом находить соответствие кускам байткода - куски open-source кода, в результате чего достичь идеальной декомпиляции! Верояно, сделать это как веб-сервис (локально - слишком тяжело).
Технологии: Java, байткод + возможно, любой веб-фреймворк, дата-майнинг
Предложил: Сергей Целовальников
Социальная сеть «вСтоловой»
Работая в JetBrains, периодически сталкиваешься со следующей проблемой: начало обеда в 13.00, а к 13.15 какое-нибудь из популярных блюд уже может закончиться. Поэтому если не успеваешь зайти в столовую к часу, рискуешь остаться без своего любимого блюда.
Проблему обычно решают так: просят кого-нибудь отложить еду. Но меню каждый день разное и вы полностью полагаетесь на вкус вашего коллеги, так как никто не будет звонить вам из очереди и уточнять, что вы сегодня хотите на обед из предложенного. Ну или расчитываете на кристалльное знание коллегой ваших кулинарных предпочтений...
Суть работы приложения такова:
- приходишь в столовую;
- выбираешь в приложении человека из списка друзей;
- наводишь камеру на сегодняшнее меню;
- программа автоматически выдает состав обеда;
- ?????
- PROFIT
Конечно, все это можно устроить в виде социальной сети, с добавлением в друзяшки и лойсами, но ограничимся простой версией без регистрации и смс: разовая передача коллеге файлика предпочтений.
Генерацию такого файла можно оформить следующим образом: выставление оценок предложенному набору блюд (например: лосось тэрияки - 8, стейк из свинины - 10, сырники - 7, крем-суп из брокколи - 1).
Можно реализовать следующие фичи:
- "поддержка" вегетарианства :)
- или любых других запретов (запрет на блюда с рыбой: неприязнь или аллергия)
- поддержка любого меню
Фичи для JetBrains:
- автоматическое определение опций "на тарелку/в контейнер"
- отображение подписи, которой пользуется коллега, когда ставит контейнер в холодильник
- потенциальное выкладывание информации о кулинарных предпочтениях на JetPeople :)
Технологии: iOS/Android, OpenCV
Предложил: Андрей Козлов
Lektorium plugin
За время обучения в институте я много раз сталкивался со следующей проблемой: лектор читает медленно, студентам скучно, они постепенно начинают заниматься своими делами и смысл лекции пропадает.
В чем причина? Скорость усвоения информации среднего студента КТ ИТМО/МИТ АУ или CSC достаточно высока и лекции можно читать в полтора-два раза быстрее.
Как решается проблема? Многие из этих лекций лежат на Лекториуме, качаем, ставим на 2.0x, profit. Простая версия: предлагается написать небольшой тул для сбора анонимной информации по лекции и автоматического выставления скорости воспроизведения.
Усложненная версия, вдохновленная аналогичной фичой на Coursera: веб-камера должна видеть, что вы внимательно следите за происходящим на экране. Если вы начинаете засыпать, то программа вас будит, а скорость воспроизведения увеличивается. Заодно собирается информация о рекоммендованной скорости воспроизведения.
Оформить можно в виде плагина к какому-нибудь популярному кросс-платформенному плееру (VLC, например).
Технологии: Java, GStreamer, Google docs
Предложил: Андрей Козлов
Presentation sitcomizer
Как известно, Антон Михайлович любит вставлять в презентации доставляющие картинки, мгновенно поднимающие настроение у аудитории.
Во-первых, подбор картинок можно автоматизировать (по тексту или некоторой скрытой мета-информации).
Во-вторых, ничто не вечно под луной. Например, картинки с миньонами были очень популярны в 2013-м, но затем вышли из моды. И в 2014 уже не так доставляют. Поэтому предлагается добавлять картинки с учетом текущих трендов (на основании данных из Твиттера). Например, на момент написания идеи, это слив фотографий с iCloud, санкции, рекордные значения курсов евро и доллара, выход iPhone 6 Plus, OS X Yosemite.
Заодно это решит проблему неправильных дат, указанных в презентациях.
Технологии: machine learning, beamer
Предложил: Андрей Козлов
SaaS распознавания чеков крупных продуктовых магазинов
Думаю, все знают, что сейчас популярны программы для личной бухгалтерии. Такой вид программ делают все: начиная от парней с хакатонов и, заканчивая - крупными компаниями. Однако крайне часто в программах для домашней бухгалтерии нет функции распознавания чеков. Кто-то не знает, как это делать, у кого-то - нет времени.
В рамках ДевДейс можно сделать SaaS проект, который будет выдавать разработчику API. Разработчик будет посылать чеки своих пользователей, а система - результат в некотором едином формате.
Предлагаю в рамках ДевДейс остановится на 2-3 магазинах (например, пятёрочка, магнит, Ашана). Для демонстрации успешности реализации SaaS ещё можно сделать простенькое мобильное приложение, работающее с этим API.
Технологии: Pattern recognition, Java
Предложил: Павлюченко Денис
GuavaToStream конвертер
До выхода Java 8 во многих проектах писали код в функциональном стиле с помощью либы google guava, но вот вышла Java 8 со стримами и лямбдами, у нас тоныы кода, написанного с помощью Guava, а хочется быстрых, красивых и модных стримов.
Идея - написать плагин для IDE (IDEA или Eclipse), который бы конвертил код, написанный с помощью Predicate, Function и FluentIterable в Guava в стримы java 8.
Давайте же избавимся от некрасивого легаси (теперь) кода и сделаем мир быстрее и лучше!
Технологии: Java 8, Java AST
Предложил: Сергей Целовальников
Arduino Router
Вот сидим мы на практике, а WiFi - WirelessForAll снова никакой, рядом в стене ethernet розетки, а кабеля нет, да и телефон с планшетом к ethernet не подключить!
Идея - собрать и запрограммировать этакий мини-роутер на основе arduino, из которого бы торчал маленький коннектор, которым бы он втыкался в такую розетку и начинал раздавать интернет, а пароль отображал бы на экранчике. Итак, нужно купить ардуинку, wifi-модуль и экранчик от нокии, собрать это все вместе, запрограммировать и получить прототип устройства, которое бы спасало нам жизни до конца обучения!
Только представьте, приходишь куда угодно, втыкаешь мини-роутер в ethernet розетку и получаешь wifi !
Технологии: Arduino, WiFi, C, паяльник
Предложил: Сергей Целовальников
Gravity Fields
В школьные времена многие из нас (ну я на это надеюсь :) ) играли в Gravity Defied, классные были времена! Недавно я сидел в переговорке с незамысловатым рисунком на стекле и придумал как можно вдохнуть в старую игру новую жизнь.
Представим, что теперь у нас не одна трасса, а 3, между которыми можно переключаться в любой момент, это нужно, чтобы, например избежать пропасти или объехать препятствие (пальму). Прибавим к этому увеличение скорости (в отличие от оригинала) и более реалистичную физику.
Выглядит это примерно так:
Т.е. прямо сейчас игрок может переключиться на одну из 2 других трасс, чтобы объехать пальму и ехать уже по ней, остальные трассы на процесс влиять не будут.
Получится интересная игра, которой обеспена долгая жизнь в маркетплейсе.
Технологии: Любой игровой мобильный движок (например, Unity)
Предложил: Сергей Целовальников
Игонь, Лед, Древесина и Бобер!
Идея игры, Бобер решил поднять дерево на верх горы, как - конечно привязать парашют и поджечь, чтобы под воздействием теплого воздуха бревно взлетело! Итого, бревно летит вверх, огибая каменные препятствия, для этого мы поджегаем и тушем бревно в разных местах. Цель - помочь бобру доставить бревно наверх горы!
Выглядит это примерно так:
Технологии: Любой игровой мобильный движок (например, Unity)
Предложил: Сергей Целовальников
SECONF (SE conference)
Крутой универ! Крутая кафедра! Крутые программисты! Нет своей конференции.
Надо исправляться, давайте же организуем свою прикладную конфу, где будем рассказывать про крутые штуки, работая с которыми успели набить шишек.
Мы станем первой кафедрой, у которой есть своя конференция! Формат - 3 доклада по 20-25 минут + 10 минут на вопросы. Первая будет подготовлена командой за время DevDays, доклады будут сделаны организаторами, потом каждые 3-4 месяца будем находить докладчиков и проводить очедную крутую мини-конференцию.
Технологии: Speaker skills
Предложил: Сергей Целовальников
Gmail Homework Manager
Как известно, в АУ активно используется Gmail, как в плане отправки домашних работ на проверку, так и информирования студентов. Это приводит к тому, что у преподавателей и студентов оказывается много некаталогизированных писем, в связи с чем некоторые преподаватели вынуждены писать хитрые скрипты, а студенты следить за правильностью темы писем, чтобы эти скрипты работали.
Предлагается:
Задача 1: Chrome/gmail exstension, проверяющий перед отправкой письма правильность указанной темы в зависимости от адресата ( с автоматическим добавлением Антона Михайловича в копию, при желании).
Задача 2: Chrome exstension, который автоматически каталогизирует принятые/отправленные письма, дабы облегчить жизнь студентам и преподавателям, с возможностью настройки шаблонов текста письма, темы, адресатов для конкретных каталогов.
Технологии: Gmail API, JS.
Предложил: Юргин Павел.
Twiktor
Ни для кого не секрет, что в твиттере ведется активная политическая война с участием огномного количество ботов, забивающих информационный эфир. И пока мы учимся быть крутыми разработчиками, кто-то проектирует глупых ботов, которые могут только постить сообщения по команде.
Мы же можем написать "умного бота", не просто програмку которая постит по команде, а самостоятельно живущий AI !
Принцип работы
- Бот получает просматривает определенный набор самых популярных людей
- Парсит твит, вытаскивая факты с помощью томиты
- Переформулируя эти факты постит либо твит на свою стену (как оригинальное мнение), либо в ответ на чужой твит. (Чтобы люди читали ответы и подписывались на бота) (Ответ на твит в виде переформулированной мысли действительно должен работать)
- Как только у ботов наберется критическая масса подписчиков - мы получим армию, которая сможет выводить в топы теги и влиять на всех подписчиков.
- Далее создаем SaaS сервис, который предлагает услуги вывода в топы тегов и влияние на массы в твиттере.
- Наращиваем базу в твиттере, масштабируемся на другие соцсети.
По сути создав единый механизм эмуляции пользователей, можно создать неплохой инструмент влияния на массы в сети. Начать легко именно с твиттера, т.к. осмысленные 140-cимвольные посты генерировать по другим твитам (для начала с помощью tomita parser) проще, чем посты во вконтакте.
Технологии: Tomita parser, linguistic analysis, political situation, Java, Twitter API
Предложил: Сергей Целовальников
SToR Wars
Special Theory of Relativity Wars
Безумный 2D-шутер с маленькой скоростью света и, соответственно, искривленным пространством и искривленным временем.
- Тактика! Летаешь быстро — меньше времени прожил, а значит меньше раз выстрелил. Стоишь на месте — в тебя легче попасть.
- Непредсказуемость! Видишь соперников в прошлом, но что они сделали после этого?
- Маленькая скорость снарядов лазерного оружия наконец-то оправдана!
К сожалению, мультиплеер принципиально невозможен (пока не разгоним игроков до околосветовых скоростей за несколько секунд).
Технологии: Java, C++(?)
Предложил: Лиференко Даниил
Stash'n'Read
Я люблю читать. В интернете есть множество интересных статей и книг, однако, не всегда удобно читать их с экрана компьютера/ноутбука. На выручку приходит электронная книга, которую я частенько беру с собой когда на горизонте появляется необходимость длительной поездки в общественном транспорте или пребывания на скучном мероприятии. Есть несколько сервисов, которые я использую для извлечения полезного текста из веб-страницы, но у них у всех одна беда: они слишком автоматизированы. Конечно, их эвристики позволяют обработать большинство страниц правильно, но нет-нет, да что-нибудь ненужное проскочит (или, что еще хуже, не попадет что-нибудь нужное).
Отсюда такая задача: сделать плагин для Chrome/Firefox для извлечения полезного текста из веб-страницы в полуавтоматическом режиме и отправки результата на электронную почту @kindle.com. Что значит "полуавтоматический режим"? Это значит, что на странице будут подсвечены элементы, которые наши эвристики посчитают полезными, а пользователю будет предложено либо подсветить щелчком мыши дополнительные элементы, которые он хотел бы включить, либо убрать те, которые ему не нужны, а по окончании процесса нажать кнопочку "Send" и получить готовый текст у себя на читалке.
Технологии: JS
Предложил: Николай Обедин
Лямбда-мэн
Задача из последнего ICFP. Почувствуй себя "большим желтым кругом" и пернесись в 80е. Помоги пакману пройти лабиринт.
баянистое видео про разработчиков видеоигр для привлечения внимания
Технологии: решим коллективно, но лучше fp.
Предложила Алина Крамар
Архиватор: сжатие со случайным поиском
Допустим, у нас есть много данных, которые хорошо сжимаются. Хранить их в распакованном виде как-то странно, но нужно иногда читать маленькие кусочки. Хочется иметь адекватный архиватор, который умеет вытаскивать отдельные байты, не распаковывая весь архив сразу. Вариант реализации: на основе LZ78.
Оригинальная идея http://major-m.livejournal.com/24329.html http://www.eecs.umich.edu/eecs/SPARC2013/talks/ronittrubinfeld.pdf
Технологии: не принципиально.
Предложил Марат Микушкин