Jfokus 2012

Native clients for iPad and Android is available on market. Enjoy downloaded talk for off line viewing experience with presentation and speaker synced.

Android app on Google Play Available on the iPad App Store
Keynote: Cool Code

Keynote: Cool Code

Kevlin Henney, Curbralan

In most disciplines built on skill and knowledge, from art to architecture, from creative writing to structural engineering, there is a strong emphasis on studying existing work. Exemplary pieces from past and present are examined and discussed in order to provoke thinking and learn techniques for the present and the future.

Functional Thinking

Functional Thinking

Neal Ford, ThoughtWorks, Inc

Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard. This session helps you transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. This session takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages.

Scala in Action

Scala in Action

Heiko Seeberger, Typesafe

You don't yet speak Scala? Then let us invite you to a journey on which we will explore the outstanding features of this programming language for the Java Virtual Machine. As an intoduction we will breifly talk about Scala's key characteristics. Then we will explore this language and some of its typical applications by means of vivid examples and live coding.

HTML5 with Play Scala, CoffeeScript and Jade

HTML5 with Play Scala, CoffeeScript and Jade

Matt Raible, Raible Designs

This session shows you how to use some of the hottest technologies today to build a webapp, an API and a mobile application to track fitness workouts. Using HTML5 technologies (specifically geo and local storage), I'll show you how you can track the time, distance and music you listened to while exercising.

What to Expect from HotRockit

What to Expect from HotRockit

Marcus Hirt, Oracle

Oracle is converging the HotSpot and Oracle JRockit JVMs to produce a "best-of-breed JVM." Internally, the project is sometimes referred to as the HotRockit project. This presentation discusses what to expect from the converged JVM over the next two years and how this will benefit the Java community.

Presentation: 7 Things: How to make good teams great

Presentation: 7 Things: How to make good teams great

Sven Peters, Atlassian

Developing a product over years is a tough job. It is hard for the team to stay excited on a day to day basis. So how can you improve motivation and innovation of agile teams and still keep the focus on building a great product? I want to share with you how we at Atlassian used an agile approach to become one of the most successful developer tool companies in the world.

JSR107: The new Java Caching Standard

JSR107: The new Java Caching Standard

Greg Luck, Terracotta

In this session Greg Luck, founder of Ehcache and spec lead for JSR107 will walk you through this important new caching standard, which will form part of Java EE 7. You will learn how to: ? Abstract your caching implementation, much as with JDBC ? Use the rich and modern API ? Use the new caching annotations ? Use the API before Java EE 7 is released within the Java SE, Java EE 6, and Spring environments ? Plug in Ehcache as the caching provider and configure it for standalone and distributed contexts

Developing Mobile Web Apps with PhoneGap

Developing Mobile Web Apps with PhoneGap

Pamela Fox

If you decide today that you want to create a mobile application, you have to decide on a development strategy - especially if you want to target multiple platforms. You can either learn to program from scratch for each platform or you can use a framework that abstracts on top of all of the platforms - like Apache PhoneGap

Lambdas in Java 8

Lambdas in Java 8

Angelika Langer

Java 8 will introduce elements of functional programming in to the Java programming language - the so-called "lambda expressions". The language extension will include SAM (Single Abstract Method) type conversion, lambda expressions, exception transparency, extension methods and local variable capture. This tutorial will explain the new language features.

We visualized, we saw, we changed

We visualized, we saw, we changed

Leonard Axelsson, Mojang

Realtime monitoring provides everyone on a team, as well as interested stakeholders, with a shared understanding of how a system performs. Visualize it and you get direct feedback form the heart of your system. In this session we want to share our experiences with introducing monitoring and how the feedback it provided influenced both system design and team collaboration.

Maven vs Gradle, On your marks, get set, go!

Maven vs Gradle, On your marks, get set, go!

Hardy Ferentschik, Red Hat

Ant, Maven, Gradle, Buildr - the choice of built systems for Java based systems is manifold and only discussions about coding styles are getting more heated than discussion on which built system is superior. In this talk we are looking at two built system - the well established veteran Maven against the Groovy based newcomer Gradle.

The road to REST

The road to REST

Rickard Öberg, Neo Technology

