📜 ⬆️ ⬇️

(Almost) all the reports of the Joker 2013 conference

Hello!

So, a little more than a week is left before the St. Petersburg Java-conference Joker 2013 . We only have space for three reports in the grid, the rest are ready. If you suddenly for some reason still do not know about our conference, then read about it in my previous article .

Under the cut - a brief announcement of each of the reports. I tried to squeeze each of the announcements to one paragraph, leaving only some dry squeeze, so that you read to the end and did not kill me, not very tired.
')


Gil Tene, Azul Systems - Understanding the Java Garbage Collection

Report on the work of the Garbage Collector: terminology, metrics, basic principles, key mechanisms, classification of existing algorithms and implementations of GC according to various criteria. We will also discuss the problem of “Application Memory Wall” and the details of the work of C4 - the garbage collector in Azul Zing.

Kirk Pepperdine - The (not so) dark art of Performance Tuning

Application performance optimization is still seen as some black magic. This is due to the lack of understanding among most programmers of the basic principles underlying the basic techniques of optimization. The report will provide several basic techniques that help a Java programmer speed up his program and generally write high-performance code.

Pawel Lipinski - Clean Tests: how to structure your tests

A report on how to write and refactor tests so that they are easy to read, maintain, and monitor their relevance.

Alexander Belotserkovsky, Microsoft - Windows Azure + Java = (Open) Integration

It’s about how you can use Oracle Database, how to deploy Hadoop, how to write an application and publish it using the Windows Azure plugin for Eclipse. It will show how to use these and other features of the Windows Azure cloud platform as applied to Java development.



Alexander Otenko, Oracle - What is the profiler silent on?

This presentation discusses the facts that the profilers do not reflect, and ways to catch the profiler in omissions. A review of several problems will demonstrate a set of facts that indicate the saturation of a single processor core, sources of memory leaks, the most “slow” synchronization points. Listeners will be able to re-evaluate the quality of their tools, discover reliable and useful parts of profiles.

Alexander Tobol, Classmates - Platform for Video for a quarter

A little more than a quarter, a very small team restarted a 24/7 video service on Odnoklassniki on a written platform from scratch, deployed on a fleet of over 200 servers distributed between several data exchange centers. We will talk about successes and failures in solving problems of ensuring uninterrupted loading, transformation, storage, video distribution and monitoring, as well as focus on the features associated with a load of 1000 views per second.

Alexey Shipilev, Oracle - What Heap Dumps are Silent About

A report on why Heap Dumps cannot be trusted. It will be shown how objects are located in HotSpot: how the headers of objects are laid out in memory, how the fields are displayed, how the links look, how alignment looks, etc. Nearly two dozen examples will be real-life, some of which are very curious.

Andrey Breslav, JetBrains - Compromises, or How programming languages ​​are designed

The report is devoted to compromises in the design of programming languages: why language developers do anyway. We will look at some typical examples concerning Kotlin, Java, Scala and C #, which will allow us to form some idea of ​​how languages ​​are designed.



Andrey Pangin, Classmates - Emergency Dump - Black Box of a Fallen JVM

The report will tell you what is encrypted in the crash dump, and how this information can be used to analyze the problem and find the cause of a JVM crash. There will be considered situations in which the JVM may break, and in the live demonstration mode, some examples of real crashes that occurred during the development of high-loaded applications will be analyzed.

Anton Arkhipov, ZeroTurnaround - Scripts in Java-applications

There are many scripting languages ​​on the JVM — Groovy, JRuby, JavaScript, etc. The ability to embed scripts in applications is surprisingly undervalued. There are two options for embedding scripts in Java applications: using the standard set of interfaces from the javax.script package, or using the API tools of an embedded script engine. They will consider the pros and cons of both approaches and answer the question of why embed Groovy, JRuby or JavaScript into their Java applications.

Anton Keks, Codeborne - How I created a Java desktop application, downloaded 9,000,000 times

