До встречи в 2014 году!

Доклады

Скрипты в Java-приложениях

Антон Архипов

На JVM работает множество скриптовых языков — Groovy, JRuby, JavaScript и т.д. — выбирай не хочу! В зависимости от области индустрии, можно встретить примеры использования скриптовых языков в программных продуктах, которые мы повседневно используем. Возможность внедрения скриптов в приложения на удивление недооценена. А тем временем, с помощью скриптов можно добиться довольно элегантных решений!

Существует два варианта для внедрения скриптов в Java-приложения: используя стандартный набор интерфейсов из пакета javax.script, или же по средствам API внедряемого скриптового «движка». Рассмотрим «за» и «против».

В своём докладе я хочу поговорить о том, как, а главное — зачем встраивать Groovy, JRuby или JavaScript в свои Java-приложения.

Компромиссы, или Как проектируются языки программирования

Андрей Бреслав

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

Этот доклад посвящен таким компромиссам: почему разработчики языков делают так или иначе. Мы рассмотрим несколько характеных примеров, касающихся Kotlin, Java, Scala и C#, что позволит сформировать некоторое представление о том, как проектируются языки.

Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов

Николай Чашников

Если ваша программа состоит более чем из одного Java-класса, это значит, что в ней есть API. Чем больше кода в продукте, чем больше людей над ним работают, чем дольше он существует, тем более важную роль играет качество API, при помощи которого разные части продукта взаимодействуют друг с другом. Как разрабатывать удобный API? Как безболезненно менять API? Как защитить других от неправильного использования создаваемого API? Как (и зачем) можно разработать свой микро-язык (DSL) на Java?

В своём докладе я поделюсь опытом разработки API для различных подсистем платформы IntelliJ IDEA, которые затем использовались в десятках плагинов к IDE.

Факты и заблуждения о Java-сериализации

Роман Елизаров

Тема сериализации объектов волнует любого, кто разрабатывет распределённые системы. При использовании разных языков и технологий для разных частей системы выбор протоколов сериализации ограничен в первую очередь необходимостью обеспечить совместимость технологий между собой. Однако, серверная часть многих больших современных приложений разрабатывается на Java и состоит из множества взаимодействующих компонент. Это даёт возможность при выборе механизма сериализации концентрироваться на производительности и удобстве разработки.

Java-сериализация является неотъемлемой часть платформы Java уже более 10 лет. Она разрабатывалась еще в те времена, когда дальнейшая судьба развития распределённых систем была туманна. Многие технологии «распределённых объектов», разрабатывавшиеся в то время, не дожили до наших дней, и некоторые отголоски этих мёртвых идей можно еще откопать в дизайне Java-сериализации. Несмотря на ряд недостатков, сериализация в Java имеет ряд неоспоримых преимуществ перед многими альтернативными способами реализации.

Альтернативные способы сериализации активно рекламируются, в то время как старая добрая Java-сериализация незаслуженно забывается и обрастает совсем уж гротесковыми мифами (см. например JEP-154). В докладе будут рассмотрены наиболее популярные заблуждения о Java сериализации, и разложены по полочкам реальные факты о её достоинствах и недостатках, которые вы не услышите от авторов альтернативных библиотек сериализации. Вы узнаете как использовать Java-сериализацию и получать от этого удовольствие!

Invokedynamic: Роскошь или необходимость?

Владимир Иванов

В Java 7 на уровне байткода появилась новая инструкция — invokedynamic (indy). На тот момент уже существовали 4 других инструкции для вызова методов: invokevirtual, nvokeinterface, invokestatic и invokespecial. Плюс, Reflection API позволяет вызывать любые Java методы динамически из Java кода. Чем вызвано появление новой инструкции и какие бонусы дает использование indy? Доклад не ограничится сравнением indy c другими инструкциями семейства invoke*, а даст обзор всего JSR292, частью которого indy и является. Разговор будет идти о method handles, пакете java.lang.invoke.* и новых шаблонах программирования, которые стали возможны с появлением нового API. Также, будут затронуты детали реализации JSR292 в Java 7 и Java 8 от Oracle.

Clean Tests: how to structure your tests, so that they serve you well

Pawel Lipinski

