•  

ÜberConf 2012 schedule

Tuesday 19th June 2012

  • Succeeding with the Apache SOA stack

    by Johan Edstrom

    Real world applications, there is more to SOA and scaling systems than just dropping some XML files into a file area and applying XSLT style-sheets, you still need some old-fashioned engineering.

    When you start building complex SOA applications, there will be a few key factors that you’ll see in larger systems, they are usually not addressed in current texts or documentation, they are complicated; but to really win with asynchronous solutions, you need to be able to:

    • Build State Machines
    • Have Conversational patterns
    • Realize how you can cluster aggregations and complex patterns
    • Know when to transact and where it really doesn’t matter.

    No matter what you plan to do in your enterprise integrations efforts, it is likely you'll at the very least peak at an ESB solution. To really achieve results while using an ESB you need to start building

    At 8:30am to 10:00am, Tuesday 19th June

  • Android Workshop

    by James Harmon

    At 9:00am to 6:00pm, Tuesday 19th June

  • Git Bootcamp - An All-Day Workshop

    by Matthew McCullough

    Distributed version control is all the rage these days, but is it worth it? It has been transformative for the dozens of organizations and thousands of developers that I've mentored on the unique implementation called Git. But don't take my word for it. Discover the joy of a version control system that works for you, not against you, in a hands-on workshop. Bring a Windows, Mac, or Linux laptop and we'll install, set up, use and bend Git into workflows that weren't even possible with the version control systems of yesteryear. Be prepared to rethink how lightweight, fast, and refreshing source code control can be. After completing this workshop you'll be able to do practical work with Git for your day job or weekend OSS hobby.

    This full day workshop takes you from the ground up with Git. By the end of the day you'll be proficient enough to contribute to an open source project using Git or to leverage inside your corporate as the canonical version control system.

    Knowledge of a version control system, whether that be CVS, SVN, ClearCase, Perforce, StarTeam or Accurev.

    At 9:00am to 6:00pm, Tuesday 19th June

  • iOS Workshop

    by Christopher Judd

    At 9:00am to 6:00pm, Tuesday 19th June

  • Programming with HTML5

    by Venkat Subramaniam

    At 9:00am to 6:00pm, Tuesday 19th June

  • Spock: I Have Been, and Always Shall Be, Your Friendly Testing Framework

    by Kenneth Kousen

    The Spock framework brings simple, elegant testing to Java and Groovy projects. It integrates cleanly with JUnit, so Spock tests can be integrated as part of an existing test suite. Spock also includes an embedded mocking framework that can be used right away.

    In this presentation, we'll look at several examples of Spock tests and review most of its capabilities, including mock objects and integration with Spring.

    At 9:00am to 10:30am, Tuesday 19th June

  • Web Security (bring a laptop)

    by Ken Sipe

    As a web application developer, most of the focus is on the user stories and producing business value for your company or clients. Increasingly however the world wide web is more like the wild wild web which is an increasingly hostile environment for web applications. It is absolutely necessary for web application teams to have security knowledge, a security model and to leverage proper security tools.

    This 1/2 day training workshop on security will provide an overview of the security landscape starting with the OWASP top ten security concerns with current real world examples of each of these attack vectors. The first session will consist of a demonstration and labs using hacker tools to get an understanding of how a hacker thinks. It will include a walk through of the ESAPI toolkit as an example of how to solve a number of these security concerns including hands-on labs using the OWASP example swingset.

    The workshop will include several hands on labs from the webgoat project in order to better understand the threats that are ever so common today.

    At 9:00am to 6:00pm, Tuesday 19th June

  • Workshop: Domain-Dr iven Design Overview

    by Paul Rayner

    At 9:00am to 6:00pm, Tuesday 19th June

  • Keynote: Tim Berglund

    by Tim Berglund

    At 7:30pm to 8:30pm, Tuesday 19th June

