Метка «java» - 23

Здравствуйте, уважаемые читатели!
Приглашаем принять участие в тренинге Nokia Asha Developer Bootcamp, который пройдет в Санкт-Петербурге 23-24 мая 2013 года в гостинице Radisson Sonya.

На нашем мероприятии вы сможете получить расширенное представление о пользовательском интерфейсе Nokia Asha и работе с новым SDK. Мы расскажем о новых возможностях платформы, а также познакомим с возможностями портирования уже существующих приложений.

Приглашаем на Nokia Asha Developer Bootcamp
Читать полностью »

imageСегодня мы расскажем вам, как пользоваться свеженьким Jelastic-плагином, разработанным специально для поклонников NetBeans, которые просто забросали нас огромным количеством просьб создать для них такой инструмент.

Конечно же, специальный плагин делает разворачивание приложений в облаке более удобным и простым: сейчас не нужно делать никаких лишних телодвижений, таких как переключение между браузером и IDE, вход в систему по несколько раз и т.д. Сам плагин достаточно прост. Давайте рассмотрим его функциональность более подробно.Читать полностью »

Когда я начинал пользоваться OSGi вопрос, собственно, разработки и отладки встал сам собой. Отлаживать самостоятельное приложение на платформе, которая встроена в Eclipse было нерационально, слишком много бандлов он содержит и слишком много зависимостей — это с одной стороны. С другой стороны не хотелось, чтобы платформа расширялась при каждом обновлении Eclipse и обрастала новыми зависимостями. Короче говоря, мне от платформы нужен был только Jetty, OSGi консоль, EclipseLink и RAP/RWT.

Я хотел полностью контролировать состав среды выполнения и отлаживать проект именно в ней. А для этого надо было выделить OSGi платформу из Eclipse и натравить его на нее обратно. Как это сделать — я расскажу в этой статье.
Читать полностью »

На Хабре Swing не любят. Поиск по «Swing» дает либо нейтральные, либо негативные упоминания. Вот некоторые из них:

  • «Java-апплеты (доразвивались до смертельной болезни под названием Swing)»
  • «Swing — мягко говоря не самый оптимальный UI фреймворк»
  • «Swing был ужасен»

Я не возьмусь утверждать, что Swing — идеал. Это неправда. Однако я постараюсь описать те плюсы и минусы с которыми пришлось столкнуться. Читать полностью »

kdpvLiquibase — это система управления миграциями базы данных. Эта вторая статья о Liquibase, на этот раз содержащая советы «боевого» использования системы. Для получения базовых сведений подойдет первая статья-перевод «Управление миграциями БД с Liquibase» (ссылка).

Как и многие инструменты, служащие для облегчения жизни разработчиков программного обеспечения, Liquibase имеет «обратную сторону медали», с которой приходится рано или поздно столкнуться.

Вот 10 вещей, которые в определенный момент работы с Liquibase были для меня открытием.

1. Версионность приложения должна быть отражена в структуре папок миграций

Если вы не будете следовать этому правилу, файлы чейнджлогов быстро украсят папку миграций своим количеством и необычными именами.
На данный момент для себя я выработал оптимальную стратегию именования файлов и папок. Вот она:

/db-migrations
    /v-1.0
        /2013-03-02--01-initial-schema-import.xml
        /2013-03-02--02-core-data.xml
        /2013-03-04--01-notifications.xml
        /changelog-v.1.0-cumulative.xml
    /v-2.0
        ...
        /changelog-v.2.0-cumulative.xml
    /changelog.xml

Подробнее:Читать полностью »

В статье описывается решение для мониторинга с использованием Cacti на примере задачи анализа и контроля потребления ресурсов большого Java-приложения.

Передо мной стояла задача – в краткие сроки предложить меры по стабилизации большого трехзвенного Java-приложения, имеющего проблемы с потреблением памяти и производительностью. Времени, как обычно, мало: 1-2 недели на все. На фирме отсутствовала подходящая инфраструктура мониторинга приложений, и в мою задачу не входило ее создавать. Вариант с использованием JConsole не подходил из-за необходимости анализировать потребление за продолжительное время и смотреть его после возможных внезапных перезагрузок приложений.

