- Conference
- Program
- Speakers
- Price
- Location
Программа конференции
Программа конференции находится на стадии формирования. Мы приняли решение впервые провести конференцию JEEConf 2013 в два дня – 24-25 мая. В этом году мы хотим отобрать только лучшие доклады, сделав программу конференции действительно полезной и интересной. В преддверие конференции для желающих будут организованы разнообразные тренинги и мастер-классы. Таким образом, у участников будет возможность выбрать себе программу по вкусу и потребностям.
Заявленные доклады
Effective messaging for Java applications
Описание: Тяжело представить в современном мире распределенную масштабируемую систему, работающую на основе синхронного взаимодействия своих компонентов. Обмен сообщениями является неотъемлемым инструментом при построении большинства систем. В докладе будут рассмотрены советы и практики для повышения его эффективности, разнообразные грабли, на которые можно наступить по незнанию, а также особенности использования различных провайдеров/протоколов сообщений для обеспечения надежной и быстрой коммуникации. Я расскажу о своем опыте использования ActiveMQ и RabbitMQ, построения своих брокеров сообщений на базе Cassandra.
Тип выступления: Доклад (50 минут)
Докладчик: Николай Алименков
Surviving as a professional software developer
Описание: During the last year’s JEEConf Yakov Fain made a presentation on how to become a professional software developer. This presentation is a sequel. Yakov will present his no-BS point of view on how enterprise IT shops live and operate. He’ll talk about communication skills, bad attitude, the team work, those stupid and useless IT managers, and how the life is unfair if young prodigies have to debug old and poorly-written code. This is not a technical presentation.
Тип выступления: Доклад (50 минут)
Докладчик: Yakov Fain
Speed up your Web applications with HTML5 WebSockets
Описание: HTML5 specification includes the communication protocol WebSockets, which is getting more and more popular in the Wall Street real-time Web applications. WebSockets API is include in the upcoming Java EE 7 specification. WebSocket offers solution to the problems of latency, scalability and performance associated with HTTP based solutions like polling, long-polling and HTTP-streaming. Online auctions, financial trading applications, and multi-player games can benefit from implementing WebSockets. This session starts with a brief overview of traditional HTTP protocols followed by covering of how WebSockets works. You’ll see how using WebSockets removes the overhead of heavy HTTP request and response headers. Finally, we’ll review the code of the Web application, where WebSockets is used for the data exchange between HTML-based front end and the latest build of the Java server GlassFish 4.
Тип выступления: Доклад (50 минут)
Докладчик: Yakov Fain
Структурируем большое приложение с помощью OSGi
Описание: Если вы часто используете IoC контейнер (например Spring), то должны были замечать, что с ростом приложения ваши контексты начинают напоминать взрыв на макаронной фабрике. OSGi даст вам возможность лучше связать и настроить ваши модули, поможет при разворачивании приложения и предоставит средства контроля.
Тип выступления: Доклад (50 минут)
Докладчик: Виталий Тимчишин
Infinispan – громкое имя для JBoss Cache или еще одно NoSQL решение?
Описание: JBoss Cache уже несколько лет как вырос из “коротких штанишек” и называется Infinispan. Сейчас это вполне серьезный Key-Value NoSQL со своими изюминками, такими как транзакционность. Попробуем разобраться детальнее как и в каких случаях имеет смысл его применять.
Тип выступления: Мини-доклад (15 минут)
Докладчик: Виталий Тимчишин
JDK8: Я, лямбда
Описание: Скоро выходит JDK8, и там будут лямбды! А на докладе мы узнаем:
-
что такое лямбды в контексте Java
-
как они соотносятся с существующими примитивами языка
-
лямбды – сахар или нет?
-
как jsr292 победил javac
-
сколько, где, и кому стоят лямбды
-
плюшки, грабли, и прочие особенности
Тип выступления: Доклад (50 минут)
Докладчик: Сергей Куксенко
JDK8: Молот лямбд
Описание: В докладе рассматриваются изменения в JVM/JDK, напрямую связанные с введением в язык лямбда-выражений: изменения в коллекциях и bulk collection operations, default-методы, и прочие интересности. Доклад рекомендуется уже посетившим доклад “Я, лямбда”, или знающим о синтаксисе и семантике лямбд из других доверенных источников.
Тип выступления: Доклад (50 минут)
Докладчик: Сергей Куксенко
High-Performance Fork/Join in Java
Описание: Уже давно в JDK появилась поддержка вычислений, ложащихся в модель, ложащихся в модель Fork/Join. Доклад посвящен тому, что делает реализацию ForkJoinPool важным звеном в производительности параллельных операций над коллекциями в JDK8, в работе актёров в Scala/Akka, и других сценариях. Посмотрим на явные ограничения и подводные камни, разные модели использования: рекурсивные джойны, эмуляция continuation’ов и проч.
Тип выступления: Доклад (50 минут)
Докладчик: Алексей Шипилёв
Bulletproof Java Concurrency
Описание: Доклад про опыт тестирования concurrency в JDK/JVM, разного рода загадки и примеры как оптимизации и дефекты в реализации виртуальной машины и библиотек ломают модель памяти, и что нам с этим делать. Доклад *требует* знания JMM, понимания внутренней работы JRE, и устройства железа.
Тип выступления: Доклад (50 минут)
Докладчик: Алексей Шипилёв
Easy Scaling with Open Source Data Structures
Описание: Today’s applications are getting more and more distributed everyday and it is well-known that distributed programming is hard. With Hazelcast though, distributed programming is easy and lots of fun. A common reaction of Hazelcast users is ‘Ooh my God, this cannot be that easy’. Hazelcast is an open source, highly scalable, transactional, distributed/partitioned implementation of queue, map, set, list, lock and executor services for Java. Hazelcast is for you if you like to easily: share data/state among many servers (e.g. web session sharing), cache your data (distributed cache), cluster your application, partition your in-memory data, send/receive messages among applications, distribute workload onto many servers, take advantage of parallel processing or provide fail-safe data management.
Тип выступления: Доклад (50 минут)
Докладчик: Talip Ozturk
Introduction to web application development in Clojure
Описание: This is a talk about Clojure as a tool to develop web applications with leiningen, Compojure and Enlive (you could be using different set of projects, but since most if not all are based on Ring, the knowledge gained on this presentation should be easily applicable to other project sets, too).
During the presentation I demonstrate the tools needed to set up a complete environment for web development. It’s gonna be very easy to follow for people who want to start developing *something* in Clojure. The presentation is used as a vehicle to drive people towards a fictitious but research-oriented project to study functional concepts of Clojure further.
Тип выступления: Доклад (50 минут)
Докладчик: Jacek Laskowski
Introduction to functional programming in Scala
Описание: Functional programming has been driving my personal development for the past couple of years. It all began with Clojure, but given its different syntax and a complete departure from what a common Java developer has learnt, Scala might be a better vehicle to drive people towards functional programming in JVM. That’s why I chose Scala and have been studying its functional flavor.
I’m more into Scala for its functional aspect rather than as a way to develop Java applications with a higher-level language, without constructs that may have been itching you here and there. The presentation is based on my experience mostly gained from the book “Functional Programming in Scala” that I’m reviewing and Clojure (or should it be vice versa?) I’m not very good at developing applications in Scala (and wouldn’t very much argue hearing I’d rather stay away from speaking about or demoing Scala on conferences), but it may be the reason why people may like my presentation – I show the language from the perspective of a person who has just started the journey into the functional aspects of Scala and found some of its concept engaging.
Тип выступления: Доклад (50 минут)
Докладчик: Jacek Laskowski
Покрытие кода. Прагматичный подход.
Описание: Измерили покрытие кода – что дальше? Поднимать покрытие? Нужно ли? Если да – что покрывать сначала? С практичеcкой стороны, способы использования данных о покрытии кода можно разбить на категории: метрики, идентификация тестов (существующих или необходимых) и идентификация мертвого кода.
Я постараюсь рассказать о том что означает 100% покрытие кода (block/line/branch, etc.), о некоторых распространенных заблуждениях, о “хороших” метриках базирующихся на покрытии, о связи данных о покрытии с другими характеристиками исходного кода для приоритезации разработки тестов – все для того чтобы показать как можно практически применить данные о покрытии кода с пользой для продукта.
Тип выступления: Доклад (50 минут)
Докладчик: Александр Ильин
Формальная верификация как средство тестирования в Java
Описание: Насколько формальная верификация применима на практике? Как то, что применимо, соотносится с традиционными способами тестирования, такими как динамическое и статическое тестирование? Какие виды ошибок она помогает находить, насколько эффективно использование данного подхода? Мы постараемся передать всю боль испытываемую нами при тестировании Oracle JDK традиционными средствами. Мы покажем какие инструменты и какие фичи языка Java позволят нам и вам, разработчикам продуктов на Java, сэкономить на тестировании, переложив часть ответственности на средства формальной верификации.
Тип выступления: Доклад (50 минут)
Докладчик: Александр Ильин и Владимир Иванов
IT-компилятор в JVM глазами Java-программиста
Описание: Наверное, каждый программист серьезно задумывался о том, как и
насколько быстро будет работать написанный им код. Для каких-либо выводов необходимы экспериментальные данные, но и для объяснения различий в результатах регулярно требуется понимание происходящего в системе. Для Java приложений такой анализ усложняется необходимостью учитывать поведение JVM.
Основной прирост производительности приложения на Java дает использование JIT-компилятора. Поэтому представление о принципах его работы является ключом к пониманию того, каким образом эту производительность можно улучшить. Работа JIT-компилятора будет рассмотрена на примере HotSpot JVM от Oracle. Доклад будет покрывать обзор общей архитектуры JIT-компилятора, базовые понятия и ключевые техники оптимизации кода на Java, инструменты и техники мониторинга работы компилятора.
Тип выступления: Доклад (50 минут)
Докладчик: Владимир Иванов
Уменьшение расхода оперативной памяти в Java-приложениях
Описание: Если вы устали от поиска утечек памяти в Java приложениях, не знаете как хранить большие объемы данных в “куче”, то этот доклад для вас. В докладе будут как описаны детали реализации, позволяющие оценивать расход памяти, так и даны конкретные советы, помогающие снизить потребление памяти. Вы услышите про особенности представления Java-объектов в памяти, тонкости процесса финализации, для чего нужны слабые ссылки, сжатые указатели в HotSpot JVM и много чего другого.
Тип выступления: Доклад (50 минут)
Докладчик: Владимир Иванов
The Power of Java7 NIO.2 essential stuff
Описание: In this session hear how a leading financial services company uses Java 7 NIO.2. This session will covers all the important essential aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many case studies to spice up your Java 7 applications with the new I/O capabilities.
-
The Path class operations.
-
Get/set file metadata through the new java.nio.file.attribute API.
-
Manage symbolic and hard links.
-
Manipulating files and directories through the new java.nio.file.Files API.
Тип выступления: Доклад (50 минут)
Докладчик: Mohamed Taman
The Power of Java7 NIO.2 advanced concepts
Описание: In this session hear how a leading financial services company uses Java 7 NIO.2. This session will covers all the important aspects involved in developing advanced NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many case studies to spice up your Java 7 applications with the new I/O capabilities.
-
The Path class operations.
-
Need to copy, move, or delete an entire directory? Use the FileVisitor API.
-
Explore the Watch Service API and file changed notification.
-
Develop blocking/non-blocking socket-based applications. Learn how to develop Java network-based applications in blocking and non-blocking styles. Both TCP and UDP are covered in brief.
-
The Asynchronous Channel API. You can develop asynchronous network based Java applications with a suite of classes and options.
Тип выступления: Доклад (50 минут)
Докладчик: Mohamed Taman
Как вернуть Java былую славу?
Описание: В настоящее время Java все ещё сохраняет позиции самого популярного языка программирования для разработки корпоративных систем и приложений. К сожалению, достаточно быстро эти системы превращаются в нечто огромное, неповоротливое и невероятно сложное для поддержки, и в то же время не приносящее слишком много пользы. Это приводит к тому, что разработчики начинают прибегать к альтернативным языкам и технологиям, хотя проблема лежит не столько в самом языке, сколько в архитекуре и дизайне, которые часто используются при разработке таких систем на Java. Может быть нам надо сперва исправить свое отношение к написанию приложений? Я покажу, как это можно сделать.
Тип выступления: Доклад (50 минут)
Докладчик: Антон Кекс
Быстрая разработка приложений (Java style)
Описание: JRebel делает процесс разработки Java приложений быстрее, эффективнее и, пожалуй, интереснее. JRebel создает виртуальную отображение приложения на файловую систему и умеет считывать изменения класс-файлов для того, чтобы незамедлительно отобразить их в работающем приложении. Больше никаких пауз для редеплоя!
Мы покажем как JRebel помогает:
-
всегда пропускать процессы сборки приложения
-
изменять приложение и менять конфигурацию фрэймворков на лету, например добавить Spring bean в уже существующий контекст
-
наконец-то снова сделать программирование на Java приятным!
Тип выступления: Доклад (50 минут)
Докладчик: Олег Шелаев
Taming Java Agents
Описание: Java agents are pluggable self contained components that run embedded in a JVM and intercept the classloading process. They were introduced in Java 5 along with the powerful java.lang.instrument package. Java agents can be loaded statically at startup or dynamically (programmatically) at runtime to attach to a running process in a fail-safe fashion.
Java agents were an awesome addition to the JVM as it opened a lot of opportunities for tool designers and changed Java tooling landscape quite drastically. In conjunction with Java bytecode manipulation libraries it is now possible to do amazing things to Java classes: we can experiment with programming models, redefine classes in runtime, record execution flow, etc.
In this session I’d like to give an overview of Java agents’ functionality along with the usage examples and real world experiences. You will learn, how to implement an agent and apply Instrumentation API in combination with bytecode manipulation libraries to solve interesting tasks.
Тип выступления: Доклад (50 минут)
Докладчик: Олег Шелаев
Java Enterprise без Java?
Описание: Сейчас часто задают вопрос: “какой язык заменит Java?”. Но куда девать существующие технологии разработки корпоративных приложений? Эти технологии однозначно имеют ценность. Можно ли одновременно заменить язык программирования и при этом сохранить существующие наработки и сделанные инвестиции? Ответ «да». С помощью Polyglot JVM.
Введение Polyglot JVM достигает двух целей: открывает путь инновациям и позволяет сохранить технологии Java в секторе enterprise. Этот доклад для разработчиков корпоративных приложений. Надеюсь, он поможет систематизировать знания по архитектуре серверных платформ на базе Java и, возможно, вдохновит расширить диапазон используемых языков.
Проанализированы архитектуры серверных платформ: CORBA, Java EE, Spring, Akka. Enterprise технологии по сути не зависят от Java. Они работают на платформе Java, но имеют отдельную от Java ценность. Можно сохранить эту ценность и при этом изменить язык программирования для того, чтобы привнести инновации и преимущества других языков, например, функциональных или языков с динамической типизацией. Для этого необходимо выйти за пределы архитектуры серверной платформы и поискать фундамент, на котором построена серверная платформа. Этот фундамент – JVM. Серверная платформа и бизнес-логика могут быть написаны на разных языках, выполняемых на одной и той же JVM. Именно поэтому активно развивается направление Polyglot JVM.
Тип выступления: Доклад (50 минут)
Докладчик: Елена Сирота
Scala – essentials and step beyond
Описание: Вы должны были заметить, что последнее время функциональная парадигма набирает все большие и большие обороты, уже сейчас вы можете попробовать ее в Java 8 EAP.
Но давайте посмотрим в сторону самого мощного на сегодня функционального инструмента – Scala. Кроме своих функциональных возможностей, Scala является статически типизированным языком, включает ООП-парадигму и работает в JVM. Благодаря всему этому и при должных хороших манерах в написании кода Scala может полностью заменить Java во многих задачах.
Данный доклад познакомит с некоторыми из основных инструментов Scala, которые позволяют на уровне языка решить многие из проблем изящнее и удобнее, чем с помощью Java. Join the ‘Scala’ side, we have implicits!
Тип выступления: Доклад (50 минут)
Докладчик: Роман Сорока
Хороводы с Apache Cassandra
Описание: В докладе поделюсь опытом выбора решения для распределенного хранения данных. Расскажу, какие аспекты помогли нам остановиться на Apache Cassandra, какие моменты мы упустили и как с этим живут пользователи. Доклад содержит описание определенного количества граблей и соответственно будет полезен тем, кто любит учиться на чужих шишках.
Тип выступления: Доклад (50 минут)
Докладчик: Иван Соболев
Обзор нововведений в java.util.concurrent (JSR166e)
Описание: Пакет JSR 166e – это классы java.util.concurrent, которые появятся в JDK8. В частности, новый ConcurrentHashMap и StampedLock. Доклад про то, как устроены базовые классы, и почему они хорошо работают в условиях многопоточности. Будут описаны ситуации, в которых стоит или не стоит использовать известные альтернативы, и какой прирост производительности можно ожидать.
Тип выступления: Доклад (50 минут)
Докладчик: Дмитрий Чуйко
Красная книга веб-разработчика
Описание: Миллиарды людей по всему миру открывают веб-браузер утехи или работы ради. Сотни тысяч разработчиков, дизайнеров, тестировщиков и т.д., создают все новые и новые приложения для этих самых миллиардов. Тысячи языков программирования, помогают предыдущим ребятам. И Java один из таких языков!
И если ты выбрал для написания своего веб-приложения Java – ты скорее всего один из нас. Мои поздравления. Загвоздка лишь в том, что для Java существует несколько десятков веб-фреймворков и библиотек. Непростой выбор для человека, но критический для проекта. Что выбрать?
Скажу честно – я не знаю, но попробую помочь определиться с выбором. Мы пробежим по GWT, Spring MVC, Struts, DWR, JSF, Wicket, Portlet и некоторым другим фреймворкам, которые мне попадались в руки. Сравним сильные и слабые стороны, и подготовим почву для вашего собственного выбора веб-фреймворков будущего проекта.
Тип выступления: Доклад (50 минут)
Докладчик: Виктор Полищук
Не по дням, а по часам! Вертикальное и горизонтальное масштабирование Java приложений.
Описание: Ваше приложение становится популярным и у вас наплыв посетителей? Сайт уже не справляется с нагрузкой, а клиентов все больше и больше… В этом докладе я расскажу о том, как надо проектировать приложения, чтобы они могли выдержать свалившуюся на них славу и неожиданный поток клиентов, приемы вертикального и горизонтального масштабирования, преимущества и недостатки каждого подхода, узкие места и потенциальные проблемы. В том числе будут приведены примеры практической реализации обоих видов масштабирования в облачной платформе Jelastic.
Тип выступления: Доклад (50 минут)
Докладчик: Руслан Синицкий
Зачем нужен Kotlin, если будет Java 8?
Описание: Kotlin – это статически типизированный язык программирования, разрабатываемый в компании JetBrains. Kotlin компилируется в байт-код для JVM и полностью совместим с Java, то есть код на Kotlin и Java можно легко использовать в одном проекте. Доклад будет посвящен различиям между Kotlin и Java (преимущественно Java 8), в том числе:
-
синтаксический сахар: строковые шаблоны, вывод типов, классы данных;
-
система типов: отслеживание нулевых ссылок, автоматическое приведение типов;
-
расширение существующих API (внешние функции в Kotlin vs интерфейсы с реализацией Java 8);
-
лямбда-выражения, функции высших порядков и приведение к функциональным интерфейсам (SAM);
-
работа с коллекциями в Kotlin и Java 8.
Тип выступления: Доклад (50 минут)
Докладчик: Евгений Геращенко и Наталья Ухорская
Nashorn – the new JavaScript engine for JVM
Описание: Nashorn is a new JavaScript engine written in pure Java. In this session you’ll get introduced to Nashorn and will get answers to the following questions:
-
What does it bring to the Java world?
-
What capabilities does it provide for the server and the client sides?
-
How can you leverage Nashorn in the real-life projects?
You’ll also learn how can we use it today, even before Nashorn is integrated into public JDK8 builds.
Тип выступления: Доклад (50 минут)
Докладчик: Anton Moiseev