Building REST API's for distributed applications is becoming more and more popular. But, there is one thing that most developers miss, which is the HATEOAS requirement, i.e. linking. This session will explain how exposing use-cases brings a natural solution to this problem, and how this will simplify both API development, documentation, as well as client development.

Application Security for Rich Internet Applications

Application Security for Rich Internet Applications

John Wilander, Handelsbanken

In this session, you'll learn about the top security risks in web applications, and, with demos, how REST backends and rich JavaScript applications map to these risks. Current and upcoming countermeasures include new HTTP headers, double submit cookies, and escaping input client-side to avoid DOM-based XSS

Zero Downtime Continuous Deployment of Java Web Applications

Zero Downtime Continuous Deployment of Java Web Applications

Fabiane Bizinella Nardon, RBS

This presentation will show how to create a continuous deployment process with zero downtime for Java web applications. Using tools like Hudson/Jenkins, REST services and open source application servers, you'll learn through real world examples how to create a secure and error free continuous deployment process for your application. We will also show how to deploy to cloud based servers, like Amazon AWS, what are pitfalls and limitations for these cloud offers and how you can overcome them

Client-side Storage: When & How

Client-side Storage: When & How

Pamela Fox

With the increasing availability of HTML5 client-side storage APIs like localStorage and IndexedDB, web developers can choose to store application information locally. But what should you be storing, how long should you store it for, and what technology should you use? In this talk, I'll review the current storage APIs and libraries and give real world examples of how to use them across websites, mobile apps, and browser extensions both to improve performance and add functionality

Vad Clojure lärt mig om objektorientering

Vad Clojure lärt mig om objektorientering

Ville Svärd, Agical AB

Trots att Clojure är ett i grunden funktionellt språk innehåller det många aspekter av objektorientering. Genom att studera Clojure får man upp ögonen för nyanser av objektorienterad design som man inte stöter på i rena Java-sammanhang. Jag vill ge några tankeväckande exempel på områden där jag tycker att Clojure uppmuntrar objektorientering på ett enklare sätt än Java.

It Is Possible to Do Object-Oriented Programming in Java

It Is Possible to Do Object-Oriented Programming in Java

Kevlin Henney, Curbralan

OO means different things to different people, but they normally focus on defining terms such as encapsulation, polymorphism and inheritance, and talk about data abstraction, abstract data types and so on. In this talk we take a brief look at what one particular theory of OO suggests and what it means for regular Java programmers and their practice.

SQL, NoSQL, NewSQL? What's a developer to do?

SQL, NoSQL, NewSQL? What's a developer to do?

Chris Richardson, VMware

In this presentation you will learn about popular NoSQL databases - MongoDB, and Cassandra - as well at VoltDB. We will compare and contrast each database's data model and Java API using NoSQL and NewSQL versions of a use case from the book POJOs in Action. We will learn about the benefits and drawbacks of using NoSQL and NewSQL databases.

EStop sleeping, start awaiting!

Stop sleeping, start awaiting!

Johan Haleby, Jayway

Testing asynchronous systems is hard. Not only does it require handling threads, timeouts and concurrency issues, but the intent of the test code can be obscured by all these details. Awaitility is a small Java based DSL that allows you to express expectations of an asynchronous system in a concise and easy to read manner. Come and see how easily fragile time consuming tests can be transformed into its more robust and elegant counterpart.

Tuning the HotSpot JVM's Garbage Collectors

Tuning the HotSpot JVM's Garbage Collectors

Angelika Langer, Angelika Langer Training/Consulting

The number of choices a Java developer has for configuring the JVM:s garbage collection for his application is overwhelming. Hence, garbage collector tuning for the SUN/Oracle JVM is a daunting task. The talk aims to shed light onto the garbage collection strategies in the Sun/Oracle JVM by explaining all algorithms (including Java 7:s Garbage-First collector) and discussing strategies for tuning and configuration of the various collectors.

Enterprise Java in 2012 and Beyond

Enterprise Java in 2012 and Beyond

Juergen Hoeller, SpringSource, a division of VMware