Not many projects have a good set of tests. Even less have a decent pack of them that not only are a good safety net when changing code, but also serve as always-up-to-date documentation of the system. I will show you how to write and refactor tests so that they're easy to read, not very hard in maintenance and give you comprehensible info about current development state.

Спорим, в твоем приложении есть утечка памяти?

Никита Сальников-Тарновский

Я представлю маленькое стандартное веб-приложение на Java, которое использует стандартные и распространенные библиотеки и каркасы. И продемонстрирую, как в таком крошечном и симпатичном приложении может скрывать 8 утечек памяти в Permanent Generation. Ну или в Metaspace, если вы уже на Java 8. Там будут проблемы с драйверами баз данных, пулами соединений с базой данных и нитей, JNDI контекстами, инициализацией библиотек логов и кое-что еще.
Все утечки были встречены в реальных приложениях в процессе нашей работы над Plumbr. У каждого из вас есть шанс встретить эти или подобные проблемы в любом вашем приложении. Я расскажу о каждой из них, почему они возникают и как их решить. 

Understanding Java Garbage Collection and what you can do about it

Gil Tene

Gil Tene explains the workings of a garbage collector: terminology, metrics, fundamentals, key mechanisms, classification of current GCs, the “Application Memory Wall” problem, and details Azul C4 GC.

Как я создал desktop-приложение на Java, скачанное 9 000 000 раз

Антон Кекс

 В наше время конференции полны докладов про облака и сервера. В то же время, всё-еще у всех есть персональный компьютер с инсталлированной на него кучей приложений. Кто-то должен их делать, особенно сейчас, когда разнообразие платформ, популярных среди пользователей, заметно выросло. В докладе я расскажу о своём опыте создания популярной сетевой утилиты, используемой сотнями тысяч людей по всему миру. Посмотрим, насколько всё ещё актуален изначальный слоган Java — "write once, run anywhere" в реальном мире ожиданий конечных пользователей. Постараемся также разрушить миф о том, что программирование на Java — это только Enterprise и Android.

The (not so) dark art of Performance Tuning

Kirk Pepperdine

That performance tuning is still considered to be a dark art is attributable to the lack of understanding of performance tuning best practices. In this talk, I will introduce a number of techniques that can help you reach your performance goals without resorting to using and eye of newt or the toe of a frog.

О чём молчит профайлер

Александр Отенко

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

О чём молчат Heap Dump-ы

Алексей Шипилёв

Программисты — как дети, всегда пытаются разломать свои любимые игрушки, чтобы понять, как же те работают. Некоторым детям, правда, действительно нужно знать, сколько лишних деталек напихали туда глупые конструкторы. Для возмужавших детей — этот доклад.

Возмужавшие дети (tm) обычно берут в руки heap dump и начинают ковыряться в нём отвёрточкой. Но heap dump — это так же надёжно, как информация, выбитая из пленного партизана. Он «сдаст» вам координаты аэродрома с кукурузниками, а найдёте вы там пустое кукурузное поле.

Нам нужно взять объекты тёпленькими прямо в рабочей JVM, где они живут своей подпольной жизнью. Только так мы сможем в деталях рассмотреть, как разложены поля, как разложены объекты в памяти, как их связи влияют на укладку, как и когда они меняют места дислокации, пуская пыль в глаза честным разработчикам.

Очная ставка с захваченными за линией фронта объектами гарантируется!

JDK8: Stream style

Сергей Куксенко

Приближается выход JDK8. А JDK8 — это, в первую очередь, JSR335 aka «Project Lambda». Но Project Lambda — это не только лямбды, но и default/static методы в интерфейсах. Project Lambda — это новый API и, в частности, Stream API, про который мы и поговорим.

Занимательные истории из жизни технической поддержки JVM

Никита Липский, Михаил Быков

Программируя на Java, вы, возможно, даже не подозреваете, что существуют люди -- невидимые стражи, которые делают все возможное, чтобы Java работала для вас. Имя этим стражам -- техническая поддержка Java (JVM). Работа технической поддержки трудна и часто недооценивается, но что делает ее жизнь легче -- это юмор. Докладчики этой сессии работают в техподдержке Java последние 7 лет, поддерживая две существенно различные реализации Java SE: Oracle HotSpot и Excelsior JET. Несмотря на все различия, есть и кое-что общее – накопленные годами веселые и поучительные истории.

