Translate

понеділок, 29 квітня 2013 р.

Java Breeze


https://mail-attachment.googleusercontent.com/attachment/u/0/?ui=2&ik=05810ba6ab&view=att&th=13e5a779794c0dda&attid=0.3&disp=inline&safe=1&zw&saduie=AG9B_P8MPaUNeNBzA34Ocli1dwXz&sadet=1367324502814&sads=2XRrxT44mMyfLd8CIxOxY0isafQ
Java Breeze -  наймасштабніша Java конференція в південному регіоні
Ви захоплюєтесь Java і засумували за конференціями, що присвячені складним технічним питанням у ваші професійній області?
Ласкаво просимо на Java Breeze!
18 травня компанія Lohika проведе наймасштабнішу за останні роки Java конференцію в південному регіоні - Java Breeze.

На протязі дня Java гуру та ведучі технічні спеціалісти будуть презентувати доповіді, базовані винятково на власному практичному досвіді
Java Breeze пройде при підтримці одеської Java Group.  Всі деталі ви знайдете  на сайті конференції.

·         На Java Breeze  акценти презентацій будуть спрямовані на практичне застосування нових ідей та поглядів на розробку реальних проектів.
·         Учасники зможуть перейняти досвід у технічних експертів галузі та один в одного, побачити 'real-world case studies', вникнути в практичні зразки коду.
·         Цікаві співрозмовники, сонячна одеська погода та морський бриз - все це та навіть більше чекає вас на конференції.
  
Реєстраційний внесок складає  100грн (інформацію по оплаті ви отримаєте в листі після реєстрації).

На Java Breeze гарантовано буде комфортна, позитивна та надихаюча атмосфера для навчання та  обміну  досвідом, ласкаво просимо!

По всіх додаткових питаннях, в рамках Java Breeze, звертайтесь до Черняк Юлии (PR Specialist, Lohika)  jcherniak@lohika.com

пʼятниця, 26 квітня 2013 р.

JUG-20 Scala feedback


Дякую всім, хто був присутнім на Scala-презентації, за підтримку і терпіння :) Ось кілька цікавих лінків на тему:
  • http://gatling-tool.org/ - аналог JMeter, написаний на Akka, використовується для load і stress тестування; при цьому сценарії записуються в читабельній і лаконічній формі
  • http://www.simplyscala.com/ - тут можна погратись з консоллю Scala навіть не викачуючи компілятор
  • http://days2010.scala-lang.org/node/138/169 - презентація "Sneaking Scala into Enterprise", яка згадувалась на зустрічі. Кількома словами - презентер розглядає, куди можна впихнути Скалу в існуючий проект, щоб і не ризикувати засильно, і якийсь бенефіт отримати
  • http://seldo.com/weblog/2011/08/11/orm_is_an_antipattern - на зустрічі згадувалось, що є думка про шкідливість ORM. Не всі з нею погодяться, але як мінімум ознайомитись варто
  • Ну і наостанок прохання заповнити опитувальник - ваш фідбек буде дуже корисним при підготовці наступних презентацій, якщо такі будуть :)
    На яку Scala-тему ти хотів(-ла) б поговорити в майбутньому?


JUG 20 PPT


Презентація з нашої 20 зустрічі



четвер, 25 квітня 2013 р.

Чергова гаряча вакансія


Літо гаряча пора для рекрутерів))

Отож

якщо вам набрид проект з старими технологіями і ви мрієте про Spring3, Amazon Cloud і купу інших новітніх технологій - є чудова вакансія у гіганта українського аутсорсу. Поспішайте залишилось всього три вільних місця)))

Гарячі вакансії


Є дві гарячі вакансії

1) Новостворена компанія шукає людину з хорошим досвідом розробки проектів на Spring(MVC, REST, JPA, JDBC). Всі переваги маленької компанії присутні - перспективи карєрного і професійного зростання, дружній колектив та особистий підхід до працівника

