27:e Januari - Konferensdagen


Salong 1

Salong 2

Salong 3

Salong 5

Salong 14


Registrering och kaffe


Utställningen öppnar


Konferensen inleds i Salong 1


Java, the Platform for the Future

Fifteen years ago, Java steamed into the software development consciousness. Since those early days, the Java platform has shown remarkable resiliency in adapting to changes in technology and markets over time. This success is powered by a broad and active community of developers and users. Today the Java platform faces new challenges. We will examine these challenges and the keys to meeting them in order to broaden Java adoption, improve its competitiveness and ensure its future.

Cameron Purdy
Vice President of Development, Oracle




Do you really get class loaders?
Jevgeni Kabanov, ZeroTurnaround
Google Appengine Java: Groovy baby!
Guillaume Laforge, SpringSource Inc
The Pair Programming Show
Niclas Nilsson Hans Brattberg, factor10 & Crisp


Lunch och Utställning


Deep dive on the Java EE 6
Alexis Moussine-Pouchkine, Sun Microsystems
Why Your Agile Roll-Out is Failing
Dan North, DRW Trading
Android och TDD
Marcus Ahnve, Valtech


Java Performance Antipatterns
Nils Eliasson, Oracle
Java and the cloud, in the color of Azure
Johan Lindfors, Microsoft
Introduktion till Clojure för Javautvecklare
Patrik Fredriksson, Citerus AB


How to save 3-7 weeks a year!
Jevgeni Kabanov, ZeroTurnaround
Spring 3.0
Mattias Hellborg Arthursson, Jayway
Johan Lindfors, Microsoft
Life is Short: Code Fast
Vaclav Pech, JetBrains
Det fronetiska ledarskapet
Ola Ellnestam, Agical


JavaFX Designer Developer Workflow
Pär Sikö Martin Gunnarsson, Epsilon
The Benefits of Graph Databases
Emil Eifrem, Neo Technology
Domain Driven REST Web-Services
Felipe Gaúcho, Netcetera AG


Tack för i år, vi ses 2011

SwedishAndroid och TDD

Marcus Ahnve, Valtech

Tröskeln till Androidutveckling är låg för Javautvecklare, då Android har stöd för en stor del av standard-Java. Men hur kan man skriva automatiska enhets- och funktionstester? Föredraget visar hur man kan utveckla en Android applikation med testdriven utveckling.

EnglishHTML 5 Communications - The New Network Framework for the Web

Frank Greco, Kaazing

The HTML5 specification will clearly change the way in which we build applications for the Web. Google, Apple, Mozilla, Opera, Palm, et al, have all made large strides in supporting various components of HTML 5. The Communications section of this specification describes an exciting collection of new types of network communication mechanisms that will provide the underpinnings of the next generation of web applications. * WebSocket - A full-duplex single-socket connection over the web * Server-Sent Events - A formalization of web "push" but without polling * Cross-Domain Resource Sharing - Connect to multiple domains without a portal server * Inter-Document Messaging - Send messages among iframes on a page These features bring bi-directional, event-driven connectivity to web applications, remove the dependency on polling, allows the browser to be the aggregator of information across domains and facilitates mashups within the browser. We will provide an in-depth look into the use of these features particularly WebSocket and Server-Sent Events. And we'll discuss the techniques and technologies required to build Web applications with these new tools. We will also cover possible network architectures to integrate message brokers, popular data feeds and cloud applications using WebSockets.

EnglishRIA Security - Broken By Design

Joonas Lehtinen, IT Mill

Rich Internet Applications (RIA) provide desktop-like usability with web deployment model. The benefits of this combination are obvious and RIA is now common a choice for the presentation layer in many applications. Unfortunately, moving logic from the server to an untrusted client may open up security holes that would not be present in the page-oriented "Web 1.0" architecture. In this presentation we will take a look at client- and server-side RIA architectures from the security angle, identify some of the most common security problems and discuss strategies for avoiding them. We'll go through some example applications implemented in both architectures and demonstrate the problems. Java-based RIA frameworks, Google Web Toolkit and Vaadin, are used in the examples, but the demonstrated principles are applicable to most other frameworks and languages as well.

EnglishDomain Specific Languages for Selenium tests

Emily Bache, Iptor

