Joker 2014

Конференция сайт события http://jokerconf.com/

Добавить в календарь:
Поделиться:

20 и 21 октября в Санкт-Петербурге пройдёт главное Java-событие года — Java-конференция Joker 2014. В программе — технические доклады от Java-гуру, тренинги и мастер-классы по наиболее актуальным Java-темам!

 

 

Конференция пройдёт в Петербурге уже во второй раз, и в отличие от прошлого года, в этот раз вас ждёт уже один, а целых два насыщенных дня.

 

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

  • более 30 докладов от Java-экспертов из России, Европы и США;
  • кейноуты от приглашенных звёзд;
  • мастер-классы и тренинги от Java-гуру;
  • доклады представителей ведущих компаний-разработчиков ПО на Java;
  • презентации от разработчиков различных JVM;
  • море общения с другими участниками.

 

План конференции

Дата

Мероприятие

Стоимость одного билета

20 - 21
октября

Основные дни конференции: доклады, круглые столы

от 4 000 рублей за 2 дня

22 - 24
октября

Мастер-классы и тренинги от экспертов по Java-технологиям

от 8 000 рублей

23 октября

Встреча Java User Group c приглашёнными звёздами

Вход свободный

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

Spring Data? Да, та!

Когда-то в Java всё было просто - заменил JDBC Driver на другой, и всё работает. Потом стало сложнее - заменил Hibernate на EclipseLink, но по большей части оно всё-ещё кое-как работает. А потом случился NoSQL. Что общего у MongoDB и Hadoop? Да ничего, кроме того, что они не-SQL. Достаточно ли этого, для того, что-бы написать фреймворк, энкапсулирующий детали их реализации? Именно на этот вопрос я попытаюсь ответить в своём докладе.

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



Aleksey Shipilëv

Oracle

java.lang.String Catechism

Hardcore enterprise solutions, as well other products, normally deal with large amount of text data. Those applications spend considerable time and memory to mess with Strings. It had been repeatedly shown that optimizing String usages will almost always give the immediate performance boosts. This is not to mention dodging OutOfMemoryErrors and the like.

In this talk, we will revisit the basic sins of working with Strings: gluttony of concatenation, wrath of substrings, greed of interning, pride of deduplication et cetera. We will also see the costs of sloth, believing JVM Almighty will do all the work for us.



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

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

Лучший отладчик — сделанный своими руками

Java разработчики привыкли: утекает память — запускай Eclipse Memory Analyzer, проблемы с производительностью — профилируй с YourKit. Но зачастую стандартных средств не хватает, например, когда ошибка проявляется только в production, куда и дебаггером не подключиться, и 10-гигабайтный heap dump не снять без перебоев в обслуживании.

Сделать собственный инструмент, заточенный под конкретную проблему — легко! Порой даже быстрее, чем найти готовое решение в интернете. JDK включает богатый инструментарий для написания всевозможных средств отладки и мониторинга: JVMTI, Dynamic Attach Mechanism, Serviceability Agent, Instrumentation API и т.п. Мы научимся ими пользоваться, узнаем, как устроены изнутри jstack, jmap и jstat, и даже напишем подобную утилиту сами во время доклада. За основу примеров взяты случаи из практики в «Одноклассниках», а также реальные проблемы разработчиков, обсуждаемые на Stack Overflow.



Markus Eisele

Red Hat

50 Best Features of Java EE 7

The Java EE 7 platform has four new components (WebSocket, JSON-P, batch, and concurrency), three that are significantly updated (JAX-RS, JMS, and EL), and several others that bring significant changes to the platform. As you can imagine, a lot of new functionality has been introduced in the platform. In this fast-paced session, you will learn about 50 new features introduced in the Java EE 7 platform. @ClientEndpoint, chunk-style batch processing, @FlowScoped, @AroundConstruct, @JMSDestinationDefinition, and @Transactional are some of features the presentation covers. It explains each feature.



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

Oracle

Железные счётчики на страже производительности

Нередко при анализе производительности приложений приходится много копать. Но просто копать недостаточно, нужно еще разгребать накопанное. Железный век настал более 3000 лет назад, и было бы удивительно, если бы за это время человечество не создало кучу разнообразных железных приспособлений для копания и разгребания.

В данном докладе мы узнаем, что же такое "Hardware Performance Counters", где их найти и как их можно использовать для анализа производительности.



Олег Анастасьев

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

