Five weeks are left before the JPoint 2017 Java conference, 75% of reports have already been approved, the remaining 25% will be selected from existing applications by mid-March. In this post I will tell you about what we did.

If the topics of all reports are divided by topics, you get the following:
')
- Java performance, both at the JVM level and in working with frameworks;
- JVM preparation and public demonstration of bloody intestines;
- Building distributed systems that work;
- Problems of concurrency and multithreading in large projects;
- Containerization and orchestration of Java applications and services.
Plus to the basic blocks there will be reports on more specific topics: Kotlin, trueOOP in Java from Egor, patterns and, of course, some puzzlers!
Under the cut, I will talk about those reports that have already been approved at the JPoint 2017. So that all this does not look like porridge, I tried to break the reports by topic.
Performance and everything connected with it

A favorite topic of the JPoint and Joker participants. These reports warmed the brains to change the state of aggregation. This time, as usual, there will be a lot of performance reports.
Alexey Shipilev - Performance: What is In My Name to You?Revised, updated and expanded report with Joker 2016 on optimizations in large projects: general principles and relationships; project life cycle and optimization economics; benchmark life cycle; typical traps in which performance engineers find themselves.
More hardcore, more details, more timing, even more curve curve of the name "W"!
Sergey Kuksenko - The story of how one HTTP / 2 Client engineer overclockedA report on how Oracle uses (or does not use) performance optimization methodologies that have been broadcast from the scene for many years. Using the example of “JEP 110: HTTP / 2 Client” (which will appear in the JDK in the future), Sergey will show how the team ran, where it looked and what it did to make it faster. Note: the report is not about HTTP / 2. Although, of course, some of its details can not be avoided.
Nikolai Alimenkov - Let's Hibernate Fast AgainMany Java developers use ORM, but most of them are not aware of the existing options for improving performance. With the intrinsic clarity and practical orientation, Nikolay will give an overview of these options with practical examples. Report practice, not a theorist.
Sasha Goldstein, JVM Applications with BPF Magic, Fast and Safe Production MonitoringSasha Goldstein, the famous guru of performance in .NET, decided this time to experiment and speak at a Java conference. In recent years, he has gained a lot of experience in optimizing and monitoring applications running on the JVM, which he will share with the participants.
JVM: Look inside
As always, we have something to hear about the intestines: everything about how the JVM works (or will work in the near future) under the hood and what needs to be done so that only what you need happens under the hood.
Vladimir Ivanov - Code vectorization techniques in JVMThis talk will talk about how the vector expansions of the processor look now and what tricks the JVM has to go to keep them idle: CPU dispatching, VM intrinsic, and automatic vectorization of bytecode in JIT compilers. A specialized vector API (Vector API) will also be mentioned, the work on which is actively carried out in Project Panama.
Aleksey Shipilev - Shenandoah: a garbage collector that couldShenandoah is Red Hat's garbage collector, which is trying to solve the problem of moving objects without stopping the application, thereby knocking off pauses even more. This report is about the features of the design and implementation of Shenandoah, the advantages to be proud of, and the shortcomings with which you have to put up.