Wednesday 20th June 2012

  • Build Lifecycle Craftsmanship Tools

    by Matthew McCullough

    You've heard a bit about Git, Gradle, Jenkins, and Sonar, but are you putting them to use? Are you maximizing what they can offer in terms of standardized project models, faster incremental compiles, automated commit-triggered builds, and rapid source code analysis? In this intense presentation, live demonstrations will be given for all of the latest versions of the aforementioned tools and what they have to offer a highly proficient Java developer.

    Don't struggle to get the build out, functioning, and analyzed. Develop, build, analyze and deploy smartly and efficiently with a Build Lifecycle Craftsmanship approach and tooling.

    At 8:30am to 10:00am, Wednesday 20th June

  • Developer Guide to the Cloud

    by Pratik Patel

    There's a ton of options for deploying to the cloud right now. Heroku and Engineyard are among the well known Platform as a Service (PaaS) providers. What if you don't want to use these PaaS services? What if you don't know which one is better? Are they cost effective? What about private deployments into internal infrastructure? This session answers these questions with a discussion of PaaS services and setting up your own PaaS using CloudFoundry.

    At 8:30am to 10:00am, Wednesday 20th June

  • Effective Spring Workshop

    by Craig Walls

    After 9 years and several significant releases, Spring has gone a long way from challenging the then-current Java standards to becoming the de facto enterprise standard itself. Although the Spring programming model continues to evolve, it still maintains backward compatibility with many of its earlier features and paradigms. Consequently, there's often more than one way to do anything in Spring. How do you know which way is the right way?

    In this workshop, you'll get a hands-on feel for the current best approaches in Spring development. We'll start with a poorly written Spring application and work our way through it, bringing it up to speed with the techniques encouraged by the most recent versions of the Spring Framework and other Spring projects.

    At 8:30am to 10:00am, Wednesday 20th June

  • NoSQL Smackdown 2012

    by Tim Berglund

    Alternative databases continue to establish their role in the technology stack of the future—and for many, the technology stack of the present. Making mature engineering decisions about when to adopt new products is not easy, and requires that we learn about them both from an abstract perspective and from a very concrete one as well. If you are going to recommend a NoSQL database for a new project, you're going to have to look at code.

    In this talk, we'll examine three important contenders in the NoSQL space: Cassandra, MongoDB, and Neo4J. We'll review their data models, scaling paradigms, and query idioms. Most importantly, we'll work through the exercise of modeling a real-world problem with each database, and look at the code and queries we'd use to implement real product features. Come to this session for a thorough and thoroughly practical smackdown between three important NoSQL products.

    At 8:30am to 10:00am, Wednesday 20th June

  • OOP Practices

    by Ken Sipe

    For decades object-oriented programming has been sold (perhaps over sold) as the logical programming paradigm which provides “the way" to software reuse and reductions in the cost of software maintenance as if it comes for free with the simple selection of the an OO language. Even with the renewed interests in functional languages, the majority of development shops are predominately using object-oriented languages such as Java, C#, and Ruby. So most likely you are using an OO language… How is that reuse thing going? Is your organization realizing all the promises? Even as a former Rational Instructor of OOAD and a long time practitioner, I find great value in returning to the basics. This session is a return to object-oriented basics.

    This session is intended to balance the often-touted theoretical object-oriented practices with lessons from the real world. The session will start with a review of some of the basics regarding abstractions and encapsulation. Although simple concepts, we will push the boundary of how these techniques are applied. We will discuss the difference between analysis and design and how that is reflected in our code. We will also look at the limitations of Java the language as outlined in Josh Block’s book “Effective Java”. The session will go past the basics of object-oriented principles and into what our true goals of development really are.

    At 8:30am to 10:00am, Wednesday 20th June

  • Professional JavaScript development for the Java developer

    by Peter Bell

    Like it or not, with application servers like node.js and increasingly rich client MVC frameworks like backbone.js, Javascript is in your future.

    In this session we'll look deeply at the fundamental strengths and weaknesses of the language and how to become a javascript professional. We'll include information on using Jasmine for testing your Javascript.

    At 8:30am to 10:00am, Wednesday 20th June

  • Scala for the Intrigued

    by Venkat Subramaniam

    Scala is a statically typed, fully OO, hybrid functional language that provides highly expressive syntax on the JVM. It is great for pattern matching, concurrency, and simply writing concise code for everyday tasks. If you're a Java programmer intrigued by this language and are interested in exploring further, this section is for you.

    We will go through a rapid overview of the language, look at its key strengths and capabilities, and see how you can use this language for your day-to-day programming. This session will be coding intensive, so be ready for some serious Scala syntax and idioms.

    At 8:30am to 10:00am, Wednesday 20th June

  • The Who and What of Agile - Personas and Story Maps

    by Nathaniel Schutta

    Successful projects require any number of practices but if you don't know who you're building it for or what you're supposed to build, failure is a distinct possibility. How do we capture the who and what? Personas and story maps are two effective techniques that you can leverage. After discussing the basics, we'll break into small groups and you'll have a chance to actually try building a set of personas as well as a story map.

    Personas are a time tested technique to help teams understand their users and facilitate building the right interface. While personas are often backed by extensive ethnographic research, they don't require months and months of effort.

    Of course just knowing who we're building for is only part of the picture, we have to know what our users are trying to do. Wether you favor use cases, user stories or more traditional requirements documents, at the end of the day our customers are using our application to further some other goal.

    At 8:30am to 10:00am, Wednesday 20th June

  • ActiveMQ In The Trenches – Advanced Tips On Architectures and Implementations with ActiveMQ

    by Jeff Genender

    Whether its an ESB, JavaEE, or an eventing system, Messaging is becoming the foundation for many mission critical development efforts and a common platform for many architectures. Implementing a MQ may seem simple enough, but once it runs in production, you may find that the container is unstable with seizing queues, out of memory problems, slow performance, and messages that just seem to get stuck. 75% of the time this is due to misconfiguration, and 25% its due to poor implementation and architecture.

    In this session Jeff will share advanced tips, which he runs into with many of his clients that can apply to just about any MQ, but will have an emphasis on the most widely used, ActiveMQ. He will cover:

    • common problems
    • implementation tips
    • architecture design principals for both producers and consumers
    • designs for high load systems

    At 10:30am to 12:00pm, Wednesday 20th June

  • Connected Data with Neo4j

    by Tim Berglund

    Neo4j is an open-source, enterprise-class database with a conventional feature set and a very unconventional data model. Like the databases we're already used to, it offers support for Java, ACID transactions, and a feature-rich query language. But before you get too comfortable, you have to wrap your mind around its most important feature: Neo4j is a graph database, built precisely to store graphs efficiently and traverse them more performantly than relational, document, or key/value databases ever could.

    Neo4j is an obvious fit to anyone who thinks they have a graph problem to solve, but this is not many people. It turns out that the most interesting property of Neo4j is its architectural agenda. It wants you to think of the entire world as a graph—as a set of connected information resources. Steeped in the thinking of resource oriented architecture, this NoSQL database wants to change the way you look at your world, and unlock new value in your data as a result.

    At 10:30am to 12:00pm, Wednesday 20th June

  • Effective Spring Workshop

    by Craig Walls

    After 9 years and several significant releases, Spring has gone a long way from challenging the then-current Java standards to becoming the de facto enterprise standard itself. Although the Spring programming model continues to evolve, it still maintains backward compatibility with many of its earlier features and paradigms. Consequently, there's often more than one way to do anything in Spring. How do you know which way is the right way?

    In this workshop, you'll get a hands-on feel for the current best approaches in Spring development. We'll start with a poorly written Spring application and work our way through it, bringing it up to speed with the techniques encouraged by the most recent versions of the Spring Framework and other Spring projects.

    At 10:30am to 12:00pm, Wednesday 20th June

  • Hands on Cloud Storage

    by Adrian Cole

    You may have heard about cloud storage offerings such as Amazon S3, OpenStack or Microsoft Azure. While conceptually similar, these offerings have different apis and behaviour that place the "write once (run|test) anywhere" mantra at risk. The jclouds open source java and clojure library aims to eliminate cloud vendor lock-in, exposing easy to use, portable, and powerful APIs. Bring your laptop, armed with latest revs of Eclipse, git, and maven, and we'll walk through getting you setup to hack jclouds java or clojure BlobStore applications in a collaborative fashion.

    During this workshop, you'll discover the value and key gotchas of cloud storage providers first hand. By the end of this session, you'll be writing testable code that creates and manages containers and

    At 10:30am to 3:00pm, Wednesday 20th June

  • JavaScript Libraries You Aren't Using... Yet

    by Nathaniel Schutta

    You're all over jQuery - you write plugins in your sleep - and before that, you were a Prototype ninja. Your team treats JavaScript like a first class citizen, you've even written more tests than Kent Beck. Is that all there is in the land of the JavaScript developer? Believe it or not, the JavaScript party hasn't stopped. What other libraries are out there? What do they offer? This talk will survey the field of modern JavaScript libraries getting you up to speed on what's new. We'll dive in just deep enough to whet your appetite on a wide variety of libraries such as Backbone, Underscore, Zepto and more.

    At 10:30am to 12:00pm, Wednesday 20th June

  • Networks for Programmers

    by Ken Sipe

    At 10:30am to 12:00pm, Wednesday 20th June

  • Sonar Code Metrics Workshop (Bring a Laptop)

    by Matthew McCullough

    You're serious about improving the quality of your code base, but with 10,000 lines of code, where do you start and how do you ensure the greatest ROI for the re-work your team members will perform?

    Sonar is an open source tool that brings together the best of breed static and dynamic analysis of Java projects. The result is a unified view of problematic areas of your code on a time-line basis, allowing the team to attack the problems with the best ROI, and maintain a more watchful eye for positive and risky trends in the codebase in the future.

    This workshop will get you up and running with Sonar on your laptop and analyzing the source code of a project in under 90 minutes.

    At 10:30am to 3:00pm, Wednesday 20th June

  • The Lean Startup - for Enterprise Software Developers

    by Peter Bell

    Intuit and even the US government want to be "lean startups".

    Learn how businesses of any size can improve the effectiveness and efficiency of their software development processes using lean startup principles like Minimum Viable Product, Validated Learning and Metrics Driven Development.

    At 10:30am to 12:00pm, Wednesday 20th June

  • Workshop: Scala Koans - A new and fun way to learn a Scala programming language

    by Nilanjan Raychaudhuri and Venkat Subramaniam

    At 10:30am to 3:00pm, Wednesday 20th June

  • Designing for Mobile

    by Nathaniel Schutta

    The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This talk will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

    The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This talk will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

    At 1:30pm to 3:00pm, Wednesday 20th June

  • Enterprise/Application Architecture a Case Study: Virtualtourist.com

    by Todd Ellermann

    Imagine you are the new CTO for virtualtourist.com and just been acquired by Tripadvisor. You are given 4 mid level software engineers 8 million monthly unique visitors, and the following running environment: No automated deployment, PHP batch jobs, PHP forum, Java servlet based home grown framework, WebObjects server talking to JBOSS EJB (Entity Beans {CMP}), and everyone writes and tests code on the "staging" server. Now what?

    In this session I will walk through the various enterprise and application architectural decisions that we faced and the give the audience the chance to make choices for themselves.

    At 1:30pm to 3:00pm, Wednesday 20th June

  • Neo4j Workshop

    by Tim Berglund

    At 1:30pm to 3:00pm, Wednesday 20th June

  • Securing the Modern Web with OAuth

    by Craig Walls

    Web security is nothing new. As users of the web, we're all accustomed to entering our usernames and fumbling to recall our passwords when trying to access private data on one of the many online services we use. But while traditionally web security could be described as a two-party process between a web application and a user, the modern web involves applications that seek to access other applications on behalf of their users. This presents some new challenges in keeping a user's sensitive data secure while still allowing a the third party application to access it.

    OAuth is an open standard for authorization, supported by many online services, that allows one application to access a user's data in another application, all while giving the user control of what information is shared.

    In this session, we'll look at OAuth, focusing on OAuth 2, from the perspective of an application that consumes an OAuth-secured API as well as see how to use OAuth to secure your own APIs.

    At 1:30pm to 3:00pm, Wednesday 20th June