За гранью NoSQL: NewSQL на Cassandra

До недавнего времени в Одноклассниках около 50 ТБ данных, обрабатываемых в реальном времени, хранилось в Microsoft SQL Server. Многие знают, что для такого объема обеспечить быстрый и надежный, да еще и устойчивый к отказу ЦОД доступ, используя SQL СУБД, практически невозможно. Обычно в таких случаях используют одно из NoSQL хранилищ, но не всё можно перенести в NoSQL: некоторые сущности требуют гарантий ACID-транзакций.

Это ограничение подвело нас к необходимости использования NewSQL хранилища, то есть СУБД, предоставляющей отказоустойчивость, масштабируемость и быстродействие NoSQL-систем, но при этом сохраняющей привычные для классических систем ACID-гарантии. Работающих промышленных систем этого нового класса немного (сразу приходит на ум только Google Spanner), а доступных — и вовсе нет. Поэтому мы реализовали такую систему сами на любимой нами Java и запустили ее в промышленную эксплуатацию несколько месяцев назад.

Доклад про то, как устроено это хранилище будет интересен всем, кто следит за развитием технологий управления базами данных и имеет опыт работы с (No)SQL.



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

Oracle

Future of Java: 9 and beyond

Java 8 is out and Java 9 is actively ramping up. What are the plans for future releases?

A number of experimental projects has been started recently to incubate advanced Java VM and Language feature candidates for future releases. Project Valhalla explores a new apporoach to generic typing, and hopes to produce a new form of generic typing that allows developers to use generic collections of primitive types. The other big feature currently proposed for Valhalla is value types.

Project Panama will provide a native interconnect between code managed by the JVM and APIs for non-Java libraries.

The primary goal of Project Sumatra is to enable Java applications to take advantage of graphics processing units (GPUs) and accelerated processing units (APUs) to improve performance.

For each major feature, I'll give an overview, current status, and vision of the future development.



Nitsan Wakart

Azul Systems

The Illusion of Execution

Contrary to our intuitions, the execution of our software is far from the continuous and sequential mental model we use when reading and writing code. In this talk we will discuss the gap between this model and the reality of the average Java application:

- Placing the Java process in the stack: HW (real/virtual)/OS/Process

- The other threads in your process

- When the JVM stops (and the promise of a "pause free JVM")

- Open to interpretation: from your code to assembly

- The pause button: Safepoints in your code

- Pointer accounting: store barriers and load barriers in your code



Светлана Исакова

JetBrains

Простыми словами про вывод типов

Что нужно знать разработчику о системе типов языка, на котором он пишет? От каких проблем спасают статические проверки, или что выбрать: статически типизированный язык или динамически типизированный? Локальный вывод типов (переменных) – скорее мешает или помогает? А глобальный?

Каждый Java-разработчик сталкивается с выводом типов постоянно, но не все знают определения и задумываются, как все работает. Вывод типов (англ. Type inference) — это возможность компилятора самому логически вывести тип значения из выражения.

Каждый раз, когда вы пишете, например, фильтрацию списка, компилятор решает систему уравнений. И если решения нет, то код не компилируется! В докладе мы поговорим про алгоритм вывода типов: что за система, откуда берутся неизвестные и ограничения на них. И, конечно, о том, почему иногда типы не сходятся. Если такие понятия, как типы, типовая безопасность, вывод типов, являются для вас buzzword'ами, то этот доклад развеет для вас туман и внесёт ясность, а так же упорядочить в голове концепты, которые постоянно на слуху.



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

Oracle

<з>Java Benchmarking: как два таймстампа прочитать!

Померить производительность - это так просто! Два раза по System.nanoTime(), взяли разность, сложили-поделили, и всё, можно оптимизировать. Как бы не так!

В этом докладе мы поговорим о том, как исследуют производительность приложений при помощи бенчмарков, какие частые ошибки возникают, как с ними бороться, и как вообще получить хоть какие-то полезные данные о мире, где всё от всего зависит. Красной нитью в докладе проходит Java Microbenchmark Harness (JMH), стандартный инструмент для написания и исследования бенчмарков в OpenJDK.



Владимир Ситников

NetCracker

Профайлер в каждый дом

Случается, что код тормозит. Конечно, наш код идеален и проблема кроется в third-party библиотеках, но легче от этого не становится. Как понять причину медлительности? Как профилировать?

