•  

JEEConf 2016 schedule

Friday 20th May 2016

  • Java EE 8: What Servlet 4.0 and HTTP/2 mean to you

    by Alex Theedom

    The goal of HTTP/2 is to increase the perceived performance of the web browsing experience. This is achieved by multiplexing over TCP and Server Push among other techniques. What implications does this have for developers? How does Servlet 4.0 embrace HTTP/2 and what support is there in JDK 9? We will see, with code examples, what the future of developing with HTTP/2 might look like.

    At 10:00am to 10:45am, Friday 20th May

  • Reactive Thinking in Java

    by Yakov Fain

    This presentation is about the world of asynchronous programming in Java, where everything is a stream. We'll talk about how reactive extensions change the way you design Java applications. You'll see how to consume observable streams of events and apply a variety of operators offered by the RXJava library, which requires a different way of thinking about writing code.

    At 10:00am to 10:45am, Friday 20th May

  • Search and analyze your data with ElasticSearch

    by Anton Udovychenko

    The importance of search for modern application is evident and nowadays it is higher than ever. A lot of projects use search forms as a primary interface for communication with a user. Though implementation of an intelligent search functionality is still a challenge and we need a good set of tools. In this presentation, I will talk through the high-level architecture and benefits of ElasticSearch with some examples. Aside from that, we will also take a look at its existing competitors, their similarities, and differences.

    At 10:00am to 10:45am, Friday 20th May

  • Tricky Java Generics

    by Alexander Matorin

    Generics were added to the Java language more than 10 year ago. But do you really understand them?

    We’ll discuss:

    • What is heap pollution?
    • How does the compiler translate generics?
    • Why it’s not allowed to create parametrized array (List<String>[])
    • What are bridge methods, can we reach them?
    • Type erasure rules
    • Difference between List, List<Object>, List<?>
    • Why it’s not allowed to add Integer to List<? extends Number>
    • Why it’s not allowed to parameterize exception classes?
    • What’s wrong with Collections.max signature: <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll);
    • Code that should be compiled, but can’t be compiled and vice versa
    • How to write good API using generics and wildcards
    • And other generic puzzlers

    At 10:00am to 10:45am, Friday 20th May

  • What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview

    by Yaroslav Yermilov

    In this talk we will go through spock-framework features and compare them with what JUnit and TestNG can offer instead. Together we will try to find out both pragmatic and emotional answer to the Ultimate Question of Unit Testing: finally, should one use spock-framework in the year of 2016? Finally, we will take a quick look on spock-framework ecosystem and examine what the hell is JUnit 5 (yes, it’s a thing).

    Footnotes:

    • Vulcans are extraterrestrial humanoid species from the planet Vulcan attempted to live by reason and logic with no interference from emotion.
    • Mr. Spock is Half-Vulcan and Half-Human, so he can greatly combine pragmatic and emotional approach.
    • As Mr. Spock has an A7 computer expert classification he is surely interested in unit testing.

    At 10:00am to 10:45am, Friday 20th May

  • What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview

    by Yaroslav Yermilov

    In this talk we will go through spock-framework features and compare them with what JUnit and TestNG can offer instead. Together we will try to find out both pragmatic and emotional answer to the Ultimate Question of Unit Testing: finally, should one use spock-framework in the year of 2016? Finally, we will take a quick look on spock-framework ecosystem and examine what the hell is JUnit 5 (yes, it’s a thing).

    Footnotes:

    Vulcans are extraterrestrial humanoid species from the planet Vulcan attempted to live by reason and logic with no interference from emotion.
    Mr. Spock is Half-Vulcan and Half-Human, so he can greatly combine pragmatic and emotional approach.
    As Mr. Spock has an A7 computer expert classification he is surely interested in unit testing.

    At 10:00am to 10:45am, Friday 20th May

  • Everything I Ever Learned About JVM Performance Tuning at Twitter

    by Attila Szegedi

    During my time at Twitter, I engaged in lots of JVM performance tuning at scale. The talk summarizes lessons that were learned in the process of doing this in the area of memory, CPU, lock contention, and threading tuning.

    At 11:00am to 11:45am, Friday 20th May

  • HotSpot Intrinsics

    by Volker Simonis

    By definition, intrinsics are functions which are handled specially by the compiler or the VM. The HotSpot virtual machine supports intrinsics for specific API functions in the interpreter as well as in the C1 and C2 JIT compilers. In general, intrinsics are a great possibility for optimization. But they also come at a certain cost. First of all, they are inherently platform and implementation dependent. If available, they can lead to consistency problems if they are implemented differently in the interpreter and the JIT compilers. Finally, they can change the program control (e.g. safepoint behavior) and observability (e.g. profiling, instrumentation) in subtle ways.

    This talk will give an overview of the intrinsics currently available in the HotSpot VM. It will explain how their usage can be controlled, in which way they are implemented and how you can add an intrinsic for your favorite Java method.

    At 11:00am to 11:45am, Friday 20th May

  • Implement your own profiler with blackjack and fun

    by Vladimir Sitnikov

    Sometimes your program executes slower than you expect. Of course the code we write ourselves is perfect and the bottleneck is hidden in one of the third-party libraries. It does not make our life easier, does it? What are the steps to investigate the root cause of the issue? What is the proper way to profile Java application?

    Code profiling is not a mere launch of a profiler tool. On contrary, profiling is a process that enables you to catch performance bugs proactively during development phase, hunt them in test environment as well as in production. System.out/perf4j/poormansprofiler might perfectly suit for some cases. Those approaches, however would not help you with investigation of yesterdays slowness of QA server. How would you convince a customer to implement your profiler in production server taking into account the fact he might have previous negative experience with «profilers». Profiling process should not get in the way of typical development flow, so simple tasks like «find a method in the profiling result» should indeed be simple.

    Java allows you create your own profiler in a blink of an eye: Instrumentation API enables you to augment java classes, and write-once-debug-everywehere bytecode allows to support different hardware platforms without pain. We will review how those features could be used to write a profiler. We’ll see why certain profilers might not meet requirements/expectations of your cusomter. We’ll higlight the key points for creating a profiler from scratch, and discuss how profiler should interact with the application being profiled.

    At 11:00am to 11:45am, Friday 20th May

  • Lambda Architecture with Apache Spark

    by Taras Matyashovsky

    A lot of players on the market have built successful MapReduce workflows to daily process terabytes of historical data. But who wants to wait for 24h to get updated analytics? This talk will introduce you to the lambda architecture designed to take advantages of both batch and streaming processing methods. So we will leverage fast access to historical data with real-time streaming data using Spark (Core, SQL, Streaming), Kafka, Apache Parquet, etc. Clear code plus intuitive demo are also included!

    At 11:00am to 11:45am, Friday 20th May

  • Performance testing for web-scale

    by Izzet Mustafaiev

    If you heard about web-scale or have a requirement to survive under web-scale or you just would like to prepare your application to handle an X effect this topic is for you. During a presentation you will understand aspects and caveats of performance testing, nuances of performance testing of Java based web applications.
    As a practical part you will get a brief overview of existing tools and will get a guide of using Gatling as a tool to make a load for your application.
    Gatling is an open source tool for performance loading written in Scala and provides comprehensive DSL for load scenario specification.

    At 11:00am to 11:45am, Friday 20th May

  • Caught in the Act: Kotlin Bytecode Generation and Runtime Performance

    by Dmitry Jemerov

    In this talk, we'll dive into the details of how various language features supported by Kotlin are translated to Java bytecode. We'll use the JMH microbenchmarking tool to study the relative performance of various constructs and to understand how we can ensure top performance of the Kotlin code that we write.

    At 12:00pm to 12:45pm, Friday 20th May

  • JUnit 5: Next Generation Testing on the JVM

    by Nicolai Parlog

    Java's most ubiquitous library is getting an update! And this is the time to see what's new and weigh in on its course.

    This talk will:

    • show you how to write tests with JUnit 5;
    • walk you through the changes compared to JUnit 4;
    • present the new architecture;
    • discuss compatibility with previous JUnit versions, IDEs, and other testing tools.

    Be careful, though: You might end up with an urge to start using it right away.

    At 12:00pm to 12:45pm, Friday 20th May

  • Rapid Java Web Development with Ratpack

    by Danny Hyun

    Ratpack is a fully non-blocking, asynchronous, minimalistic web framework that focuses on developer friendliness and productivity. Learn about a modern, Java 8 based web framework that allows for rapid prototyping of web applications.

    At 12:00pm to 12:45pm, Friday 20th May

  • Streams, flows and storms - how not to drown with your data?

    by Maciek Próchniak

    The landscape of stream processing frameworks gets more and more complicated. Some time ago Apache Storm was the only boy/girl in town. After that Spark Streaming emerged, then Apache Flink - European answer to Storm & Spark. What's more - just few days ago Apache Dataflow entered incubation stage - aiming at API unification and backed by Google. I'm not even mentioning Samza, Flume nor projects that failed to gain traction.

    In the talk I'd like to clear things a bit to help listeners (and myself) decide - which of above fit particular needs and which ones are stable enough to be used without fear.

    At 12:00pm to 12:45pm, Friday 20th May

  • Vanilla Java or handling 10k req/sec per core

    by Dmitriy Dumanskiy

    In my talk I will explain how the IoT has changed the understanding of high-load and why this trend changes the rules. What are asynchronous sockets and how they work. What are the solutions up to date and why Netty has no competitors. How does Netty work, what are its strengths, weaknesses, pitfalls. How does the architecture of our Blynk IoT platform look like and why we don't use Spring, Hibernate, RDBMS and other traditional java mainstream technologies in it. How vanilla java allows to build and design extremely fast applications.

    At 12:00pm to 12:45pm, Friday 20th May

  • Lightning talk: RxJava Applied: Concise Examples where It Shines

    by Igor Lozynskyi

    FRP & RxJava have already gained an important place in software development of all kinds, from mobile applications to high load servers. But it is just a beginning. The approach proposed by RxJava gives us such benefits as functional composition over observable streams, easy asynchronous programming, including error handling, an amazing toolbox of functions to build workflows.

    This talk is all about short but expressive examples where RxJava gives more possibilities requiring less code.

    At 12:55pm to 1:40pm, Friday 20th May

  • Lightning talk:Code generation with Javac Plugin

    by Oleksandr Radchykov

    Javac plugin API was introduced in java 8. We can use this API for getting cool things done (like code generation/code analyzing). However it is not widely used right now. Most of `java magic` projects like Lombok, Java-OO are using annotation processing. I want to show brand new approach for making the magic in java which has some benefits. Right now I have prototype which gives us the power of auto type casting in java and, if you want to use it, you shouldn’t add any dependencies to your project for using it, you should only add flag for compiler. In future I think it can be done through build tool plugin.

    At 12:55pm to 1:40pm, Friday 20th May

  • Different flavors of polymorphism in Scala

    by Boris Trofimov

    Working with Scala can be compared to experiencing the “forth dimension”. Many of the features of Scala are unique and provide ways to look at application development in a new way. Polymorphism in Scala is multifaceted and this is going to be our topic.

    At 1:45pm to 2:25pm, Friday 20th May

  • Angular 2 for Java developers(part 1)

    by Yakov Fain

    Angular 2 is a complete re-write of the super popular Web framework AngularJS. According to Pluralsight survey, Angular leads the list of what developers want to learn in 2016. Angular 2 is a component-based framework that will have an effect in JavaScript community similar to what Spring framework did for Java. This presentation is an overview of this hot framework, which finally made Web development understandable for Java developers.

    At 2:30pm to 3:15pm, Friday 20th May

  • Counter Wars, or 100500 ways to shoot yourself in the foot when implementing thread-safe counter

    by Alexey Fyodorov

    Do you know that contended AtomicLong.increment() works in JDK 8 much faster than in JDK 7? There are a lot of ways to implement thread-safe counters in Java and 100500 ways to shoot yourself in the foot when you doing this.

    During this talk we will consider several ways of implementing thread-safe counters (synchronized, Lock, AtomicLong, Unsafe), compare their performance, and try to understand why some implementations are faster than others in this or that scenario.

    At 2:30pm to 3:15pm, Friday 20th May

  • Java 8 Puzzlers: The strange, the bizarre and the wonderful

    by Mikalai Alimenkou and Evgeny Borisov

    We aren’t sure about you, but working with Java 8 made one of the speakers to stop shaving and the other lose his sleep. If you still didn’t reach the level of Kuksenko or Shipilëv in mastering lambdas and strings, this talk is for you. And if you think you did, we have some bad news for you, you should attend as well. We’ll show you some surprising, bizarre and inconceivable parts of Java 8 and make sure that you won’t be (too) surprised when it hits you in production. As any other puzzlers talk, this session will consist of two speakers, lots of puzzling questions, answers by the audience, t-shirts flying around and a lot of fun, all for one purpose – to make you understand Java 8 better.

    At 2:30pm to 3:15pm, Friday 20th May

  • No container: a Modern Java Stack with Bootique

    by Andrus Adamchik

    Java containers appeared back in the era of big expensive hardware and monolithic applications, and currently feel like an impediment to Java progress. More and more developers opt out of containers in favor of runnable jars, especially with the advance of microservices architectures. Andrus Adamchik will present a new open source tool called Bootique (https://bootique.io), a pluggable and extensible technology intended for various kinds of container-less Java apps – REST services, webapps, job runners, desktop apps and what not.

    At 2:30pm to 3:15pm, Friday 20th May

  • Petabyte-Scale Text Processing with Spark

    by Aleksey Slyusarenko

    At Grammarly, we have long used Amazon EMR with Hadoop and Pig in support of our big data processing needs. However, we were really excited about the improvements that the maturing Apache Spark offers over Hadoop and Pig, and so set about getting Spark to work with our petabyte text data set. This talk describes the challenges we had in the process and a scalable working setup of Spark that we have discovered as a result.

    At 2:30pm to 3:15pm, Friday 20th May

  • Angular 2 for Java developers(part 2)

    by Yakov Fain

    Angular 2 is a complete re-write of the super popular Web framework AngularJS. According to Pluralsight survey, Angular leads the list of what developers want to learn in 2016. Angular 2 is a component-based framework that will have an effect in JavaScript community similar to what Spring framework did for Java. This presentation is an overview of this hot framework, which finally made Web development understandable for Java developers.

    At 3:30pm to 4:15pm, Friday 20th May

  • Big Data-Driven Applications with Cassandra and Spark

    by Artem Chebotko

    Apache Cassandra and Apache Spark have proven to be a winning combination for building modern OLTP and OLAP applications that serve many millions of concurrent transactions and analyze petabyte-scale datasets. In this talk, we discuss requirements and challenges of big data-driven applications, how these requirements are supported by Cassandra and Spark, and what it takes to become proficient in these technologies. We then present the integrated architecture of Cassandra and Spark in more detail, introduce the Cassandra data model and query language, and focus on a selected subset of Spark Scala API. Finally, we demonstrate how to build your first functional recommendation system with Cassandra and Spark using less than 50 lines of code.

    At 3:30pm to 4:15pm, Friday 20th May

  • Hotspot & AOT

    by Dmitry Chuyko

    Different Java implementations exist. Your code lives multiple lifes inside them and JIT compilers provide performance behind the scenes. Some JVMs have ahead-of-time (AOT) compilation that shortens the path. Statement of the problem is different, as well as solutions. Let’s talk about why do we need pre-compiled code, how it can already be produced and used with Hotspot. How Project Graal lets Java to compile Java to native code and how new Java-Level JVM Compiler Interface incorporates Java to compilation work of JVM.

    At 3:30pm to 4:15pm, Friday 20th May

  • Mastering Scala in IntelliJ IDEA

    by Alexander Podkhalyuzin

    Alexander graduated from Saint-Petersburg State University in 2010, department of mathematics, he has a lot of prizes from international and regional mathematical competitions. In 2008, Alexander started to work for JetBrains, where he became Scala plugin for IntelliJ IDEA team leader. From 2012 he started teaching Scala in Saint-Petersburg Academic University.

    At 3:30pm to 4:15pm, Friday 20th May

  • The Java Module System In Action

    by Nicolai Parlog

    You might have heard about Project Jigsaw in Java 9 but did you see it in action? This talk will walk you through the features and pitfalls while modularizing an example application.

    It will show how to:

    • define modules and a module graph;
    • migrate an application while handling unmodularized dependencies;
    • analyze an application and its dependencies for compatibility problems.

    With the different pieces of the puzzle coming together you will be able to vet or even spike _your_ app's migration.

    At 3:30pm to 4:15pm, Friday 20th May

  • Get along with JHipster

    by Dmytro Panin

    JHipster is a trendy Yeoman generator that provides the possibility to create an AngularJS + Spring Boot project from the scratch in no time. I would like to share the idea of JHipster and a set of tools that it comprises. I will superficially cover scaffolding and the explicit tool, that makes scaffolding plain and easy to adopt, named Yeoman.

    Started in October 2013, JHipster has grown and obtained a developing community, furthermore, it is growing rapidly as for the past year about 150 programmers contributed to it. During the presentation, I want to perform a live demonstration of creating a new project based on the aforementioned core and a few subsidiary technologies. Since JHipster includes a great deal of technologies it’s a good source of common practices.

    At 5:00pm to 5:45pm, Friday 20th May

Schedule incomplete?

Add a new session

Filter by Day

Filter by coverage