It will be about the speaker's experience in creating the popular Angry IP Scanner network utility used by hundreds of thousands of people around the world. Let's see how relevant the original Java “write once, run anywhere” slogan is in the real world of end-user expectations. We will also try to destroy the myth that Java programming is only Enterprise and Android.

Baruh Sadogursky, JFrog - Groovy DSL for Plugins: Human Language Extensions

There are whole classes of programs whose functionality cannot and should not be limited by the imagination of their direct developers. A report on which architectural solutions are best suited for pluggable programs written in Java. After a short review of the Groovy DSL capabilities, we’ll see which parts of the DSL come in handy, answer the question of whether you need the ability to write plugins in Java, consider security aspects and, of course, discuss options for resolving dependencies.



Victor Polishchuk, Infopulse - JBoss Drools Expert against dirt

During the report, a simple business problem will be disassembled, which in spite of everything, is able to grow a lot of gray hair from a low-level programmer. Having twirled in hands and putting aside the imperative Java implementation, the audience will plunge into the beauty of declarative programming on Drools for half an hour, as well as covering unit tests of the newly written application.

Vladimir Ivanov, Oracle - Invokedynamic: Luxury or Necessity?

In Java 7, a new instruction appeared at the bytecode level - invokedynamic (indy). What caused the appearance of new instructions and what bonuses does indy use? The report will not be limited to comparing indy with other instructions of the invoke * family, but will provide an overview of the entire JSR292, of which indy is a part. The talk will be about method handles, the java.lang.invoke. * Package and new programming patterns that have become possible with the advent of the new API. Also, the details of JSR292 implementation in Java 7 and Java 8 from Oracle will be affected.

Vladimir Krasilshchik, Luxoft - Java-mapping for pragmatic programmers

It will be about the technological zoo of ways to “dump” on each other objects in Java. An overview of modern approaches and tools, both pragmatic and not so much, will be given. Transmorph, Dozer, Nomin, ModeMapper - these are just a few examples of libraries that offer their own original methodology for organizing the “code” code of some objects to others. Tips will be given on how to organize a well-structured mapping code that can be easily compared with the specification and tested, which is not afraid to read, refactor and maintain.

Gleb Smirnov - Mutation Testing, or What Is Code Coverage Silent About?

Mutation testing prompts you to randomly change the test code, and then run the tests again. And if these tests are really good, then they should fall. The report includes a more detailed overview of the mutational testing paradigm, describes having tools and talks about how people use these tools to succeed in real projects.



Evgeniy Borisov - Spring 4.0: A New Generation

The release of Java 8 opens up new opportunities for programmers. Will the new version of Spring match them? In the report, you will learn about how Spring works with Lambda expressions, with JSR-310 "Date and Time", with parameter name discovery and updated java.util.concurrent. In addition, it will discuss what advantages in Spring 4.0 gives the ability to set the configuration on Groovy.

Mikhail Khludnev, Grid Dynamics - In search of Tommy Hilfiger

To configure Apache Lucene / Solr and connect to search the catalog of products on the site, you need to solve, as the last minute, two problems. First, develop specific models of documents and query language. Second, implement these models using Lucene's basic search algorithms with a capacity sufficient for several million visitors on Black Friday. This report will help to cope with the second problem - will introduce the details of the implementation of search algorithms in Lucene. The report will be useful to those who are engaged in the search and want to know "what's inside."

Nikita Lipsky, Excelsior and Misha Bykov, Oracle - Entertaining stories from the life of technical support for JVM

In this session, the authors will talk about typical cases from JVM technical support and dilute them with funny stories to give you the opportunity to take a break from technical details and other reports. The following topics will be covered:




Nikita Salnikov-Tarnovsky, Plumbr - I bet there is a memory leak in your application?

A small standard Java web application that uses standard and common libraries and frameworks will be presented. The speaker will demonstrate how in such a tiny and cute application can hide 8 memory leaks in Permanent Generation / Metaspace. Problems with database drivers, database connection pools and threads, JNDI contexts, initialization of log libraries and something else will be shown.

Nikolai Alimenkov, XP Injection, Zoral Labs - OOP Paradigms, Basics of Sound Design and Java Applications Architecture

