Как стать автором
Обновить
15
0
Владимир @bobzer

Пользователь

Отправить сообщение

Dependency injection в Java EE 6

Время на прочтение9 мин
Количество просмотров97K
В рамках JSR-299 “Contexts and Dependency Injection for the Java EE platform” (ранее WebBeans) была разработана спецификация описывающая реализацию паттерна внедрения зависимости, включенная в состав Java EE 6. Эталонной реализацией является фреймворк Weld, о котором и пойдет речь в данной статье.

К сожалению в сети не так много русскоязычной информации о нем. Скорее всего это связано с тем, что Spring IOC является синонимом dependency injection в Java Enterprise приложениях. Есть конечно еще Google Guice, но он тоже не так популярен.

В статье хотелось бы рассказать об основных преимуществах и недостатках Weld.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии6

CUBA — платформа для быстрой разработки бизнес-приложений на Java

Время на прочтение8 мин
Количество просмотров49K
Если вы занимаетесь разработкой софта для предприятий, то возможно уже написали собственную платформу. Которая позволяет вам быстро создавать UI и логику для работы с данными, содержит общую для ваших проектов функциональность: управление правами пользователей, генератор отчетов, BPM и тому подобное, и имеет архитектуру, позволяющую легко сопровождать и масштабировать приложение. Если еще не успели написать, предлагаем познакомиться с нашей разработкой — платформой CUBA.

image

Платформа существует более четырех лет, но до сих пор она использовалась в довольно узком кругу разработчиков нашей компании и партнеров. Мы успели сделать на ней два тиражируемых продукта и больше десятка заказных проектов. И вот настал момент, когда после длительной подготовки, мы решились выпустить ее в виде продукта, доступного всем желающим.
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии54

Подписывание Java апплета и некоторые тонкости java security

Время на прочтение10 мин
Количество просмотров26K
Постановка задачи:

В качестве WYSIWYG XML редактора в нашем приложении используется java applet Oxygen Author Component. При загрузке этого апплета на клиенте Java не должна выкидывать никаких пугающих варнингов о небезопасном коде, а спокойно и тихо загружать себе апплет, не напрягая пользователя и не заставляя брать на себя тяжелую ответственность. У нас ведь солидное приложение как никак.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Время на прочтение7 мин
Количество просмотров284K

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →
Всего голосов 294: ↑282 и ↓12+270
Комментарии121

АД по имени JSMPP

Время на прочтение7 мин
Количество просмотров19K
Видимо в жизни каждого программиста наступает момент, когда ему становится необходимо научиться отправлять SMS-сообщения. Вчера такой момент наступил и у меня. Сразу скажу, что эта необходимость никак не связана с рекламными рассылками и прочим спамом. SMS-ки понадобилось рассылать в сугубо мирных целях, в рамках реакции на события, обнаруженные в процессе мониторинга оборудования.

Важность наличия возможности такой рассылки сложно переоценить. Действительно, отослав уведомление об аварии на EMail контактного лица, мы не можем рассчитывать на немедленное реагирование. Неизвестно, когда адресат прочитает свою почту. SMS доставляется намного оперативнее.

В нашей компании давно и успешно используется собственная реализация SMPP-сервиса и мысль об использовании готового SMPP-клиента на Java показалась мне логичной. Отважно вбив в строку поиска google слова «java smpp client», я немедленно нашел нужную мне библиотеку. О том, что происходило дальше, рассказывает мой сегодняшний пост.
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии16

Подсчёт времени выполнения метода через аннотацию

Время на прочтение8 мин
Количество просмотров20K
Во многих проектах требуется посчитать время, которое затратил тот или иной метод. Для этого можно вручную сохранять значение System.currentTimeMillis() и после метода вычислять затраченное время. Когда методов много это становится не очень удобным.
Поэтому я решил написать простенькую аннотацию, которая бы считала время выполнения метода. Попытавшись найти информацию в интернете, понял, что её по данной теме очень мало. Придётся как-то выкручиваться, собирая информацию по крупицам.
Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Комментарии30

Загружаем данные в Oracle

Время на прочтение14 мин
Количество просмотров93K
В своей предыдущей статье я показал, что при использовании асинхронных запросов, скорость опроса устройств по протоколу SNMP может достигать 9000 запросов в секунду (при условии, что у нас есть достаточное количество устройств для формирования такого потока ответов). Вопрос о том, что делать с этим потоком данных остался открытым.

Обычной практикой является обработка данных мониторинга посредством RDBMS (таких как Oracle Database). Но способны ли традиционные реляционные базы данных справиться с такой нагрузкой? Попробуем в этом разобраться.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии136

Разбор адресов «нечёткими регулярными выражениями»

Время на прочтение7 мин
Количество просмотров32K
Краткое содержание: о библиотеке написанной мною для сопоставления с заданным словарём выражений на естественном языке — в частности, городских адресов.

На деревню дедушке


Сколько существует способов написать адрес — в смысле, географический?

Даже если упростить задачу и отбросить всякие мелочи вроде номера дома, строения, участка, квартиры и т.п. — и работать в пределах одного города — сколько вариантов можно придумать для написания названий улиц, площадей, проездов, проулков и т.п.?

Возьмём простой пример:
улица Цветочная — может быть обозначена с сокращением, как «ул. Цветочная» и «Цветочная ул.» — кроме того «ул.» можно пропустить (если Цветочной площади в городе нет), а «Цветочная» можно написать с ошибками «Цвяточная» или «Цвиточная», равно как и «Цветошная» — всё это будет выглядеть недурно!