Профилирование кода — это не просто «открыть профайлер», а процесс, позволяющий своевременно отлавливать неоптимальный код на этапе разработки, тестирования и работе в production. Для некоторых случаев и System.out/perf4j/poormansprofiler могут оказаться хорошим решением. Но что делать с жалобой QA: «Вчера работало медленно»? Что делать с заказчиком, который «уже обжёгся на профайлере X и не согласен его ставить»? Сколько времени разработчик потратит на анализ профиля, прежде чем найдёт упоминание интересного ему кода?

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



Maurice Naftalin

Morningside Light Ltd.

Is Your Code Parallel-Ready?

The Stream API is set to become as important in the future as the Collections API is today. But to make good use of it, we have to understand the basis of its design in the idea of “parallel-ready code,” how that idea leads to the new idioms of the Stream API, and how Collectors square the circle that combines parallel execution with mutable data structures.

This presentation ends with a practical payoff—it takes some typical collection processing problems and shows systematically how to choose the best stream processing solution for each.



Михаил Дударев

Licel

USS «Enterprise» - сквозь черные дыры безопасности Java Web-контейнеров

В докладе будет затронуты следующие темы:

- Основные типы атак на Web-приложения и контейнеры;

- OWASP для web-контейнеров;

- Немного об SSL и Java Cryptography;

- Apache Tomcat - иследуем текущие и прошлые уязвимости;

- Коммандер Спок рекомендует - как сделать ваш Java Web приложение и сервер безопасным.



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

XP Injection

Прикладная многопоточность

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

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



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

Devexperts

Почему GC съедает все моё CPU?

Что делать, если GC потребляет существенную долю ресурсов системы, но профилировщик CPU не показывает узких мест в приложении, а в снимке памяти активных объектов нет ничего необычного? Как такое может быть?

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

Как же найти эти места в большом приложении? Для решения этой задачи нами в Devexperts был создан специальный инструмент – AProf. Он позволяет учитывать каждое выделение памяти в коде Java-приложения и запоминать достаточно контекстных данных, чтобы, с одной стороны, можно было найти виновника, а, с другой, делать это на целевой, нагруженной платформе, без заметного её замедления.

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



Volker Simonis

SAP

Open Heart Surgery: HotSpot Debugging at the OS Level

Debugging Java applications is comfortable and simple, but if you want to look beyond the Java horizon, you need special knowledge and and different tools.

This interactive session shows you how to debug a running VM or analyze a VM core file with a native debugger. You will also learn how to use some of the more than 1,200 VM options to trace or modify the VM behavior. This knowledge can greatly help you identify, isolate and reproduce the root cause of hard VM crashes, and it can also be pure fun to see which actual machine instruction the CPU is executing for your Java code.



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

JetBrains

Писать код быстрее, ошибаться реже: возможно ли это?

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

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



Глеб Смирнов

Deutsche Bank

HotSpot, что ты делаешь?! Ахаха, прекрати!

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

Но ведь HotSpot — это не загадочная шайтан-машина, а что-то, у чего открыт исходный код! Всё поведение JVM, кажущееся поначалу странным, можно объяснить и научиться воспроизводить, нужно просто копнуть ещё немного глубже. Доклад окунёт слушателей в увлекательный мир исходников JVM и разберёт несколько "необычных" ситуаций, с которыми может столкнуться разработчик.



Иван Крылов

Azul Systems

Оптимизация представления сложных Java-объектов: проект ObjectLayout

Я расскажу о том, что предоставляют из себя Java-объекты и структуры объектов в памяти, и о том, как перемещение и упаковка объектов в памяти влияют на производительность. Я представлю новый пакет классов Java, который имеют гарантированное взаимоположение классов в пямяти, что позволит достичь производительности «как в программах на С». Для эффективной работы данных классов потребовались новые примитивные типы в JVM, модификация алгоритмов GC, а также новые интринсики. Развитие данных классов позволит в будущем переписать некоторые стандартные коллекции в JDK.



Marcus Lagergren

Oracle

OS/JVM dialectic – ending the struggle through unity

The JVM is an interesting beast, being a runtime and a virtual machine it shares a lot of its behavior with the operating system beneath it. It has concepts like threads, a heap for object allocation and code execution in sandboxed environment. The JVM uses resources from the operating system to implement its functionality, but as noted it also looks a lot like the operating system itself. Sometimes it’s useful that the operating system is beneath the JVM – we can, for example, use operating system thread directly. Other times, however, this is not a good thing. We want the same control of the machine in userland from the JVM as the OS has only in kernel land.