Andrey Pangin, Vadim Tsesko - JVM profiler with a sense of tactThe talk will focus on different approaches to profiling: JVM TI, AsyncGetCallTrace, perf_events and Flame Graphs. The speakers will review their work principles, advantages and limitations, as well as find a way to take the best from each of them. In conclusion, it will be discussed how Odnoklassniki profile to Production the entire stack from Java code to the Linux kernel.
Vladimir Dolzhenko - Inside the VM through the keyhole hashCodeA report that hashCode (). It seems that everyone will learn about it from the first thirty pages of the book of Horstman or Bloch, but during interviews the problem of misunderstanding the work of hashCode () is constantly revealed. In the report, Vladimir will talk about how the hashCode mechanism from the inside actually works.
Nikita Lipsky - Java bytecode verification: when, how, and can disable?A report on what mission in the JVM the bytecode verifier carries, when and how it works, can affect the performance of your application and why it is dangerous to disable it.
Volker Simonis - Analyzing HotSpot CrashesThis report will deal with the fact that you can dig out the files with errors created by the HotSpot crash handler, as well as how these files can help us with analyzing and reproducing the system crash. In addition, we will look at tools, such as the HotSpot Serviceability Agent, which allow you to look into the native kernel files and extract the necessary data from them, which would be difficult to obtain using a standard debugger.
Charles Nutter - Going Native: Foreign Functions on the JVMThere are many Java libraries that are familiar to most developers. Things will change with the arrival of Java Native Runtime and Project Panama. Still, apart from existing Java libraries, there is a whole world of native libraries: for graphics, cryptography, integration with the OS, and more. This report will look at interesting scenarios of care in the native with a comparison of possibilities and an overview of the tools for integration.
What else?
Some participants of our conferences complained that the reports about the performance and the JVM are of little use in real life. Therefore, we will have many reports devoted to applied problems.
Nikita Koval - Dynamic search for potential deadlocks in multithreaded Java applicationsDeadlocks are one of the most pressing problems in developing multi-threaded applications. As part of this report, the Dl-Check tool used to find potential deadlocks will be reviewed. In the course of developing such a tool, one cannot do without byte-code instrumentation, for the implementation of which the ASM framework is the de facto standard. In the first part of the report, the main algorithm of this tool will be presented, which allows you to effectively find potential deadlocks in the process of the application. The second part of the report will be devoted to bytecode instrumentation, as well as useful techniques and non-trivial problems associated with it.
Victor Gamov - Glitter and poverty of distributed streamsAre you one of those who are chasing performance by stuffing into any Collection.parallelStream () cycle? Wondering how to do without global alteration of the code and solve all the problems with the help of more servers? How to get distributed processing with a linear increase in performance? If such questions sound in your head, then this report is for you.
In it, Victor will tell about all the details of distributed processing, introduce the listeners to his friend - Oriented Acyclic Graph - and show how information processing is organized using the top of the Java 8 Stream API. Distributed! High performance! "In mind"!
Alexey Zinoviev - Kafka pours, and Spark rakes!In a typical real-time analysis of TK, there are often items that need to calculate on the fly some aggregated values ​​over a short period of time, filter the flow, reducing the load on the subsequent stages of the calculations. Quite often, we can see projects where teams organize their “little data lake” at Amazon, simply dumping all the coming events at Kafka. Will Spark handle the streams from Kafka? And if it does, at what cost, and what will help him in this? Do not wait for the report introduction to Spark, RDD, talk for Big Data. One case - one solution - a bit of theory - we rule configs - we write code.
Sven Ruppert - Practical Proxy Pattern Deep DiveWe all read a book about patterns and know about Proxy. But how to use it effectively? What kinds of Proxy are there and how can they build other patterns with their help? This report will cover DynamicProxy, Dynamic / Static-ObjectAdapter, DynamicStaticProxy in runtime and much more.
Evgeny Borisov, Spring - Deep and Not VeryWhen working with Spring, you probably encounter various problems, nuances and tasks that require non-standard solutions. This report will discuss spring-core with an overview of recent changes that Spring 4.3 made.
This report will help you understand even better how Spring works, how to use it better and more correctly. As usual, there will be guts, a dismemberment, questions to the audience, prizes and a lot of live coding.
Milen Dyankov - Microservices and Modularity or the difference between treatment and cure!The difference between microservices and modularity is almost as blurry as the difference between DI and IoC. In Milen's live-demo report, Developer Advocate from Liferay, specializing in Java and OSGi, will try to demonstrate this difference and, by drawing conclusions, show useful ways of designing applications.