and other tips won from experience. Selenium RC allows you to test your web application through the browser and simulate user actions in a very realistic manner. It also has a handy firefox plugin to help you to record tests in Java. Unfortunately, I've found that if you just use these tests straight off, you quickly end up with a test code maintenance headache. In this presentation I'll be using real life examples and demonstrations to show you how to make your tests more readable and robust. I've a number of tricks up my sleeve, including using Domain Specific Languages.

EnglishWhy Your Agile Roll-Out is Failing

Dan North, DRW Trading

You read the books. You went to the talks. You even paid for the 3 day course. Then you rolled out Agile across the organization. What could possibly go wrong? Why, after 18 months, are you not seeing the better-faster-cheaper results they guaranteed you? And where can you get your money back? Rather than paying for yet another Agile consultant to come in and tell you how you're doing it all wrong, come along to Dan's talk about the most common failure modes he encounters in Agile adoption.

EnglishThe Pair Programming Show

Niclas Nilsson Hans Brattberg, factor10 & Crisp

Did you ever wonder what makes pair programming tick? Or maybe why it didn't work well when your team tried it? Are you considering trying it but not sure it it's worth it? Then, this play is for you.

The play is about a team that are just about to start implementing pair-programming as a daily practice in their agile work. You will follow the team and its members as they go through different stages and struggles from doing no pair programming to getting pair programming to be a truly productive way for them to work. You will see the anti-patterns in practice so you can recognize them in your own environment, and you will learn about the small subtle things that makes the difference between wasting time and a high productivity. This play will give you everything a good play should have; laughs, anger, tears - and a lot of lessons learned.

Get your popcorn ready and open your mind. Pair programming can be a great productivity boost - if it's done right.

SwedishTaylorism och massproduktion - gamla tankesätt hindrar effektiv systemutveckling

Marcus Ahnve, Valtech

* Varför delar vi på drift och utveckling? * Varför ritar systemarkitekter UML diagram, väljer ramverk och kan inte minnas när de skrev kod senast? * Varför räknar vi hur många kodrader varje utvecklare skrivit? Fredrick Taylors teorier och dess efterföljare sätter än idag normen för hur våra organisationer styrs och organiseras. Det som vi ser som normala och vanliga sätt att organisera arbetet försvårar i själva verket effektivt alla försök att införa agila arbetssätt, vilka istället bygger på empiriska processer med självorganiserande och tvärfunktionella team. Föredraget pekar ut dessa försvårande mönster och dess effekter samt visar hur man undviker dem för att inte missa de stora fördelarna med ett agilt arbetssätt.

SwedishJava and the cloud, in the color of Azure

Johan Lindfors, Microsoft

Microsoft have announced and made available a platform for development in the cloud with Windows Azure. Applications built with Java can leverage both the platform and services, and in this presentation we will demonstrate with live coding and deployment!

EnglishHow to save 3-7 weeks a year!

Jevgeni Kabanov, ZeroTurnaround

This summer, over 1100 developers reported that they waste an average of one month per year waiting for builds and redeploys. In 10 minutes, we'll show you how to get that time back, without the need to re-engineer your applications or change the way your team works. It's quick, it's easy, it integrates with Maven, Eclipse, IntelliJ IDEA and Netbeans, supports all servlet and EJB containers, Spring framework, Struts, Stripes and Google Web Toolkit, and it pays for itself in two weeks -- meet JRebel 2.0 (formerly JavaRebel).

EnglishA Practical Roadmap to Great Scrum: A Systematic Guide to Hyperproductivity

Jeff Sutherland, Scrum Inc

The best data in the world on Scrum come from a CMMI Maturity Level 5 company that is migrating all data collection to function points to provide research data on over 100 highly disciplined teams. I will describe how a new Scrum team can follow the path of Systematic Software Engineering to double productivity by focusing on DONE and then doubling it again by focusing on product backlog READY. Current research shows that every team can achieve hyperproductivity in a few sprints, even in a dsyfunctional company. This presentation will show you exactly how to do it and how easy it is if you remove impediments.

SwedishIntroduction to Cloud Computing

Adam Skogman, Jayway