Java is quite an old language, and not all principles were implemented correctly in it, and the abundance of frameworks confuses developers even more. The report will discuss the basics of OOP and the modern view of them, the benefits and harms of inheritance, the applicability of the interfaces and the opportunities that they open up for an ever-growing project. A normal cycle of code appearance will be considered when working on TDD, ways to postpone architectural and design solutions until the right moment, architectural patterns and designs developed over the years, principles of good code design. The report will be useful to those who seek to create high-quality, understandable and easy-to-support solutions for Java.

Nikolay Chashnikov, JetBrains - Developing an API in a Java project: how to influence people and not acquire enemies

The more code in a product, the more people work on it, the longer it exists, the more important is the quality of the API, through which different parts of the product interact with each other. How to develop a convenient API? How to change the API painlessly? How to protect others from the misuse of the created API? How (and why) can I develop my own micro-language (DSL) in Java? In the report, the author will share the experience of developing APIs for various subsystems of the IntelliJ IDEA platform, which were then used in dozens of plug-ins to the IDE.

Pavel Pavlov, Excelsior - Scala for Professionals

Each language for JVM is good for some class of tasks, but how to understand what and for what task to use? Are the investments in the study of another tool and the acquisition of dependence on it justified? Wouldn't it be more correct to remain faithful to old-kind Java and ignore all sorts of newfangled things? The author will talk about why Scala is the tool that presents a real practical alternative to both other alternative languages ​​for the JVM and Java itself.



Roman Antipin, Odnoklassniki - Voldemort Frankensteinization or key-value data in Odnoklassniki

The report will highlight Java storage technologies that serve tens of millions of users and run on hundreds of servers. Using the example of the Odnoklassniki social network, we will look at the evolution of data warehouses with a high level of competitive access and in compliance with the requirement of continuous availability. The strengths and weaknesses of each of the solutions will be analyzed, ranging from master-slave replication technology based on Berkeley DB and ending with the symbiosis of Voldemort and Cassandra distributed repositories.

Roman Elizarov, Devexperts - Facts and Misconceptions about Java Serialization

Java serialization was developed back in the days when the fate of the development of distributed systems was vague. Many technologies of “distributed objects” developed at that time did not live up to our days, and some echoes of these dead ideas can still be dug up in the design of Java serialization. Despite a number of drawbacks, serialization in Java has several undeniable advantages over many alternative ways of implementation. The report will discuss the most popular misconceptions about Java serialization, and lay out the real facts about its advantages and disadvantages that you will not hear from the authors of alternative serialization libraries.

Sergey Kuksenko, Oracle - JDK8: Stream style

JDK8 is coming. And JDK8 is, first of all, JSR335 aka “Project Lambda”. But Project Lambda is not only lambda, but also default / static methods in interfaces. Project Lambda is a new API and, in particular, the Stream API, which will be discussed in the report.

Shura Ilyin, Oracle - Project Jigsaw. Take 2

The project of modularization of the Java platform and the introduction of modules as a new element of the language, which was originally planned for JDK 8, was moved to JDK 9 and is undergoing detailed analysis and redesign right now. What are the requirements for the project? Will a special language be needed to define dependencies? Will the new implementation be an independent distributed system? What will it look like and how does it differ from existing systems? We will receive answers to these questions very soon. The report will focus on the requirements, design and new implementation of Project Jigsaw.



Jacob Zhdanov, GridGain Systems - In-Memory Mongo Accelerator

It will be about the performance problems of Mongo DB and how the new product GridGain In-Memory Mongo DB Accelerator helps to solve many of them without a single change in the code of client applications. It will be told about the features of the In-Memory approach, its advantages and disadvantages. The report will be of interest to anyone interested in In-Memory technologies and distributed computing.



Conclusion


Unpublished left 3 report. Applicants:


Full announcements are available on the conference website . Tickets are still on sale.
The ticket price is 4,000 rubles for individuals and 5,000 rubles for organizations.

Source: https://habr.com/ru/post/196196/


All Articles