16 Feb 2011

Tid

Rum A1

Rum A2

Rum A4

Rum C1

Rum C3

08.00

Utställningen öppnar

9.00-
9.50

Emergent Design
Neal Ford, ThoughtWorks
(PDF)     (PodCast)
Cloud Computing with Scala
Nikita Ivanov, GridGain Systems
What's New in Google Web Toolkit
David Chandler, Google
(PDF)     (PodCast)
Transforming Legacy Systems - An introduction to the Mikado Method
Daniel Brolund and Ola Ellnestam, Agical AB
(PDF)  
The future of Java enterprise testing
Aslak Knutsen, Red Hat
(PDF)  

9.50

Kaffe

10.10-
11.00

HTML5 APIs - The New Frontier
Robert Nyman, Valtech AB
(PDF)  
Scala, from newbie to ninja in less then one hour
Nina Heitmann and Karianne Berg, Basefarm/Miles
  (PodCast)
Use Cases for Graph Databases with Neo4J
Emil Eifrem, Neo Technology
10 Years of The Java Specialists' Newsletter
Dr Heinz Kabutz, JavaSpecialists.EU
(PDF)  

12.00

Lunch och utställning

13.00-
13.50

JDK7 Update
Tomas Nilsson, Oracle
(PDF)  
Encryption Boot Camp on the JVM
Matthew McCullough, Ambient Ideas, LLC
(PDF)  

14.00-
14.50

Scrum & XP - beyond the trenches
Henrik Kniberg, Crisp AB
(PDF)  
Give Scala a try? Test your Java code with Scala
Andreas Kaltenbach, Stendahls.net
(PDF)  
Yet more Performance Tuning
Kirk Pepperdine, Kodewerk Ltd
  (PodCast)
Java Power Tools: the cloud edition
Adrian Cole, Cloud Conscious, LLC.
(PDF)  
C
o
f
f
e

15.35-
15.50

Test-driven Regex Development
Staffan Nöteberg, Rekursiv
(PDF)     (PodCast)
Programming in pain
Enno Runne, Transmode
(PDF)  

16.00

CLOSING KEYNOTE

Abstraction Distractions
Neal Ford, ThoughtWorks
(PDF)  

17.30

Tack för i år, vi ses 2012

EnglishGive Scala a try? Test your Java code with Scala

Andreas Kaltenbach, Stendahls.net

With release of version 2.8 back in summer 2010, Scala skyrocketed to one of the most promising alternative JVM languages on the planet. Have you also heard a lot of good news about Scala and ever since wondered how you could get Scala into your everyday's business? Maybe it's a good time to consider writing your tests in Scala. This session explains, how the purely object-oriented and functional nature of Scala enables you to write better and more concise tests in less time. By applying Scala's neat concepts like traits, implicits and first-class functions, we'll demonstrate how you are able to circumnavigate typical TDD pitfalls and anti patterns. With ScalaTest and ScalaCheck, you have great frameworks at hand which provide Scala developers with convenient APIs and give you yet another boost in productivity and test quality. So, why not killing two birds with one stone: make your first steps towards a Scala pro and save yourself valuable coding time!

EnglishExtensible Java EE: Using CDI and Weld Extensions to make a better Java EE

Dan Allen, Red Hat, Inc.

Java EE 6 is a vast improvement over previous iterations of the platform. But regardless of how large incremental releases are, it's not long before we want more. In this talk, you'll discover that waiting for Java EE 7 isn't your only option, thanks to the portable extension integration SPI introduced into the platform by JSR-299. To prove that the Java EE platform is truly extensible, we'll focus on examples rather than promises. We'll go over the options you have for enhancing the application, from registering custom beans, interceptors and decorators, to customizing dependency injection points, to augmenting the annotation-metadata on registered beans, to introducing custom scopes. The talk will cover when and how you weave these enhancements into the container lifecycle using the CDI eventing system. Having looked at some standard examples, we'll unlock some shortcuts and shorthands that are provided by the portable Weld Extension library. Examples we'll be taken from the growing ecosystem of open-source portable extensions.

EnglishFuture-proofing collections: from mutable to persistent to parallel.

Martin Odersky, Scala Solutions

