Новые интерфейсы
Участники проекта
Руководитель
В начале семестра всю нашу группу пригласили в офис компании JetBrains, в теме письма значилось «Практика». Там нас ждали идеи. То есть, конечно, не сами «идеи», а коллектив программистов, занимающихся очень разными проблемами и готовых взять нас «под крыло». Под «разными» я имею в виду разброс от задач биоинформатики до XML-парсера, от structure from motion до SQL баз, от разработки плагинов для языка Scala до графической иллюстрации физических процессов, от разработки языка, описывающего логику диалогового окна, до участия в разработке социальной сети для IT профессионалов. Кроме того, инициатива студентов всегда приветствуется — можно предлагать свои идеи.
Мой выбор остановился на проекте под названием «новые интерфейсы». Это командный проект — мы разрабатывали его вдвоём. Перед нами стояла задача облегчить управление слайдами при работе с проектором — заменить управление мышкой на управление лазерной указкой.
Зачем это нужно? Докладчику часто бывает удобно перемещаться, а не стоять все время рядом с ноутбуком, так же обычно нужно обращать внимание аудитории на какую-то часть слайда — для этого используется лазерная указка. Так почему бы не совместить приятное с полезным?
Проект сразу разделился на две параллельно разрабатываемые части: модуль, отвечающий за распознание входящего сигнала (что хотел пользователь? поменять слайд? закрыть презентацию?) и модуль, обрабатывающий входной видео-поток. Для распознавания сигнала нами построена скрытая марковская модель, для обработки видео и поиска пятна от указки мы используем библиотеку OpenCV. Вся разработка ведётся на языке C++ под Linux.
Каждую неделю мы встречаемся с нашим руководителем — обсуждаем достигнутые результаты, консультируемся по возникшим вопросам и строим планы на будущее. В течение недели мы пишем код, тестируем его, находим возникшие проблемы, обсуждаем это в команде.
Очень приятно работать над проектом не потому что «так надо», а потому что «хочется». Трудиться над программой, которую создаем мы сами. Она меняется изо дня в день, таким образом, как нам этого хочется.
Конечно, у любой медали две стороны — на практику требуется довольно много времени — нужно освоить новые технологии и тут же применить их на деле. Но есть руководитель практики — наставник, всегда готовый помочь советом. Мы в своей работе проблему времени решили так: при каждой встрече обсуждается задание «по минимуму» и то, что бы «хотелось успеть». На «обязательную» часть (то есть ту, которая нужна прямо сейчас для дальнейшей разработки) обычно уходит не так много времени — часа три-четыре. А дальше уже по желанию. Обычно оно есть :)