2) Монстр українського аутсорсу шукає людину з досвідом розробки проектів на GWT (знання GXT буде перевагою). Ви маєте шанс отримати неоціненний досвід роботи в великій компанії.

Якщо вас цікавить така робота - кидайте мені резюме на jug.lviv@gmail.com
Якщо цікавлять деталі - пишіть на скайп diykorey

/Андрій Андруневчин

What Version of Java Are You Using?


до теми перенесення JDK 8 на березень 2014

What Version of Java Are You Using on production?

наразі історія останіх версій джави виглядає так:
J2SE 1.4 - February 6, 2002
J2SE 5.0 - September 30, 2004
Java SE 6 - December 11, 2006
Java SE 7 - July 28, 2011
Java SE 8 - March, 2014?


середа, 24 квітня 2013 р.


3-4 червня в Берліні пройде найбільша європейська конференція, присв"ячена розробці нетрівіальних проектів:
Berlin Buzzwords is a conference for developers and users ... focussing on the issues of scalable search, data-analysis in the cloud and NoSQL-databases. 

 Детальна програма ось тут, серед заявлених доповідей значна частина буде присв"ячена ElasctiSearch та інфраструктурі Hadoop (у тому числі, буде представлена Cloudera Impala) Участь в конференції платна
 

вівторок, 23 квітня 2013 р.

JUG 20 Реєстрація припинена.


JUG 20 Реєстрація припинена.

На данний момени зареєстровано понад 80 людей, а зал розрахований ~60.

Якщо Ви прийдете - Вас ніхто не вижене, але комусь може не вистарчити місця!
Якщо все-таки Вам обов'язково треба - зареєструйтесь!

Зареєструвались? Але не маєте можливості прийти - скасуйте реєстрацію.
Дайте можливість комусь прийти!!!


понеділок, 22 квітня 2013 р.

JUG 20 Scala


Запрошуємо на ювілейну 20-у зустріч JUG!
Цього разу нам випаде нагода послухати про

 Scala intro and popular scala  frameworks review

Цього разу нас гостинно прийматиме компанія N-iX
За адресою: вул. Стороженка, 32, 7 поверх, 25 квітня (четвер) 19.00

 І презентувати буде: Юрій Тарас.

ПС1 Прошу зареєструватись для участі в зустрічі(безкоштово)
ПС2 Для уникнення колізій з місцями прошу зареєструватись якомога швидше, щоб можна було б прідкорегувати к-сь місць чи закрити реєстрацію.



JDay Free Ticket





Would you like to win JDay free ticket? Like and share this post and take part in contest


Spring & Hibernate своїми рукамию. Webinar


Сьогодні (22 квітня) о 19,00 відбудеться вебінар: Spring & Hibernate своїми руками.

Реєстрація: http://kuchyn.com.ua/spring-hibernate/

Bad news Java 8


Ходять чутки, що це знову відбулось. Реліз Java 8 знову відтягується.
Цього разу причиною виступають велика кількість робіт по усуненняю дир в безпеці старіших версій Java.

Деталі: http://mreinhold.org/blog/secure-the-train





пʼятниця, 19 квітня 2013 р.

geekout conference, Estonia, June 12-14


Сьогодні останій день на раній етеп реєстрації на конференцію GeekOUT, the geekiest Java conference in the world. Обіцяють багато цікавих доповідей

середа, 17 квітня 2013 р.

JUG 19 Feedback report.


Результати опитування. Посортованні в порядку найбільш згадуваності.

1) Кому дістались знижки і ліцензії на IDEA?
Ліцензії:
  • Назарій Шиманський(презентація Play)
  • Юрій Завада(Другий доповідач відмовився і пожертвував на користь людини, яка задала найпровокативніше запитання)
Маєте бажання отримати  IDEA - готуйте презентацію і радо ощасливимо ліцензією :)

Знижки:
  • Богдан Цап
  • Зеник Матчишин 
Очікуємо звіту про конференцію

 
2) Маленький зал
 Ми самі зіграли з собою злий жарт - пізня реєстрація не дала можливості навіть спробувати підшукати щось більше. В два останні дені зареєструвалось 50 із 120 зареєстрованих... .

