Рейтинг
+1.26
голосов:
1
avatar

JavaLabs  

OSGI/Apache Felix: практический пример

Давайте, наконец, рассмотрим как писать компоненты для Apache Felix. Начало здесь.




( Читать дальше )

OSGi/Apache Felix: универсальная шина для Java-приложений

Примерно год назад я опубликовал на Мтааламу несколько материалов о сервере Apache Felix (см., напр. здесь и здесь). Тогда интерес к этому продукту был обусловлен стремлением освоить новое и поделиться первыми положительными результатами. За прошедшее время Felix стал моим основным инструментом для разработки, запуска и отладки серверных приложений. Здесь хотелось бы вкратце напомнить основы технологии OSGi (которую как раз и реализует Apache Felix), а также осветить моменты, о которых еще не писал, а именно процедуру создания bundle и обработки их с помощью iPOJO.




( Читать дальше )

Jabber-бот в роли дворецкого

Закончил в режиме фриланса один проект, связанный с написанием автоматизированного Jabber-чата. Решил использовать приобретенный опыт в личных целях. Написал бота, который выполняет на моем шлюзе (где запущен среди прочего Openfire) некоторые команды: включить/выключить музыку, вывести output несложных bash-команд. При написании использовано API Smack и Apache Felix. Исходники под катом. Пояснения выложу попозже, т.к требуется экскурс в технологию OSGI, а это не пятиминутное дело.





( Читать дальше )

ICQ в Openfire? По-прежнему легко!

Openfire — джаббер-сервер (служба мгновенных сообщений), который настолько легко устанавливается, управляется и настраивается, что оказался практически вне конкуренции. Его используют даже те админы, которые предпочитают Java-приложений избегать. Приятной особенностью проекта является система плагинов, благодаря которым к нему можно «прицепить» такие сервисы, как ICQ, Asterisk-IM и т.д. Но копирасты не дремлют! Поскольку протокол ICQ является собственностью корпорации AOL, писать клиенты для него «запрещено». К тому же протокол часто меняется и «некошерные» клиенты для него оказываются «вне игры». Так что былой легкости подключения к Openfire плагина ICQ с офсайта уже нет: пропал он из списка. Однако есть другой проект — Kraken, на котором такой плагин выложен, на еще и в версии 1-2-месячной давности.



( Читать дальше )

Освободите Java!

Джеймс Гослинг продолжает непримиримую борьбу с корпорацией Oracle, которая приобрела права на язык программирования Java и никак не может этими правами с умом распорядиться. На этот раз в своем блоге он разместил ссылки на серию футболок, значков, кружек и прочей офисной мелочевки с надписью «Освободите Java!». Вот пара образцов:


Здесь Ларри изображен в виде «Большого Брата» из фильма «1984» по роману Дж. Оруэлла.



Недавно у корпорации Ларри Эллисона на почве борьбы за полный контроль над Java появился еще один мощный оппонент: Google. Oracle выдвинула «Империи добра» патентные претензии по поводу использования Java в устройствах на базе ОС Android. В ответ Google бойкотировал ежегодную конференцию JavaOne.

Происходящее вокруг Java становится похожим на захватывающий триллер. Очень может быть, что в дело скоро вмешаются антимонопольные органы.

Регулярные выражения в JavaScript

Продолжая тему регулярных выражений (см. mtaalamu.ru/blog/javalabs/1083.html, mtaalamu.ru/blog/javalabs/1083.html), несколько слов хотелось бы сказать о том, как они используются в популярнейшем языке программирования клиентских приложений. На JavaScript я программирую довольно редки и не много, т.к. GWT, на котором я разрабатываю веб-странички, позволяет обходиться без него. Но на днях потребовалось решить такую задачу.

В текстовое поле вводится строка для поиска (поиск карточки пациента поликлиники в базе данных). Строка может быть 5-значным числом, специальным идентификатором (три буквы + две цифры) либо фрагментом слова кириллицей. Требуется отфильтровать ввод в это поле, чтобы формой обрабатывался только введенный текст, соответствующий одному из этих условий, а в остальных случаях выводилось сообщение об ошибке.



( Читать дальше )

Джеймс Гослинг ёрничает