Cloud Computing sounds fluffy, so what are the real-life benefits? And how can I start using the Cloud today, in my own projects? The first step: Getting more power at a low low cost How can we use the cloud today, by moving parts of our application or environment to the cloud? We'll share our hand-on experiences with developing using the cloud for everything from testing to deployment. The next step: Scaling out in the cloud The cloud brings new issues and concerns. How do you best store data if it's stored in distributed data centers? How can you ensure data consistency when ACID-style transactions are your biggest bottleneck? How will it affect your architecture that servers are added at any time?

SwedishJavaFX Designer Developer Workflow

Pär Sikö Martin Gunnarsson, Epsilon

Many JavaFX presentations focus on what the code looks like and how the language works, but they rarely show how to actually get started. JavaFX is said to be both designer and developer friendly but how do you get the designers involved? In this presentation we'll show what a typical JavaFX workflow may look like, starting with a fresh installation of the JavaFX Production Suite and Adbobe Photoshop, and going all the way to a complete application.

EnglishPortrait of a Developer as a Kid in a Candy store

Patrick Chanezon, Google

In the past 2 years developer platforms have evolved very fast making it easy to create applications with a rich user interface used by million of users, leveraging their friends, profile and location information, and accessible from their mobile device. There has never been a better time to be a developer! This presentation will give you an overview of Google developer tools and open standards that help developers create these applications: Browsers (html5, w3c geo, svg), Mobile (android), Cloud (appengine), Social (Opensocial), Geo (Google Maps).

EnglishYour First Day With JRuby

Charles Nutter, Engine Yard Inc

In the past few years, Ruby has grown from an oddity to a world-class programming language. There are hundreds of thousands of Ruby developers worldwide. But many of us live on the Java platform. Can we take advantage of Ruby's beauty without leaving the Java world behind? Yes we can! JRuby provides an excellent implementation of Ruby that can run Rails and other frameworks alongside your existing Java libraries and apps. You can build Rails apps that integrate with existing Java code, write components in Ruby, build desktop applications, and much more. JRuby provides excellent two-way integration with Java, allowing you to start using it today.
In this talk, we will explore JRuby, from getting set up to deploying real apps. We'll construct a small Rails application, front-end it with a GUI application, and deploy both. We'll play with JRuby's Java integration capabilities. And we'll explore a few unique features of JRuby like support for C libraries. By the end of this talk, you'll be ready to use JRuby for your own apps without leaving the Java platform behind.

EnglishGroovy actors and concurrent dataflow with GParallelizer

Vaclav Pech, JetBrains

Low-level concurrency handling is usually hard to get right. And it's not much fun either. In this hands-on session we will go through the concurrency options that GParallelizer library, an open-source concurrency library for Groovy, gives to your Groovy applications. We'll cover asynchronous collection processing, actors and other concepts, which aim to make your Groovy code concurrent with little effort. We'll create and show code examples in Groovy illustrating the principles of actors, parallel arrays and dataflow concurrency, while leveraging the DSLs offered by GParallelizer.

EnglishGoogle Appengine Java: Groovy baby!

Guillaume Laforge, SpringSource Inc

Introduced in April 2009, and made available to all developers last june, Google Appengine Java allows developers to leverage Google's cloud infrastructure to run their Java applications. With the Google Eclipse Plugin, as often demoed, it takes 5 minutes to put a GWT/GAE Java "Hello World" application in production: this talk will be about what can you do after these first 5 minutes of total bliss. The talk will cover Appengine Java's APIs, including recent features like XMPP and Task Queues, tools integration, limitations, how to run other JVM based languages used in the wild (Groovy, JRuby, Scala, Javascript), and show cool apps that have been developed with appengine. More it will present Gaelyk, a lightweight toolkit for easily developing applications in Groovy to be deployed on Google App Engine Java. We'll learn more about what the toolkit provides, how to leverage it for your own needs through some demos.

English97 Things Every Programmer Should Know

Kevlin Henney, Curbralan

Modern programmers have a lot on their minds. Programming languages, programming techniques, development environments, tools, development process, deadlines, meetings, software architecture, design patterns, team dynamics, code, requirements, bugs, code quality. And more. A lot. The 97 Things Every Programmer Should Know project has collected together the wisdom of many contributors to offer a distilled snapshot of what every programmer should know. This session draws from this collection to present some highlights and useful advice.

