Продолжая работать над своим проектом на Drupal 8, понадобилось добавить поиск по своему модулю. Но тут меня снова ждал сюрприз — методы hook_search_info и hook_search_execute использовать не получилось. Они просто не вызывались системой и пришлось разбираться, как это правильно делается. Информация меняется часто и удалось найти только одну статью с подсказкой.

Читать далее…
Для одного из проектов захотелось использовать Drupal. «Система уже взрослая, хорошо себя зарекомендовавшая, много готовых модулей», — думал я. Но технологии меняются. Drupal 7 уже устаревает. На смену ему приходит Drupal 8, и многие модули тоже становятся неактуальными. Да и попытка найти толковый и простой модуль для добавления закладок для социальных сетей завершилась неудачей. Есть варианты, но они не включаются главную сеть в СНГ — vk.com. Поэтому и возникает задача написать свой модуль.

Читать далее…
Работая над проектом вездехода с трансляцией картинки пришлось задуматься, а правильно ли выбран основной язык разработки — Java. В последнее время Python приобрёл большую популярность и широко используется в приложениях машинного обучения и работы с видео на OpenCV. Это было решено проверить на простом получении картинки, т.к. данная часть является наиболее важной в моём проекте.

Читать далее…
В своей прошлой статье я описывал, как сделать Lego вездеход на Raspberry Pi с управлением через bluetooth. Отличием этого проекта от многих других в интернете являeтся то, что вездеход должен ещё передавать видео. Теперь он был немного доработан:
- Улучшено сцепление с полом
- Подсветка для ночного передвижения
- Ультразвуковой дальномер
- Появилось android приложение

Читать далее…
В этой статье хотелось бы поделиться описанием того, как построить Lego-вездеход с управлением по bluetooth и вещанием видео. Описана будет электроника, программная часть и некоторые конструктивные моменты. Сам же вездеход придётся собрать самостоятельно.
Читать далее…
Продолжая работать над своей задумкой, настало время получить доступ на Raspberry Pi к Bluetooth, используя Java. Bluetooth API для Java описан в спецификации JSR-82. Поиски в Internet выдали, что сейчас широко распространена библиотека BlueCove, которая реализует JSR-82. Её настройке и будет посвящена эта статья.

Читать далее…
OpenCV позволяет не только определять движение, но и создавать панорамы. Данной теме и будет посвящен текущий пример.
Для примера будет использоваться библиотека версии 2.4.3. Это связанно с тем, что из-за лицензионных ограничений версия 3.1 не содержит некоторых алгоритмов (типа SURF) для детектирования ключевых точек.
Читать далее…
Я уже описывал, как удалось запустить java веб-приложение с Websockets на Heroku. Этот подход основывается на запуске war файла со legacy кодом для tomcat 7. Для современных приложение такое решение не подходит. Хочется, чтоб код использовал JSR 365.

Читать далее…
Для реализации одной идеи возникла потребность разместить в интернете где-нибудь приложение с поддержкой Websockets, которое будет доступно из любого места. Главное условие — бесплатно. Ранее я уже делал вещание с камеры на websocket и java. Этот пример с небольшими изменениями я планировал попробовать разместить в глобальной сети. В качестве целевой площадки выбор пал на Heroku.com.

Читать далее…
В прошлой статье был описан способ вещания с веб-камеры через websocket. Сейчас пришла пора попробовать организовать вещание с микрофона. Архитектура примера будет такой же, как и прошлого:

Сигнал с микрофона поступает прямо на сервер, где он считывается и отправляется через websocket клиенту. В качестве сервера для обработки запросов WebSocket будет использоваться Jetty, поэтому вещание звука хорошо дополняет вещание картинки. Будет достаточно доработать прошлый пример.
Читать далее…
Есть много задач, в которых может понадобиться передать звук в виде массива байтов через сеть. Java сильно отстала в этом вопросе и давно не развивала свой API для работы со звуком. Это вызывает трудности при решение простых на первый взгляд вопросов.

На сайте уже есть пример про запись звука с помощью Java. Пример простой и пишет звук только в файл.
AudioSystem.write(m_audioInputStream, m_targetType, m_outputFile);
Читать далее…
После эксперимента с получением картинки с помощью Java и OpenCV пришла идея организовать вещание видео на сайте своей локальной сети. Но как это проще сделать?
Сейчас Javascript достиг того уровня, когда можно не ограничиваться простой перезагрузкой картинки на странице, а воспользоваться другими более удобными методами. Мой выбор пал на относительно молодую технологию WebSockets. Она позволяет организовать duplex соединение клиент-сервер, что уменьшает потери времени на установление подключения.
Последние версии Application и Web серверов для java приложений уже поддерживают спецификацию JSR356, которая определяет стандартный интерфейс для WebSocket. Поэтому в данном примере будут очень уместно этим воспользоваться на примере Jetty
Архитектура примера будет следующей:

Камера будет подключена к локальному серверу, который с помощью OpenCV будет забирать картинки и через WebSocket передавать в браузер.
Читать далее…