The Java space is facing several disruptive middleware trends. Key factors are the recent Java EE 6 and Java SE 7 platform releases, but also modern web clients, non-relational datastores and in particular cloud computing, all of which have a strong influence on the next generation of Java application frameworks. This keynote presents selected trends and explores their relevance for enterprise application development, taking the most recent Java SE and Java EE developments into account as well. In addition, the Spring Framework will serve as a reference example for an application framework on top of modern deployment platforms. Topics include flexible deployment, web endpoints, caching abstractions, access to alternative datastores, and patterns for concurrent programming.

jHome: Having Fun with Home Automation and Java

jHome: Having Fun with Home Automation and Java

Vinicius Senger, Globalcode

jHome is complete Java EE 6 API for home automation. With jHome you can control wall jackets, lamps, RGB LEDs, gates and much more. The reference implementation application is using EJB's, REST, WebService, JMS, JSF and jQuery to show how you can use Java EE 6 in a totally different application context. The proposed hardware is open-source, so you do it your self. During the talk we will be showing nice and funny demos: - Controlling lamps; - Color RGB led stripe; - Controlling via Twitter; - Feed a web page with a temperature sensors. We also will be showing the software architecture and some pieces of interesting code.

Java 7 - State of the Enterprise

Java 7 - State of the Enterprise

Markus Eisele, msg systems ag

With Java 7 being GA you can start thinking about putting it to work in the Enterprise. But what are the challenges? How does the adoption path look like? What are the reasons you should do it and when? This session looks at the details about putting Java 7 into production. Tells you about things to keep in mind and gives a brief overview about how Enterprises would put it into production.

Play Framework 2.0

Play Framework 2.0

Peter Hilton, Lunatech Research

The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 will be released in early 2012 with innovations that are not just new in the Java world: type safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala.

Comparing JVM Web Frameworks

Comparing JVM Web Frameworks

Matt Raible, Raible Designs

One question developers often ask is "What web framework should I use to build my application?" High-traffic sites (e.g. eBay, LinkedIn, Twitter, Overstock) have proven that the JVM is a great platform for web scaling. This session takes a look at the top web frameworks for the JVM and discusses various methodologies for choosing one. It describes two different techniques (a matrix and performance testing) and pros and cons of the top frameworks from each.

Up and out: Scaling software with Actors

Up and out: Scaling software with Actors

Viktor Klang, Typesafe

We believe that one should never have to choose between productivity and scalability, which has been the case with traditional approaches to concurrency and distribution. The cause of that has been the wrong tools and the wrong layer of abstraction and Akka is here to change that. Akka is using the Actors together with Software Transactional Memory (STM) to create a unified runtime and programming model for scaling both UP (utilizing multi-core processors) and OUT (utilizing the grid/cloud). With Akka 2.0 this will be taken to a whole new level, and in this presentation we will talk about "Distributed by Design", how it scales from small projects to huge projects, and how we've projected what we've learned during the 1.x series into the 2.x series.

An Intro to Hadoop

An Intro to Hadoop

Eva Andreasson, Cloudera, Inc

Enterprises today collect and generate more data than ever before. Relational and data warehouse products excel at OLAP and OLTP workloads over structured data. The open-source project administered by the Apache Software Foundation known as Hadoop, is designed to solve a different problem: the fast, reliable analysis of both unstructured and complex data. As a result, many enterprises deploy Hadoop alongside their legacy IT systems, which allows them to combine old data and new data sets in powerful new ways. Technically, Hadoop consists of two key services: reliable data storage using the Hadoop Distributed File System (HDFS) and high-performance parallel data processing using a technique called MapReduce. This technology opens the door to new enterprise solutions, as you no longer have to predict how you want to search or query your data in future use cases! This technology is playing a key role in the new trend of Big Data that is taking off in a rapid speed within huge enterprises. Come see this talk to get an intro to Hadoop, what it is, and what it can do for you - and how you can get involved to influence the future!

Regex Applied - When Regex is a Winner

Regex Applied - When Regex is a Winner

Staffan Nöteberg, Rekursiv AB

Everyone knows that Regex (Regular Expressions) can make fascinating tricks. Some people know and other people suspect that regex can do valuable things ? sometimes. Some problems are more suited for regex solutions than others. What are the common traits of those problems? How should we think in order to solve them? What alternative solutions are there? Staffan categorizes and exemplifies when you should and should not use regex. He'll also show how to do refactorings using regex, from the Search/Replace dialog in text editors like Eclipse and Emacs.