В этой сессии авторы расскажут о типичных случаях из техподдержки JVM и разбавят их веселыми историями, чтобы дать вам возможность отдохнуть от технических деталей и других докладов. Будут освещены следующие темы:

-- Java спецификация. Почему важно опираться только на то, что строго оговорено в спецификации платформы Java, и как опасно полагаться лишь на поведение конкретной JVM, которое не диктуется спецификацией

-- Типичные ошибки программирования с использованием JNI

-- Мистические развалы JVM

-- Типичные проблемы в многопоточных программах, которые "не проявляются" (до поры, до времени)

-- Проблемы управления памятью

Project Jigsaw. Take 2

Шура Ильин

Модульная система, встроенная в платформу JDK. Расширение языка Java. Изменение логики загрузки классов. Новая область видимости. Разбиение API платформы Java на десятки модулей. Обязательные и опциональные зависимости...

Так изначально планировалась функциональность Project Jigsaw. Проект, который изначально планировался для JDK 8, был перенесен на JDK 9 и прямо сейчас подвергается детальному анализу и редизайну. Какими будут требования к проекту? Понадобится ли специальный язык для определения зависимостей? Будет ли новая реализация самостоятельной распределённой системой? В чем она будет похожа и в чем отличаться от существующих систем?

Ответы на эти вопросы мы получим уже очень скоро. Доклад будет посвящен описанинию требований, дизайна и новой реализации Project Jigsaw. 

Spring 4.0: новое поколение

Евгений Борисов

Релиз Java 8 открывает программистам новые возможности. Будет ли новая версия Spring им соответствовать?

Ответ — да! В докладе вы узнаете о том, как Spring работает с Lambda-выражениями, с JSR-310 «Date and Time», c parameter name discovery и повторными аннотациями. Кроме того, в новой версии Spring конфигурацию можно задавать на Groovy, и о преимуществах этого мы тоже поговорим.

В поисках Tommy Hilfiger

Михаил Хлуднев

Невероятно, но факт — невозможно взять Apache Lucene / Solr «из коробки» и подключить для поиска по каталогу товаров на сайте! Как минимум, необходимо решить две проблемы. Во-первых, разработать специфические модели документов и языка запросов. Во-вторых,  реализовать эти модели с помощью базовых алгоритмов поиска Lucene с производительностью, достаточной для нескольких миллионов посетителей в Чёрную Пятницу. Этот доклад поможет справиться со второй проблемой — познакомит с деталями реализации алгоритмов поиска в Lucene. Доклад будет полезен тем, кто занимается поиском и хочет узнать «что внутри», а рассматриваемые алгоритмические задачи настолько увлекательны, что заинтересуют даже если вы никогда не работали с этим инструментом!

Для начала мы ответим на следующие вопросы: зачем нужен Lucene? В чём и в каких случаях он превосходит реляционные базы данных? Затем будут рассмотрены основные структуры данных Lucene, сложность алгоритмов поиска и затраты памяти. В докладе не будет «воды» типа синтаксиса запросов и прочих «Hello World», только алгоритмы boolean retrieval и их оценка. В то же время доклад не требует каких-либо знаний о Lucene; инженерной подготовки будет достаточно. В докладе будет своя драма: как поиск пары документов мог отнимать несколько секунд, и как всё решилось в релизе 4.3.

Аварийный дамп — «черный ящик» упавшей JVM

Андрей Паньгин

Виртуальная машина Java способна отловить широкий спектр ошибок программирования. Результат она выдаст в виде исключения со стек-трейсом. Но что делать, если падает сама JVM, оставив лишь предсмертную записку под именем hs_err.log с загадочным содержимым?

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

Java mapping для прагматичных программистов

Красильщик Владимир

Коллеги Java-программисты, кто и за что нам платит зарплату? Если почитать популярные интернет-ресурсы и послушать выступления на тематических конференциях, то создается такое такое ощущение, что все Java-разработчики только и делают, что обеспечивают high-load 24/7 и 100% загрузку процессора, «тьюнят» GC или эффективно борются с хитрозамороченными многопоточностями. Ну на худой конец, пересаживают данные в очередную модную NoSQL базу.

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