EnglishScaling Real-World Large Financial Systems, from iPhone to Cloud

John Davies, Incept5

John Davies will take a short but technical deep dive into the world of FX, equity and derivative trading. With demands for extremely low latency, massive volumes, absolute transactional integrity and a daily turnover in the billions, the trading community has been at the forefront of technology for decades. John will talk through the technologies, practical problems and technical solutions in this industry. From low-latency algorithmic trading to back-testing from over a peta-byte of data to mobile device integration. He will explain how to move the grid into the Amazon cloud and how many clients are using Amazon's EC2, EBS and S3 for delivery onto iPhones and Android.

EnglishThe Benefits of Graph Databases

Emil Eifrem, Neo Technology

Most applications today handle data that is deeply associative, i.e. structured as graphs (networks). The most obvious example of this is social networking sites, but even tagging systems, content management systems and wikis deal with inherently hierarchical or graph-shaped data. This turns out to be a problem because it?s difficult to deal with recursive data structures in traditional relational databases. In essence, each traversal along a link in a graph is a join, and joins are known to be very expensive. Furthermore, with user-driven content, it is difficult to pre-conceive the exact schema of the data that will be handled. Unfortunately, the relational model requires upfront schemas and makes it difficult to fit this more dynamic and ad-hoc data. A graph database uses nodes, relationships between nodes and key-value properties instead of tables to represent information. This model is typically substantially faster for associative data sets and uses a schema-less, bottoms-up model that is ideal for capturing ad-hoc and rapidly changing data. This session will introduce an open source, high-performance, transactional and disk-based graph database called “Neo4j” (http://neo4j.org), which frequently outperforms relational backends with >1000x for many increasingly important use cases.

EnglishNoSQL, One size fits all: A concept whose time has come and gone

Nati Shalom, GigaSpaces

Major Internet companies, including Google, Amazon and Facebook, are taking an alternative approach to the traditional SQL database. The primary reason is that the existing SQL database doesn’t fit their scalability requirements. Does this mark the end of the relational database era?
In this session Nati will answer this question as explore the various database alternatives, such as Amazon SimpleDB and memcached. He’ll conclude the session with a reference to a real life example from a social networking application, and examine how they designed their application to address data scalability requirements.

SwedishOpen Source at Unibet.com - 10x Scalability at Half the Cost

Stefan Norberg, Unibet

With over four million registered customers in more than 100 countries, Unibet is one of Europe's largest online gaming operators. Gaming products include sports betting, live betting, casino, poker, lotteries, bingo and soft games. Customers bet via websites in 27 languages, and increasingly via mobile phones and other mobile devices.

In this session you will learn about Unibet's continuously ongoing rearchitecture initiatives from a fairly typical monolithic database-centric architecture into a highly scalable one based on best-in-class open source software such as Java, Spring, MySQL, Terracotta, RabbitMQ and Kaazing, while at the same time substantially reducing cost. We have transitioned to a modern front-end architecture (XHTML 1.0 strict, CSS 2.1, YUI, caching, compression, image spriting, CDN striping, etc.) backed by functionally partitioned application- and data tiers. For scaling out, we have simple use-cases where read-only replicas are fine, and others where we use a partitioned, in-memory, domain repository with an eventually consistent database. This session will also cover our use of key technologies such as content delivery networks and DDoS protection strategies.

SwedishPrestanda, skalbarhet och tillgänglighet för stora system

Torbjörn Stavenek, bwin Games

Internetpoker är en av de mest avancerade realtidsapplikationerna du kan tillhandahålla över nätet. Du behöver inte bara bygga ett tillräckligt snabbt system, det måste vara tillräckligt snabbt oavsett antalet användare och dessutom tillgängligt utan avbrott. bwin har nyligen releasat en ny generation av sitt pokersystem som lägger ribban högt med avseende på icke-funktionella krav. När du bygger en tjänst som används av 10 miljoner användare och 45 000 samtidiga spelare så måste du ha tänkt igenom din arkitektur!
Pokersystemet är helt byggt med hjälp av Java i olika smaker, från Spring-baserade fristående applikationer i JavaSE, via JavaEE-applikationer som körs på JBoss, till Coherence-klustrade egenutvecklade serverplattformar. Denna presentation går igenom teorier för hur man bör tänka kring prestanda, skalbarhet och tillgänglighet på alla nivåer i ett sådant system. Teorier som kommer att beröras är exempelvis funktionell nedbrytning, CAP och BASE/ACID. Även topologier, redundanta system och proprietära vs kommersiella system diskuteras. Vidare kommer applikationer från bwins pokersystem att användas som exempel. För varje exempel kommer dess egenskaper att diskuteras utifrån teorierna, vilka krav applikationen löser samt kända problem.

EnglishDo you really get class loaders?

Jevgeni Kabanov, ZeroTurnaround

Class loaders are at the core of the Java language. Java EE containers, OSGi, NetBeans modules, Tapestry 5, Grails and many others use class loaders heavily. Yet when something goes wrong, would you know how to solve it? In this session we'll take a tour of the Java class loading mechanism, both from JVM and developer point of view. We'll see how different delegation systems are built, how synchronization works, what is the difference between finding classes and resources, what wrong assumptions has been made and are now supported. Next we will look at typical problems that you get with class loading and how to solve them. ClassNoDefError, IncompatibleClassChangeError, LinkageError and many others are symptoms of specific things going wrong that you can usually find and fix. For each problem we'll go through a hands on demo with a corresponding solution. Finally we'll take a look at the complicated class loading mechanisms like the ones used in OSGi and Tapestry 5. We'll look in detail at the benefits they have and problems they might cause.

EnglishDeep dive on the Java EE 6

Alexis Moussine-Pouchkine, Sun Microsystems

J2EE was reliable and scalable but somewhat verbose and sometimes inflexible. Java EE 5 adopted new principles (POJOs, annotations, default behavior) to ease the development paradigm and was certainly the biggest release ever. Java EE 6 also has a lot in store for server-side development - some more ease of development, a web profile, unified injection, lighter-weight components, RESTful integration, and major enhancements to the EJB, JPA and JSF specifications. This presentation will offer an overview of Java EE 6, new EJBs, simplified packaging, improved persistence layer, new API for RESTful services, a validation framework, a radical simplification of the web layer and ... many other improvements.

SwedishA Java 7 State of the Union

Thorbiörn Fritzon, Sun Microsystems

Java SE 7 looks like it will mark a completely new era for Java. Numerous changes are being proposed and worked feverishly on by several parties: a complete modularization of the platform together with support for modules in the Java language, new support for foreign programming languages, changes to the Java language itself, a completely new garbage collector and other changes that could change the face of Java quite radically. In this session, we'll take a close look at the state of the java union, what will be included and not in JDK 7, what the new features look like and what Oracle's acquisition of Sun means for Java.

SwedishDet fronetiska ledarskapet

Ola Ellnestam, Agical

Ett effektivt ledarskap tycker många är A och O för att lyckas. Men vad betyder det för mjukvaruprojekt och organisationer som sysslar med intensivt tankearbete. Kan man lära sig att leda? Kan man lära sig att bli ledd? Vad är det som egentligen spelar roll i ledarskapet? Efter att ha lyssnat på detta tal kan åskådarna ha lärt sig: - Varför det är viktigt att skapa förutsättningar för ledarskap - Vilka grundförutsättningar behövs för ledarskap - Att leda genom exempel - Skillnaden mellan olika typer av kunskap och hur den förvärvas - Ledarskap är aktiviteter.

EnglishNext Generation Development Infrastructure: Maven, M2Eclipse, Nexus & Hudson

Jason van Zyl, Sonatype

All development organizations eventually converge on a set of tools to reduce costs, lower onboarding time, and leverage knowledge in strong communities to create standard processes. To this end we see in many organizations the emergence of a standard development stack consisting of Maven, M2Eclipse, Nexus & Hudson.

In this talk Jason will discuss the future of Maven and specifically Maven 3.x, the rapidly approaching M2Eclipse 1.0 release, the recent Nexus 1.4 release and roadmap, and changes that have been made to Hudson to provide better interoperability with Maven. Sonatype itself leverages this stack on a daily basis and this discussion will focus not only on the tools individually, but how they can work together to create a best practices approach to building and delivering your software in your organization.

EnglishDomain Driven REST Web-Services

Felipe Gaúcho, Netcetera AG

RESTful Web-Services and Domain Drive Design (DDD) prevailed upon the "SOA Era", and now it is time to join those powerful techniques towards more agility for the Java developers. This session will demonstrate how to expose a Domain Model through REST-API based on the Java EE specification and the Glassfish technologies. The session will show a real world project where a business domain modeled as JPA Entities is serialized through a REST-API implemented with the Jersey framework. The server side constraints like security and robustness will be explained and proved good enough to be adopted in production. The special highlights of the session are the partial visibility of data produced with a minimum code, full data security and the serialization of data using XML and JSON formats. This presentation is a result of an open-source project being developed by the speaker, and the source code and artifacts demonstrated during the session will be fully available for the audience after the presentation. Java EE developers and architects are the target audience, specially the ones with previous experience in producing RESTful web-services.

SwedishFeedback - hur du får ut det bästa av din omgivning

Hanna Lumikero, Ciber

I detta föredrag dras paralleller mellan modern barnuppfostran och teamledarskap. Hur plockar du fram det bästa hos dina medarbetare och kollegor och fokuserar på det som är bra? Du får handfasta tips om hur du bör agera för att få mer av det du uppskattar av din omgivning. Vi går igenom vad feedback är, vad det är bra för och hur feedback ska ges och tas emot. Föredraget inspirerar till ett öppet klimat som leder till hög effektivitet och bättre kommunikation.


Johan Lindfors, Microsoft

Axum, en stad i norra Etiopien och ett domänspecifikt språk för trådsäker parallelism.

EnglishLife is Short: Code Fast

Vaclav Pech, JetBrains

Through hands-on coding with Spring, Hibernate, JSF, SQL and of course Java, we'll demonstrate a few of the core concepts that help developers write better code faster. We'll explore Development by Intention, the benefits of truly deep and intuitive refactoring, Polyglot programming with cross-language support and error prevention with static code analysis as well as commenting on the value of highly intelligent editing, debugging and code assistance - all with supportive examples and code-based demonstrations using IntelliJ IDEA. To wrap up, we'll look at ways to enjoy coding as much as possible.

SwedishIntroduktion till Clojure för Javautvecklare

Patrik Fredriksson, Citerus AB

Clojure är ett generellt, funktionellt, dynamiskt, starkt typat programmeringsspråk som körs på JVM:en. Clojure är en modern Lisp-dialekt som genom sin nära integration med Java redan från start har tillgång till ett mycket omfattande utbud av API:er och tredjepartsbibliotek. I denna intensiva femtonminutersintroduktion till Clojure för Javautvecklare kommer vi att få lära känna språket lite närmare. Du som lyssnar på denna presentation kommer att få med dig en översiktlig förståelse för Clojure som språk och det du behöver för att på egen hand börja utforska språket.

EnglishPractical Web Development with Language-Oriented Programming

Vadim Gurov, JetBrains

Modern web developers face a ridiculous choice of technologies and frameworks for building web applications. However, most of these frameworks are based upon general-purpose programming languages. Domain-specific languages (DSLs) are still a rarity in a web developer's toolset. JetBrains is set to change that with Meta Programming System (MPS). Complemented by a stack of Java-inspired domain-specific languages for database and web development, MPS enables JetBrains developers to create highly competitive real-world applications.
To describe the unique experience with language-oriented programming (LOP), Vadim  will showcase YouTrack - a keyboard-centric issue tracking web application that has become the first advanced product developed using MPS and JetBrains DSLs. We'll talk about our database DSL that saves developers from the hurdle of object-relational mapping; domain-specific implementation of JavaScript that delivers strong typing, true object orientation and automatic dependency detection; and other DSLs that constitute our web development language stack.

SwedishSpring 3.0

Mattias Hellborg Arthursson, Jayway

With more than 2 years since the last major release, the 3.0 version of Spring has been eagerly awaited by the community. Join us for this quick overview to get up to date with the new features and themes in the leading platform to build and run enterprise Java applications.

SwedishJava Performance Antipatterns

Nils Eliasson, Oracle

Java performance is seldom as easy as it looks. Spending time optimizing Java code might easily lead to worse results. This talk introduces some common Java performance antipatterns and show how you trick yourself and the JVM.