3) Воркшопи.
На данний момент, я знайшов Scala ліда в києві, але раніше червня Він не може приїхати.
Якщо Ви маєте відповідну кандидатуру - звертайтесь! Також звертайтесь, якщо вам буде цікаві воркшопи по іньших технологіях, або якщо ви можете провести їх!!!

Дякую За Ваші відгуки.

І як завжди, запитання, коментарі, побажання...



Webinar. Learn Why NoSQL is the New Normal


І знову NoSQL. Цього разу вебінар, який пройде 23 квітня.

Посилання на реєстрацію:  ось тут

Jetbrains discount 50% before Earth day


Jetbrains оголосила 50% знижку на свої продукти до дня землі (22 квітня)

вівторок, 16 квітня 2013 р.


А тим часом, все більше і більше інформації стає доступним щодо Google Glass. Вже опубліковано АПІ, стаття на хабрі та доступні приклади з вихідним кодом, для Java доступні на GitHub і як викодно по запушаному коді, чуваки з гугла використовують Idea, єслі шо

SQL? NoSQL? NewSQL? What's a Java Dev to Do?




четвер, 11 квітня 2013 р.

Storm - big data solution for soft-real time


Hadoop - чудовий інструмент, що дозволяє реалізувати аналітику в домашніх умовах, перенести її на кластер і скейлити а ж до 4000 інстансів. Наприклад, можна написати свого конкурента Google Analytics, який на основі логів веб-серверу буде показувати статистику по країні, мові, відвіданому ресурсі чи ще будь-якій комбінації... купа варіантів, усе дуже просто і чудово масштабується. Єдина проблема, це буде зовсім не "в реальному часі". Це пов"язано з тим, що Хадуп пропонує нам так звану "пакетну" обробку даних.
На прикладі, це виглядає так: веб сервери пишуть логи з 11:00 до 11:59, о 12:00 вони починають писати нові логи, а ми забираємо логи за попередню годину (11:00 - 11:59) і починаємо їх процесати. Припустимо це займає біля 15ти хвилин. Отже, лише після 12:15 ми матимемо дані за попередню годину. Додаму сюди можливі проблеми - з нетфорком чи фейли в кластрі, тобто треба мати запас як мінімум на ще один перезапуск хадупівських джобів. Отже, ми можемо обіцяти кастомеру готові дані з затримкою хвилин в 40 (ну що б з гарантією 99%), а в маркетингових цілях - так і взагалі лише о 13:00 :)

Отже, виходе якось не дуже:( Звісно, нам би хотілося усю цю аналітику показувати в "в реальному часі" (в гугл аналітікс і така вкладка є), а для цього хадуп вже якось не дуже підходить...

Нащастя, і для цього вже придумали ріщення - називається Storm, родом з Твітера де використовується для побудови малопримітної колоночки "тренди". Ну а ще її можна застосувати, щоб показувати статистику по відвідуваннях для різних критеріїв, в режимі наближеному до реального часу.



JUG 19 Report


Нещодавно проходила наша 19 зустріч.

Цього разув нас зареєструвалось близько 120 людей і це зіграло поганий жарт з нами.
Зал був попередньо запланований на 50-60 людей, а прийшло близько 90.

Але в цьому є і приємні моменти - те, що ми робимо потрібне :).

Також хочу попросити заповнити форму-відгук:
 http://jug-lviv.blogspot.com/2013/04/jug-19-feedback.html

І нагадую, в нас діє Акція - зроби доповідь чи напиши статтю і отримай подяку групи ;)

Невеличкий фото звіт і посилання на матеріали:

Play:




середа, 10 квітня 2013 р.

JavaOne Moscow - free passes for student


If you are student and you are interested in attending JavaOne Moscow (Apr 23-24), Oracle Academy is holding a drawing for free passes.
 Registration  here

вівторок, 9 квітня 2013 р.

Навіщо потрібий Blueprint? (в картинках)