Я пишу код именно для таких клиентов и предметные области, которые мы автоматизируем, сами по себе непростые. А когда дело доходит до кода преобразования одних объектов в другие, то цикломатическая сложность таких «мапингов» на Java стремится к неприлично высоким значениям.

В своём докладе «Java mapping для прагматичных программистов» я расскажу про технологический зоопарк «мапингов» на своем текущем проекте и проведу обзор современных подходов и инструментов, как прагматичных, так и не очень. Transmorph, Dozer, Nomin, ModeMapper — вот только некоторые примеры библиотек, которые предлагают свою оригинальную методологию по организации кода “мапинга” одних объектов на другие. Я поделюсь с Вами нашим опытом и расскажу как можно организовать хорошо структурированный код маппинга, который легко сопоставить со спецификацией и протестировать, который не страшно читать, рефакторить и поддерживать, который позволит прагматичному программисту спокойно спать по ночам.

In-Memory Mongo Accelerator

Яков Жданов

Используешь Mongo DB в своем проекте? Тогда этот доклад для тебя! Речь пойдет о Performance-проблемах Mongo DB и о том, как новый продукт GridGain In-Memory Mongo DB Accelerator помогает решить многие из них без единого изменения кода клиентских приложений в полном смысле этого слова.

Мы расскажем, об особенностях In-Memory подхода, обсудим его преимущества и недостатки. Дадим обзор принятых архитектурных решений и сравним функционал, предлагаемый обоими продуктами. Данная тема также будет достойна внимания всех тех, кто интересуется In-Memory технологиями и распределенными вычислениями.

Франкенштейнизация Voldemort или key-value данные в Одноклассниках

В докладе будут освещены Java-технологии хранения данных, обслуживающие десятки миллионов пользователей и работающие на сотнях серверов.
На примере социальной сети "Одноклассники" мы рассмотрим эволюцию хранилищ данных с высоким уровнем конкурентного доступа и с соблюдением требования постоянной доступности.
Мы разберём сильные и слабые стороны каждого из решений, начиная от технологии master-slave репликации на основе Berkeley DB и заканчивая симбиозом распределенных хранилищ Voldemort и Cassandra.

Windows Azure + Java = (Open) Integration

Александр Белоцерковский

Облачные решения — современное требование бизнеса и если вы пишете на Java, то Windows Azure - лучший выбор!

На докладе вы узнаете о том, как можно использовать Oracle Database, как развернуть Hadoop, как написать приложение и опубликовать его, используя плагин Windows Azure для Eclipse. Я продемонстрирую, как вы можете использовать эти и другие возможности облачной платформы Windows Azure в применении к Java-разработке.

Мутационное тестирование, или О чём молчит Code Coverage

Глеб Смирнов

Что делать, если код покрыт тестами, но всё равно валится в production? Что делать, если показания Code Coverage явно не совпадают с действительностью? Ответ прост: протестировать сами тесты. Отличный способ для этого придумали ещё в далёком 1971 году, однако только недавно он начал продвигаться в индустрию. Mutation testing предлагает случайным образом изменить тестируемый код, а затем снова запустить тесты. И если эти тесты действительно хороши, то они должны упасть. Доклад включает в себя более детальный обзор парадигмы мутационного тестирования, описывает имеющие инструменты и рассказывает о том, как с помощью этих инструментов люди приходят к успеху в реальных проектах.

JBoss Drools Expert против грязи

Виктор Полищук

Когда программист решает проблему, он хочет чтобы эту проблему ему больше никогда не приходилось решать. Зачастую он хочет чтобы эту проблему не пришлось решать больше никому. Но мир наполнен похожими проблемами и по сей день, что же пошло не так? Всему виной пресловутый «бизнес», который так и хочет заработать денег и быстро. Для этого он жестоко ограничивает программистов в возможности сделать реюзабельные компоненты, а заставляет клеить вложеные цепочки «if», «while» и «for» для реализации зачастую нелогичных требований с хитрым названием «бизнес логика».

