Tuesday, May 29, 2012

ATinfo посиделки #16

Приятно было наконец добраться до столь известных посиделок. Давно хотел, но все никак не мог найти время. Жизнь консультанта имеет совсем другой темп. Так что мне удалось выступить на 16 серии действа. Спасибо организаторам, докладчикам и посетителям. Материалы и официальный отчет тут.

Thursday, May 24, 2012

Java Tech Talks, 21 мая, Одесса

Всегда приятно посетить Одессу в теплое время года. Этот раз не был исключением. Причиной визита стал JavaTechTalks. Даже несмотря на наши самые поездатые поезда поезда оставила самые теплые.... Очень старались, чтоб Антон Архипов из Zero Turnaround приехал в Украину и вот наконец это удалось. Кроме того Логика давно поддерживает .Net и Java Users Group в Одессе и в этот раз сделала для джаверов маленький праздник. А теперь немного о программе:

1. Антон выступил со своим докладом The dark sides of integration

2. Мой доклад про Spring : "Lightweight Java Enterprise using SpringFramework"



3. Игорь Анищенко рассказал про сериализацию в Java: "Thrift vs Protocol Buffers vs Avro - Biased Comparison"

4. Снова Антон - на этот раз про линейку продуктов Zero Turnaround JRebel & LiveRebel: "Why doesn’t Java have instant turnaround?"

5. Иван Соболев рассказал про NoSQL решения: "The Big Data: choosing distributed storage"

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

Очень хочется продолжить практику подобный мероприятий для развития community.

JEEConf 2012, 19 мая, Киев

В этом году JEEConf снова проходил в МВЦ, что на мой взгляд очень позитивно. Это недалеко от моего дома :). Стоит отметить ненавящевость спонсоров и стабильно работающий интернет. В этом году по словам организаторов на концеренцию зарегистрировалось более 650 человек. Таким образом можно сказать что JEEConf стала самой большой региональной конференцией. Но все же началась конференция с печальки. На бейдже была указаны должность на предыдущем месте работы вместе с именем компании... Но как говорится вместо ностальгии решил сосредоточиться на настоящем. Очень порадовали лаунж зоны и настольный футбол.

О докладах:

1. Java EE 7: Developing for the Cloud by Arun Gupta



Arun евангелист Oracle, что во многом определило ход его доклада. Весь доклад меня преследовало чувство о том, что это все очень общие фразы... Чтобы то чего чего хочет Oracle для J2EE7 сбылось необходимо очень много работать с индустрией, но скорее всего это все морально устареет еще до выходы самой реализации спеки. Для себя отметил что стоит обратить внимание на Сервисы, новые фичи JPA  - такие как criteriaUpdate, stored procedures; JAX-RS  - async.

2.  Hibernate performance tuning by Sander Mak



Бомбовая презентация - рекомендую всем. Очень последовательный и толковый набор советов по оптимизации persistence слоя. Проблемы не всегда в Хибере :)  - вот это меня очень порадовало. Вместе со "преждевременная оптимизация это зло".  Услышал для себя ряд новых фишек например @FetchProfile и StatelessSession.

3. Spring Integration: интеграция, да не только…  by  Артем Билан

Этот доклад меня не впечатлил я не смог досидеть до конца и чем возможно не прав... Надо будет проскролить видео когда его выложат.

4. DCI – хорошо забытый старый взгляд на объекты by Антон Чернецкий &  Лев Сивашов

Обошел все треды и остановился именно на этой презентации. На мой взгляд достаточно интересный доклад про подход DCI и его реализацию на Java. В голову пришло пару примеров где бы я мог его использовать. Проблема скорее в специфике реализации подхода в самой Яве и относительной "молодости" библиотеки. В общем рекомендую для общего развития. Слайдов пока не нашел.

5.  Garbage-First – новый сборщик мусора в HotSpot JVM by Владимир Иванов



Замечательный доклад. Еще раз "устаканил" свои знания о работе GC. Рекомендовано.

6. Fork/Join: особенности реализации, модели использования, производительность by Алексей Шипилёв

Замечательное описание работы Fork/Join фреймворка в JDK7. Напряженно думал весь доклад - наверное так и нужно. Остался один вопрос, который не совсем касается темы - почему ничего не было сказано про Disruptor?
UPD: На этот вопрос Алексей мне ответил, спасибо ему большое. Я не очень досконально разобрался в предмете. "Будем искать."

Еще раз  - слайды тут.

7.  Использование Jenkins: удачи и неудачи by Антон Архипов



Ну во-первых всегда рад слышать Антона. Первый раз слышал его на GeeCon в 2011. Мы должны были вместе выступать на JavaTechTalks в Одессе. Отличный доклад о построении CI и CD процессов на Zero Turnaround на основе Jenkins. Записал для себя ряд фич.

В завершении хотел бы еще раз выразить благодарность организаторам и доклачикам.

