Дополнение к обзору с подведением итогов конференции JPoint 2019 для Java-разработчиков, проходившей 5-6 апреля 2019 года в Москве. Ещё больше обзоров докладов, больше фотографий, больше эмоций и впечатлений.



Два дня с утра до вечера (почти в буквальном смысле «от рассвета до заката») 1600 человек (со спикерами и командой JUG.ru — все 1700) близкого возраста со сходными профессиональными интересами провели в Конгресс-центре Центра Международной Торговли. При перемещении по площадке и переходе из зала в зал в перерывах чувствовалось, что такое количество народа близко к предельному в данном месте проведения конференций. Надо отдать должное всем причастным к подготовке мероприятия — всё прошло практически идеально. При заблаговременном попадании в зал места находились, дополнительно видео транслировалось в маленький пятый зал. Все были вовремя накормлены и не обижены отсутствием докладов на любой вкус («хлеба и зрелищ»).



Стенды компаний


Из стендов спонсоров большое внимание привлекли компании, чьи программные продукты либо используются большинством участников конференции, либо потенциально могут заинтересовать значительную их часть. Естественно, в первую очередь это стенд компании JetBrains (средний снимок). Каждый день проводя изрядную часть суток, пользуясь свежей версией IntelliJ IDEA, испытываешь глубочайшее уважение и благодарность к работникам компании. На конференции доклады сделали её работники Тагир Валеев и Антон Архипов.



Небольшая компания (официальное её название «Системы программной верификации»), флагманским продуктом которой является статический анализатор кода PVS-Studio. В продукте недавно появилась поддержка языка Java. Компания очень активна на Хабре. Значительная доля статей написаны техническим директором Андреем Карповым (на первом фото он на стенде компании).



Ещё одна интереснейшая компания — BellSoft и их Liberica JDK. Отличительной особенностью данного дистрибутива является поддержка архитектуры ARM. На первом фото — генеральный директор Александр Белокрылов, который успел сделать ещё и мини-доклад на Demo Stage. Кроме того, Дмитрий Чуйко рассказал дополнительно о Java в контейнерном окружении.



Стенд jug.msk.ru


Сообщество московских Java-разработчиков jug.msk.ru выступало в качестве информационного партнёра. Встречи сообщества проходят регулярно, неизменно собирая большое количество участников. Стенд был установлен на первом этаже, на стенде практически постоянно присутствовал Андрей Когунь (лидер jug.msk.ru, по совместительству участник программного комитета конференции). За два дня существования стенда число подписчиков Twitter-аккаунта заметно подросло.

Антон Черноусов (подкастер, организатор конференций, просто хороший человек) и Андрей Когунь (первое фото). Андрей и участники конференции, посетившие стенд (второе фото). Докладчики прошедших встреч jug.msk.ru: Иван Пономарёв, Никита Липский и Алексей Стукалов (третье фото).



Demo Stage


Популярное место для коротких докладов. Весьма привлекательная форма докладов, позволяющая и при пребывании вне залов основных докладов приобщиться к каким-то новым темам и получить информацию из интересной тебе области. Как уже отметили, единственный недостаток — шумновато, но это особенности площадки.



Открытие конференции


Андрей Дмитриев открывает конференцию, представляя программный комитет. Андрей Когунь и Владимир Ситников подробно рассказывают о программе конференции, акцентируя внимание на возможных типах докладов.



Доклады первого дня


Антон Кекс в своём докладе The world needs full-stack craftsmen пропагандировал мысль о как можно большей многофункциональности каждого участника команды. На примере своей компании Codeborne приводил доводы, почему это важно: компактность команды по причине многих знаний и умений каждого, снижение рисков проекта (пресловутый грузовик, под колёсами которого, кроме работника, может погибнуть и продукт ввиду утраты знаний), просто интересно получать всё больше знаний в разных областях (трудно не согласиться). Доклад вдохновил не только слушателей, но и спикера — Bruno Borges включил в свою презентацию слайд с цитатой Антона: «Craftsman can be 5x even more efficient by knowing what not to do».