В одной из фирм, где я работал, было реализовано впечатляющее по удобству и простоте решение для мониторинга Java-приложений на основе RRD Tool. Состояло оно из несложной надстройки на perl-скриптах, обеспечивающих сбор и отображение данных через HTTP и ряда доработок-агентов сбора данных в самом приложении. Для меня это стало идеей решения, однако, времени на написание обвязки над RRD у меня не было.

После аккуратного поиска нашелся бесплатный инструмент, реализующий необходимую мне надстройку – Cacti. Cacti это приложение, написанное в инфраструктуре Apache-PHP-MySql, позволяющее настраивать сбор и отображение данных мониторинга на основе веб-интерфейса. Разобраться с ним оказалось несложно, пару дней для подъема инфраструктуры, затем настройка и дописывание агентов сбора данных и все.

Далее в статье подробно описывается решение, позволившие решить мою задачу и, в конце концов, провести успешную стабилизацию приложения на фирме.

Читать полностью »

Привет, коллеги.
Хочу в этом топике выложить инструкцию, как быстро прикрутить Thrift, к своим поделкам.
Thrift — технология для организации межпроцессного взаимодействия между компонентами системы. Была разработана где то в недрах Facebook. Посути это кросс-языковой фреймворк для создания RPC сервисов, на бинарном протоколе. С помощью этого решения можно «подружить» компоненты написанные на разных языках C#, C++, Delphi, Erlang, Go, Java, PHP, Python, Ruby, итд. Описание сигнатур сервисов и данных осуществляется с помощью специального IDL — языка. Технология, по своей сути, похожа на COM, но без всей этой обвязки с регистрацией компонент. Так же не будем забывать, что COM это технология только для Windows, в то время как Thrift — кросплатформенна.

Вобщем решил поэкспериментировать, попробовать вынести часть нагруженной-вычислительной логики из Java в С++, в надежде что нативный С++ код будет немного производительней, и за одно опробовать Thrift RPC, в надежде что это быстрее чем REST.
Как и положено, без бубнов и граблей не обошлось!
Читать полностью »

Предистория:

Согласно RFC-2616, HTTP header можно передавать кучей разных способов.
Мы использовали вариант КЛЮЧ = <ЗНАЧЕНИЕ-1>,<ЗНАЧЕНИЕ-2>,...,<ЗНАЧЕНИЕ-N>
Библиотека Apache CXF до версии 2.5.8 (включительно) обрабатывала такую ситуацию корректно.

Проблема:

С версии 2.5.9 Apache CXF втихоря «улучшились» и допустимыми признают только КЛЮЧ = <ЗНАЧЕНИЕ>
Ни в документации, ни на форуме апача нет ответа на вопрос:

Как разрешить Apache CXF принимать параметры заголовка HTTP-запроса (HTTP header) через запятую?

Читать полностью »

Привет всем,
Особенно студентам, начинающим программистам и всем, кто хочет ими стать! Сегодня я расскажу, как пройти путь от абсолютного нуля до Senior Developer меньше, чем за 3 года. Надеюсь, мой бесценный опыт будет кому-нибудь полезен (и поможет не набивать шишки там, где не надо).

Сразу оговорюсь, что я не отношусь к той чудесной части человечества, которая начала программировать в детстве или хотя бы в юности. Вплоть до конца школы я была таким заядлым гуманитарием, что аж противно. Моё поступление в некий неплохой петербургский технический вуз – ирония судьбы, подробности же к делу не относятся.

Итак, имеется двадцатилетний студент четвёртого курса, обучающийся по специальности «Информационные технологии в образовании» со специализацией «Управление проектами». В пассиве – очень скромное количество и качество обучения программированию в вузе и гуманитарное прошлое. В активе – огромное желание стать Java-программистом. Задача – реализовать свою мечту. Алгоритм действий приведён ниже (на естественном языке, но желающим могу, в принципе, привести диаграмму. Или вообще псевдокодом воспользоваться).
Читать полностью »

Хочу рассказать о конференции JavaOne Russia, которая проходила 23-24 апреля в Москве, с точки зрения разработчика JVM и одного из докладчиков.

image
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js