?

Log in

entries friends calendar profile Previous Previous
javaaol
В проекте было несколько интересных законов из серии "тут так заведено".
1. Заявку в JIRA имеет право закрыть тот, кто ее открыл.
(проблемы с этим тоже есть, например, человек наоткрывал кучу - все починили, код работает - закрывать уже и неохота)
2. У новых разработок был интересный Definition of Done
* Выполнены все подзадания.
* Ошибок найдено не более 0 критических или высоких, трех средних и пяти низкой.
* Также были обязательные подзадания
**Создание критериев выполнения (Acceptance criteria)
**Формальное ознакомление членов команды с этими критериями

Для гугла:
Scrum, agile, acceptance criteria, definition of done, jira

Tags:

Leave a comment
Последний раз писал код в промышленных масштабах год назад - Scala, Play 2, Mongo, linux.
С тех пор программировал лишь в аутлуке и пауерпойнте.

Давеча писал проверочное задание. Выводы.
1. Ручки-то помнят.
Чисто алгоритмы писать - проблем нет.
2. Стал старым пердуном.
Первый раз я бухтел, когда ввели Generics, говорил, что пропал язык.
Теперь я просто не понимаю, как можно писать программу.
Нынче вся заруба происходит в pom.xml, где указываешь зависимости.
3. TDD
Полностью ТДД-шный подход создает в пять-десять раз больше кода тестов, чем кода алгоритма.
Зато он же создает в пять-десять раз больше уверенности в коде.

Tags: , ,

Leave a comment
Занимаюсь JapserReport-ом.
Данные получаю из процедуры, а она на MS SQL.

Вываливается сообщение - The statement did not return a result set.

Вылечить можно, поставив перед телом процедуры - SET NOCOUNT ON

Для гугла:
jasper report ms sql query stored procedure "the statement did not return a result set"

Tags:

1 comment or Leave a comment
Пришлось инсталлировать на апач сертификат, выданных Веризоном.

Вроде все просто, но затянулось страшно.

1. Первая беда - создание запроса на сертификацию.
openssl на моем линуксе не спрашивает никаких деталей типа O, OU, CN и т.д. Поэтому все подавал как параметры в командной строке.
openssl req -nodes -text -newkey rsa:2048 -keyout domain.key -out domain.csr -subj '/C=LV/ST=Riga/L=Riga/CN=www.server.com/OU=Firm Riga/O=SIA Firm'

2. CSR был отдан в веризон, через день пришел пакет с собственно сертификатом и всеми тремя сертификатами его цепи.
Я получил их как CRT-файлы. После я нашел способ - Веризон предлагает на своем сайте - скачать p7b-файл со всей цепью в одном файле.

3. Этот p7b-файл с помощью https://www.sslshopper.com/ssl-converter.html я переконвертил в PEM-цепь c названием kolbasa.pem. Параметры очевидны.
3.1 Всю пачку сертификатов можно перегнать в PEM-цепь и вручную следующим образом:
а) открыл все сертификаты и по очереди копируешь их содержимое в текстовый файл, предваряя их записью с телом и выдавшей организацией.
б) и так 4 раза.
В результате получится что-то подобное:
subject=/C=LV/ST=Riga/L=Riga/O=Firm/OU=Firm LAtvia/CN=www.server.com
issuer=/O=Cybertrust Inc/CN=Cybertrust Public SureServer SV CA
-----BEGIN CERTIFICATE-----
xxx...
-----END CERTIFICATE-----

subject=/O=Cybertrust Inc/CN=Cybertrust Public SureServer SV CA
issuer=/C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
-----BEGIN CERTIFICATE-----
xxx...
-----END CERTIFICATE-----

subject=/C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
issuer=/C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
-----BEGIN CERTIFICATE-----
xxx...
-----END CERTIFICATE-----


4. Далее скопировал получившуюся колбасу на линух и начал править конфиг апача.
5. В файле default-ssl (как варианты httpd.conf и многие другие) нашел строчку и внутри элемента
a) SSLEngine on
б) SSLCertificateFile /etc/ssl/certs/kolbasa.pem
в) SSLCertificateKeyFile /etc/ssl/private/domain.key ### ключ из 1-й статьи.
г) SSLCertificateChainFile /etc/ssl/certs/kolbasa.pem