Tuesday, May 8, 2012

CloudFoundry Open Tour Kyiv 24 апреля 2012

Хоть и с большим опозданием, но все же хочу написать пару слов о мероприятии, которое удалось посетить. Непосредственно CF Open Tour скорее посвящен продвижению CF PaaS,но специально для Киева было сделано исключение и в программу были добавлены доклады об экосистеме Spring. Как я понял остановка в Киеве была сделана во многом по просьбе Oleg Zhurakousky - выходца из Украины и разработчика SpringSource.
Перед описанием докладов, хочу добавить, что был очень рад встрече к коллегами, так, как по объективным причинам долгое время никуда не выбирался.

Ну а теперь непосредственно о докладах:

1. Keynote от Patrick Chanezon



Обзорный доклад для тех, кто еще не в курсе что такое CF и каково ее место (по мнению VmWare) в современном мире.

2. Spring 3.1 Review & 3.2 Preview  от Chris Beams

Замечательный доклад с обзором того, что мы уже давно видели в Spring 3.1 и того что еще не пробовали в Spring 3.2. Достаточно много практических примеров и кода, правда доклад явно не вписался в регламент 60 минут. Рекомендую посмотреть материалы.

Для себя отметил много новых фич 3.1 связанных с @Configuration и XML-free конфигурацией. Аналогично руки не доходят до новых фич @MVC, в первую очередь поддержка Servlet 3.0 и особенно асинхронных запросов.

Слайды тут.

3. Spring MVC & Multi-Client Development by Josh Long

Multi Client Development with Spring
View more presentations from joshlong


Обзорный доклад о Spring MVC.  Для тех кто давно на ты с этим модулем Спринга, пожалуй ничего особо нового в первой половине презентации нет, возможно, кроме того, что  Josh показывает как быстро "построить" проект с использованием Spring Roo. Вторая часть доклада выглядит интересней, в ней рассказывается о работе с REST, Spring Android.

Код примеров можно найти тут.

4. Enterprise Integration Patterns with Spring Integration by Oleg Zhurakousky

Интересный доклад показывающий как SpringIntegration реализует EIP подходы. Я бы сказал что доклад скорее предназначен для того, чтоб показать, что Apache Camel вам не нужен. На мой взгляд, хоть SpringIntegrations и удобен, но гораздо удобнее, для большинства задач использовать уже готовые тимплейты (например для JMS) чем писать на "чистых" каналах. Это своего рода вождение на "ручке". Слайдов именно этого доклада не нашел, но в Сети очень много докладов Олега.

5. NoSQL options with SpringData by Costin Leau

Из-за отсутствия слайдов доклада, мой рассказ о нем будет не столь структурирован. И, конечно я могу что-то пропустить. Суть в том, что давно изъезженное вдоль и поперек поле persistence слоя построенного на RDBMS уже не является "неизменно превосходным результатом". Индустрия требудет "Даешь NoSQL!!!". И в то время как JBoss пытается избрести велосипед JPA for NoSQL (смотри проект Hibernate OGM), Spring решил не отставить и вплотную занялся вопросом в рамках SpringData. Spring и до этого предоставлял Mongo и Redis templates для работы с этими БД по примеру старого доброго (ныне правда deprecated) HibernateTemplate. Кроме того поддерживается "нативные" интерфейсы. Аналогичная ситуация с Neo4j в проекте SpringGraph (подпроект SpringData). Часть доклада повествовала о том, что Spring разрабатывает подход в котором фреймворк будет сам генерировать мапинги для указанного хранилища, а также хотел бы сделать LINQ для Java, но тут мне показалось что речь идет про "космические корабли, которые бороздят просторы Большого Театра".

 

6. Batch & Hadoop Workloads with Spring by Costin Leau

Сбылось "то о чем так долго говорили большевики", а именно Hadoop стал еще ближе и проще - появился SpringHadoop. Слайдов доклада не нашел, но он почти полностью повторяет этот пост. Теперь в Spring приложение можно не только легко интегрировать HDFS, но и писать MR таски с использованием спрингового инструментария. Как обычно поддерживается все на свете, а именно использование Pig/Hive.

 

Sunday, December 18, 2011

XPDays Ukraine 17 декабря 2011, Киев

Это перая конференция формата XPDays в Украине. Мои поздравления и благодарности организаторам - XPInjection. Местом проведения был выбран БЦ Парус на улице Мечникова. На мой взгляд место проведения имело как свои достоинства так и недостатки. Зная как тяжело с этой частью организации в Киеве я не вижу смысла особенно коментировать Парус. На конференции я присутсвовал в роли докладчика, тем удивительней, что я проспал :( и пропутил открытие, помчавшись сразу на доклады. Как я потом высянил я был далеко не один в этой роли :)
Еще пару слов об организации - думаю что все получилось очень неплохо, был ряд рабочих моментов, но организаторы выдержали их с честью.
А теперь о докладах:
1. "Сравнение тестов на поведение и тестов на состояние" Андрей Бибичев