Создатель языка Java продолжает злорадствовать над своим врагом — компанией Oracle, совершающей один «прокол» за другим. На этот раз после выхода обновления JDK 1.6.0_21, в котором впервые значение поля «Фирма-изготовитель» было изменено с «Sun Microsystems» на «Oracle Inc». Может поэтому, может еще по какой причине, но у пользователей IDE Eclipse (в версиях от 2007 года до свежайшей), программа, автоматически обновившись, перестала работать (OutOfMemoryError).

«Можно было бы сказать, что это диверсия», — пишет Гослинг в своем блоге, — «но, к сожалению, это всего лишь глупость». При этом пост сопровождается вот таким смайликом:



Оригинал здесь.

Git для шизофреников

У системы контроля версий Git есть маленькая «досадная мелочь»: каждый раз, когда вы делаете коммит (сохранение очередной версии кода), необходимо вписывать коммертарий, т.е. что, собственно, дополнено или исправлено в программе, например:

git -a .
git commit -a -m 'Исправлена ошибка в механизме регистрации'

Этот комментарий иногда сформулировать бывает трудно, а иногда просто лень, но без него система делать коммит откажется. Вот и хитрят люди кто как может. Я, например, в 80% случаев вместо комментария пишу лаконично: hz (в смысле: «Не знаю, что и сказать»).



( Читать дальше )

Groovy + bash: двойная мощь

Groovy — скриптовой язык, т.е предназначен для сиюминутных решений. Такое же назначение и у bash. Жаль только синтаксисы их уж совсем разные. Однако, как оказалось, два эти языка можно совместить элегантным образом.




( Читать дальше )

Бесконечный проигрыватель

В деле проигрывания mp3-файлов, кажется, не осталось белых пятен, но я таки решил внести свои 5 копеек.

Вот решил человек, скажем, послушать музыку. Что в этом деле самое сложное? Технические вопросы вынесем за скобки, проигрывателей сейчас — на любой вкус. Самое сложное находится вне сферы IT. Самое сложное — составить хороший плэй-лист. Такой, чтобы хватило на несколько часов, пока вы, скажем, клеите обои в квартире. Вот такую задачу я и решил на коленке с помощью языка Groovy.




( Читать дальше )

Документация по Java

Выложил на свой домашний сервер docs.yababay.ru/ документацию по некоторым Java API:

* JDK 1.6
* JavaFx
* Google Web Toolkit
* Apache Ant
* Groovy
* OpenDS

Не гарантирую режим работы 24/7, но сервер включен в течение почти всех суток с небольшими (на 2-3 часа) перерывами.

Регулярные выражения: как это понимать

Занимаясь IT уже более 10 лет, твердо уяснил: следует не гоняться за модным, а постигать вечное. Лучше тратить время не на поиск «классненьких программок», а на освоение фундаментальных концепций, таких как сетевые протоколы, классические языки программирования вроде C, XML, SQL, ну и, конечно же, regexp — синтаксис регулярных выражений. О последнем и пойдет речь под катом.




( Читать дальше )

Groovy: простая работа с регулярными выражениями

Много есть аргументов как в поддержку языка программирования Groovy, так и против него. Но один мне кажется бесспорным: работать с регулярными выражениями — одно удовольствие (если, конечно, отвлечься от сложности самой темы регулярных выражений).




( Читать дальше )

Как работает виртуальная машина Java

Не мог пройти мимо этого ролика: камрад очень толково разъясняет матчасть.


miniGeekFest 30042010 02 java min from golodnyj on Vimeo.

Git в необычном амплуа

Не перестаю удивляться открытиям из мира командной строки с сайта commandlinefu.com. Вот, казалось бы, тривиальная задача: заархивировать исходники проекта для публикации. Можно вооружиться стандартным архиватором tar и, покумекав минут 10 (чтобы исключить из архива всякие вспомогательные файлы и прочие костыли) раза с пятого-десятого получить результат. А можно вот как:

git archive HEAD --format=tar | gzip -9  > myproject.tgz

Будет упаковано только то, что действительно имеет отношение к исходникам проекта, без «непотребных» файлов и каталогов (того же .git, например).

Конечно, для того, чтобы воспользоваться этой командой нужно вести репозитарий в формате git, но сейчас это не редкость.