В одной из своих статей я приводил пример, как работать с камерой OV760. Для облегчения понимая, клиентская программа была реализована на Java, который проще в использовании, чем C++. Но это вызвало трудности у новичков. Ниже будет описано, как правильно запускать программку FrameGrabber из примера.

Читать далее…
После небольших экспериментов с детектором движения на java пришла пора детектировать звук. Для этой задачи можно воспользоваться Java SDK, пакет «javax.sound.sampled». Работа будет основана на примере записи звука в javа. Для этого придётся разобраться, какая информация приходит в AudioInputStream.

Читать далее…
После попыток получить картинку с помощью Arduino, возник вопрос, а как сделать то же самое, но на обычном компьютере. Пришлось перебрать несколько вариантов и остановиться на библиотеке OpenCV, которая в отличие от java media framework, активно развивается.

Библиотека оказалась полностью написана на c++, имеет реализации для разных платформ и предоставляет обертку для работы из Java через native интерфес.
Если у вас нет опыта работы с этом библеотекой, я бы советовал начать с добавления opencv в вашу IDE. Этот шаг приводиться не будет, т.к. он достаточно хорошо описан в документации. Далее можно попробовать получить картинку с камеры. После этого можно приступать к дальнейшему чтению статьи.
Читать далее…
Для одного проекта понадобился список существительных русского языка. Оказалось, что не так и просто его найти, т.к. много списков с глаголами, прилагательными и просто неполные словари, в которых отсутствуют популярные слова. Ниже придлагается для скачивания список существительных в формате txt. Список включает существительные, названия стран, городов и имена.
Список существительных
Недавно пришлось делать миграцию приложения, которое работает через OpenAM, с WAS6 на WAS8. Особенность миграции было изменение версии JDK и сервера, а это могло стать причиной проблем в приложении.
Неприятности не заставили себя ждать. При первом запуске приложения появилась ошибка “Error decrypting SAML message”. Подозрения сразу пали на SSL, но текст ошибки нам ничего не говорил, поэтому пришлось смотреть глубже. Для этого хорошо подходит особый параметр JVM (его нужно прописать в параметрах процесса сервера, используя консоль администратора).
-Djavax.net.debug=ssl:handshake
С его помощью удалось получить больше деталей.
*** ClientHello, SSLv3
…
main, WRITE: SSLv3 Handshake, length = 81
main, READ: SSLv3 Alert, length = 2
main, RECV TLSv1 ALERT: fatal, handshake_failure
Читать далее…
Java является замечательным кроссплатформенным языком программирования, но не всё можно решить только его средствами. Порой возникают проблемы, которые можно решить только в связке с другими технологиями. И одной из такой проблем является открытие Word документа из Java. Всё можно ещё усложнить, если нужно не только открыть, а запустить шаблон и при этом вызвать макрос. Такая задача становится неподъемной для стандартных средств. Решить её можно просто прибегнув к COM объектам. Об этом и пойдёт речь.
Читать далее…
Сегодня пришлось исследовать проблему с вызовом метода CoCreateInstanceEx, который выдавал ошибку 800401f0. Оказалось, что найти описание кодов достаточно сложно. Поэтому привожу список некоторых из них ниже.
Читать далее…
Как хорошо уметь писать!
Не надо к другу приставать,
Не надо умолять админа:
«Ну, напиши ты скрипт, скотина».
Не надо звать,
Не надо ждать,
А можно взять
И написать!
Именно такие строки приходят в голову, когда понимаешь, как хорошо уметь программировать.
Одним прекрасным днём возникла необходимость получить список proxy, которые можно использовать для скачивания картинок с хостинга файлов. Сразу же возник вопрос, где взять список proxy адресов, которые можно использовать для этой цели.
Читать далее…
Вот и случился постыдный баг на WAS6: пользователь видит вот такое сообщение вместо реальной ошибки. Особенно противно, когда понимаешь, что это сделал ты из-за своей лени, просто не хотелось проверять это место и вот результат.
…
java.lang.IllegalStateException
>> at com.ibm.ejs.container.BMStatelessBeanO.setRollbackOnly(BMStatelessBeanO.java:69)
…
Небольшой пример кода, где происходит ошибка
this.context.setRollbackOnly(); //Баг
logger.info(“Some error"));
throw new Exception("Some error");
Читать далее…
Наше jee приложение работает на WAS 6 и использует LDAP для авторизации. Работа с LDAP реализована с помощью стандартных классов Spring: BindAuthenticator и DefaultLdapAuthoritiesPopulator.

Читать далее…