На прохання одного з членів Java User Group of Lviv спробую пояснити для чого потрібен Blueprint в картинках. Опишу різні підходи до написання програм.
1. Програми буз структури.
2. Структурні програми розглядаются як послідовність команд з одним входом і виходом. Для проектування таких програм використовуются блок-схеми, як графічна нотація і псевдокод як текстове описання роботи програми розмовною мовою. При проектуванні з використанням псевдокоду складні кроки розписуются на менші (низхідне проектування).
3. Модульні програми. Такі програми розподіляются на модулі. Для тестування модулів використовуются модульні-тести. За допомогою яких можна перевірити працездатність модуля перед включенням в програму. Це дозволяє комбінувати низхідний і визхідний підходи при проектуванні.
4. Об'єктно-орієнтовані програми. Розглядаются не як сукупність об'єктів які динамічно створюются для реакції на певну подію. Графічною нотацією для проектування об'єктно-орієнтованих програм є UML, для створення модульних тестів для мови програмування Java можна використовувати JUnit. На мій погляд графічна нотація невідображає достатньо інформації для проектування програми, отже необхідно текстово описувати програму зокрема за допомогою технології Blueprint для розробки проектної документації.






понеділок, 8 квітня 2013 р.

неділя, 7 квітня 2013 р.

Типи аспектів в Blueprint документах


В Blueprint документах є три типи аспектів : precedent, reaction, aspect. Кожний аспект містить псевдокод який записуєтся всередині тегу algorithm.
1. precedent - аспект для виконання алгоритму якого мають виконуватись передумови які запистуются в тезі preconditions, також може містити післяумови свого виконання у вигляді бульових тверджень в тезі postconditions.
2. reaction - аспект для виконання алгоритму якого система повинна перебувати в стані який записуєтся набором логічних виразів в тезі state. Для логічних виразів використовуєтся тег condition з атребутом assertion, в якому записуєтся логічний вираз, і необовязковим атребутом function, для посилання на функцію всередині документу.
3. aspect - аспект алгоритм якого має бути всередині функції з якоїсь точки зору, яка записуєтся в тезі viewpoint. Тег viewpoint може мати атрибут responsibility для посилання на відповідальність класу.

Алгоритм функції як набір аспектів у Blueprint документах


У Blueprint документах алгоритм роботи функції записуєтся за допомогою псевдокоду в середині тегу algorithm. Алгорим функції може розглядатись як сукупність складових частин - аспектів. Набір аспектів алгоритму описуєтся в тезі aspects. Якщо описуєтся набір аспектів, то алгоритм функції може складатись з псевдокоду цих аспектів у будь-якій послідовності. Є три типи аспектів : precedent, reaction, aspect. Для прикладу взята функція isFileReadyForOpening яка перевіряє файл на можливість відкриття і повертає true якщо файл можна відкрити. В ній використані аспекти типу precedent, які мають передумови свого виконання, псевдокод цих аспектів має виконуватись якщо передумови є істинними.
Запис функції за допомогою технології Bleuprint :

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/model.xslt"?>
<!DOCTYPE model SYSTEM ".blueprint/model.dtd">
<model>
    <functions>
        <function id="isFileReadyForOpening" name="isFileReadyForOpening" visibility="private">
            <description>Returns true if file is ready for opening. Otherwise show message dialog and return false</description>
            <parameters>
                <parameter name="file" type="File" />
            </parameters>


33rd Degree Conference part 2.


Продовжу тему 33rd Degree.

перший пост тут.

Отже, організація, плюшки, вечірки.
Конференція проходила у одному з найбільших і мабуть найстаріших готелів у Вашаві - Hotel Gromada. Споруда величезна і чи не єдина у столиці Польщі здатна прийняти таку кількість людей.


Реєстрація

На стійці реєстрації стояли привітні дівчата, як попри бейдж видавали ще цілий пакунок різного добра:

 Потішив буклет з програмою конференції та картою залів. Конференція займала три поверхи готелю, тому карта була необхідною.