Владислав Сенин с докладом Логи: чем больше, тем лучше — но как с этим жить? выступил в уютном пятом зале. Влад — активный участник московского Java-сообщества, это его дебют в качестве спикера на конференциях JUG.ru. Была показана эволюция использования инструментов для хранения логов и поиска по ним. Источниками логов являются приложения на Java и Python. Для поиска основой служит Elasticsearch. После доклада были услышаны дополнительные увлекательные подробности (в том числе детективная история поиска причины пропадания символа в JSON), которые не были рассказаны по причине ограниченности времени, поэтому можно ожидать в ближайшем будущем более обстоятельный рассказ Влада на данную тему.



Доклад The Proxy fairy and the magic of Spring от Victor Rentea был посвящён магии шаблона проектирования Proxy, широко используемой в Spring Framework. В анонсе доклада было обещание познакомить с шестью способами перехвата вызовов методов, двумя способами применения шаблона Decorator вместе со Spring и много ещё чему в ходе сеанса лайв-кодинга. Очень живое выступление, вдохновляющее после него поэкспериментировать со Spring и покопаться в коде показанных примеров (они здесь на GitHub). Если Вы любите Spring, шаблоны проектирования и живое кодирование — определённо, это Ваш доклад, надо смотреть.



Абсолютно применимый на практике доклад Bulletproof Java Enterprise applications for the hard production life от Sebastian Daschner про то, насколько важны стабильность и отказоустойчивость у enterprise-приложений, и как её достичь. Во время доклада нашёл и открыл проект Microprofile Fault Tolerance на GitHub, использование аннотаций из которого докладчик активно демонстрировал (мне больше всего запомнилась @CircuitBreaker). Единственный недостаток презентации доклада — тяжело читаемые заголовки (первая фотография даёт представление об этом, на картинку можно щёлкнуть для её увеличения).



Доклад Нас Spring Boot, а мы крепчаем: невыносимая легкость AOT-компиляции Spring-приложений от Никиты Липского стал своеобразным ответом на вопрос про поддержку Spring Boot в GraalVM, который был задан Олегу Шелаеву в предыдущий день на встречеGraalVM пока проблемы с поддержкой как Spring Boot, так и операционной системы Windows, что Олег и сказал). В продукте Excelsior JET, который представляет Никита, с поддержкой разных операционных систем всё хорошо. Кроме того, недавно было официально объявлено о поддержке при AOT-компиляции Spring Boot, о чём и был доклад. Дополнительный интерес к статической AOT-компиляции Java-приложений сейчас связан с тем, что приложениям (микросервисам) особенно важен быстрый старт. Наиболее часто приложения построены на базе Spring Boot. Интересный доклад, умело балансирующий на грани хардкора и доступного для понимания изложения.



Совместные доклады Кирилла Толкачёва и Евгения Борисова традиционно пользуются большой популярностью у слушателей, Reactive или не reactive, вот в чем вопрос не стал исключением — на первом фото можно видеть полный зал. Идеей доклада было показать привычную реализацию какой-то задачи (взаимодействие трёх систем в данном случае), чтобы потом переделать её в реактивном стиле. Вдохновившись просмотром в этот же день доклада Олега Докуки про протокол RSocket, докладчики даже успели доработать примеры. Получилось всё достаточно удачно и увлекательно.



BOF-сессии


Формат BOF был уже несколько раз опробован на нескольких последних конференциях и стал популярным. Слушать доклады уже тяжеловато, а силы и желание на неформальное общение всё ещё есть — естественное завершение первого дня. Ниже фото с BOF-сессии Microservices, cloud и куда все это двигается, проходившей в дискусионной зоне.



Доклады второго дня