Multicore processors are on every desk now. How are we going to make use of the extra power they provide? Some think that actors or transactional memory will save the day by making concurrent programming easier and safer. Even though these are welcome, I am skeptical about their ultimate success. Concurrency is fundamentally hard and no dressing up will be able to hide that fact completely. A safer and for the programmer much simpler alternative is to treat parallel execution as essentially an optimization. A promising application area are collections. Programing by transforming and aggregating collections is simple, powerful, and can optimized by executing bulk operations in parallel. To be able to do this in practice, any side effects of parallel operations need to be carefully controlled. This means that immutable, persistent collections are more suitable than mutable ones. In this talk I will describe the new Scala collections framework, and show how it allows a seamless migration from traditional mutable collections to persistent collections, and from there to parallel collections. I show how the same vocabulary of methods can be used for either type of collection, and how one have parallel as well as sequential views on the same underlying collection.

EnglishDesigning RESTful Domain Application Protocols

Ian Robinson, ThoughtWorks

REST is ready for the enterprise. Imagine an information platform that is open and available to systems throughout the enterprise estate. A platform that eschews integration in favour of composition, connected data over siloed databases. A networked data structure with the power to implement valuable business behaviours: a distributed, hypermedia-driven application platform. Challenging the notion that REST is suitable only for simple CRUD-based data services, in this session I show how to design and implement RESTful domain application protocols for complex business processes. With a detailed example, I show how to: - Model business processes as domain application protocols - Implement them in terms of resource lifecycles - Advertise and execute them using HTTP idioms, media types and link relation values

EnglishAkka: Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors & STM

Jonas Bonér, Scalable Solutions

We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Akka is using the Actor Model together with Software Transactional Memory (STM) to raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance it adopts the "Let it crash" model which have been used with great success in the Telecom industry to build applications that self-heals, systems that never stop. Akka's Remote Actors, backed by a scalable non-blocking IO implementation, provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. In this talk you will learn what Akka is, how it can be used to solve hard problems and the ideas behind its design and implementation. Akka is available at http://akkasource.org/

EnglishScala, from newbie to ninja in less then one hour

Nina Heitmann and Karianne Berg, Basefarm/Miles

Scala is perhaps the most promising alternative language on the JVM right now, but the learning curve can be quite steep for Java developers. Not only do you have to start grasping the unfamiliar concepts of functional programming, you also have to cope with limited IDE support and error messages that, to say the least, takes some time getting used to. We started learning Scala in spring 2010, and have probably encountered about every pitfall the language has to offer by now. And that's a lot. In this talk, we'll demonstrate some of them in way that's fun and easy to follow, present solutions to common problems and give you a head start to learning Scala.

SwedishHållbar testdriven utveckling - en praktisk handledning

Manne Fagerlind, HiQ Stockholm AB

De flesta förstår att testdriven utveckling är en bra idé - i teorin. I verkligheten blir testerna ofta bräckliga och svåra att underhålla, och till sist kan de bli en belastning och inte en tillgång. I detta föredrag får du tips om hur du får testdriven utveckling att fungera i praktiken, inte bara i teorin.

EnglishWhat's New in Google Web Toolkit

David Chandler, Google

Google Web Toolkit (GWT) lets you build and optimize rich browser-based apps without having to be an expert in browser quirks, XMLHttpRequest, or JavaScript. In this talk, we'll look at powerful new capabilities in GWT 2.1 including MVP architecture with Activities and Places, client-server communication with RequestFactory, visual layout with GWT Designer for Eclipse, and performance optimization with SpeedTracer.

EnglishHTML5 Offline Web Applications

Peter Lubbers, Kaazing

Application Cache is a new HTML5 feature that can be used to create offline applications and dramatically speed up your web applications by prefetching your sites assets. Come and learn about this exciting HTML5 feature from HTML5 expert and trainer Peter Lubbers, co-author of the recently released book Pro HTML5 Programming and co-founder of the San Francisco HTML5 User Group. Peter has been working with offline applications a lot and he is very excited about it.

There are a few tricky aspects to it as well as some common misconceptions, so he would love to share all his recent findings so that you don?t have to repeat the same mistakes. Peter will guide you through everything you need to know to use Application Cache in your web sites and applications.