6. Перезапуск.

> apachectl configtest
> apachectl stop
> apachectl start

7. Этим милым инструментом потом можно проверить, что все встало хорошо - https://www.geocerts.com/ssl_checker

В гугле искал
apache install pkcs7
apache install ca certificate
apache fix certificate chain
apache install ssl certificate

Tags: , , ,

Leave a comment
Для того, чтобы получить адрес сервера Жиры, вызывайте:
ManagerFactory.getApplicationProperties().getString(APKeys.JIRA_BASEURL)
Только что минут пять искал.


To access Jira application server address invoke
ManagerFactory.getApplicationProperties().getString(APKeys.JIRA_BASEURL).

Что искал в гугле.
get jira server address plugin development java
get jira server address plugin development
get local jira 4 address mail
get local jira 4 address
get local jira address 4
get local jira address

По итогу разломал ForgotLoginDetails.java

Tags: , ,

Leave a comment
Начал проходить проверочное задание atlassian.
Об успехах напишу.

Updates.
JIRA is hot, the dragon is not! I've completed stage 1 of the Atlassian Dragon Quest #AtlassianDragons http://atlss.in/dragonquest

Это отлично. Задание в виде игры. Вышка.

Tags: ,

Leave a comment
Основной проблемой существующих TDD (test driven development) я вижу никакую или слабую поддержку проверок пользовательских форм, основной части интерфейса (UI).
Если одноходовку - заполнил форму, нажал кнопку, получил результат - можно описать "затычкой" (stub), то последовательность форм - любой wizard или пошагавый ввод - проверить сложно, потому что поддерживается возможность проверки каждого шага, но не их последовательности.

Часть решения для сетевых приложений, работа с которыми идет в браузере, я вижу в использовании javaScript.

Схема такая:
1. В конечный View contoller - jsp, html, php, asp - встраивается функция, которая ищет и при обнаружении запускает прописанный на странице javascript-тест.
2. В сервлет встраивается функция, которая дописывает в HttpResponse тест для запуска.
3. javascript-тест просматривает элементы страницы, неким образом их меняет и вызывает onclick-функцию кнопки.

Сложности:
1. Заполнение журнала тестов
2. Вылет теста после времени ожидания
3. С одним тестом все очевидно, а как проверить пачку тестов?

Tags: , ,

2 comments or Leave a comment
Есть понятие hardcode - зашитые значения.
Все видят и легко находят такой шов на уровне констант литералов, но многие по началу не замечают его при проектировании систем, рассматривая лес в целом.

В реляционных базах данных по уровню зашитости я различаю следующие уровни.
1. Значение ячейки - самое обычное - название кодификатора;
2. Строка - она определяет наличие или отсутствие каких-то данных;
3. Колонка - этот уровень в свою очередь определяет максимальное количество каких-то связей;
4. Таблица - так вносятся отличия между сущностями.
Вносить ли схему, как зашитое значение, не решил.

В объектно-ориентированном мире есть такие уровни.
1. Строчка кода или блок кода - всем известный костыль;
2. Объект - необходимость инстанциировать какой-то класс для какого-то конкретного случая;
3. Класс - необходимость описывать новую сущность для какой-либо задачи;
4. Интерфейс или Абстрактный класс - класс задачи порождает целый ряд похожих классов.

Для каждого из этих уровней есть свои примеры, для 4 уровня ООП отлично подходит java.io.Serializable.
Leave a comment
Недавно столкнулся с проблемой: добавив в вызов стандартные параметры удаленной отладки, процесс не запускается.

Оказалось, что жава на AIX требует немного других параметров
java $JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10.2.34.55:5555 $CALL_PARAMS

в отличие от того же на прочих известных мне платформах.

java $JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp transport=dt_socket,server=y,suspend=n,address=5555 $CALL_PARAMS

в гугле искал

debug aix time out
why timeout when debug java aix

Tags: , ,

Leave a comment
Пытался поменять подключение по умолчанию в 9-м JDeveloper, не смог.
Помогло удаление текущего подключения. Сразу после удаления, открыв любой Entity object, JDeveloper предложил выбрать подключение.

А в гугле искал такое:
jdeveloper 9 default database connection
jdeveloper set default connection

Tags:

Leave a comment