Отличительной особенностью, «изюминкой» технических конференций JUG.ru является присутствие в программе одного нетехнического доклада. В этот раз таким докладом был Игра в Бога. Перешла ли наука границу от Александра Панчина. Подобные доклады расширяют кругозор, позволяют настроиться на день (в этот раз доклад был открывающим второй день). Наконец, они взаимно интересны и спикеру (нестандартная аудитория), и слушателям (непривычная предметная область). Естественно, доклад был научно-популярным, но очень интересным. Изменение генетического кода и коррекция генетических дефектов, успехи и современные подходы в борьбе с ВИЧ и раком. Перечисление личностей учёных, занимающихся подобными проблемами, и их достижения.



Легковесный (в хорошем смысле этого слова — лёгкий для восприятия и понимания) доклад Local variable type inference: Friend or foe? был представлен Simon Ritter. Тема доклада — выведение (inference) типов локальных переменных при использовании var (возможность, появившаяся в Java 10). При ближайшем рассмотрении оказалось, что в столь простом, на первый взгляд, вопросе много нюансов, на которые нужно обращать внимание. Чувствуется, что у докладчика большой конференционный опыт (в послужном списке присутствует работа в Sun Microsystems, Oracle, Azul и звания Java Rockstar, Java Champion). Рассказ очень легко и слушался, и был хорошо проиллюстрирован слайдами. Один из примеров докладов с явной практической направленностью.



Выступление Суперкомпиляция, partial evaluation, проекции Футамуры и как GraalVM спасет мир в исполнении Олега Шелаева было продолжением темы GraalVM, рассказ на которую он начал 4 апреля на встрече jug.msk.ru. Очень полезно было сначала послушать подробный вводный трёхчасовой рассказ непосредственно перед конференцией, потом в первый день сходить на доклад Никиты Липского (про поддержку Spring Boot при AOT), после чего опять вернуться к GraalVM. Разговор касался теоретических основ компилятора Graal и GraalVMпроекций Футамуры. Второй темой была демонстрация использования Truffle — фреймворка для создания языков программирования на основе GraalVM. Олег также порекомендовал послушать доклад Thomas Wuerthinger, который читался в предыдущий день конференции.



Любопытную концепцию атомарных изменений при выполнении рефакторинга кода представил Тагир Валеев в докладе Атомарный рефакторинг в IntelliJ IDEA: прогибаем IDE под себя. Идея атомарных изменений на каждом-каждом маленьком шаге модификации строк кода была показана в среде разработки IntelliJ IDEA — Тагир представляет компанию JetBrains, сам лично участвуя в её разработке. Кроме того, подавляющее большинство сидевших в зале (включая и меня) ежедневно используют IntelliJ IDEA, поэтому рассказанное и показанное легло на благодатную почву. Признаться, никогда не задумывался, атомарен ли мой самый-самый маленький шаг изменений, но теперь постараюсь обращать на это внимание, возможно, пересмотрев видео доклада.



Ещё один пример доклада, информация после прослушивания которого может быть применена на практике, — Java тормозит: CodeCache edition от Владимира Ситникова. Речь в нём шла о CodeCache — области, в которой JVM хранит байткод, скомпилированный в нативный код (native, исполняемый код целевой платформы). Случай, речь про который шла в докладе, произошёл при использовании WebLogic Server, но конкретный тип сервера приложений не имеет особого значения. Интересна последовательность шагов, которая должна быть выполнена при ошибках подобного типа, и знание значений по умолчанию размера CodeCache в разных версиях Java (или хотя бы факта, что они разные, и, возможно, потребуется вручную указать больший размер).



В какой-то степени Как распутать клубок ниток: анализ и отладка приложений в IntelliJ IDEA, доклад Антона Архипова, перекликался с первой частью его трёхчасового выступления в ноябре прошлого года. Полезной оказалась информация и полученная на вышеупомянутом выступлении, и на этом конкретном докладе. Приёмы исследования кода были показаны на примере Spring Initializr. О структурном поиске в IntelliJ IDEA многие знают, но используют. Возможно, демонстрация этой возможности Антоном подтолкнёт кого-то к повседневному её использованию.



