Sessions at GOTO Amsterdam 2011 on Thursday 13th October

Your current filters are…

  • Introduction of Today's Tracks

    • Welcome
    • General Information
    • Presentation of today's program
    • Updates

    At 8:30am to 9:00am, Thursday 13th October

  • Keynote: Dart, a new programming language for structured web programming

    by Kasper Verdich Lund

    Breaking news: Google to unveil World News at GOTO Amsterdam. The whole world will be on alert when Google presents a new programming language "Dart" in the opening keynote. Join us and GOTO Amsterdam and get all the details.

    At 9:00am to 9:50am, Thursday 13th October

  • Browser as a Platform: Send Less, Do More, Go Faster: The Future of Front End Development

    by Alex Russell

    In this talk, you'll learn how a combination of new technologies that are only now arriving in browsers will revolutionize front-end development. From better, more expressive markup to in-platform data-binding to improvements in DOM and JavaScript, come learn how emerging standards will make your apps better, faster, and lighter.

    Keywords: JavaScript, DOM, CSS, HTML, Components, Modularity, Semantics, Data Binding
    Target audience: Front end developers.

    At 10:20am to 11:10am, Thursday 13th October

  • JVM: Titanic, COBOL and the 100 year platform

    by Ola Bini

    The Java ecosystem is experiencing an interesting time, both with large technical changes but also a changed political landscape. Oracle is a very different company than Sun, and that's been obvious from such things as how the Java Community Process has been handled, and also in interactions with projects such as Hudson and Android. So is Java still relevant? Is it the platform or the language we are interested in, and what will have to be done to future proof these technologies? This presentation will take a critical look at both the technical and political landscape of Java, and also look at what kind of changes in process might be necessary. You will leave knowing a bit better what might be coming next, and how it will impact you.

    At 10:20am to 11:10am, Thursday 13th October

  • Large & Legacy: Mature Legacy Seeking Sexy New Technology for Fun and Profit Extracting Gold from Legacy Code

    by Dave Thomas

    In this talk we describe the huge opportunity for innovation in Legacy systems! We argue there has never been a better time for creative legacy renovations which leverage new hot technologies – languages; data bases; web; cloud and Agile practices. Many talented developers turn up their noses or run away in fear from what they see as baroque environments with arcane tool chains. Talent panic often pushes for a grand rewrite using modern technology. Sadly experience shows the grand rewrite has too much risk and way too little business value. Hence given legacy investments the only option is innovation!

    We illustrate legacy innovations via several case studies spanning a wide spectrum of legacy systems including: mainframe IT; Unix products; military systems; telecom; data banks and multi-vendor EAI and EAP applications. We explain the appropriate practices, teams, and tools to achieve high impact renovations by inserting new technology. We discuss appropriate investments in training, tooling and practices for different legacy environments. We look at approaches to ensuring lasting high value relationships between legacies and bleeding edge technology.

    At 10:20am to 11:10am, Thursday 13th October

  • Solution Track: Programmer Anarchy

    by Fred George

    The Agile movement shifted the relationship between clients and developers in a profound way. In waterfall processes, clients specified large amounts of functionality, then nervously faded into the background until the fateful day-of-delivery. With Agile, developers strove to engage with clients continuously, and deliver much more frequently against their needs. A new trust was established.

    At the Forward Internet Group in London, we are implementing a second major shift between clients and developers. The trust of the clients in developers evolves into a broader trust of the developers to deliver business value without resorting to a series of well-defined stories. In essence, the business has empowered the developers to do what they think is right for the business. This model, popularized by Facebook, has several labels, but the one we prefer for our flavor is Programmer Anarchy.

    We will start with stock Agile, and begin to apply environmental factors that led us to drop "standard" Agile practices. We will also watch as well-defined Agile roles evaporate completely as other environmental factors are applied. Finally, we will arrive at Programmer Anarchy, an organization often following none of the standard Agile practices, having no BA or QA roles, and even missing any managers of programmers.

    We will summarize our environmental factors, and postulate on the required and optional factors.

    We will make bold, controversial assertions. We will back up these assertions with actual experiences.

    Keywords: Agile, post-Agile, Anarchy, Empowered, Forward, No managers, No testers, No business analysts
    Target Audience: Agile practitioners (developers and coaches) will be interested in this talk as we subscribe to the Agile principles but few of the practices. Management will find the enabling factors enlightening, giving them ideas they may apply to their existing teams.

    At 10:20am to 11:10am, Thursday 13th October

  • Browser as a Platform: Going full circle: Writing software in the browser with Cloud9 IDE

    by Rik Arends

    We have come full circle. We can now write our software entirely in the browser. Think google docs, for software development. In this talk i want to go through what is and will be possible when we move software development into the browser. Cloud hosting, collaboration and accessible everywhere. Cloud9 IDE is a complex web-application written with HTML5 and Node.JS technologies, and as developers we are using Cloud9 to create Cloud9 itself. For the more advanced developers i will also briefly dive into the technology and systems behind the IDE that make all this possible.

    Keywords: Cloud9 IDE, Node.JS, HTML5, software development, cloud, collaboration
    Target Audience: (Web) Software Developers, Architects and managers interested in developer infrastructure.

    At 11:30am to 12:20pm, Thursday 13th October

  • JVM: JVM performance optimizations at Twitter's scale

    by Attila Szegedi

    Twitter is increasingly relying on services written in either Java or Scala and running on the JVM. While JVM gives us a world-class runtime in terms of operational stability, performance, and manageability, it is still not trivial to achieve the desired performance characteristics of the programs being run on it, especially when you're dealing with services that need lots of memory, or have very low latency requirements, or both. In this talk, we'll present examples of performance problems we encountered while operating JVM-based services and the ways we solved them.

    At 11:30am to 12:20pm, Thursday 13th October

  • Large & Legacy: Remediation patterns - how to achieve low risk releases

    by Jez Humble

    Deployments gone bad are a leading cause of spending your evening or weekend hunched over a terminal instead of outdoors having fun.

    In this talk Jez Humble presents a number of patterns which reduce the risk of releases, including techniques for zero-downtime releases, roll backs, and roll forwards.

    He also discusses how to build reliable releases into your delivery process using automated provisioning, deployment, and smoke testing. By the end of the talk, you will understand how to build delivery systems - and teams - that make broken deployments a rare situation which can be fixed at the push of a button.

    At 11:30am to 12:20pm, Thursday 13th October

  • Solution Track: Demystifying Big Data with Riak Use Cases

    by Martin Schneider

    The “big” in Big Data has led to some confusion as to what the concept is all about. While some Big Data applications are leveraging huge data sets, many are not using large data sets – but rather managing very important sets of data in a distributed fashion. This session will outline how the massive migration of IT into the cloud has led to a need for distributed data platforms like Riak – and also how the distributed nature of the cloud and the Riak platform can help unlock greater potential in how businesses can capture, process and store data in new and innovative ways. Led by examples of various Riak deployments, this talk will look to show that the “Big Data” really means “Big Idea.”

    At 11:30am to 12:20pm, Thursday 13th October

  • .NET for Experts: ASP.NET MVC 3 Tips, Tricks and Hidden Gems

    by Shay Friedman

    The ASP.NET MVC framework has been around for more than two year now and has been constantly gaining popularity since then. However, despite that fact a lot of MVC developers are not aware of various hidden gems that can make their development experience much easier and nicer. In this session we will go through some of those which were added in the latest version – ASP.NET MVC 3.

    At 1:20pm to 2:10pm, Thursday 13th October

  • JavaScript: Mozilla Rhino

    by Attila Szegedi

    Mozilla Rhino is a JavaScript interpreter written in Java and running on the JVM. It's one of the oldest implementations of a non-Java language on the JVM platform, and has the distinguished honor of having a version of it being shipped in the Oracle JRE distributions as the default JVM scripting language. In this hands-on talk we'll discuss how to integrate Rhino into your JVM-based project, the Java-JavaScript bridging, as well as unorthodox features (i.e. first-class continuations) and newer features (support for CommonJS modules). You should come away from this talk with a good idea of what can Rhino do for you, and how can you easily make it do it.

    At 1:20pm to 2:10pm, Thursday 13th October

  • JVM: What's new in Spring 3.1

    by Arjen Poutsma

    Spring Framework 3.1 continues Spring's mission with a focus on flexible Java-based configuration. This session introduces foundational 3.1 facilities such as environment profiles for application contexts, feature specifications within configuration classes, and Spring’s new caching abstraction. Finally, the session will cover Spring’s ongoing support for enterprise Java specifications: in particular Servlet 3.0 support.

    Keywords: Java, Spring
    Target Audience: Spring Users

    At 1:20pm to 2:10pm, Thursday 13th October

  • Solution Track: Quality through Tools

    by Stefan Kohler

    In Software, every customer and manager is expecting a high quality product, but that is proving to be harder than it sounds. We put a lot of time and effort in writing tests to prove the software is correct and analyzing its metrics. But do we have the right tools for the job? Are we focusing on the right type of quality and can we do a better job, supported by the right tools?

    During this talk we will go into what quality means and how we can categorize quality. Per category we look at the different tools, what they can offer us and why the tools have an important role in our quality-focused infrastructure. Afterwards you will have an impression of the tools on the market which can help you achieve higher quality in your products and you will have an understanding of the purpose of those tools.

    Keywords: Quality, Process, Tools, Development Infrastructure, Continuous Integration,
    Target Audience: Senior Developers, Architects and IT Managers

    At 1:20pm to 2:10pm, Thursday 13th October

  • .NET for Experts: Developers have a mental disorder

    by Greg Young

    We as developers have many biases that often we need to take a step back from in order to gain perspective. This session will deliberately go after many of our sacred cows and show how they are really just us over-optimizing a belief. All of these lead to a single generalized rule and a strategy for how to avoid these situations.

    Keywords: IOC, DRY, Patterns, Frameworks, Insanity

    At 2:30pm to 3:20pm, Thursday 13th October

  • JavaScript: Application design, techniques and tools for large(r) JavaScript applications

    by Karl Krukow

    On the server we often speak about so-called "non-functional" requirements of a program or an architecture, e.g., maintainability, extensibility, robustness and performance. We also have technical requirements that focus more on code structure e.g., separation of concerns, modularity, loose coupling, avoiding duplication.

    On the client side, the situation is often shockingly less ambitious: often we just hack until it works (in Firefox and then we ship it). Most of the time we can manage because there is only so much JavaScript code, but as the project scales in complexity our productivity quickly declines as does quality .

    Why are there so large differences in our mindset on the front- and back-ends?

    The goal of this talk is to motivate and help you improve the technical quality of your JavaScript projects. We consider one set of techniques, design patterns and tools that this speaker has successfully used to tame the complexity beast in several large and medium scale projects.

    Keywords: JavaScript, Application Design, Complexity, Technical Quality, Model-View-Controller
    Target audience: Developers that have some experience with JavaScript programming.

    At 2:30pm to 3:20pm, Thursday 13th October

  • JVM: Above the Clouds: Introducing Akka

    by Jonas Bonér

    We believe that one should never have to choose between productivity and scalability, which has been the case with traditional approaches to concurrency and distribution. The cause of that has been the wrong tools and the wrong layer of abstraction and Akka is here to change that. Akka is using the Actors together with Transactional Memory to create a unified runtime and programming model for scaling both UP (utilizing multi-core processors) and OUT (utilizing the grid/cloud). Akka provides location and network transparency by abstracting away both these tangents of scalability by turning them into an operations and configuration task. This gives the Akka runtime freedom to do adaptive automatic load-balancing, cluster rebalancing, replication and partitioning. In this talk you will learn what Akka is and how it can be used to solve hard scalability problems. Akka is available at akka.io (under Apache 2 license).

    At 2:30pm to 3:20pm, Thursday 13th October

  • Solution Track: Exploring light-weight event sourcing

    by Erik Rozendaal

    Currently many business applications are developed using a very database centric approach, often requiring the use of complex and heavy-weight Object-Relational Mappers (ORMs) to make developers productive. Although improvements have been made (through the use of annotations, reflections, conventions) the core issues remain:

    Lack of modularity
    High coupling to the used ORM and/or underlying database, making it unnecessarily hard to use alternative (NoSQL) or multiple databases
    Hard to understand the full application, due to the complexity of the used ORM
    Mutability is in-grained, reducing the possibilities for composition and modularity
    Limited possibility for abstraction, due to limitations imposed by the ORM on used data types, etc.
    In this talk we'll explore the use of an alternative approach usingthe techniques pioneered by Domain-Driven Design (DDD) and especiallyCommand-Query Responsibility Segregation (CQRS): Event Sourcing.

    Using Event Sourcing the application can be split into two parts:

    Domain logic responsible for generating events (command side)
    Reporting, view, integration, etc. logic that consumes the generated events ("query" side).
    Through this explicit notion of change (domain events) the developer is put back in control of the application.

    Traditional languages such as Java require a lot of ceremony when implementing event sourcing, obscuring the basic simplicity. Using Scala's flexible syntax and support for light-weight classes, immutable data structures and transactional memory only very little support code is needed to build production ready applications using Event Sourcing. We can start simple and scale up to more complexity only when needed. During this talk we'll take a quick tour through thecode you might need to get started.

    The goals are to make developers productive while keeping applications understandable and maintainable. This is achieved by:

    Putting the developer back into control, instead of a framework
    Keeping infrastructure concerns out of your domain code
    Manage complexity in a scalable manner. Simple functionality ("CRUD") is easy to implement, while allowing a clear path towards complex behavior and implementation
    A simple cost model: the cost of generating, storing, and processing events is clear, as is the cost for querying derived data. With relational databases and ORMs costs are much less clear and often highly dependent on external factors such as configuration, table statistics, etc.
    Simple, clearly delineated application components that interact through well-defined interfaces, for both infrastructure and domain code
    Mostly immutable data structures with mutation controlled by using Scala's software transactional memory
    Some of these concepts were first explored in a series of blog posts and was presentated at ScalaDays in 2011 at Standford University in California.

    At 2:30pm to 3:20pm, Thursday 13th October

  • .NET for Experts: A new way to build web things with OpenRasta and OpenWrap

    by Seb Lambla

    A lot can be said about productivity when it comes to building web sites and applications. A lot more will be said about the new developer experience that OpenWrap and OpenRasta provide when combined. Come discover how dependency management, templates, tooling and resource-oriented web development combine to provide an innovative way of building sites and services, on .net, today.

    At 3:50pm to 4:40pm, Thursday 13th October

  • JavaScript: Building next-generation Web Apps with WebSocket and HTML5

    by Matthias Wessendorf

    To enable Sever-Side-Push in Web-Applications a lot of hacks (aka Comet/Bayeux) have been done in the past. The WebSocket spec fixes that by introducing a bi-directional and full duplex communication channel over a single TCP connection, which can be easily used to extend high-level protocols (such as JMS, AMQP or XMPP) to the browser. This session gives an overview of the WebSocket API and shows how to use with other HTML5 APIs to build powerful and future-proof Web-Applications.

    Keywords: WebSocket, HTML5, JavaScript, JMS, AMQP, Messaging, XMPP
    Target Audience: Developers that are interested in the capabilities of WebSocket or want to know how-to bring existing server systems, like JMS or AMQP, to the Web.

    At 3:50pm to 4:40pm, Thursday 13th October

  • JVM: Java 7 In Action: Using New Java 7 Features In Real Code

    by Stuart Marks

    This session will describe several new features introduced in Java 7, including a couple of the "Project Coin" language features. These features will be described and their benefits shown by using them to improve an actual piece of code from the JDK. The features to be shown are try-with-resources, more-precise rethrow (which are two language features introduced by Project Coin), and one of the new NIO utilities. The presentation will begin by showing a single method taken from the JDK 6 code base. It will continue by applying the features one by one using NetBeans, including an explanation of the feature and of its significance. Finally, the "before" and "after" code will be compared. The resulting code will be more concise and more correct than the original, showing that the new Java 7 features offer the opportunity to make great improvements to your Java code.

    Keywords: Java, Java SE 7, JDK 7, OpenJDK, NIO, Files, Project Coin, Exception Handling
    Target Audience: This session should be of interest to any Java programmers who are interested in using Java 7 features to improve their code.

    At 3:50pm to 4:40pm, Thursday 13th October

  • Solution Track: Introducing Scala in Java programmer territory

    by Peter Maas

    As an early adopter of Scala, I quickly noticed its vast potential and decided I want to use it on my next project. It took over two years of workshops, presentations, code examples and perseverance to actually get developers to accept it as a useful tool in their toolbox.

    During this presentation I would like to share my learnings. Not in the form of lengthy philosophical discussions about learning curves, productivity or adoption rates but by running through a collection of the various code fragments I used in my quest to interest people in learning a new language. Do built-in parser combinators help? Do Java developers miss tail recursion? How many DSLs do you implement per year? Everybody is tired of annotation-riddled Java… right? Does "just start by writing tests in Scala" work? Is interoperability with Java frameworks straightforward?

    The intention of all this is to help other people in their mission to keep innovating on a team or organizational level… and to share some of his love for the Scala language.

    Keywords: Scala, Java, Innovation, Change, Tools
    Target Audience: Developers, Architects and IT Managers

    At 3:50pm to 4:40pm, Thursday 13th October

  • Solution Track: Supercharging your Big Data project with Cassandra and Acunu

    by Tom Wilkie

    The standard Linux storage stack wasn’t designed for write-heavy big data workloads, nor is it well-suited to modern hardware: large, slow SATA disks, SSDs or many cores, leading to significant performance limitations for NOSQL stores and the applications they support.

    In this talk, Tom Wilkie will explain how Acunu's Big Data storage engine, Castle, can provide up to 100x performance improvement to Apache Cassandra, the write-optimised second generation distributed database. Castle, an open-source project, is a ground-up overhauling of RAID, file systems, and the POSIX interface, fundamentally . It is released under the GPL and runs as part of the Linux kernel. Tom will also discuss the algorithms involved and real world use cases. Expect graphs, maths and more...

    Keywords: Apache, Big data, NOSQL, Cassandra, cloud, performance
    Target Audience: software developers, system architects, system engineers, performance managers

    At 5:00pm to 5:50pm, Thursday 13th October

  • Tools: Bridging Mercurial and ClearCase using Jenkins

    by Leif Sørensen, Klaus Bucka-Lassen and Christian Wolfgang

    Changing your version control system can be a challenging operation. In this presentation we will talk about migration strategies, in particular how to bridge between 2 quite different version control systems (Mercurial, distributed VCS and ClearCase, centralized VCS), and we'll demonstrate an Open Source Jenkins-based bridge. Bridging allows for a smooth transition and furthermore has the advantage that different processes and projects can run in the world that is most convenient to them. The delivery process for instance can continue to run in ClearCase, whilst the developers increase their productivity by switching to Mercurial.

    Keywords: Distributed Version Control System, Mercurial, Subversion, ClearCase, Jenkins, migration, bridging
    Target Audience: Source Control Managers and decision makers, developers, system admins

    At 5:00pm to 5:50pm, Thursday 13th October

  • Tools: Striking back at the Android horde

    by Erik Mejer Hansen and Jonas Maturana

    Mobile devices has claimed first place from the browsers in the fragmentation game. Clearly Android is scoring most of the fragmentation points for the team but iOS isn't just idly standing by.
    In this presentation we will show you some of the nasty differences we have found between the platforms . We will introduce the BDD framework Cucumber and show you how we use it to ease the pain of testing a lot of Android devices across different manufacturers, screen sizes and Android versions.
    The presentation will also contain an introduction to lesspainful.com, our awesome and cost efficient service for testing your Android (and soon to come - iOS) apps.

    At 5:00pm to 5:50pm, Thursday 13th October

  • Evening Keynote: What They Never Told You About Innovation

    by Steve Vinoski

    Hard-core developers have a tendency to think about innovation in terms of writing cool code in cool languages, technical superiority, and implementation qualities such as performance and scalability. Over his career Steve has seen misguided notions like these confuse, upset, and even limit the careers of some very bright technical minds. In this talk, he'll discuss what innovation really is, how it works, and how truly understanding it will help you improve as a developer.

    At 6:00pm to 6:45pm, Thursday 13th October

  • Conference Party

    The Conference Party is co-hosted by Atlassian and Basho and will take place at the Irish Pub 'The Tara'.

    At 7:00pm to 11:00pm, Thursday 13th October