Ще в пакунку була купа реклами, і кілька гаджетів.




Простір для спілкування

Організатори добре подбали про простір, де в час коротких перерв можна було поспілкуватись з людьми, часто навіть з доповідачами. Які радо спілкувались з публікою.


 Стенди компаній тішили безмежною кількістю різних подарунків.
Luxoft та Epam поставили ігрові консолі та здоровезні екрани, і бажаючі могли пограти на гітарі, ударних інструментах, або на всьому одразу ).





Книжки від O'Reilly

 

Дуже популярним був стенд від O'Reilly. Деякі книжки продавались за смішними цінами.


Programming Scala зовсім розібрали. Автор, Venkat Subramaniam був в списку доповідачів, тому, хто хотів - міг одразу і підписати книжку.






WiFi

Щоб отримати доступ до wifi - треба було звернутись до стенду EPAM. Там милі дівчата видавали цукерку, пасворд був в обгортці.







Воркошпи

Паралельно з доповідями, щодня проходили воркшопи. Були по GIT, SpringData та Amazon WS.

Мені вдалось відвідати тільки останній - за 3 години нас навчили створювати сервери та бази даних в амазонівських хмарах, а також це все діло масштабувати.
Оскільки сервіси платні - нам навіть видали по 50USD на рахунки. :)



Вечірки

Щовечора простір між залами перетворювався на відпочинкову зону з морем пива. В перший день вечірка була з рахунок Luxoft. Приїхали кілька молодиків, змайстрували сцену і розважаkи публіку, переспівуючи відомі пісні.

Доповідачі були на вечірках і радо спілкувалися з людьми, попиваючи польське пиво.





Підсумки

особисто мені здалось, що подія була організована просто чудово. Організатори навіть вирішили провести опитування, а чомусь негативних відгуків було більше. Виглядало опитування так:



субота, 6 квітня 2013 р.

Project тип Blueprint документів