This has led to the boundary between the OS and the JVM becoming blurry. A JVM is basically just an operating system that does one thing – run Java. We will cover practical examples from the past of meta-virtual machines and also discuss projects like the (now dead) hypervisor only JRockit VE OS as an example of strange hybrids and explain what can be gained from them.

We’ll talk about threads, locks, and I/O implementation from a JVM and an OS perspective. The talk also contains a historical retrospective on virtual machines and operating system interaction that stretches back to the seventies. We’ll make educated guesses about where the future is heading.



Алексей Рагозин

Deutsche Bank

Структуры данных в Java, изобретаем заново

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

В этом докладе я хочу рассказать о своём опыте работы с существующими библиотеками коллекций и написания собственных.

- Стандартные коллекции Java - что можно улучшить?

- Быстрые, компактные или много поточные - выбери любые два;

- Troove, FastUtils, Colt и другие библиотеки коллекций с открытым кодом;

- Масштабирование и производительность структур данных на современном железе.



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

Excelsior

Ahead-of-time компиляция

Ahead-of-time (AOT) компиляция, или статическая компиляция, существует для платформы .NET довольно давно, однако Java до сих пор не имеет стандартного AOT-компилятора. Некоторые программисты думают, что AOT-компилятор для Java может работать только для ограниченного подмножества Java приложений и не может быть применен в общем случае, другие думают, что AOT не нужен для Java, потому что есть JIT.

Правда же состоит в том, что у Java есть AOT-компилятор с 2000 года как часть Excelsior JET JVM, полностью совместимой с Java спецификацией. В этом докладе я попробую развеять мифы, которые сложились вокруг AOT-компиляции и показать, где (с технической точки зрения) этот подход имеет преимущества перед динамической компиляцией (JIT).



Christoph Engelbert
и
Peter Lawrey

Unsafe Java World — Crossing the Borderline

You never heard of sun.misc.Unsafe? You may be using it without realising it. Are you using Spring or Hibernate? 90% of todays applications use sun.misc.Unsafe directly or indirectly. Unsafe is meant to be an API internal to the JVM but since it turned out to be extremely powerful, more and more frameworks have used it.

This talk will show different usecases of sun.misc.Unsafe. Some are commonly used in production environments like fast Serialization, Offheap or to build lock-free algorithms, some not suitable for production but fun to play with breaking the rules of what you can do in Java.

After the talk you’ll understand what is possible and what might help you, but not to forget, this talk is given with a big warning: Don’t Try That At Home!



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

Luxoft

Мониторинг Java-приложения с многопроцессной архитектурой

Вам случалось полдня разбираться почему не проходит интеграционный тест и обнаружить, что один из Java-процессов Вашего приложения, находясь под нагрузочным тестированием, которое проводил коллега напротив Вас, так усиленно писал логи, что забил все свободное дисковое пространство, что в свою очередь, не позволяло другому Java-процессу этого приложения открыть сокет? Или в Вашей команде более 20 server-side Java-девелоперов, а архитектура Вашего “Ынтерпрайза” со стороны напоминает гигантский клубок нейронов и аксонов?

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

В своём докладе я пройдусь по плюсам и минусам принципа single responsibility в server-side архитектуре, расскажу про типичные проблемы своего текущего проекта и поделюсь рабочими рецептами против паранои бесконечной и болезненной межкомпонентной интеграции. Также будет представлен краткий обзор продуктов основных игроков в сфере мониторинга, таких как hyperic, nagios, appdynamic или newrelic, подходящих для использования как специалистами DevOps, так и Java-программистами.



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

 

Oracle

Силовая установка в одну программистскую силу c сердцем из Raspberry Pi и мозгом на Java Embedded

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

А если серьезно, вы узнаете о об преимуществах использования Java Embedded для построения удалённых распределённых автономных систем. Мы на практике продемонстрируем прототип энергонезависимой установки использующей «чистые» ресурсы. Вы узнаете, как с помощью Java Embedded управлять источниками энергии, такими как солнечная батарея, велогенератор итд. Контролировать заряд батареи и нагрузку из облачного приложения. Если вы Java-разработчик и хотите улучшить своё здоровье и здоровье планеты, то это сессия для вас.



Nicolas Frankel

hybris

Testing from the Trenches