He will also be giving live demos and cover some best practices, tips, and tricks. You will learn about: - The new HTML5 manifest file - Demystifying the CACHE, NETWORK, and FALLBACK sections - How to serve up the manifest file with the correct mime type (on all the major web servers) - Best practices, tips, and tricks for deploying and debugging offline web apps - Browser support for Application Cache and current browser bugs - Available developer tools for analyzing Application Cache - Using the Application Cache events - Online and offline status detection.

SwedishTest-driven Regex Development

Staffan Nöteberg, Rekursiv

There are many popular myths concerning regular expressions (Regex). First, it's exceptionally hard to master Regex. Second, a normal programmer rarely needs Regex. Third, Regex are tricky to read and hence can't be maintained.

That is all wrong!

No prior Regex knowledge is required for this very practical session. Expect live coding and mini exercises, when Staffan reveals the secrets.

EnglishHTML5 APIs - The New Frontier

Robert Nyman, Valtech AB

HTML5 is upon us and it offers a wide range of exciting possibilities when it comes to developing rich web interfaces. This talk will introduce you to a number of them and hopefully inspire you to create amazing things!

EnglishConcurrent Development: Agile Workflows for Version Control

Lasse Koskela, Reaktor

With Agile methods making their way into the mainstream and distributed version control systems (DVCS) like Git becoming increasingly popular, we are resurfacing some questions that were put to rest years ago. Suddenly, with the increased power and flexibility of DVCS we have a number of seemingly viable alternatives for an Agile team to integrate their work within and between teams. This presentation will discuss the relative benefits of a number of parallel development strategies such as private branches, trunk development and feature branches as well as how do these approaches fit in with the related practice of continuous integration.

EnglishUse Cases for Graph Databases with Neo4J

Emil Eifrem, Neo Technology

Use Cases for Graph Databases with Neo4J

EnglishJava Power Tools: the cloud edition

Adrian Cole, Cloud Conscious, LLC.

John Ferguson Smart's book Java Power Tools, introduces many powerful tools for unit testing, build, and deployment activities. How do these tools relate to the cloud? During this session, we'll review tools in the jclouds ecosystem that connect to build, test, deploy concerns: Arquillian runs your testng or junit tests in any cloud. Hudson spawns slaves in the cloud to build your app faster. Whirr stands up Hadoop clusters to run your jobs. Pallet builds customized stacks and deploys your applications to them. At the end of this talk, you'll have a few more tools in your box, and a good sense of how cloud fits in.

EnglishTransforming Legacy Systems - An introduction to the Mikado Method

Daniel Brolund and Ola Ellnestam, Agical AB

For any code-base, ill- or well-structured, there comes a time when you want to improve portions of it to meet new functional requirements, a new business model, new market demands, or just change it to make it more comprehensible. When these changes become extensive, it is easy to get lost in a jungle of dependencies, or on a sea of broken code. This session introduces The Mikado Method, a way to handle tricky situations where you want to improve systems and code bases.

EnglishEncryption Boot Camp on the JVM

Matthew McCullough, Ambient Ideas, LLC

In today's data-sensitive and news-sensationalizing world, don't become the next headline by an inadvertent release of private customer or company data. Attend this session to gain a working knowledge of encryption and learn techniques for leveraging Open Source APIs that make securing your data as easy as possible. Encryption is quickly becoming a developer's new frontier of responsibility in many data-centric applications. Protect your persisted, transmitted and in-memory data and learn the terminology you'll need to navigate symmetric and public key cryptography on the Java platform.

EnglishGoogle Cloud Computing for Java Developers: Platform and Monetization

Patrick Chanezon, Google

This session will provide developers with an overview of Google Cloud computing services and monetization opportunities: * Google App Engine Java: Developers can leverage Google's cloud infrastructure to run their Java applications at scale, leveraging Java standards such as Java Servlet, Java Data Objects, and Java Persistence API. * Google App Engine for Business: targeted at Enterprises, with SLA, paid support, and SQL * Google Storage, Prediction and BigQuery APIs: storage, machine learning and interactive analytics services powered by Google infrastructure. * Google Apps Marketplace: allows developers to integrate Google Apps in their applications and sell them to Google Apps customers.

EnglishEmergent Design

Neal Ford, ThoughtWorks

