Java technologies - inevitable evolution
Java continues to evolve of its original "write once, run anywhere" philosophy by offering developers a powerful, scalable, and open platform for application development. With its collection of a general purpose virtual machine, productive language features, and a rich set of libraries, Java is continuing to improve the productivity of developers who create applications ranging from lightweight, headless devices all the way to high-end enterprise computing. This keynote talk will offer an integrated look into how the entire range of the Java portfolio is evolving to offer developers a high-performance, standards-based platform to meet the challenges of the next generation of enterprise computing
Multi-module project build with Gradle
Presentation gives introduction to main Gradle features as well as makes an example of building a multi-module multi-language (Java/Groovy/Scala) project to show simplicity and expressiveness of Gradle's build language.
How to get Java back
Nowadays Java is clearly the most popular programming language for building of complex enterprise systems. Unfortunately, quite quickly these systems tend to become huge, overly complicated and tremendously difficult to maintain while doing very little. This leads people to seek for alternate programming languages and technologies, but the problem is not so much in the language itself, but in the architecture and design that is frequently applied to Java-based systems. Should we try to fix our thinking first? I'll show a way to do it.
Scala - the functional / object oriented language
Scala is a language running on the JVM, mixing concepts well known from functional languages with what we Java developers know best. It's an interesting, an immensely powerful mixture where "boilerplate" just has no right to live anymore.
During this presentation we'll dive into the basics of the Scala language and library - but not just by itself, but backed with real use cases from an production scala-based system (which really has users!) where the language did really a lot more than "remove a bit of boilerplate". We'll take a look at how functional paradigms and patterns can help you better, cleaner code (by pushing DRY and SOLID to new limits) and how to build scalable, concurrent systems which remain easily testable even though they're multithreaded.
Vaadin Framework version 7 is the first new major version of the
popular rich web framework in over three years. The goal for Vaadin 7
is to give more freedom to use underlying technologies as well as
clean up the APIs. Vaadin 7 includes Google Web Toolkit (GWT) to
provide best of the Java based UI development - both of the server and
client-side. The presentation describes the design decisions and
explains the implications of including GWT, as well as show some of
the cool stuff in Vaadin 7.
Introduction to Kotlin
This session demonstrates the key features of Kotlin. Among others things, it covers
* Static null-safety
* Extension functions
* Higher-order functions and type-safe builders
* Smart casts: Kotlin's lightweight pattern matching
* Making Java APIs better with Kotlin
* Developing mixed Kotlin/Java projects
To find out more about Kotlin, please refer to http://kotlin.jetbrains.org
Кеширование вне Java Heap и работа с разделяемой памятью в Java
В докладе обсуждаются аспекты кеширования данных за пределами Java Heap. Рассмотрены способы доступа к памяти вне Java Heap и создания образов кеша на диске. Предложен собственный алгоритм кеширования для высоконагруженного сервера. Демонстрируются недокументированные возможности JDK для эффективной работы с буферами и с разделяемой памятью.
Методология оптимизации производительности
Хотите сделать ваше приложение быстрее, и для этого оптимизируете Java-код? Мы не будем рассказывать, как оптимизировать Java-программы. Мы не будем рассказывать, как использовать ваш любимый профайлер. В первой части мы расскажем, как делать «правильные вещи» (TM), а не тратить две недели на бесполезные приседания; эти вещи не всегда лежат в самом приложении. Во второй части мы рассмотрим то же самое, применительно к случаю многоядерных машин, разберём типичные казусы с производительностью программ, работающих на больших машинах; опишем их симптомы, а также обсудим типичные подходы к диагностике проблем и их классические решения.
Switching from the relational to the graph model
In the last 30 years the Relational DBMS dominated the way to design and manage the persistence of information. Few years ago the NoSQL movement brought alternative approaches to store data. This session will analyze the Graph model and how can be successfully used by people with a Relational skill.
JRuby - Programmer's Best Friend on JVM
Ruby is popular dynamic, open source programming language with a focus on simplicity and programmer's productivity. Ruby has many different implementations and one of the best implementations is JRuby on JVM platform.
This presentation will start with overview of most interesting Ruby programming language features and then will show JRuby and Java integration capabilities (as well as integration with other JVM languages). JRuby programs can reuse existing Java libraries and applications as well as JRuby can be used by other Java applications as embedded scripting language. Web applications can be created much faster with popular Ruby on Rails framework and then can be deployed on standard Java application servers. JRuby can be used also for testing other Java or web applications as well as for build and deployment automation tasks.
JRuby core team is working closely with JVM development team and latest JRuby release is utilising new JVM 7 improvements (like invokedynamics) to achieve even better performance.
Pragmatic Continuous Delivery
When you send a package through FedEx it goes through a tracked, automated process that makes sure that the package arrives promptly at the destination. The same should apply to every commit that you check into the trunk. Continuous delivery describes how this process can be made fully automated and transparent and we will show you how your commits can be “fedexed” to production on application servers like JBoss, Tomcat, Weblogic and others with the help from Jenkins and LiveRebel.
The main idea of continuous delivery is the deployment pipeline. Every commit that enters the pipeline should go through automated integration and testing and if successful, produce a release candidate. We will show how Jenkins can be used to orchestrate the process all the way to the staging environment.
Once we’re there, the most complicated phase begins. The release candidate needs to be deployed to production, without disrupting the users or introducing risks. LiveRebel makes production updates quick, automated, non-disruptive and reversible. It finishes the job and delivers the updated version right into the users hands.
I hate computers!
But when properly handled, they are not that bad and I can go cycling.
I would like to share theory and experiences which allowed me to accomplish that by properly taking care of the environments.
Literalily, what I did so that "production" was not scary, "deploys" didn't cause panic, why I don't have to care, whether my last project was more a 1000 or 1500 releases. And more. I would like to speak about the basics, mixing in examples from "real life" where applicable. Naming (open source) tools and pointing where manual gluing was necessary.
Gentle introduction to Apache TomEE - a Java EE 6 Web Profile'd Tomcat
It nearly impossible to imagine a Java EE landscape without Apache Tomcat - one of the many application servers supporting Java EE 6 web applications. It's neat and very lightweight platform for web applications of any kind. Some would warmly welcome the other features of a full-blown Java EE 6 application server - CDI, EJB, perhaps JMS. Rather than composing your application server yourself, give TomEE a try!
In this presentation you'll know what the Java EE Web Profile offers and how little it takes to learn TomEE when you're familiar with Tomcat.
Developing modular applications with Java EE 6 and Enterprise OSGi
Developing modular application is not an easy task. Java as an
object-oriented language helps a lot, yet it introduces its own
shortcomings - the well-known jar hell problem, no versioning or hot
redeployment support, and a lot of boilerplate code. We need a
framework. With OSGi Java modular development becomes manageable. For
many, it'd rather be Spring Framework or Guice. What about enterprise
development with transaction and security aspects? Could we combine
the features of OSGi, Spring Framework/Guice and Java EE? Sure! That's
This session starts with a brief overview of Enterprise OSGi and how
it converges with Java EE. It then walks through the development of a
simple OSGi Application up to the point where the final result is up
and running on WebSphere V8.5 Liberty Profile.
Brief set of slides and live coding should make the learning curve flattened.