When one uses Test-Driven Development, has more then 90% test coverage and the best Sonar metrics ever seen, and still finds regular bugs in his application, it is time for something more. Unit Testing is like testing a car's every nuts and bolts while Integration Testing is like leading it on a test drive: one cannot achieve high internal quality without the other.

However, Integration Testing might seem very complex when put in place for the first several times; I have made many mistakes and have lost much time. In this presentation, I will present tools that helped me tremendously in Integration Testing, as well as proven tactics to get the best out of your tests.



Барух Садогурский
и
Евгений Борисов

Groovy Puzzlers — Странное, Непонятное и Мамочки-а-это-что-такое?!

Помните легендарные Java Puzzlers? Да-да, те самые, с Джошом Блохом и Нилом Гафтером? Ну, по которым ещё книжку написали? Так вот, в Groovy всё ещё веселее.

В смысле — задачки ещё более странные, и ответы ещё более поразительные. Этот доклад для вас, Groovy-разработчики, мы покажем вам настоящие, большие и красивые подводные камни! И для вас, Java-разработчики, потому что таких вещей на Java-подобном синтакисе вы точно никогда не видели! И для вас, PHP-разработчики… хотя, нет, не для вас :)

Всем точно будет весело — ваши ведущие Женя и Барух будут зажигать, шутить, спорить, бросаться футболками в публику, и самое главное — заставят вас офигивать от Groovy.



Peter Lawrey

Higher Frequency Trading Ltd.

Low level Java coding with examples from OpenHFT

In limited cases, low level coding can really make a difference to the performance of your Java application. Which pieces are useful? How to hide these details for Java developers? When is using low level coding the only option?



Евгений Борисов
и
Барух Садогурский

Зачем у Spring столько конфигураций? Заговор? И ты, Spring Boot?!

Практически каждая новая версия Spring превносила дополнительный способ конфигурации. XML, аннотации Java Config, Groovy Config. Что дальше? А главное зачем их так много? Как знать когда чем пользоваться?

Хотите понаблюдать за настоящей битвой Баруха и Жени в попытке найти золотую середину? Хотите поставить ставки на победу Groovy конфига над XML-ом или наоборот (люди, между прочим, уже выйгрывали реальное пиво!)? Тогда этот доклад - для вас!

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



Александр Подхалюзин

JetBrains

Productivity with Scala

Scala — довольно сложный язык программирования и зачастую не очень понятно, с чего начинать его освоение. Часто люди упускают возможность с самого начала программировать на Scala эффективно. И причина именно в том, что люди всерьёз сосредоточены на языке и его возможностях, не замечая более простых вещей.

Из этого доклада вы узнаете о том, какие практики и инструменты могут быть использованы при обучении и дальнейшем программировании на Scala. Мы рассмотрим Scala Worksheet и его прикладное использование. Также посмотрим на распространенные ошибки в Scala коде. Рассказ будет сопровождаться небольшим введением в язык, поэтому знания Scala вам не требуется.

Ближе к концу доклада мы рассмотрим возможные рефакторинги языка Scala, и инструменты для дебага implicits. Всё это поможет желающим освоить Scala научится осваивать его быстрее и эффективнее, а уже продвинутым программистам на Scala научится эффективнее использовать всю мощь языка.



Алексей Шевчук

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

Подходы к решению проблем производительности высоконагруженых сервисов

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

Хотите узнать, какие проблемы с ресурсами и GC возникают у нагруженных приложений? А примеры решений? Как эффективно распараллелить запрос и от чего нужно защищаться? Как оценить, много ли мусора создают запросы? Что делать, чтобы приложение с хипом на 20GB как можно реже прерывалось на GC?

Все эти проблемы мы решали, делая поиск в Одноклассниках. В итоге наша система обрабатывает тысячи запросов в секунду, делая для этого десятки тысяч подзапросов в индексы и за данными.

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



Jaroslaw Palka

Symentis

So you want to write another JVM language?

In recent years we have seen explosion of languages which run on Java Virtual Machine. We also have seen existing languages getting their implementations being rewritten to JVM. With all of the above we have seen rapid development of tools like parsers, bytecode generators and such, even inside JVM we saw initiatives like Da Vinci Machine Project, which led to invoke dynamic in JDK 7 and recent development of Graal and Truffle projects.

Is it really hard to write new programming language running on JVM? Even if you are not going to write your own I think it is worth to understand how your favorite language runs undercover, how early decisions can impact language extensibility and performance, what JVM itself and JVM ecosystem has to offer to language implementors.