This session describes the current thinking about emergent design, discovering design in code. The hazard of Big Design Up Front in software is that you don't yet know what you don't know, and design decisions made too early are just speculations without facts. Emergent design techniques allow you to wait until the last responsible moment to make design decisions. This talk covers four areas: emergent design enablers, battling things that make emergent design hard, finding idiomatic patterns, and how to leverage the patterns you find. It includes both proactive (test-driven development) and reactive (refactoring, metrics, visualizations, tests) approaches to discovering design, and discusses the use of custom attributes, DSLs, and other techniques for utilizing them. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed, keeping your code in sync with the problem domain.

EnglishRunning your Java EE applications in the clouds

Arun Gupta, Oracle

GlassFish, the Reference Implementation of Java EE 6, can easily run on multiple cloud infrastructures. This talk will provide a brief introduction to Java EE 6 and GlassFish v3. The attendees will learn how to create a simple Java EE 6 sample application and deploy them on GlassFish v3 running locally and then deploy it using Amazon, RightScale, Joyent, and Elastra cloud infrastructures. In addition it will also talk about what Java EE currently offers for the cloud and the future directions in Java EE 7 in relation to cloud.

EnglishEverything You Wanted to Know About Open Source that Nobody Told You

Jeff Genender, Savoir Technologies

Did you ever read or hear about people who get paid to write open source software and wish you had that dream job? Did you ever look at an open source product and wonder how it was built in such a short time and with such high quality? Did you ever wonder how you and your company could get into open source development? If you?ve ever asked yourself these questions, then this session is for you. Jeff Genender is an open source software enthusiast who took his passion for open source and became a contributor on several well-known open source projects, which finally landed him several positions that actually paid him to work on this passion. In this session you learn about: * Contributing and learning "The OpenSource Way" (tm); *The development process and tools sets commonly used in open source, as well as how to leverage a remote development model effectively; *How to get involved with the open source methodology and change the way your company develops software; *How to be a good citizen in the open source community - and maybe even get paid to contribute to open source!

EnglishScrum & XP - beyond the trenches

Henrik Kniberg, Crisp AB

4 years have passed since I wrote "Scrum and XP from the Trenches". What have I learned since then, and what would I have done differently if I could go back in time? During the past few years I've mostly been "trench-hopping", i.e. helping lots of different organizations implement agile software development in practice, and talking to other people that do the same. Consequently there are now several things in the book that I don't agree with any more, so this talk is the first step towards a followup article :o)

EnglishProgramming in pain

Enno Runne, Transmode

Once you get used to use Scala's bigger toolbox it will strike you how much a Java programmer has to please the language instead of solving the problems at hand. But even if your organisation forces you to use Java, learning Scala will change the way you swing your Golden Java Hammer. You'll start to mimic programming concepts that Scala smoothly introduces in your Java code and have pain that some can't be achieved easily. Immutable instances, small methods without side-effects and small classes are signs of a programmer thinking in Scala, even though Java makes it slightly harder to program that way. The pain comes when you got used to Scala's ways of object composition and the often cited closures. Java let's you do the same things - if you really want to. Java's boilerplate code will hide what you try to achieve. Achieving programming concepts you have at hand with Scala in pure Java does rarely bear its weight. In this talk we'll go through some of the things a Scala-trained programmer will start to use in Java. We'll look at the things you can achieve easily and show examples for when you'll miss Scala. A lot.

EnglishAzure, should I care as a Java developer?

Dag König, Microsoft

Microsofts strategy is that it should be possible to develop applications in diverse languages to be hosted in the cloud, the same way as it is today on Microsoft operating systems. What does it real mean for Java developers?

EnglishCloud Computing with Scala

Nikita Ivanov, GridGain Systems

The topic of this presentation is about using Scala programming language as a part of a simple and productive cloud computing platform. Scala is a hybrid function and object-oriented language that is rapidly gaining traction in becoming the next Java in JVM-based language evolution. GridGain is one of the cloud development platforms for JVM-based languages. 2/3 of the presentation will be devoted to live coding demonstration of writing basic MapReduce application in Scala using GridGain middleware. All coding during demonstration will be done live. Overview of grid and cloud computing as well as short intro into Scala language will also be provided.

EnglishAbstraction Distractions

Neal Ford, ThoughtWorks

Computer science is built on a shaky tower of abstractions, but we've been distracted by other things until we believe it is reality. This Keynote teases apart some of the tangled abstractions that have become so common they are invisible yet impact important decisions. It will cover languages, tools, platforms, and burrow all the way down to fundamental concepts.

