четверг, 31 марта 2011 г.

Установка Apache Archive на Ubuntu Server

Из цикла '1001 велосипед'.

Есть такая замечатлеьная програмка как Archive. Помогает сэкономить кучу времени и нервов разработчикам, работающим с Maven проектами (особенно актуально для контор, не могущих позволить себе нормальный интернет канал).
Так вот, есть следующая задача:
а) установить это чудо на Ubuntu Server (ssh, без XServer-а)
б) сделать автоматический запуск и остановку
в) разнести исполняемый код\конфиги и данные по нужным даректориям
г) сделать это с минимальными исправлениями самого дистрибутива archiv-ы

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

среда, 23 марта 2011 г.

Перепост: Совершенствование кода с помощью плагинов Eclipse

Статья Совершенствование кода с помощью плагинов Eclipse - обзор парочки плагинов для статического анализа кода. Средства простые 'до безобразия', но могут съэкономить кучу времени и нервов.

Замечание: статья 2007-го года, так что некоторая информация чуть устарела:
1. CheckStyle за последние несколько лет "чуть выросла". Одно из вкусных дополнений - это способность измерять\проверять циклическую слоность кода (CCN) и длину методов\классов (NCSS).
2. Coverlipse на данный момент выглядит какимто полузаброшенным проектом. В тоже время есть довольно неплохой плагин eCobertura.
3. Metrics - может оказаться ненужным, потому как базовые мтрики можно контролировать с помощью Checksyle\PMD.
4. Есть еще довольно спорный плагин для FindBugs. Спортный потому что, на сайте приведено довольно много "пафосных бла бла бла", но при этом управлять плагинами для maven и eclipse довольно проблематично (точнее не плагинами и наборами правил и исключений).

четверг, 10 марта 2011 г.

Еще мысля по Jenkins API

Интересная API у этой системы... заставляет чувствовать себя полным идиотом :(
Все, как будто, ясно, красиво и очевидно, но на реализацию простейших вещей уходит уйма времени.

Что помогает:
  • Наличие комментариев. JavaDoc-и есть и они довольно объемные (иногда даже информативные).
  • Наличие огромного количества примеров. Имеется ввиду уже написанных плагинов, а точнее исходников к ним.

Что мешает:
  • Отсутствие высокоуровневой документации. Javadoc-и это конечно хорошо, но составить общую картину по ним довольно сложно. Разбирательство c API напоминает разгадывание ребуса (с применением накопленного опыта, интуиции и русского мата).
  • Довольно высокий уровень косвенности. Множество вещей (модулей и сущностей) связаны неявными правилами и эти связи проявляются только в run-time. Узнать как правильно реализовывать некоторые виды плагинов довольно проблематично: информации из javadoc-ов не достаточно и посмотреть как они(плагины) обрабатываются самой системой тоже трудно. Спасают только примеры (плагины с аналогичной функциональностью).
  • Довольно большая часть информации устарела (туториалы, документация, примеры): либо ссылки битые, либо API уже изменилась. Так что, выполнение первого туториала может вылиться в довольно долгую и увлекательную задачу.

Надо как то собраться с мыслями, и записать "накопанные" знания.