Пример посложнее:
2-я Конно-армейская улица — здесь душе поэта есть где разгуляться. Номер можно выразить как «2-ая» или просто «2», а можно даже прописью «Вторая» или с сокращением «Втор.» — дефис же между «конной» и «армейской» будет встречаться примерно у 50% опрошенных. До кучи выяснится что «конно-армейская» кому-то показалась длинной и сократилась до «2 Конноарм. ул.»

Другие интересные примеры связаны с именами «ул. Матроса Железняка» (или просто «Железняка»?), «пр. Мориса Тореза» (или «Мариса Тереза»?) а также совсем эпические случаи «ул. 3-я линия второй половины», «дорога на деревню Рыбацкое», «ул. Левый берег реки Ижоры» — прошу простить если и сам я их не осилил написать правильно по памяти.
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии33

JUG.ru: о петербургской Java User Group за несколько минут

Время на прочтение8 мин
Количество просмотров8.4K
Привет, хабровчане!

В преддверии большой встречи JUG.ru с Барухом Садогурским и Евгением Борисовым я расскажу вам о том, как появился новый JUG.ru:
  • что нас мотивировало
  • куда мы смотрели
  • кто делал JUG до нас
  • с чего мы начинали
  • как организовали первую встречу
  • к чему пришли




Давай, рассказывай!
Всего голосов 35: ↑34 и ↓1+33
Комментарии26

Посты-рекордсмены

Время на прочтение5 мин
Количество просмотров105K
На Хабре я недавно (чуть меньше месяца), до этого Хабр практически не читал. Пришёл, огляделся, походил по тематическим «хабам», почитал «Лучшее за всё время», просмотрел статьи отдельных, заинтересовавших меня персонажей и понял, что для того, чтобы получше понять, как живёт и чем дышит это замечательное сообщество, мне придётся Хабр распарсить и позадавать ему разные вопросы. К тому же, раз уж в своих статьях я писал в основном об автореферентности в разных её проявлениях, как не написать на Хабре статью о Хабре?

Посмотрю, интересно ли это всё кому-либо кроме меня. Если интересно, напишу ещё несколько постов, идей и материала для этого более чем достаточно.

Если я ничего не пропустил в интерфейсе сайта, единственные списки самых-самых, которые можно посмотреть — это общий рейтинг пользователей и список статей, т.н. «Лучшее за всё время». Оба списка отсортированы по рейтингу (пользователей и статей, соответственно). Между тем, существует ещё куча параметров, по которым было бы интересно всё отранжировать.
Читать дальше →
Всего голосов 215: ↑202 и ↓13+189
Комментарии59

Повышать или не повышать — вот в чем вопрос

Время на прочтение4 мин
Количество просмотров62K

Я не владелец бизнеса. И не исполнительный директор. Я, как и все программисты, наемный работник. Поэтому решение о повышении зарплаты своим подчиненным принимаю не я. Но я даю рекомендации. И к ним прислушиваются или нет.

Рассуждаю я примерно так.

Сколько же надо платить программисту? Как правило, рыночная «вилка» вознаграждения для конкретной квалификации известна и составляет от X до 1.5*X. Можно рискнуть и платить по нижней планке — X. Однако, возможность получать в 1.5 раза больше за ту же работу скорее всего перевесит все остальные мотивы, которые удерживают бойца в моей команде. Ситуация усугубляется еще и тем, что агрессивные «охотники за головами» делают разрыв в вилке еще больше, чтобы побыстрее перекупить квалифицированные кадры. Надо ли платить по верхней планке, тем более, если она сильно завышена? А, может быть, следует платить еще больше?

Заранее, приношу свои извинения, за занудность и излишнюю детальность нижеследующего изложения в стиле — «как для домохозяек». Я много раз пытался объяснять свое видение подхода к решению этого вопроса людям, которые должны были принимать решение о повышении оклада, но они не всегда меня понимали. Или, может, просто, не хотели?
Читать дальше →
Всего голосов 124: ↑111 и ↓13+98
Комментарии370

Разработка производительного игрового сервера на Netty + Java

Время на прочтение5 мин
Количество просмотров55K
Piccy.info - Free Image Hosting

Как и обещал, привожу описание производительного игрового сервера на Netty, который использую в своих проектах.
Все описанное ниже не является истинной в последней инстанции, а всего лишь опыт применения технологий в реальных проектах.

Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии206

Изучаем Storm Framework. Часть I

Время на прочтение4 мин
Количество просмотров36K
В 2011 году Twitter открыл, под лицензией Eclipse Public License, проект распределенных вычислений Storm. Storm был создан в компании BackType и перешел к Twitter после покупки.

Storm это система ориентированная на распределенную обработку больших потоков данных, аналогичная Apache Hadoop, но в реальном времени.

Ключевые особенности Storm:
  • Масштабируемость. Задачи обработки распределяются по узлам кластера и потокам на каждом узле.
  • Гарантированная защита от потери данных.
  • Простота развертывания и спровождения.
  • Восстановление после сбоев. Если какой либо из обработчиков отказывает, задачи переадресуются на другие обработчики.
  • Возможность написания компонентов не только на Java. Простой Multilang protocol с использованием JSON объектов. Есть готовые адаптеры для языков Python, Ruby и Fancy.

В первой части рассматриваются базовые понятия и основы создания приложения c использованием Storm версии 0.8.2.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии10
12 ...
7

Информация

В рейтинге
Не участвует
Откуда
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Дата рождения
Зарегистрирован
Активность