15 Feb 2012
Time
Room A1
Room A2
Room A4
Room C1
Room C3
08.00
Exhibition opens
9.00-
9.50
9.50
Coffee
10.10-
11.00
11.10-
12.00
12.00
Lunch and exhibition
13.00-
13.50
14.00-
14.50
o
f
f
e
15.35-
15.50
16.00
CLOSING KEYNOTE
Cool Code
Kevlin Henney, Curbralan
17.30
Thanks for this year, we meet again 2013
What to Expect from HotRockit
Marcus Hirt, OracleOracle 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.
Developing portable PaaS applications
Andrew Phillips, jcloudsIn demonstrating how the Java cloud library jclouds makes it easy to work with cloud services in a simple, portable way, we've written a bunch of applications that run on many of today's Platform as a Service offerings, including Google App Engine, CouldBees RUN@cloud, Amazon Elastic Beanstalk, OpenShift, Cloud Foundry and Heroku. In this session, we'd like to share our experience in developing and, just as importantly, managing portable Java PaaS applications. We'll set the context by identifying some pointers to help you decide whether a public or private PaaS makes sense for your application, or whether an IaaS solution in a public or private cloud might be more appropriate. We'll then compare PaaS APIs, provided resources and replacements, and discuss ways of separating your core portable business logic from your "PaaS binding". Finally, we'll look at "live-from-IDE" development, continuous integration and deployment options and touch on monitoring and application management in a multi-PaaS setup.
It Is Possible to Do Object-Oriented Programming in Java
Kevlin Henney, CurbralanOO 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.
Java EE 7: Developing for the Cloud
Arun Gupta, OracleThis talk introduces the Java EE 7 platform, the latest revision of the Java platform for the enterprise. The focus of Java EE 7 is on the cloud, and specifically it aims to bring Platform-as-a-Service providers and application developers together so that portable applications can be deployed on any cloud infrastructure and reap all its benefits in terms of scalability, elasticity, multitenancy, etc. Furthermore, Java EE 7 continues the ease of development push that characterized prior releases by bringing further simplification to enterprise development. It also adds new, important APIs such as the REST client API in JAX-RS 2.0, vast improvements to Java Message Service 2.0, and plenty of improvements to all other components.
Zero Downtime Continuous Deployment of Java Web Applications
Fabiane Bizinella Nardon, RBSContinuous Deployment allows to deploy code in production as soon as it has passed the quality assurance tests. This technique can dramatically reduce the release cycles, giving the company the speed expected in today's world, specially for internet based services. With the right tooling and techniques, a company can create an error free and secure process to automatically deploy its applications in production. Continuous deployment, however, is only viable if you can guarantee zero downtime for your application during the deployment process. With dynamic languages like PHP and Ruby, this is straightforward. Just copy the new files to the deployment folder and voilà! With Java web applications, however, things are not so simple. Although many application servers offer autodeploy features, you'll still have a few seconds of downtime while the server is deploying the application. 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.
Lambdas in Java 8
Angelika Langer, Angelika Langer Training/ConsultingJava 8 will introdude elements of functional programming in to the Java programming language - the so-called "lambda expressions" (formerly known as "closures"). The language extension will include SAM (Single Abstract Method) type conversion, lambda expressions, exception transparency, extension methods, method references und local variable capture. The tutorial will explain the new language features along with their purpose.
Developing Mobile Web Apps with PhoneGap
Pamela FoxIf 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. If you decide to use PhoneGap, you still have decide whether to use a library specially designed for mobile applications - like Sencha or jQuery mobile - or whether to use general libraries like Zepto or jQuery. There are a lot of decisions to make, and there's no one best strategy at this point in the game. In this talk, I'll explain my development strategy, why I chose it, and what I've learnt along the way - so that your own decision process is easier.
PaaSing a Java EE Application
Arun Gupta, OracleA PaaS offering typically facilitates application deployment without the cost and complexity of managing infrastructure, by providing all of the facilities required to build and deliver services. Current Java EE deployment requires the deployer to provision the various dependent services of an application in that container. To support PaaS deployment scenarios, GlassFish is working to provide a simplified application provisioning and deployment interface to users, with the runtime handling the discovery of service dependencies, provisioning services, and associating service references with these services. Some of the metrics (such as CPU, memory, and response times) can be used to monitor system health. These metrics can then be used to determine if the cluster of virtual machines hosting the Java EE container needs to be dynamically expanded or shrunk to accommodate fluctuations in demand. This session details how Java EE containers such as GlassFish can provide such service orchestration and elasticity capabilities.
This session will take an existing Java EE 6 application and walk through the complete life cycle of taking this application from desktop to a PaaS environment. The session will explain the development, testing, and debugging of such an application in the PaaS envinronment.
"git push" Java & Play! Apps to the Cloud
James Ward, HerokuHeroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java & Play! apps on the cloud. Deployment is as simple as doing a "git push". This session will teach you how to deploy and scale Java & Play! apps on Heroku.
One-liners are your friend: Increasing Productivity with Scala
Thomas Alexandre, DevCode ConsultingWe believe the success of communication through SMSs, Tweets and Facebook Status messages lies in its conciseness (i.e. 140 characters). Similarly, short and expressive code not only reduces maintenance needs but also increases readibility and ultimately affect the productivity of a programmer. This session is about pragmatic examples of such "one-liners" commonly found in enterprise applications development. In particular, we will exhibit the invocation and transformation of REST services with frameworks like Unfiltered and Akka Futures and show how the REPL(Read Eval Print Loop) command tool can save you a lot of time by programming interactively with one-liners.
Developing Enterprise-Scale Java Applications on Windows Azure
Brian Prince, MicrosoftThe Windows Azure Platform is an open and interoperable platform which supports development using many programming languages and tools In this session you will see how to build large-scale applications for the cloud using Java, Eclipse Tools, Apache Tomcat, and the Windows Azure SDK for Java. You will also learn how to leverage the latest Windows Azure Platform as a Service features.
So whats so cool about Android 4.x
Lars Vogel, vogella.deAndroid 4.0 finally merges the source tree for Handsets and Tablets. In this session we will look at the ActionBar, Fragment support and Drag and Drop and look why these concepts are useful for Android developers.
If time permits we also have a look a the new APIs as for example Calendar and the social API and ViewPager.
Tackling Android fragmentation
Glenn Bech, Inmeta Consulting ASThe number of Android powered devices are sky rocketing. To reach larger audiences, developers want to create applications that are compatible with as many devices as possible. This results in having to cope with different android versions, screen sizes, aspect ratios and pixels densities. The possibilities have become even greater with the introduction of Android 4, Ice cream sandwich. Since Google's latest version of Android is backwards compatible with Honeycomb, developers can potentially adapt their tablet applications to work on the latest phones and reach a larger, and growing user base. An important goal for Android 3 was to make it easier for developers to write applications that can scale across a variety of screen sizes, beyond the facilities already available in the 2.x platform.
The presentation will cover how to use fragments to achieve a high level of code reuse in the UI layer. The presentation will also cover how to use the Android compatibility package to build applications that can be installed, from a single APK, to a wide range of devices including both phones and tablets. A migration path from applications written for phones to tablets, using this package, will also be outlined.
Regex Applied - When Regex is a Winner
Staffan Nöteberg, Rekursiv ABEveryone 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.
Building iOS applications in Java
Johannes Häyry, Vaadin LtdVaadin gives a server-centric programming model for building rich web applications in any JVM compatible language. The presentation shows how this development model can be extended to mobile touch devices, how server-side tooling and languages can be used to build rich applications for mobile and what are the limitations of Vaadin in respect to mobile application development. During the presentation, the programming model is introduced by developing a native looking iPhone and iPad applications for managing enterprise wide address book. This is done step by step to teach you how to use the technology to build iPhone and iPad user interfaces for your existing enterprise applications really fast. In the example, Vaadin TouchKit components are used to make the application look and feel like a native iOS application. The same programming concepts can be used to develop applications for Android, Windows Mobile, Symbian and other mobile platforms with modern web browser and if the native look is not required, they can be programmed with just the core Vaadin Framework. As a conclusion the pros and cons of the programming model of Vaadin are compared to developing mobile web applications using JavaScript with jQuery Mobile and developing native applications using the iOS and Android platform SDKs.
Retrospective from the year of DevOps
Daniel Fröding, Diabol ABThe way we are developing systems is undergoing a radical change. Starting with the agile movement a few years ago, we are now in a position where organizational walls are falling like domino bricks and people think in new ways to such extent that a paradigm shift is the only suitable description. How can it be possible to have more fun, experiment more, do less boring tasks, while at the same time make business people feel free, happy and innovative - in short - create a more successful company. This talk addresses some of what this is all about and hopefully sends the audience a bit on the way to a full paradigm shift.
The Art of (Java) Benchmarking
Cliff Click, Azul SystemsPeople write toy Java benchmarks all the time. Nearly always they "get it wrong" -- wrong in the sense that the code they write doesn't measure what they think it does. Oh, it measures something all right -- just not what they want. This session presents some common benchmarking pitfalls, demonstrating pieces of real, bad (and usually really bad) benchmarks such as the following: SpecJVM98 209_db isn't a DB test; it's a bad string-sort test and indirectly a measure of the size of your TLBs and caches. SpecJAppServer2004 is a test of your DB and network speed, not your JVM. SpecJBB2000 isn't a middleware test; it's a perfect young-gen-only garbage collection test. The session goes through some of the steps any programmer would go through to make a canned program run fast -- that is, it shows you how benchmarks get "spammed." The session is for any programmer who has tried to benchmark anything. It provides specific advice on how to benchmark, stumbling blocks to look out for, and real-world examples of how well-known benchmarks fail to actually measure what they intended to measure.
7 Things: How to make good teams great
Sven Peters, AtlassianDeveloping 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. This talk will cover topics like FedEx days, 20-percent time, keeping distraction away from developers, lunchtime talks, dogfooding and much more.
SQL, NoSQL, NewSQL? What's a developer to do?
Chris RichardsonThe database world is undergoing a major upheaval. NoSQL databases such as MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offering significantly better scalability and performance. But these databases have a very different and unfamiliar data model and APIs as well as a limited transaction model. Moreover, the relational world is fighting back with so-called NewSQL databases such as VoltDB, which by using a radically different architecture offers high scalability and performance as well as the familiar relational model and ACID transactions. Sounds great but unlike the traditional relational database you can't use JDBC and must partition your data.
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.
Android: A Security Analysis
Hadi Nahari, NVIDIAThis 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.)
An introduction to NFC, smartphones and you
Lars Westergren, MejslaThe number of new mobile devices launched with NFC capabilities are set to explode in 2012. But what does it mean to you as a consumer, a citizen or a developer? The presentation will have an introduction to Near Field Communication technologies and some typical use cases. It will show how to get started developing NFC applications with Android. It will also show how to deploy a Java Card cardlet to a smartphone Secure Element using the Global Platform standard and a USB card reader or an online Trusted Service Manager.
Tesla - the Maven successor
Anders Hammar, DevoteamTesla 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.
We visualized, we saw, we changed
Leonard Axelsson, MojangRealtime monitoring provides everyone on a team, as well as interested stakeholders, with a shared and deepened 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. We will use Graphite, a monitoring tool that makes data gathering no harder than printing "Hello world" and realtime visualization even easier. We will show how a monitoring tool like this; simple, instantly available and used continuously; was instrumental in implementing change in behaviour and collaboration.
JSR107: The new Java Caching Standard
Greg Luck, TerracottaIn 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
Cool Code
Kevlin Henney, CurbralanIn 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. Although programming is a discipline with a very large canon of existing work to draw from, the only code most programmers read is the code they maintain. They rarely look outside the code directly affecting their work. This talk examines some examples of code that are interesting because of historical significance, profound concepts, impressive technique, exemplary style or just sheer geekiness.
Lightning intro to CloudFoundry
Josh Long, SpringSource, a division of VMwareLet's face it, the cloud's here to stay. CloudFoundry represents a promising open cloud platform for Java and Spring applications today, and tomorrow. In this lightning talk, Josh Long will introduce CloudFoundry, it's architecture, and how it can be used with existing Spring applications and new ones, leveraging Spring 3.
Functional Thinking
Neal Ford, ThoughtWorks, IncLearning 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. As a Java developer, you know how to achieve code-reuse via mechanisms like inheritance and polymorphism. Code reuse is possible in functional languages as well, using high-order functions, composition, and multi-methods. I take a variety of common practices in OOP languages and show the corresponding mechanisms in functional languages. Expect your mind to be bent, but you?ll leave with a much better understanding of both the syntax and semantics of functional languages.
HTML5 with Play Scala, CoffeeScript and Jade
Matt Raible, Raible DesignsThis 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. Play with Scala is used for the backend and services, while CoffeeScript and Jade are used for the front-end templating and Ajax communication. This session will explain limitations encountered with HTML5 and discuss when native apps might work better.
Up and out: Scaling software with Actors
Viktor Klang, TypesafeWe 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.
Introducing Scalate, the Scala Template Engine
James Strachan, FuseSourceIn this talk, James will walk you through the different template languages available in Scalate, the Scala Template Engine -- , discussing the pros and cons of each to help you pick the right template language. During the talk you will learn how to add Scalate to your web app, use scalate with servlets or JAXRS, and use the Scalate web console and command line tools.
Scala in Action
Heiko Seeberger, TypesafeYou 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. As a finalizer we will outline Scala's future directions.