Project Lambda: Functional Programming Constructs and Simpler Concurrency in Java SE 8
The big language features for Java SE 8 are lambda expressions (closures) and default methods (formerly called defender methods or virtual extension methods). Adding lambda expressions to the language opens up a host of new expressive opportunities for applications and libraries. You might assume that lambda expressions are simply a more syntactically compact form of inner classes, but, in fact, the implementation of lambda expressions is substantially different and builds on the invokedynamic feature added in Java SE 7.
This session will explain the ideas behind lambda expressions, how they will be used in Java SE 8 and look at some of the details of their implementation.
10 years of Groovy!
The Groovy language has celebrated its 10th anniversary! First dynamic language on the JVM, with more than 1.7 million downloads last year, it is still the most widely used alternative language on the JVM.
With a low learning curve, especially for Java developers, it has lots of advantages and a long innovation tradition. If the concepts of closures, functional programming, DSLs, lambdas, scripting or type checking sound familiar to your ears, then come hear what Groovy 2.2 has to offer and join an active and passionate community!
Everything you always wanted to know about Scala but were afraid to ask.
If you want to be able to optimize your use of the Scala programming language to solve real world problems without explosions, broken thumbs or bullet wounds then this is the session for you.
During the presentation there will be a lot of do's and don't's in order to guide you into how to become a better Scala developer. The target audience is intermediate to advanced Scala developers.
Following the rise of Clojure, many of us have become aware of the idea of immutable data structures and their benefits. In Clojure, all built-in data structures are immutable, and the same also applies to everything we build out of them. This has profound effects on how programs are constructed and transforms the way we can reason about them, test them, compose them, and deploy them into concurrent environments.
But what is the immutability story in Java? Is immutability just a Clojure or a functional thing, or does it apply to the type of OO programs we build with Java? If we do want to utilize immutable data in Java, how should we go about it? What built-in APIs can we use and what should we stay away from? What libraries are there to help us? How should we construct our programs - in the small and in the large?
This talk surveys the current state of immutable data in Java, comparing and contrasting it to Clojure
Tracking and Improving Software Quality with Sonar
Software quality is about a lot more than slinging good code. As a java developer you use numerous tools, techniques and frameworks as you write, organize, build, test, refactor, and continuously improve your applications. Sonar, a free and open source quality platform, makes it radically easier to track, manage, and enhance the overall quality of your code.
In this presentation I'm going to talk about Sonar's core ideas, and its star features that simplify the process of tracking and improving software quality.
JDK8: Stream style
JDK8 is bringing lambdas into the Java world. But without significant Java SE 8 libraries extensions lambdas would be only a toy. The centerpiece of the new libraries is the Streams API (formerly ‘Collections bulk operations’). This session presents the Streams API and examples how to get the best performance and scalability using the library.
"Quantum" Performance Effects
Nowadays, CPU microarchitecture is concealed from developers by
compilers, VMs, etc. Do Java developers need to know microarchitecture
details of modern processors? Or, does it like to learn quantum
mechanics for cooking? Are Java developers safe from leaking low-level
microarchitecture details into high level application performance
behaviour? We will try to answer these questions by analyzing several
Micro Service Architecture
Eduards will talk about micro service architecture - approach to designing software when complex app is broken into tiny, cohesive services which are apps themselves. Anatomy of micro services will be covered with practical implementation advices in Java.
The presentation focuses on two aspects of publishing JavaFX applications and libraries: learn how to deploy JavaFX applications in 4 scenarios and how to easily document JavaFX code for library users. The session covers JavaFX deployment in form of runnable Java archives, web start technology, regular applets, and native executables using either NetBeans IDE, ANT scripts or plain command line tools on all JavaFX platforms. The second part of the session shows how to document your JavaFX library code using the JavaFX javadoc doclet which provides a set of useful JavaFX-specific features to ease JavaFX code documentation.
High Performance Design
When economic news comes out, trading volumes spike and the LMAX Exchange needs to push out the latest prices to all of our clients as fast as possible.
This presentation is about how we solved this problem by using Test Driven Design. It will show, step by step, how we created a lock-free, high performance data structure by using knowledge of how modern processors are designed.
Java platform trade-offs(Rus)
As with any software, the Java Platform is existing and developing under tight restrictions. Therefore, Java platform developers constantly have to make difficult choices and make decisions. The talk is about Java Platform tradeoffs: why the choice is inevitable and that is a matter of choice.
Groovy DevOps in the Cloud
This talk focuses on a set of tools to automate the provisioning of virtual machines on Amazon EC2 using Groovy programming language and libraries.
We will explore how to leverage those to create an infrastructure for building, configuring and testing the provisioning of boxes in the cloud - elegant and groovy.
Managing highly concurrent data at Odnoklassniki(Rus)
Odnoklassniki use Voldemort based data storages to manage data having high concurrency and extreme availability access requirements. We cover why and how we migrated from our old, Berkeley DB based
storage solution, why Voldemort seems the best solution here (beating even Cassandra!) and why we replaced storage
engine of Voldemort again and again to meet our tight requirements.
Modernize Your Home or Garage with Java Embedded(Rus)
Modern technologies are everywhere in our life, but do you know how to use them? Have you ever tried to automate something in your house? Maybe you dream of creating a robot or another automated mechanism but the task seems too complex for you? Java ME Embedded is a new generation of the well-known Java ME platform that aims to bring a simple and unified way to develop applications for embedded systems. In this session, you will learn how it is easy to get information from different sensors and control a variety of peripheral devices with Java’s device access API library. The session includes a step-by-step guide that enables you to start automating your life with Java Embedded.
Exploration and Verification of Java Applications Using a Graph Database
Every change committed by a developer potentially affects the structure of the whole software system. One of the big challenges is to keep overview of these structures and to ensure that similar problems are solved using similar patterns. A common approach is the definition of conventions and constraints for system design and architecture. But how can a team verify that these rules are really applied? How can a developer efficiently gather information about existing structures?
The talk presents an approach based on bytecode analysis and storing the gathered information into a Neo4j graph database. It is demonstrated how software structures can be modeled as nodes and relationships and how queries can be used to gather valuable information about software systems and to enforce defined constraints.
Поисковая система Одноклассники.ру(Rus)
Каждый день 40 млн. человек заходят на Одноклассники для того, чтобы пообщаться с друзьями, поиграть в игры и поискать что-то интересное. При этом минимум четверть из них пользуется поиском, создавая 220 млн. поисковых запросов в день.
Поиск в Одноклассниках построен на базе модифицированной Apache Lucene и работает с дюжиной разных групп данных, каждая из которых имеет свои особенности. Чтобы эффективнее отвечать на запросы, поисковая система учитывает социальный граф.
Доклад будет интересен всем кто занимается разработкой нагруженных систем на Java. Представленный опыт позволит предугадывать и решать проблемы возникающие при их работе.