Андрей рассказал часть своего тренинга по углубленному TDD. Понравилось обилие примеров и доступность. С утра немного не поспевал за докладчиком. Для себя отметил использование библиотеки FEST. Докладом очень доволен :)



2. "Approval Tests как альтернативный взгляд на автоматизированное тестирование" Александр Белецкий

Тема доклада была очень интересной, но на мой взгляд Александр позволил увести себя в сторону вопросами. В итоге не смог показать все заготовленные примеры. Также в очередной раз убедился что что при регламенте 50 минутного доклада live coding невозможен, насколько бы ты не был быстр за клавиатурой. Как Java разработчик отношусь с подозрением ко всему что было разработано дотнетчиками, но все равно попробую. Основные материалы по approval testing.

Слайды.



3. "Experience TDD and pair programming" Johannes Brodwall

Johannes при помощи Дмитрия Миндры продемеонстрировали практическую сессию парного программирования с использованием пинг-понг техники. Большое им за это спасибо. Давненько не видел ничего подобного, сразу пожалел что не попал на coding dojo.

4. Tools Talks
Talk #1 : Александр Коротких

Докладчику немного не хватило опыта для интересной подачи материала, а материал был конечно интересный - Использование Git для Agile проектов. Хоть сам я и отказался от Git в пользу Mercurial :) слушал с интересом.

Talk #2 : Максим Кузьмич

Коллега из Беларуси разложил по полочкам Crucible  от Atlassian. Очень грамотный доклад.
Talk #3 : Дмитрий Миндра

Дмитрий рассказывал свой любимый доклад про Software Craftsmanship. См. тут. Как обычно жег по полной :)

5. "Разворачиваем инфраструктуру для автоматизации функционального тестирования веб приложений" Андрей Дзыня


Не мог не поддержать коллегу и товарища. Как выяснилось очень правильно сделал - Андрей оказался в окружении разработчиков и ему не помешала небольшая поддержка. Андрей рассказал о внедрении автоматизированного тестирования UI для веб проектов с использованием Selenium. Слайды скоро должны быть.

6. Ваш покорный слуга с докладом о психологии Code Review.

Своим докладом оказался более-менее доволен. Карточек правда получил аж одну :(. Но зато смогу немного расшевелить аудитории и вовлечь в дискуссию на очень интересную и тонкую тему.



7. "Continuous Delivery" Николай Алименков
Николай разложил по полочкам такой нынче популярный процесс как непрерывная доставка. Единственное что хотелось бы ему заметить, так это то, что Feature Flags все таки были придуманные в канадской Flickr. Слайды думаю скоро будут.

 

Monday, October 24, 2011

Java One 2011 last day (6th of October)

1. Java Community Keynote
Video is available here.

2. Java EE Cluster Management Strategies by Chris Kasso (Principal Member of Technical Staff Oracle) and Jennifer Chou (Senior Member of Technical Staff Oracle) and Thomas Mueller (Principal Member of Technical Staff Oracle)
GlassFish development team members explained the main challenges while building Java EE cluster. Interesting talk. Could not find the slides.
Main topics and quotes:

Cluster management life cycle challenges:
- Configuration
- Monitoring
- Failures

Management strategies:
Centralized configuration management - data replication, highly available storage, operation replication (deploy,update). Server is NOT processing user requests.
Standalone instances - User or the 3rd party system do the work. Additional work vs freedom.
Distributed management - Master + "Standby masters". All servers are processing requests (Resin).

Instance management :
Centralized per-host controller talk to OS to start/stop services.

3. CDI Today and Tomorrow (open panel)
Panel was lead by Arun Gupta from GlassFish team. Panel members:
Pete Muir, RedHat, Spec Lead for CDI 1.1
Sivakumar Thyagarajan, GlassFish team
Davis Blevins, Apache OpenWebBeans
Reza Rahman, CanDI

Nothing really new. JBoss Weld will be taken as a reference implementation for the CDI 1.1

Quotes:
All existing CDI implementations already have a JavaSE mode
But CDI won't be in JDK
CDI 1.1 would have SE mode specified

4. Serialization: Tips, Traps, and Techniques by Steve Poole (Software Engineer IBM)
Steven is a JDK team member. A good metaphor was used to explain serialization tips - human teleportation.
Still looking for the slides :(
I'll pay more attention to this topics later on.

5. Java EE and Spring/MVC Shoot-out by Reza Rahman and Rohit Kelapure (IBM)
The drums of war thunder once again. From the other way around a good summary of JavaEE vs Spring features in one presentation. So it's up to you to decide which one is better for your particular problem. But I still don't understand why JSF is better than any of the Spring MVC presentation. You are free to have  your own opinion.

Slides are here.

 

That above is the last part of my JavaOne 2011 review posts, please contact me with your feedback.