Evgeny Borisov and Kirill Tolkachev - Curse Spring TestEach technology contains a specific set of pitfalls. Know about them and deftly bypass - the task of the developer owning technology. Spring is no exception. Let's try to understand the different approaches to testing on the example of Spring Boot applications, testing it step by step, using new features and collecting new rakes. Let's talk about unit testing, integration tests, the connection of Spring MVC with Spring Boot and, of course, the pain of using Spring 4+.
Tagir Valeev - Java inspections in IntelliJ IDEA: what can go wrong?IntelliJ IDEA constantly emphasizes your code, offering to replace it with something better. Sometimes the results just seem magical. How does the IDE do this? How does your code understand, how does it generate a new code to replace the old one and what are the pitfalls here?
We’ll see what a typical code inspection in IntelliJ IDEA consists of and how much gray hair appears to IDE developers in order for you to improve your code with one click.
Arun Gupta - Full-stack Reactive Java Application using DockerAs part of the talk, Arun, together with the listeners, will create a fully working Java EE / Spring application with RxJava for asynchrony, a Docker for containerization and scaling, Couchbase, JavaFX and deployments using Gluon.
Another report by Arun:
Package your Java Application using Docker and Kubernetes . It will show you how to launch and package Java applications into the docker, share them in the Docker Hub, deploy them using Maven and Kubernetes.
Ivan Ponomarev - Hidden complexity of everyday tasks: Displaying tabular dataA tabular control (grid) that displays data from a relational database is one of the most common components of the user interface, and everyone has experienced problems with its performance and convenience. The report will show that the seeming simplicity of the grid hides interesting and unresolved problems that require knowledge in different areas of mathematics. We will try to find a balance between speed and convenience, having simultaneously studied interpolation search, having understood what Collation Rules are and how we can “help” the database to quickly extract the data we need.
For sweets - puzzlers and holivars!
In the final part of the post I want to share the "dessert" reports: it is unlikely you will learn something new about the platform or get some ready-made solutions for implementation in production, but after them you will come out with a great mood and cheerful spirit:
Anton Keks - Kotlin PuzzlersKotlin is a nice alternative language for JVM, trying to improve the convenience of writing code compared to Java. Although it is no longer new, after the released version 1.0 in 2016, its usability began to grow dramatically. Anton will make a quick introduction and immediately go to the puzzle-short programs on Kotlin, which do not quite what it seems at first glance. Despite the fact that Kotlin was developed for 6 years and even specifically tried to avoid the most famous Java puzzle players, he still had his own tricks and nuances that are not found in the documentation.

Tagir Valeev, Baruch Sadogursky - Java Puzzlers NG S02: Everything is Wonderful and WonderfulMore, more puzzlers! The more experience the industry is gaining with Java 8, the more miraculous and miraculous it seems to us. It seems that all these streams, lambdas, monads, Optionals, and Completable Future's were used to confuse us! And Java 9, barely looming on the horizon, is already shining and shimmering with beautiful riddles and misunderstandings. This season, puzzlers have, as always, a wonderful set of oddities, funny (at least, leading) jokes
Alexey Savvateev - Collective ResponsibilityImagine that you are a police officer on duty in the turnstile hall. Free riders
try to jump through the turnstiles, you catch them. You are one, they are many. Is it possible for them to set such "rules of the game" so that they do not dare to try to jump, even if you know in advance that you will catch only one of them anyway? It turns out possible.
A report on mathematics and game-theoretical foundations that stand behind the invention of various ingenious control algorithms. In this report, you will not get an academic education, you will not learn how to write more efficient algorithms. However, you get an idea of ​​how rich the mathematical apparatus exists.
If you are interested in the topic of game theory, if you are interested in learning about research, for which you have already been awarded the Nobel Committee for Economics award several times, then welcome to the report.
Egor Bugaenko - Annotations in Java - this is a mistakeGame lovers - another challenge to the Java-community from Egor Bugaenko! As you know, annotations appeared in Java 5 and led to a serious simplification of many libraries, as well as the emergence of new ones. Everyone liked the idea of ​​reducing the size of the code through the use of annotations and the ability to abandon complex XML configuration files in Hibernate and Spring.
At the time, Egor was also a big fan of annotations. However, everything has changed, and today he is categorically against them and believes that annotations are a big mistake in the design of Java. Why? This will be the report.
Baruh Sadogursky - "Computer, how is my cluster is doing?" And other magic spellsAs you all know very well, engineers are lazy. Sometimes we can spend a month of sleepless nights so that later we don’t have to press a few buttons. Just for us (actually not), Amazon came up with an excellent service of Alexa voice commands, with which we can, leaning back in a chair with a glass of brandy / coffee / moonshine (underline the right thing), manage, and perhaps anything. In this report, I will show you an example of an application that adds a voice interface to completely unexpected things, like IntelliJ IDEA and Jenkins, and in a lot less than a month of nights, screw it up to whatever you want.
Uff, like I did not miss anything announced from today. In general, there will really be a lot of interesting things, and if you write in Java, we will be happy to see you at the JPoint.
It will be useful to remind that, apart from the reports at the conference, there will be
discussion zones : after each of the reports, the speaker and everyone who wants to ask him questions will be
towed to a special zone , where participants will have the opportunity to communicate with the speaker for another hour and a half - until the end of the next slots with reports.
In general, we once again did a good job. If you are interested to participate - learn
the conference site . There is a tentative schedule, and the details of the reports and links to materials of past years.
All Java, habrovchane!