К основному контенту

JEEConf 2013

Этот пост посвящён конференции JEEConf, проходившей в Киеве 24-25 мая. Это мероприятие организовывается уже не первый год и с каждым разом собирает все больше и больше Java-разработчиков. В этот раз и докладов было больше и самих докладчиков, в т.ч. и зарубежных.

Из тех докладов, на которых я побывал в первый день, хочется отметить доклад Олега Шелаева про Java-агенты и доклад Антона Кекса «Как вернуть Java былую славу?». Первый познакомил с интересными инструментами вроде Chronon и Byteman и породил интересные идеи применения агентов. А второй из выделенных мною докладов оставил особо яркие впечатления. Антон — отличный докладчик. Он с особым удовольствием поиздевался над трехбуквенными аббревиатурами из Ынтерпрайз мира и стилем разработки resume driven development. Конечно же, были рекомендации как нужно делать. Не все из них можно просто вот так взять и применить (все-таки работа в аутсорсе и распределённых командах накладывает определённые ограничения), но общее направление, к чему нужно стремиться обрисовано достаточно чётко. Рекомендации, касающиеся стиля кода, были спорными. Как по мне, их и не стоило приводить. Насколько я заметил, доклад Антона собрал наибольшее число карточек «Cool Speech».

Неприятное впечатление оставило практически всё в секции мини-докладов. Доклады были какие-то сыроватые, некоторые звучали как заученный урок, а доклад про Vagrant представлял из себя некий винегрет, куда по вкусу добавили Chef и Puppet, и у публики незнакомой со всеми этими инструментами, я уверен, в голове все перемешалось и запуталось. Ощущение зря потерянного времени осталось после доклада Якова Файна «Speed up your Web applications with HTML5 WebSockets». Судя по содержанию, тема должна была звучать как-нибудь так: «Обмен сообщениями по схеме запрос-ответ и что приходит ей на смену». Причём львиная доля посвящалась именно схеме запрос-ответ. Интересно, кому она была неизвестна из присутствующих.

Второй день начался с доклада доктора Венката Субраманиама (Dr. Venkat Subramaniam) про акторы. Он сделал достаточно хорошее введение в эту тему с примерами, использующими Akka. И это при том, что с его маком были какие-то проблемы, ноутбук подтормаживал и не поспевал за докладчиком. Доктор Венкат нашёл выход из ситуации и у него появился ассистент. У него неимоверная скорость речи и это было бы катастрофой в восприятии доклада, если бы не отличная дикция, которая, правда, несколько скрадывалась перепадами интонации. Его же докладом закончился второй день. Этот доклад, правда, был «философским», из которого трудно сформировать набор практических действий. Из разочарований второго дня доклад от Jelastic. Я не имею ничего против их облачных решений, но зачем занимать время участников конференции, чтобы попиариться, прикрываясь темой про вертикальное и горизонтальное масштабирование, непонятно. Остальные доклады не оставили особых впечатлений и не способствовали рождению новых идей. Единственное, захотелось попробовать на практике Hazelcast, поэкспериментировать с ним.

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


Комментарии

Анонимный написал(а)…
Сколько же впечатлительных людей Кекс увлек своей демагогией. Его советы подходят для небольших приложений, которые можно полностью перепилить за пару дней(как он говорил в примерах).
Действительно большой ынтырпрайз хоть и бывает перегружен технологиями, но без них построить эти большие системы не удалось бы вообще.

Популярные сообщения из этого блога

Обработка изображений с ImageMagick

ImageMagick (http://www.imagemagick.org) — набор утилит для создания, редактирования, конвертирования и просмотра растровых изображений. Графический режим необходим только для просмотра. Для остальных действий над изображениями достаточно консоли. То есть налицо два отличия от привычных редакторов растровых изображений (вроде GIMP или Krita):
использование набора утилит вместо одной программыдля операций над изображениями не требуется GUI.
Очевидно, что таким инструментом вряд ли будут пользоваться художники, фотографы или дизайнеры. Чтобы разобраться для кого предназначен этот набор, предлагаю ознакомиться с предоставляемыми возможностями.

Что умеет ImageMagick?
Чтобы ответить на поставленный вопрос я перечислю входящие в набор утилиты, напишу какой функционал предоставляет каждая из них и, конечно же, приведу примеры использования.
identify — информационная утилита, воспользовавшись которой можно узнать формат изображения и множество других его свойств (например, высоту, ширину, количе…

Изучение Qt маленькими порциями. Заставляем приложение что-то делать

Итак, прошлый раз мы разбирали шаблон приложения, сгенерированный QtCreator. На этот раз я обещал, что оно будет делать что-то. Начнём с окна дизайнера QtCreator (перейти к нему можно по двойному щелчку по mainwindow.ui). Давайте рассмотрим различные части окна одну за другой.



Список виджетов - область, в которой показаны все доступные виджеты. Имеется два режима отображения: в виде списка и в виде значков. Я предпочитаю режим значков (показанный на рисунке), но режим отображения списка может быть полезным для начинающих. Сменить режим можно из контекстного меню. Для добавления виджета на форму достаточно перетащить его отсюда в место назначения.
Окно свойств - здесь отображаются настройки для текущего виджета. Попробуйте выделить виджет на форме или саму форму и вы получите полный набор свойств, доступных для настройки.
В иерархии объектов показано как всё связано между собой. Например, все виджеты будут размещены внутри экземпляра QMainWindow (названого MainWindowClass). Если вы исполь…

Изучение Qt маленькими порциями. Разбираем ваше первое приложение

Прошлый раз вы установили QtCreator, а затем сгенерировали ваше первое приложение. Всё сработало и у вас теперь есть собственное пустое окно QMainWindow на экране. Всё хорошо, но что же действительно было сделано? Давайте пройдёмся по сгенерированному коду, чтобы стало понятно, что же случилось на самом деле.




Приложение состоит из одного класса и функции main, необходимой для запуска. Давайте посмотрим на эту функцию

main.cpp

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}


В этой функции создаётся экземпляр класса QApplication. Каждому приложению Qt нужен один и только один экземпляр класса QApplication. Он представляет собой само приложение и содержит главный цикл обработки событий.


Вы можете спросить, что такое цикл обработки событий? Это просто цикл, ожидающий наступления события. Например, нажатие клавишы, перемещение мышки, сетевые пакеты, событие, срабатываю…