На помощь спешит Drools, отличный движок правил, который позволяет оставить и чистый код, и эффективно удовлетворить требования с тривиальным решением нетривиальной проблемы «изменение логики».

За время доклада будет разобрана простая бизнес проблема, которая несмотря ни на что, способна вырастить множество седых волос у нелысого программиста. Покрутив в руках и отложив в сторону императивную Java-реализацию, аудитория на полчаса погрузится в красоты декларативного программирования на Drools, а так же покрытие юнит-тестами свеженаписаного приложения.

Парадигмы ООП, основы здравого дизайна и архитектуры Java приложений

Николай Алименков

Не так много разработчиков четко делают различие между дизайном и архитектурой, а опыт проведения собеседований показывает, что и базовые парадигмы ООП часто вызывают сложности. Java - достаточно старый язык и не все принципы были реализованы в нем правильно, а обилие фреймворков еще больше запутывает разработчиков. В докладе будут обсуждаться основы ООП и современный взгляд на них, польза и вред наследования, применимость интерфейсов и возможности, которые они открывают для постоянно растущего проекта. Также будут рассмотрены нормальный цикл появления кода при работе по TDD, способы откладывать архитектурные и дизайн решения до нужного момента, наработанные годами архитектурные и дизайн шаблоны, принципы хорошего дизайна кода. Доклад будет полезен тем, кто стремится создавать качественные, понятные и простые в поддержке решения на Java.

Scala для профессионалов

Павел Павлов

Великое многообразие языков, существующих на JVM, зачастую ставит разработчика в тупик. Каждый язык хорош для какого-то класса задач, но как понять, что именно и для какой задачи использовать? Оправданы ли вообще вложения в изучение ещё одного инструмента и обретение зависимости от него? Не правильнее ли будет хранить верность старой доброй Java и игнорировать всякие новомодные штучки? В этом докладе я хочу рассказать о том, почему именно Scala — это тот инструмент, который представляет реальную практическую альтернативу как другим JVM-based языкам, так и самой Java.

Scala — это язык, созданный профессионалами для профессионалов:

  • предоставляет прямую поддержку функционального программирования
  • предоставляет развитые средства поддержки ООП, тем самым преодолевая многолетний "застой" в этой области
  • Лёгкий синтаксис языка устраняет "многословность" (boilerplate), не жертвуя при этом статическим контролем типов
  • В Scala уже сейчас есть все те полезные штуки, которые нам обещают в Java 8 (9,...)
  • Это язык общего назначения, способный полностью заменить Java
  • В нём учтены и устранены ошибки, допущенные при проектировании Java

Мы рассмотрим основные свойства Scala в сравнении с Java и некоторыми другими языками, остановимся на фундаментальных приципах, лежащих в основе языка, увидим, кто, как и зачем использует Scala в индустрии.

Платформа для Видео сроком в квартал

Александр Тоболь

Мой доклад не затронет какую-то особенную технологию или волшебный алгоритм. Речь пойдет о том, как чуть больше чем за квартал совсем небольшая команда перезапустила работающий в режиме 24/7 совсем немаленький видео-сервис на Одноклассниках на написанной с нуля платформе, развернутой на парке из свыше 200 серверов, распределенных между несколькими центрами обмена данными.

Я бы хотел поделиться успехами и неудачами в ходе решения задачи по обеспечению бесперебойных загрузки, трансформации, хранения, раздачи видео и мониторинга, а также остановиться на особенностях, связанных с нагрузкой в 1000 просмотров в секунду, размером ежедневной аудитории в 8 миллионов географически распределенных в и за пределами РФ. Я также остановлюсь на некоторых использованных нами технологиях.

Groovy DSL для plugin-ов: Расширения человеческим языком

Барух Садогурский

Существуют целые классы программ, функционал которых не может и не должен быть ограничен фантазией их непосредственных разработчиков. Например, это всевозможные IDE с кастомными плагинами, графические редакторы и др. Как же дать возможность пользователям добавлять новые фичи, о которых и разрабочики и подумать не могли? 