EnglishAn interactive approach to load testing with JavaFX, Groovy and OSGi

Ole Lensmar, eviware software ab

This presentation will start with a short demo of a novel distributed load-testing tool, loadUI, that makes load-testing into something interactive and fun by providing an extremely "playful" javaFX interface on top of a groovy-centered component framework. The demo will be followed by an overview of utilized technologies and of the groovy DSL used for creating components.

EnglishThe future of Java enterprise testing

Aslak Knutsen, Red Hat

This talk unveils the missing link in enterprise Java development: simple, portable integration tests. For many, this void has long made enterprise Java development an arduous undertaking. While development life is simple with unit tests and mocks, they only take you so far. Eventually, you need to validate how your components interact and operate in their intended environment--you need real integration tests. Yet, writing integration tests has meant assuming the burden of bootstrapping all or part of your infrastructure. That's time lost and it places a mental barrier on testing.

Arquillian, a container-oriented testing framework layered atop TestNG and JUnit, tears down this barrier. It does so by bringing your test to the runtime rather than requiring you to manage the runtime from your test. Picking up where unit tests leave off, Arquillian enables you to test real components that rely on real enterprise services in a real runtime. What's the secret ingredient?

This talk will show how Arquillian simplifies integration testing by providing a component model for tests, just as Java EE 5 simplified server-side programming by providing declarative services for application components. The test component model consists of container lifecycle management, test enrichment (dependency injection), container deployment and in-container test execution. Using a component model means your tests are portable and able to move between different environments, from single embedded or remote to multi-server to multi-cloud nodes.

Attend this talk to learn about the future of Java enterprise testing.

English10 Years of The Java Specialists' Newsletter

Dr Heinz Kabutz, JavaSpecialists.EU

The Java Specialists' Newsletter started as a small publication, sent to 75 friends and colleagues at the end of 2000. It is now being read in at least 121 countries, which is more than have McDonald's stores (http://www.mcdonalds.ca/en/aboutus/faq.aspx). Readership is estimated at over 50.000 and more than a million newsletters were served in the past 12 months, via email and web.

In this talk, we look at some of the most popular Java newsletters published, ranging in topics from performance, language constructs to GUI tricks and concurrency. In the performance section, we explain how to determine memory usage by Java objects. In C, "Joe" used 4 bytes of memory. In Java, each character uses 2 bytes, so it is a bit more. This memory measuring has helped many customers find out why their memory was being eaten up by Java. Heinz will show how to serialize an Enum and read it back again from a database and what the issues are that you can encounter. For the GUI section, he will demonstrate some useful tricks for managing global hotkeys, for placing components on each other and for implementing a tri-state checkbox. Finally he will also give some tips on how to write good articles that people will enjoy reading.

EnglishThe Future Java Developer

Bruno Souza, SouJava

New languages, work environments, technologies, and devices. Clouds roll in bringing new rules. The future is now, what comes later? Java developers thread on a fine line between working standards and bleeding edge science-fiction experiments. What are the possibilities for the future? Can new languages available for the JVM warp the realities of software development? Will Java really be part of the new flock of devices? Cloud computing is changing the game, how Java is a fundamental part of it? New enviroments affect our code and skills we must have, how does our experience count? Are we prepared?
This session will explore possibilities for the future of development, sharing insights on what's coming up in the future of Java.

SwedishJDK7 Update

Tomas Nilsson, Oracle

This session will look at a number of the new features in development in JDK 7 and how they affect developers. We'll take a close look at the current status of JDK 7 development, and learn how you can keep up to date, get your hands dirty with the code & provide useful feedback on planned features, while diving a bit deeper into a few planned improvements in the VM, the programming language and the class library.

EnglishYet more Performance Tuning

Kirk Pepperdine, Kodewerk Ltd

The session will further demonstrate a performance tuning methodology that has been presented at previous Jfokus sessions. Following the methodology allows one to progress from diagnostic to diagnostic to a diagnosis in a matter of minutes. One that eliminates the need to error prone guessing, splunk aimlessly through source code or engage in other time wasting activities. The methodology will be demonstrated in the process of tuning an application that has been juiced up with some common performance problems that have often proven difficult to find. Problems will include memory leaks, inadvertent accessing of data sources etc