27:e Januari - Konferensdagen
Registrering och kaffe
Konferensen inleds i Salong 1
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.
Vice President of Development, Oracle
Kevlin Henney, Curbralan
John Davies, Incept5
Joonas Lehtinen, IT Mill
Thorbiörn Fritzon, Sun Microsystems
Marcus Ahnve, Valtech
Torbjörn Stavenek, bwin Games
Jevgeni Kabanov, ZeroTurnaround
Guillaume Laforge, SpringSource Inc
Niclas Nilsson Hans Brattberg, factor10 & Crisp
Frank Greco, Kaazing
Lunch och Utställning
Alexis Moussine-Pouchkine, Sun Microsystems
Dan North, DRW Trading
Vaclav Pech, JetBrains
Stefan Norberg, Unibet
Marcus Ahnve, Valtech
Nati Shalom, GigaSpaces
Adam Skogman, Jayway
Emily Bache, Iptor
Jason van Zyl, Sonatype
Charles Nutter, Engine Yard Inc
Nils Eliasson, Oracle
Vadim Gurov, JetBrains
Johan Lindfors, Microsoft
Patrik Fredriksson, Citerus AB
Hanna Lumikero, Ciber
Jeff Sutherland, Scrum Inc
Patrick Chanezon, Google
Pär Sikö Martin Gunnarsson, Epsilon
Emil Eifrem, Neo Technology
Felipe Gaúcho, Netcetera AG
Tack för i år, vi ses 2011
Android och TDDMarcus 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.
HTML 5 Communications - The New Network Framework for the WebFrank 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.
RIA Security - Broken By DesignJoonas 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.
Domain Specific Languages for Selenium testsEmily 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.
Why Your Agile Roll-Out is FailingDan 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.
The Pair Programming ShowNiclas 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.
Taylorism och massproduktion - gamla tankesätt hindrar effektiv systemutvecklingMarcus 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.
Java and the cloud, in the color of AzureJohan 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!
How 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).
A Practical Roadmap to Great Scrum: A Systematic Guide to HyperproductivityJeff 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.
Introduction to Cloud ComputingAdam 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?
JavaFX Designer Developer WorkflowPä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.
Portrait of a Developer as a Kid in a Candy storePatrick 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).
Your First Day With JRubyCharles 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.
Groovy actors and concurrent dataflow with GParallelizerVaclav 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.
Google Appengine Java: Groovy baby!Guillaume Laforge, SpringSource Inc
97 Things Every Programmer Should KnowKevlin 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.
Scaling Real-World Large Financial Systems, from iPhone to CloudJohn 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.
The Benefits of Graph DatabasesEmil 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.
NoSQL, One size fits all: A concept whose time has come and goneNati 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.
Open Source at Unibet.com - 10x Scalability at Half the CostStefan 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.
Prestanda, skalbarhet och tillgänglighet för stora systemTorbjö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.
Do 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.
Deep dive on the Java EE 6Alexis 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.
A Java 7 State of the UnionThorbiö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.
Det fronetiska ledarskapetOla 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.
Next Generation Development Infrastructure: Maven, M2Eclipse, Nexus & HudsonJason 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.
Domain Driven REST Web-ServicesFelipe 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.
Feedback - hur du får ut det bästa av din omgivningHanna 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.
AxumJohan Lindfors, Microsoft
Axum, en stad i norra Etiopien och ett domänspecifikt språk för trådsäker parallelism.
Life is Short: Code FastVaclav 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.
Introduktion till Clojure för JavautvecklarePatrik 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.
Practical Web Development with Language-Oriented ProgrammingVadim 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.
Spring 3.0Mattias 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.
Java Performance AntipatternsNils 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.