Плагины и DSL (Domain-Specific Languages) вам в помощь! В этом докладе мы поговорим о том, какие архитектурые решения наиболее подходят для расширяемых пользователями программ, написанных на Java. После короткого обзора возможностей DSL на Groovy мы посмотрим, какие части DSL нам пригодятся, ответим на вопрос, нужна ли возможность написания плагинов на Java, рассмотрим аспекты безопасности и, конечно, обсудим варианты решения ада зависимостей. Будет много кода!

Java-сертификация. Что такое и зачем это нужно?

Сергей Клименков

По современным Java-технологиям написано гигабайты документации — учебников, инструкций, how-to. Если посчитать все те миллиарды сообщений в форумах, то оказывается, что разобраться в том как решить практическую задачу весьма непросто. В докладе будет рассказано как изучать Java, какие курсы компания Oracle подготовила, чем каждый курс интересен для разных групп слушателей.
Особый интерес традиционно вызывает вопрос сдачи экзаменов — что там скрывается за квалификацией OSA, OSP, OSE? Насколько сложно сдать? Что нужно подготовить? Как мне это поможет изменить свою карьеру? В докладе будет последовательно рассказано о всех этих вопросах.

Java Embedded у вас дома!

Александр Мироненко, Александр Белокрылов

В настоящее время никого не удивить «умным домом». Популярность подобных систем растёт с каждым днём, что не удивительно, так как они представляют возможности управлять и следить за своим домом удалённо, хоть с другой точки планеты. Также данные системы обладают одной ключевой особенностью — они очень индивидуальны. Действительно, каждый хочет настроить поведение своего дома под себя. 
Если вы Java программист и хотите применить свой опыт высокоуровневого программирования в Embedded или вам просто интересно сделать что-то интереное у вас дома, то данная сессия предназначена именно для вас!

UrsaJ: HTTP File Storage

Кузьма Деретюк

Используете сервер приложений для загрузки и раздачи файлов? Куда и как сохранять эти файлы? 
Как сохранить целостность между базой данных и файловым хранилищем (во время и после бэкапа)? 
Как обеспечить работоспособность при 50.000 параллельных загрузок? 
Как сохранить 10^14 файлов? 

Доклад о проекте UrsaJ раскроет эти вопросы и покажет как можно упростить жизнь разработчикам веб-приложений. 

Мы расскажем, как можно разделить ответственность между приложением и файловым хранилищем, и как мы это реализовали в простом и удобном API.

Спикеры

Gil Tene

CTO, Сo-founder

Azul Systems

Kirk Pepperdine

Consultant

Kodewerk Ltd.

Pawel Lipinski

Owner / Manager

Pragmatists

Александр Белокрылов

Руководитель программ

Oracle

Александр Белоцерковский

Windows Azure MVP

Microsoft

Александр Мироненко

Software Engineer

Oracle

Александр Отенко

Software Engineer

Oracle

Александр Тоболь

Software Engineer

Одноклассники

Алексей Шипилёв

Software Engineer

Oracle

Андрей Бреслав

Lead Language Designer

JetBrains

Андрей Паньгин

Software Engineer

Одноклассники

Антон Архипов

Product Lead

ZeroTurnaround

Антон Кекс

Co-owner, Developer

Codeborne

Барух Садогурский

Developer Advocate

JFrog

Виктор Полищук

Teamlead

Инфопульс, Украина

Владимир Иванов

Software Engineer

Oracle

Владимир Красильщик

Software Engineer

Luxoft

Глеб Смирнов

Software Engineer

Евгений Борисов

Consultant

Кузьма Деретюк

Software Engineer

Deutsche Bank

Михаил Быков

Java Licensee Engineer

Oracle

Михаил Хлуднев

Principal Engineer

Grid Dynamics

Никита Липский

Software Engineer

Excelsior, Новосибирск

Никита Сальников-Тарновский

Founder, Master Developer

Plumbr

Николай Алименков

Java Tech Lead, Coach

XP Injection и Zoral Labs, Киев

Николай Чашников

Software Engineer

JetBrains

Павел Павлов

Software Engineer

Excelsior, Новосибирск

Роман Антипин

Software Engineer

Одноклассники

Роман Елизаров

Project Coordinator

Devexperts

Сергей Клименков

Fanatical Engineer, Teacher, Organizer

Tune IT

