Sessions at Jfokus 2011 on Wednesday 16th February

Your current filters are…

  • Cloud Computing with Scala

    by Nikita Ivanov

    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.

    Nikita Ivanov, GridGain Systems

    At 9:00am to 9:50am, Wednesday 16th February

  • Emergent Design

    by Neal Ford

    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.

    Neal Ford, ThoughtWorks

    At 9:00am to 9:50am, Wednesday 16th February

  • The future of Java enterprise testing

    by Aslak Knutsen

    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.

    At 9:00am to 9:50am, Wednesday 16th February

  • Transforming Legacy Systems - An introduction to the Mikado Method

    by Daniel Brolund and Ola Ellnestam

    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.

    Daniel Brolund and Ola Ellnestam, Agical AB

    At 9:00am to 9:50am, Wednesday 16th February

  • What's New in Google Web Toolkit

    by David Chandler

    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.

    David Chandler, Google

    At 9:00am to 9:50am, Wednesday 16th February

  • 10 Years of The Java Specialists' Newsletter

    by Heinz Kabutz

    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 ( 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.

    Dr Heinz Kabutz, JavaSpecialists.EU

    At 10:10am to 11:00am, Wednesday 16th February

  • Agile ALM: Continuous delivery with agile strategies and lightweight tools

    by Michael Hüttermann

    Many software projects fail unnecessarily because of unclear objectives, redundant and unproductive work, cost overruns, and a host of other avoidable issues. In response, agile strategies and lightweight tooling have begun to enrich or even replace traditional engineering processes throughout the development lifecycle. An agile approach to Application Lifecycle Management (ALM) improves product quality, reduces time to market, and makes for happier developers. This session offers recipes for Java developers, who want to integrate flexible agile practices and lightweight tooling along software development phases. You'll learn powerful practices like Task-Based Development for aligning activities to tasks resulting in traceable artifacts, (Advanced) Continuous Integration, in which you frequently and systematically integrate, build, and test an application in development, Scrum as an agile approach to release management as well as agile approaches to test and requirements management. The effect is a more comprehensive and practical approach to build, configuration, deployment, release, test, quality, integration, and requirements management. Beside strategies, this session illustrates state-of-the-art tool chains. Many of the tools, examples and recipes are Java-based, but the Agile ALM principles apply to all development platforms and examples show how you can bridge different languages and systems. Also see:

    Michael Huttermann, Systemtechnologie Huttermann

    At 10:10am to 11:00am, Wednesday 16th February

  • HTML5 APIs - The New Frontier

    by Robert Nyman

    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!

    Robert Nyman, Valtech AB

    At 10:10am to 11:00am, Wednesday 16th February

    Coverage slide deck

  • Running your Java EE applications in the clouds

    by Arun Gupta

    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.

    Arun Gupta, Oracle

    At 10:10am to 11:00am, Wednesday 16th February

  • Scala, from newbie to ninja in less then one hour

    by Karianne Berg and Nina Heitmann Jodal

    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.

    Nina Heitmann and Karianne Berg, Itera Consulting/Miles

    At 10:10am to 11:00am, Wednesday 16th February

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

    by Jonas Bonér

    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

    Jonas Bonér, Scalable Solutions

    At 11:10am to 12:00pm, Wednesday 16th February

  • Concurrent Development: Agile Workflows for Version Control

    by Lasse Koskela

    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.

    Lasse Koskela, Reaktor

    At 11:10am to 12:00pm, Wednesday 16th February

  • Google Cloud Computing for Java Developers: Platform and Monetization

    by Patrick Chanezon

    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.

    Patrick Chanezon, Google

    At 11:10am to 12:00pm, Wednesday 16th February

  • HTML5 Offline Web Applications

    by Peter Lubbers

    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.

    Peter Lubbers, Kaazing

    At 11:10am to 12:00pm, Wednesday 16th February

  • The Future Java Developer

    by Bruno Souza

    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.

    Bruno Souza, SouJava

    At 11:10am to 12:00pm, Wednesday 16th February

  • Designing RESTful Domain Application Protocols

    by Ian Robinson

    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

    Ian Robinson, ThoughtWorks

    At 1:00pm to 1:50pm, Wednesday 16th February

  • Encryption Boot Camp on the JVM

    by Matthew J McCullough

    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.

    Matthew McCullough, Ambient Ideas, LLC

    At 1:00pm to 1:50pm, Wednesday 16th February

  • Everything You Wanted to Know About Open Source that Nobody Told You (including getting paid to do it)

    by Jeff Genender

    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!

    Jeff Genender, Savoir Technologies

    At 1:00pm to 1:50pm, Wednesday 16th February

  • Future-proofing collections: from mutable to persistent to parallel.

    by Martin Odersky

    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.

    Martin Odersky, Scala Solutions

    At 1:00pm to 1:50pm, Wednesday 16th February

  • JDK7 Update

    by Tomas Nilsson

    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.

    Tomas Nilsson, Oracle

    At 1:00pm to 1:50pm, Wednesday 16th February

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

    by Dan Allen

    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.

    At 2:00pm to 2:50pm, Wednesday 16th February

  • Give Scala a try? Test your Java code with Scala

    by Andreas Kaltenbach

    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!

    Andreas Kaltenbach,

    At 2:00pm to 2:50pm, Wednesday 16th February

  • Java Power Tools: the cloud edition

    by Adrian Cole

    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.

    Adrian Cole, Cloud Conscious, LLC.

    At 2:00pm to 2:50pm, Wednesday 16th February

  • Scrum & XP - beyond the trenches

    by Henrik Kniberg

    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)

    Henrik Kniberg, Crisp AB

    At 2:00pm to 2:50pm, Wednesday 16th February

  • Yet more Performance Tuning

    by Kirk Pepperdine

    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

    Kirk Pepperdine, Kodewerk Ltd

    At 2:00pm to 2:50pm, Wednesday 16th February

  • An interactive approach to load testing with JavaFX, Groovy and OSGi

    by Ole Lensmar

    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.

    Ole Lensmar, eviware software ab

    At 3:35pm to 3:50pm, Wednesday 16th February

  • Azure, should I care as a Java developer?

    by Dag König

    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?

    Dag König, Microsoft

    At 3:35pm to 3:50pm, Wednesday 16th February

  • Hållbar testdriven utveckling - en praktisk handledning

    by Manne Fagerlind

    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.

    Manne Fagerlind, HiQ Stockholm AB

    At 3:35pm to 3:50pm, Wednesday 16th February

  • Programming in pain

    by Enno Runne

    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.

    Enno Runne, Transmode

    At 3:35pm to 3:50pm, Wednesday 16th February

  • Test-driven Regex Development

    by Staffan Nöteberg

    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.

    Staffan Nöteberg, Rekursiv

    At 3:35pm to 3:50pm, Wednesday 16th February