During the session I will try to get you familiar with options you have when choosing parsers and byte code manipulation libraries. which language implementation to consider, how to test and tune your "new baby". Will you be able after this session to develop new and shiny language, packed with killer features language? No. But for sure you will understand difference between lexers and parsers, how bytecode works, why invoke dynamic and Graal and Truffle are so important to the future of JVM platform. Will we have time to write simple, compiled language?



Яков Жданов

GridGain

От дисковой архитектуры к In-Memory

Больше данных – больше время отклика: современным приложениям приходится обрабатывать постоянно растущие объемы информации, и поэтому на выполнение даже относительно простых операций с каждым днём требуется всё больше и больше времени. Как следствие, многие системы, будучи разработанными с использованием традиционных СУБД, практически исчерпали ресурсы для дальнейшего масштабирования.

Если вам не понаслышке знакома подобная проблема или вам интересно узнать, как можно выполнить запрос вида «select avg(sum) from Orders» по сотням миллионов строк за время, не превышающее одной секунды, то этот материал для вас! Мы рассмотрим процесс миграции приложения с «диска» в «память». Речь ни в коем случае не идет о полном отказе от использования СУБД – она остается, как надежное персистентное хранилище, а ACID-транзакции и SQL-запросы будут полностью выполняться в памяти.

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



Дмитрий Лазаренко

Jelastic

Оптимизация работы JVM в облаке — миф или реальность?

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

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

- какие тесты мы проводили на разных GC для того, чтобы добиться автоматического масштабирования JVM;

- какой набор параметров JVM обеспечивает возможность масштабирования JVM вниз;

- какова архитектура и реализация модуля, который отвечает за возврат памяти обратно в ОС;

- связь поведения JVM и гипервизора.

Кроме того, вы научитесь демасштабировать VM и корректно обрабатывать пиковые нагрузки за счёт переноса приложений в облако.



Алексей Зиновьев

Тамтэк

Java в качестве основного рабочего инструмента Data Scientist

Часто мы можем слышать разговоры, что, мол, Java хороша для Enterprise или для Mobile, но вот прототип алгоритма придется писать на любимом Python или R. Верно ли, что Java уже не та и мало подходит для этого изящного мира ученых, которые переваривают кропотливо собранные вами данные? Правда ли, что на Java нет фреймвороков, сопоставимых по возможностям с пакетами R или NumPy для Python? Можно ли позволить тому парню с красным дипломом МГУ писать свой алгоритм в Matlab и Octave, ведь потом все «легко переписать в Java»?

Если вы Java-разработчик высоконагруженных систем и у вас периодически накапливаются данные для анализа, если у вас уже настроен прекрасный кластер Hadoop, а данные ждут своего часа в MongoDB, Cassandra или Hbase, то вам наверняка хотелось бы воспользоваться инструментами для Data Mining, без особых усилий добавляя сервисы, анализирующие ваши данные.

Из доклада вы узнаете о самых популярных фреймворках и IDE на Java для построения моделей при помощи методов Machine Learning, о вариантах встраивания этих решений в существующие системы.

Комментарии (0):

Оставлять комментарии могут только зарегистрированные пользователи

Для получения embed кода необходимо кликнуть правой
кнопкой мыши на видео и выбрать пункт меню
'Сгенерировать HTML код'

Билеты на Joker 2014 бывают трёх видов:

Lite — билет, включающий только посещение конференции, без талона на обед и нашего подарка;

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

Full — билет, включающий посещение конференции, талон на обед и подарок от организаторов.
Оптимальное соотношение цена/качество!

Joker — билет, включающий обеды, места в первых рядах, дающий доступ в зону спикеров, а так же на Afterparty 22 октября.

Super Joker — билет с персональной доставкой, включающий обеды, места в первых рядах, дающий доступ в зону спикеров, а так же на Unconference и Afterparty 22 октября.

Билеты

Lite, руб.

Online, руб.

Full, руб.

Joker, руб.

Super Joker, руб.

до 24 августа

4 000

4 000

6 000

14 000

20 000

до 7 сентября

5 000

5 000

7 000

17 000

24 000

до 21 сентября

6 000

6 000

8 000

20 000

28 000

до 5 октября

7 000

7 000

9 000

23 000

32 000

до 19 октября

8 000

8 000

11 000

26 000

36 000

20-21 октября

10 000

10 000

13 000

30 000

40 000

Забыли пароль? Регистрация