Сергей Куксенко

Software Engineer

Oracle

Шура Ильин

Quality Architect

Oracle

Яков Жданов

Director R&D

GridGain Systems

Расписание докладов
Время  Зал Пики  Зал Трефы  Зал Бубны  Зал Червы
9:00 — 9:30 Регистрация, welcome-кофе
9:30 — 10:00 Открытие конференции
10:00 — 10:45

Факты и заблуждения о Java-сериализации

Роман Елизаров, Devexperts

Groovy DSL для plugin-ов: Расширения человеческим языком

Барух Садогурский, JFrog

Как я создал desktop-приложение на Java, скачанное 9 000 000 раз

Антон Кекс, Codeborne

Франкенштейнизация Voldemort или key-value данные в Одноклассниках

Роман Антипин, Одноклассники

11:00 — 11:45

Парадигмы ООП, основы здравого дизайна и архитектуры Java приложений

Николай Алименков, XPInjection

Аварийный дамп — черный ящик упавшей JVM

Андрей Паньгин, Одноклассники

Clean Tests: how to structure your tests, so that they serve you well

Pawel Lipinski, Pragmatists

Spring 4.0: новое поколение

Евгений Борисов, независимый консультант

11:45 — 12:15 Кофе
12:15 — 13:00

Understanding Java Garbage Collection and what you can do about it

Gil Tene, Azul Systems

Компромиссы, или Как проектируются языки программирования

Андрей Бреслав, JetBrains

О чём молчит профайлер

Александр Отенко, Oracle

Java mapping для прагматичных программистов

Владимир Красильщик, Luxoft

13:15 — 14:00

Project Jigsaw. Take 2

Шура Ильин, Oracle

JBoss Drools Expert против грязи

Виктор Полищук, Инфопульс

Платформа для Видео сроком в квартал

Александр Тоболь, Одноклассники

14:00 — 15:00 Обед
15:00 — 15:45

The (not so) dark art of Performance Tuning

Kirk Pepperdine, Kodewerk Ltd.

Мутационное тестирование, или О чём молчит Code Coverage

Глеб Смирнов, Google

Занимательные истории из жизни технической поддержки JVM

Никита Липский, Excelsior и Миша Быков, Oracle

Windows Azure + Java = (Open) Integration

Александр Белоцерковский, Microsoft

16:00 — 16:45

Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов

Николай Чашников, JetBrains

Scala для профессионалов

Павел Павлов, Excelsior

Java-сертификация. Что такое и зачем это нужно

Сергей Клименков, Tune-IT

Java Embedded у вас дома!

Александр Мироненко и Александр Белокрылов, Oracle

16:45 — 17:15 Кофе
17:15 — 18:00

Спорим, в твоем приложении есть утечка памяти?

Никита Сальников-Тарновский, Plumbr

JDK8: Stream style

Сергей Куксенко, Oracle

Нагрузочное тестирование сервера раздачи видео

Александр Тоболь, Одноклассники

In-Memory Accelerator for MongoDB

Яков Жданов, GridGain

18:15 — 19:00

О чём молчат Heap Dump-ы

Алексей Шипилёв, Oracle

В поисках Tommy Hilfiger

Михаил Хлуднев, GridDynamics

Invokedynamic: Роскошь или необходимость?

Владимир Иванов, Oracle

UrsaJ: HTTP File Storage

Kuzma Deretuke, Deutsche Bank

19:00 Закрытие конференции

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

Joker 2013, конференция по Java-технологиям, пройдёт 15 октября в Санкт-Петербурге. Конференция ориентирована на профессионалов в области разработки ПО на Java. Вас ожидает 4 потока и более 30 докладов от гуру Java-разработки на русском и английском языках, стенды компаний-лидеров в области Java-разработки и зона свободного общения, где можно будет пообщаться с друзьями и коллегами или просто отдохнуть.