Bruno Borges завершающий конференцию доклад Making sense out of serverless computing начал с сообщений о том, что, несмотря на его работу в Microsoft, он никогда не использовал операционную систему Windows (презентация выполнялась с MacBook), имея богатый опыт Java-разработки и поработав ранее в компании Oracle. Сейчас он developer advocate в Microsoft, занимается популяризацией использования облаков. Подробно были рассмотрены ключевые особенности «безсерверного» использования: управляемость событиями (event-driven), гибкость при тарификации (micro-billing), отсутствие необходимости самостоятельной установки чего-либо и поддержки (no server setup or maintenance) и самомасштабируемость (self-scaling) инфраструктуры. Своеобразной связующей нитью с началом конференции стало, как уже отмечалось, использование цитаты из презентации Антона Кекса.



Закрытие


Заключительное слово Андрея Дмитриева с просьбой ответить на письмо с обратной связью. Традиционные фотографии участников программного комитета, команды JUG.ru и спикеров.



Итоги


Конференция совершенно неожиданно ещё подросла в количестве участников. Переехав некоторое время назад из гостиницы «Radisson Славянская» в Конгресс-центр Центра Международной Торговли, теперь и в текущем месте проведения чувствует себя стеснённо. Вероятно, при сохранении тенденции роста интереса можно ждать в ближайшее время замены площадки на ещё более просторную.

Мысли, высказанные Барухом Садогурским в интервью Егору Бугаенко на Joker 2018 о недостатке прекрасного пола в IT, были услышаны — на конференции было заметно больше девушек, чем на предыдущих.

Незначительные организационные и технические накладки были скорее связаны с большим количеством участников, да и то были оперативно исправлены. Видео докладов для участников конференции уже доступно на YouTube, так же как и общедоступны файлы презентаций на сайте конференции.

25-26 октября 2019 года в Санкт-Петербурге состоится конференция для Java-разработчиков Joker 2019, открыт приём заявок на доклады и уже можно купить билеты (по минимальной цене до 1 мая).

