27:e Januari - Konferensdagen
Tid
Salong 1
Salong 2
Salong 3
Salong 5
Salong 14
08.00
Registrering och kaffe
08.00
Utställningen öppnar
08.45
Konferensen inleds i Salong 1
09.00
KEYNOTE
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
10.00
Kaffe
10.30-
11.15
Marcus Ahnve, Valtech
11.30-
12.15
12.15
Lunch och Utställning
13.15-
14.00
14.15-
15.00
a
f
f
e
&
u
t
s
t
ä
l
l.
15.10-
15.25
15.50-
16.05
16.15-
17.00
Jeff Sutherland, Scrum Inc
17.00
Tack för i år, vi ses 2011
Android och TDD
Marcus Ahnve, ValtechTrö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 Web
Frank Greco, KaazingThe 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 Design
Joonas Lehtinen, IT MillRich 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 tests
Emily Bache, Iptorand 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 Failing
Dan North, DRW TradingYou 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 Show
Niclas Nilsson Hans Brattberg, factor10 & CrispDid 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 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.
Java and the cloud, in the color of Azure
Johan Lindfors, MicrosoftMicrosoft 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, ZeroTurnaroundThis 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 Hyperproductivity
Jeff Sutherland, Scrum IncThe 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 Computing
Adam Skogman, JaywayCloud 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 Workflow
Pär Sikö Martin Gunnarsson, EpsilonMany 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 store
Patrick Chanezon, GoogleIn 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 JRuby
Charles Nutter, Engine Yard IncIn 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 GParallelizer
Vaclav Pech, JetBrainsLow-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 IncIntroduced 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.
97 Things Every Programmer Should Know
Kevlin Henney, CurbralanModern 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 Cloud
John Davies, Incept5John 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 Databases
Emil Eifrem, Neo TechnologyMost 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 gone
Nati Shalom, GigaSpacesMajor 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 Cost
Stefan Norberg, UnibetWith 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 system
Torbjörn Stavenek, bwin GamesInternetpoker ä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, ZeroTurnaroundClass 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 6
Alexis Moussine-Pouchkine, Sun MicrosystemsJ2EE 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 Union
Thorbiörn Fritzon, Sun MicrosystemsJava 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 ledarskapet
Ola Ellnestam, AgicalEtt 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 & Hudson
Jason van Zyl, SonatypeAll 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-Services
Felipe Gaúcho, Netcetera AGRESTful 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 omgivning
Hanna Lumikero, CiberI 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.
Axum
Johan Lindfors, MicrosoftAxum, en stad i norra Etiopien och ett domänspecifikt språk för trådsäker parallelism.
Life is Short: Code Fast
Vaclav Pech, JetBrainsThrough 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 Javautvecklare
Patrik Fredriksson, Citerus ABClojure ä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 Programming
Vadim Gurov, JetBrainsModern 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.
Spring 3.0
Mattias Hellborg Arthursson, JaywayWith 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 Antipatterns
Nils Eliasson, OracleJava 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.