Щоб згрупувати документацію програми для перегляду в переглядачі використовуєтся project тип документу. Кореневим тегом документу є тег project, який має обовязковий підтег name з ім'ям проекту і довільну кількість тегів document і package. Для задання документу використовуєтся тег document з атрибутами name (ім'я документу), file (файл документу який буде відкриватись коли project документ відкриваєтся в переглядачі), page (файл документу який буде відкриватись коли project документ трансформований в html). Документи можуть групуватись у пакети з довільним рівнем вкладеності які описуются тегом package з атрибутом name (ім'я пакету). При відкритті в переглядачі project документ трансформуєтся в HTML сторінку з двома секціями : з ліва буде перелік документів і пакетів у вигляді ссилок, а з права самий документ. При кліку на ссилці буде завантажено відповідний документ для перегляду у правій частині або відкрито пакет з документами у лівій частині сторінки. Документами для перегляду можуть бути не тільки Blueprint документи, а будь-які що відображаются в переглядачі, наприклад документація згенерована через javadoc.
Приклад :
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/project.xslt"?>
<!DOCTYPE project SYSTEM ".blueprint/project.dtd">
<project>
  <name>Blueprint Builder</name>
  <document name="proposal" file="proposal.xml" page="proposal.html" />
  <document name="analysis" file="analysis.xml" page="analysis.html" />
  <document name="file operations" file="file_operations.xml" page="file_operations.html" />
  <package name="editing">
    <document name="editing operations" file="editing_operations.xml" page="editing_operations.html" />
    <document name="advanced editing operations" file="advanced_editing_operations.xml" page="advanced_editing_operations.html" />
  </package>


Відношення розширення між варіантами використання в Blueprint документах


Відношення розширення (extend) використовуєтся для введення нової поведінки в існуючий варіант використання. Базовий варіант використання надає набір точок розширення в які може бути додана нова поведінка. Для введення точки розширення використовуєтся тег extension-point з атрибутом name, який може бути використаний як в розповіді взаємодії користувача з системою так і в псевдокоді. Розширяючий прецедент складаєтся з набору сегментів вставки які описуются тегом segment і можуть містити властиві прецеденту теги. Відношення розширення використовуєтся коли базовий прецедент є конкретним і може бути реалізований програмно. Коли базовий прецедент є абстрактним необхідно використовувати відношення наслідування з конкретизацією абстрактних термінів.
Приклад включає базовий прецедент Set property (для прикладу зроблений конкретним), що має точки розширення loadingOfProperty, settingOfProperty, savingOfProperty і розширяючий Persist Backup. На діаграмі варіантів використання вони відображаются так :
Запис варіантів використання в Blueprint документі :
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/model.xslt"?>
<!DOCTYPE model SYSTEM ".blueprint/model.dtd">
<model name="Advanced current file option operations">
    <description>The advanced options for current file</description>


пʼятниця, 5 квітня 2013 р.

Відношення включення між варіантами використання в Blueprint документах


Відношення include використовуєтся для включення поведінки одного прецедента в інший. Для цього використовуєтся тег include з атрибутом use-case. Цей тег може використовуватись як у розповіді взаємодії користувача з програмою, так і в псевдокоді. Приклад включає варіатн використання Start в який включено варіатн використання Load files from command line що знаходится в пакеті package of Start use case. Діаграма варіантів використання є слідуючою :
Запис документу з використанням технології Blueprint:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/model.xslt"?>
<!DOCTYPE model SYSTEM ".blueprint/model.dtd">
<model name="File operations">
  <description>Operations with file system and printing.</description>
  <diagrams><diagram name="use case diagram" file="use_case_main.uxf"    image="use_case_file.jpg" /></diagrams>
  <use-case name="Start">
      <description>Start program</description>
      <actors>
        <primary-actors>
            <actor name="user" />
        </primary-actors>
        </actors>


BookReview: Spring Data


 In scope of our partnership with O'Reilly Andriy Mishak reviewed  book "Spring Data (Modern Data Access for Enterprise Java)"  By Mark Pollack, Oliver Gierke, Thomas Risberg, Jon Brisbin, Michael Hunger.
Thx O'Reilly for a good book.
/Andriy Andrunevchyn
P.S. If you would like to read some new interesting book and ready to write some short review - ask me (skype: diykorey, email:diykorey@gmail.com)




Modern Data Access for Enterprise JavaSpringData 
 Modern Data Access for Enterprise Java
 By Mark Pollack, Oliver Gierke, Thomas Risberg, Jon Brisbin, Michael Hunger
 
This book is masterpiece from hands of five developers of the Spring data project. It is very good starting point for first contact with Spring Data world. For example, if you familiar with JPA (and/or JDBC), you can follow steps from specific chapter (or download sample project from github). So you became familiar with Spring Data way to organize data layer in application. Then you have some basis for start in NoSQL and Hadoop worlds, Spring Roo, Spring Integration and GemFire, because Spring Data generally use the same way to work with mentioned technologies. So, it is like crossroad for any unknown stated in book place for you, based on Spring Data.

One of the best part is low barrier to entry to start. You just need some basic knowledge of Java and Spring. For example, if you do not know anything about  Hadoop you can start with this book, corresponding sample project from github and this book. So you step first moves with Hive, Pig and Hbase. So it is for NoSQL, it consists of MongoDB, Neo4J and Redis chapters. You can try different schema-free  approaches – document, graph and key-value accordingly.

Why do you need to read this book? Because you want to have start with any mentioned (plus QueryDSL and Splunk) technologies.

When the best time to read it? I think, just before starting doing some with code for all stated abbreviations. Like first ever starting point for reading about them good too.

How the best way to work with it? My advice is reading the book while exploring sample projects code from github.

/Andriy Mishak

Наслідування варіантів використання в Blueprint документах.


Відношення наслідування використовуєтся якщо є один чи більше прецедентів які насправді є спеціалізаціями одного загального. Наслідування виносить поведінку спільну для одного чи більше варіантів використання в батьківський. Такий варіант використання є абстрактним і описує поведінку в абстрактних термінах, отже не може бути реалізований програмно, оаписуєтся з атребутом  type="abstract". Дочірні прецеденти конкретизують бітьківський і є конкретними, отже можуть бути реалізовані програмно, описуются з атребутами type="concrete" і extends="...". Для опису конкретизації використовуєтся тег concretization і підтеги term які встановлюють відповідність між абстракним терміном і конкретним значенням.
Приклад включає абстрактний варіант використання New Editor і конкретний New Plain Editor. На діаграмі варіантів використання вони відображаются так:
Документ який описує варіатни використання:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/model.xslt" ?>
<!DOCTYPE model SYSTEM ".blueprint/model.dtd">
<model name="Window operations">
    <description>Operations with tabs which contains the text components</description>
    <diagrams><diagram name="use case diagram" file="use_case_window.uxf" image="use_case_window.jpg" /></diagrams>
    <use-case name="New editor" type="abstract">
        <description>Create new tab with text editor</description>
        <actors><primary-actors><actor name="user"/></primary-actors></actors>
        <preconditions>"Window" menu is selected</preconditions>
        <narrative>
            <doing>The user selects "New Editor" menu item</doing>
            <doing>The system creates new tab with text editor</doing>
        </narrative>
        <postconditions>New tab with text editor is created</postconditions>
        <thread>
            <doing>listen "New Editor" menu item</doing>
            <perform action="'New Editor' menu item action">
                <doing>create text editor</doing>
                <doing>add new tab with text editor and "noname" title</doing>
            </perform>
        </thread>
        <test-scenarios>
            <test-scenario name="New editor">
                <test-step>
                    <test-action>Go to Window->New Editor</test-action>
                    <expected-results>New tab with text component is created</expected-results>
                </test-step>
            </test-scenario>
        </test-scenarios>
    </use-case>
    <use-case name="New plain editor" type="concrete" extends="New editor">
        <description>Open new editor for editing plain text</description>
        <concretization>
            <term>
                <abstract>text editor</abstract>
                <concrete>plain text editor</concrete>
            </term>
            <term>
                <abstract>"New editor" menu item</abstract>
                <concrete>"Plain" submenu of "New editor" menu</concrete>
            </term>
            <term>
                <abstract>tab with text editor</abstract>
                <concrete>tab with text component</concrete>
            </term>
        </concretization>
    </use-case>
</model>
Вигляд в переглядачі:




Трансформація Blueprint документів в HTML


Blueprint-документи є XML файлми з визначеним набором тегів. Ці документи можуть трансформуватись в HTML з допомогою XSLT. Трансформація може проводитись при відкритті в переглядачі, або у файловій системі за допомогою програм. Для трансформації в переглядачі в заголовку файлу має бути прописано <?xml-stylesheet type="text/xsl" href=".blueprint/model.xslt"?> де замісь model.xslt може бути інший файл в залежності від типу документу.
Для коректного відкриття документів в каталозі з документом має бути каталог з службовими файлами .blueprint. Ці файли можна скопіювати або з меню Blueprint->Copy Stylesheet програми Blueprint Builder або скопіювавши файли з каталога blueprint дистрибутива.
Трансфовмація в HTML з допомогою ANT відбуваєтся з використанням дерективи ANT xslt з вказанням параметра трансформації out в значенні file. При цьому потрібно скопіювати в каталог призначення файли CSS i JS з каталога .bleuprint. А також треба скопіювати всі файли з зображеннями в каталог призначення.

  <target name="blueprint">
    <delete dir="blueprint" />
    <mkdir dir="blueprint" />
      <xslt in="uml/project.xml" out="blueprint/blueprint.html" style="uml/.blueprint/project.xslt" >
          <param name="out" expression="file" />
      </xslt>
      <xslt in="uml/proposal.xml" out="blueprint/proposal.html" style="uml/.blueprint/proposal.xslt" >
          <param name="out" expression="file" />
      </xslt>
      <xslt in="uml/analysis.xml" out="blueprint/analysis.html" style="uml/.blueprint/analysis.xslt" >
          <param name="out" expression="file" />
      </xslt>
      <xslt in="uml/file_operations.xml" out="blueprint/file_operations.html" style="uml/.blueprint/model.xslt" >
          <param name="out" expression="file" />
      </xslt>
      <xslt in="uml/memory_optimization.xml" out="blueprint/memory_optimization.html" style="uml/.blueprint/research.xslt" >
          <param name="out" expression="file" />
      </xslt>
    <copy todir="blueprint/.blueprint">
        <fileset dir="${blueprint.dir}">
            <include name="**/*.css" />
            <include name="**/*.js" />
        </fileset>
    </copy>
    <copy todir="blueprint">
      <fileset dir="uml">
        <include name="use_case_model/images/**" />
        <include name="analysis/images/**" />
        <include name="file_operations/images/**" />
      </fileset>
    </copy>
    <javadoc sourcepath="src" destdir="blueprint/blueprintBuilder_doc" excludepackagenames="test" />
  </target>

How Many Java developers are There in the World?


Oracle says it’s 9,000,000. Wikipedia claims it’s 10,000,000. And the guys from NumberOf.net seem to be the most precise - they know that there are exactly 9,007,346 Java developers out there.

Nice numbers. I have used those articles as reference points while speaking about the potential market size for our memory leak detection tool. But something in these numbers has bothered me for years - there is no trustworthy and public analysis behind those numbers. Its just conjured up from thin air. So I finally thought I would do something about it and try to figure it out for good.
It proved out to be a challenging task. After all - with more than seven billion people on our planet I couldn't call everyone and ask them. Well, maybe I could, but if every call would take on average 20 seconds I would need at least 4,439 years to complete the survey. If I would not sleep nor eat nor rest. So I had to use other ways for estimation.


Fridays Fun





четвер, 4 квітня 2013 р.

JUG 19. Реєстрація припинена.


Всім доброго дня.

Нажаль ми змушені припинити реєстрацію на сьогоднішню зустріч.

На данний момент зареєстровано вже більше ніж на 20 людей більше, аніж є крісел в залі.

Ви звичайно можете прийти. Вас ніхто не вижене, але прошу врахувати, що потенційно Вам прийдеться стояти!!!

ПС. І як каже приказка:"Хто перший всатв, того і тапки", отже не запізнюйтесь!

Нагадую: Зустріч розпочнеться о 19.00 за адресою: Федьковича 60а, 2 поверх, конференцзал

середа, 3 квітня 2013 р.

Вже завтра!!! JUG - 19 Let's Play


Всім, всім, всім JUG - 19 Let's Play вже завтра

Запрошуємо Вас за адресою вул.Федьковича 60а

Цього разу нас чекає 2 розповіді і купа подарунків !!!

ПС. дякуємо Globallogic за гостину :)

ПС2. Посилання на реєстрацію тут



вівторок, 2 квітня 2013 р.

Android App Anatomy




Eric Burke ділиться досвідом написання Android додатків компанії Square:
  • Які проблеми виникають в життєвому циклі додатку
  • Чому вони відмовились від Loader-ів
  • Проблеми зв’язності Fragment і Activity
  • Як вони вирішили ці проблеми за допомогою бібліотек Tape і Otto
  • Перехід з Google Guice на Dagger




понеділок, 1 квітня 2013 р.

Ліцензії IntelliJ IDEA


Починаючи з наступної зустрічі і надалі JUG Lviv  буде розігрувати 1-2 ліцензії  IntelliJ IDEA
тож раді будемо вас бачити на 19-ій зустрічі нашої групи в цей четвер

Jigsaw повертається в Java 8 і найкраща IDE 2012


Oracle оголосив про включення Jigsaw в Java 8. 

Як стало відомо, проект Jigsaw буде включений в Java 8. Щоправда, на момент релізу в ньому очікується ~ 5000 дефектів, але це в більшості некритичні баги.

Також Оракл підтримав оголошення MS Visual Studio 2012 найкращою IDE для розробки комерційних проектів 2012 року.