Tesla - the Maven successor

Tesla - the Maven successor

Anders Hammar, Devoteam

Tesla is a new build framework by the original founder of Apache Maven, Jason van Zyl. In simple terms it can be described as a superset of the Maven tool and is designed to kickstart the development of software projects. It's fully compliant with Maven builds but has many new features which will help you in areas where Maven comes up short. This talk will cover the basics of Tesla, describe the new features compared to Maven, and also show how Tesla will work in your existing Maven-based development infrastructure.

Android: A Security Analysis

Android: A Security Analysis

Hadi Nahari, NVIDIA

This session provides a security analysis of Android stack (a.k.a Android OS) from software, application development, programming constructs, all the way down to hardware-specific features of Android devices (mobile phones, tablets, and other consumer electronics devices.) Specific attention will be paid to Android applications and use cases where security is not a "nice to have"; rather, it's a "must-have" (such as payment, identity binding, and generic authentication.)

A JVM Does What?

A JVM Does What?

Cliff Click, Azul Systems

Just what the heck is a JVM *supposed* to do? JVMs already provide a host of services. The 'J' part definitely slants the service selection and the 'V' part means that underneath the illusion there's a lot of really cruddy stuff. The success of these illusions has led to the real popularity of JVMs. In particular, JVMs are probably the most popular way to distribute ready-to-use GC technology to the masses, and the 2nd most popular way to distribute ready-to-use compilation technology (just behind "gcc" I'm guessing).

The Curious Clojureist

The Curious Clojureist

Neal Ford, ThoughtWorks, Inc

-Why should you learn Clojure now? It's the coolest new language on the JVM -What makes it so cool? It's a dynamically typed, functional Lisp that offers sophisticated capabilities like software transactional memory -Why should I learn it? Lisp is the most powerful style of programming language possible (don't believe me? Come see - I'll show you), so you get the best language (Lisp) on the best runtime (JVM) -Isn't Lisp the one with all the parenthesis? Yes. -What's so compelling about Clojure? It's fast, expressive, powerful, and allows you to do all sorts of things that other languages won't let you do. It's an elegant language. -Why is the entire talk done as question and answer? It's an homage to a series of books, The Little Lisper and The Little Schemer. Because Lisp's are simple and homoiconic, this style works nicely for them. Besides, it's better than 1000 bullets, isn't it?

JDK 7 Updates & JDK 8

JDK 7 Updates & JDK 8

Dalibor Topic, Oracle

We'll first take a quick look at how the JDK 7 Updates Project in OpenJDK works, how to track changes, and follow along as e.g. the Mac OS X Port gets integrated into future JDK 7 update releases. Then we'll switch gears, take a deep breath, and dive into some of the planned features of the next Java SE Platform, JDK 8 - modularity, lambdas, and more!

Patterns of Agile Enterprise Architecture

Patterns of Agile Enterprise Architecture

Rebecca Parsons, ThoughtWorks

There is widespread acceptance that software development using Agile methods works well. However, there are still areas of software development organisations that view their roles or mandates as incompatible with Agile methods. This talk addresses the legitimate role of an Enterprise Architect and provides concrete recommendations on how Architects can work with Agile development teams to accomplish their objectives. Topics will include concerns about data architecture, addressing the "ilities", and why evolutionary architecture works.

Agile Architecture - Design For Replaceability.

Agile Architecture - Design For Replaceability.

Marcus Ahnve, Valtech

The most important question to be asked when developing a new software system is "How will we replace it?" It is however a question seldom asked. Instead organization focus on reusability, which unfortunately helps create rigid and inflexible architectures. The talk shows how to design systems made up of small parts, why you should standardize on protocol and not platform and how you will end with a system that is easier to scale and maintain.

Unleash Your Domain

Unleash Your Domain

Greg Young

Our application runs over 10,000 sustained transactions per second with a rich model. The key? Modeling state transitions explicitly. In today's world many systems have non?functional requirements that prevent them from being single database centric. This presentation looks at how Domain Driven Design can fit into such environments including extremely large scale web sites, batch processing, and even using highly scalable backing stores such as CouchDb or HyperTable. Event streams, a different way of storing the current state of an object, open many doors in this session not only in how we scale and store our domain but also in how we rationalize about it