Комментарии (13)


  1. 23derevo
    14.04.2019 23:55
    +2

    По моим оценкам, команда конференции — большие молодцы. Всё было чётко и по делу. Единственный серьёзный факап — количество участников. Сейчас расскажу, что там случилось.

    План был простой: собрать 1200-1300 участников плюс спикеры, спонсоры и команда. Всего 1400-1500 человек на площадке. И ещё за 11 дней до конференции всё шло по плану. Ниже — сравнительные графики продаж билетов на Joker 2018 (оранжевый) и JPoint 2019 (голубой). По горизонтальной оси мы видим обратный отсчёт в днях до каждой из конференций, а по вертикальной — количество проданных на эту дату билетов.



    Мы должны были продать примерно 1300 офлайн-билетов, ещё 100-150 онлайнов и всё было бы ок. Но дальше началась какая-то дикая аномалия, и в последние 11 дней к нам пришло на 200-250 человек больше, чем мы планировали.

    Вот примерная хронология:
    1. За две недели до конференции у нас всё норм, мы очень чётко в плане, отстаём от Joker 2018 ровно на 100 билетов. Все счастливы, команда в рабочем режиме готовится к конференции.
    2. За 10 дней до конференции билеты начинают как-то больно резко раскупать, и за 6 дней до конференции мы внезапно понимаем, что мы вдруг догнали Joker по количеству людей. Площадка на пределе, больше народу уже не влезет. Поднимается красный флаг, начинаем отрабатывать солдаут. Но все в запаре, и подготовка к конфе идёт полным ходом, и вместо полной остановки продаж принимаются какие-то полумеры.
    3. За 6-2 дня до конференции график идёт ноздря-в-ноздрю с Joker 2018, вроде выдохнули.
    4. И в последние два дня перед конференцией бдыщщ-бумм, должно было прилететь 80 оплат, а внезапно прилетает… 180.

    Ну и всё. Никая предиктивная аналитика не помогла. Всё случилось в последний момент.


    1. Alexufo
      15.04.2019 03:36

      чем это чревато для вас вышло кроме наличия мест?


      1. C4ET4uK
        15.04.2019 06:25

        После докладов на площадке было тесно, передвигались бочком, в плотном потоке. На самых популярных докладах часто заканчивались места. Я слышал, что пару раз даже в доп. зале с трансляцией не было мест. Хотя на второй день было уже по-лучше. Видимо отыграли билеты однодневки. Если вопрос был в том, чем это чревато для организаторов — участники были не очень довольны передвигаться в режиме, «метро в час пик» (в моем городе метро нет, но именно так я себе представляю метро в час пик).


        1. Haarolean
          15.04.2019 12:13

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


      1. 23derevo
        15.04.2019 09:41
        +1

        Частенько народ не мог попасть в зал. У нас для этого был Overflow Room на 150 человек, куда транслировали доклад из переполненного зала. Вроде норм, но при таком количестве народу мы словили две проблемы:
        1. Overflow Room часто переполнялся и приходилось закрывать и его.
        2. Были тайм слоты, в которых переполнялось одновременно два-три зала. Тогда приходилось включать все механики сразу:
        а) в наименее переполненный зал просто пускать дополнительно людей. Им приходилось слушать доклад стоя.
        б) средний по переполненности — транслировался на демо-сцену. Это такая сцена с большими телеками в зоне выставки, где в перерывах выступали спонсоры конференции.
        в) самый переполненный зал — транслировался в Overflow Room.

        Три разные механики для одной проблемы — многовато. Народ был не очень доволен.

        Чревато это тем, что кто-то из участников расстроится и больше к нам не придёт.


    1. poxvuibr
      15.04.2019 12:24

      Я чего-то не понимаю видимо. Было же известно, что есть место для 1300 билетов. Нельзя было перестать продавать билеты после того, как было продано 1300?


      1. asm0dey
        15.04.2019 12:35
        +1

        Там не совсем точная наука. Следили не за количеством броней, а за количеством переведённых денег, а велезть может как 1300, так и 1400. И овт когда уже практически перекрыли покупки — внезапно пришла ещё куча денег.


  1. dbelob Автор
    15.04.2019 00:16

    Но дальше началась какая-то дикая аномалия, и в последние 11 дней к нам пришло на 200-250 человек больше, чем мы планировали.

    За 3 недели до конференции выступал Паша asm0dey с предварительной версией доклада, видео специально (для сохранения интереса) не выложено и было сказано, что окончательная версия может быть представлена на конференции (что и случилось).

    Какая-то причина произошедшего (событие) явно есть.


    1. asm0dey
      15.04.2019 00:37
      +1

      Надеюсь, что это не я причина аномалии :)


    1. 23derevo
      15.04.2019 09:45
      +1

      Судя по всему, резкий рост в конце связан вот с чем: много билетов бронировалось в самом конце марта, прямо перед повышением цен. А оплаты за них прилетели уже в начале апреля. Система, из которой я взял скриншот, учитывает только оплаченные билеты и не учитывает брони. Будем, видимо, делать вариант вьюшки с бронями, чтобы больше так не лажать.


      1. dbelob Автор
        15.04.2019 11:33
        +1

        С другой стороны, желание большего количества людей посетить конференцию и купить билеты — хорошо. Много ли вариантов более крупных площадок в Москве?


        1. 23derevo
          15.04.2019 13:35

          Крокус, Экспоцентр в Москва-Сити, Бизнес-Школа Сколково, ВДНХ, ВТБ Ледовый Дворец. Начали прорабатывать разные варианты.


  1. 23derevo
    15.04.2019 13:35

    Крокус, Экспоцентр в Москва-Сити, Бизнес-Школа Сколково, ВДНХ, ВТБ Ледовый Дворец. Начали прорабатывать разные варианты.