В программе конференции:

  • -- доклады от специалистов из Oracle об устройстве JVM (Алексей Шипилёв, Владимир Иванов), оптимизации Java-приложений (Александр Отенко) и новинках в платформе Java (Сергей Куксенко, Шура Ильин);
  • -- доклады от специалистов из JetBrains про IntelliJ IDEA (Николай Чашников ) и разработку языков программирования (Андрей Бреслав, лучший спикер JPoint-2013);
  • -- доклады от специалистов из таллинского Devclub Антона Архипова, Никиты Сальникова-Тарновского и Антона Кекса;
  • -- доклад от одного из лучших в мире специалистов по Java Performance Кирка Пеппердайна
  • -- доклады от разработчиков альтернативных JVM, Никиты Липского из Excelsior и Gil Tene из Azul Systems;
  • -- доклад от Романа Елизарова из Devexperts об устройстве сериализации;
  • -- доклад от гуру Spring Евгения Борисова;
  • -- доклады про TDD на Java от Николая Алименкова и Павла Липински
  • -- доклады от Андрея Паньгина и Романа Антипина, ведущих разработчиков компании «Одноклассники», которая является генеральным спонсором конференции.

 

Участие

На Joker 2013 Вы можете попасть несколькими способами:

  • -- Получив корпоративный билет, купленный для Вас работодателем;
  • -- Купив самостоятельно персональный билет (он стоит на 1000 рублей дешевле корпоративного);
  • -- Выступив с докладом
  • -- Получив персональное приглашение от организаторов.

 

Тип билета Дата покупки Стоимость
Персональный билет с 1 по 30 сентября 3000 рублей
с 1 по 10 октября 4000 рублей
Корпоративный билет с 1 по 30 сентября 4000 рублей
с 1 по 10 октября 5000 рублей

 

Тренинги

За день до конференции пройдёт несколько тренингов и мастер-классов:

Кто проводит Тема Стоимость
Николай Чашников Работа в IntelliJ IDEA для профессионалов 1000 рублей
Евгений Кривошеев Проектирование обоснованной архитектуры 7000 рублей
Paweł Lipiński Test Driven Development in Java 7000 рублей
Евгений Борисов Spring 3.2 — копаем до самого ядра 7000 рублей
Евгений Цопа Liferay 6.1 — строим корпоративный портал за 4 часа 1500 рублей
Gil Tene How NOT to Measure Latency 1000 рублей

Тренинги

Работа в IntelliJ IDEA для профессионалов

Николай Чашников
Среда разработки для программиста — это инструмент, от владения которым напрямую зависит продуктивность. Подробнее..

Проектирование обоснованной архитектуры

Евгений Кривошеев
Спросите коллег – почему в последнем коммите получилось именно 3 класса? Почему не 2? И почему не 4? Старайтесь не заплакать, держитесь. Подробнее..

Test Driven Development в Java

Paweł Lipiński

Spring 3.2 – копаем до самого ядра

Евгений Борисов
Можно ходить пешком, можно ездить на такси, можно сдать на права и водить машину самому, но максимальный контроль у того, кто еще и понимает, что п Подробнее..

Liferay 6.1 - строим корпоративный портал за 4 часа

Евгений Цопа, Tune IT
На тренинге вы сможете узнать о внутренней архитектуре Liferay, особенностях его администрирования, принципах работы CMS и основных подходах, испол Подробнее..

How NOT to Measure Latency

Gil Tene
Time is Money. Understanding application responsiveness and latency is critical not only for delivering good application behavior. Подробнее..

Генеральный спонсор

Odnoklassniki

 

Серебряные спонсоры

Бронзовые спонсоры

Информационные спонсоры

Контакты

Тема обращения Имя  Координаты для связи
Программа конференции, мастер-классы, расписание конференции Андрей Дмитриев

andrei-dmitriev@yandex.ru

Сотрудничество с компаниями, билеты для сотрудников Иван Долгов

idsmbox@gmail.com

Организационные вопросы, площадка, питание, afterparty Александр Тимофеев

altim1987@yandex.ru

Работа со СМИ, PR-менеджмент, информационное партнёрство Татьяна Додышева

tanyadodysheva@gmail.com

Unconference 16 октября Александр Белокрылов

gigabel@gmail.com

Документы, финансы, работа со спонсорами, другие вопросы Алексей Фёдоров

fyodorov.spbu@gmail.com

 

Санкт-Петербург, ул. Кораблестроителей, 14
Гостиница «Park Inn Прибалтийская»