•  

Sessions at ÜberConf 2012 on Wednesday 20th June

Your current filters are…

  • 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

  • Using Vagrant

    by Jerry Gulla

    Vagrant is “virtualized development made easy.” If you’re looking to lower development setup time, minimize manual configuration and setup and eliminate the “it works on my machine” excuse, Vagrant is for you.

    Vagrant leverages Oracle’s VirtualBox to create virtual machines that are configured via Puppet or Chef. You can use it to create reproducible and stable environments to deploy and test your application without hassle. Don’t hack up your development workstation to try and approximate your deployment config - use Vagrant to mimic the real thing.

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

  • Why Agile Works

    by Peter Bell

    Learn why key agile practices work.

    We'll look at the underlying theory from fields as diverse as queueing theory and computer networking to show why popular agile approaches work.

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

  • Building Next Generation Apps Workshop

    by Craig Walls

    For a long while, we've built applications pretty much the same way. Regardless of the frameworks (or even languages and platforms) employed, we've packaged up our web application, deployed it to a server somewhere, and asked our users to point their web browser at it.

    But now we're seeing a shift in not only how applications are deployed, but also in how they're consumed. The cost and hassle of setting up dedicated servers is driving more applications into the cloud. Meanwhile, our users are on-the-go more than ever, consuming applications from their mobile devices more often than a traditional desktop browser. And even the desktop user is expecting a more interactive experience than is offered by simple page-based HTML sites.

    With this shift comes new programming models and frameworks. It also involves a shift in how we think about our application design. Standing up a simple HTML-based application is no longer good enough.

    In this workshop, you'll get hands-on experience building a simple, yet complete next-generation application that can be deployed in the cloud, consumed from any device, and offers a rich experience for your users.

    At 3:15pm to 6:30pm, Wednesday 20th June

  • Complexity of Complexity

    by Ken Sipe

    Of all the non-functional requirements of software development, complexity receives the least attention and seems to be the most important from a long term standard point. This talk will look at some of forces that drive complexity at the code level and at a system level and their impact. We will discuss what causes us to over look complexity, how our perception of it changes over time and what we can do about it?

    In this session we will break down the meaning of complexity and simplicity and measure the application of those means against the common software development dogma. Looking at common development trends and pressures, we'll discuss where simplify does and doesn't help. We will examine areas of development which at first glance seem to be simple (such as the creation of an equals method in Java), that end up being difficult or impossible based on normal constraints. We will example the drivers of complexity with some discussion on what you can do about it. This session will finish with a discussion around several challenges to high scale software architectures and how to keep it simple.

    At 3:15pm to 4:45pm, Wednesday 20th June

  • Continuous Enterprise Development in Java

    by Dan Allen

    Are you confident enough to push your application to production right now? Will it deploy? Integrate all the components? Keep the fail whale at bay? Confidence comes from tests. Real tests.

    Discover how to use Arquillian to develop tests that execute inside a container, use BDD and ATDD for integration and acceptance tests that your stakeholders can grok and gain the confidence you need to continue developing, knowing your application will remain standing when faced with the real world.

    At 3:15pm to 4:45pm, Wednesday 20th June

  • Enterprise Architecture Workshop

    by Mark Richards

    Enterprise Architecture (EA) is one of the most misunderstood terms in our industry. Ask 10 people what EA is and you will get 10 different answers. To better understand what EA is and how it impacts your company (and you!) we will go back in time to maritime Britain in the late 1700's. Through exercises in designing a fleet of war ships and making decisions about what to do with the fleet you will understand the various approaches, directions, and implications of EA and how necessary EA is to achieve any company goal. So put your admirals hat on and climb aboard this workshop for a maritime adventure you won't forget!

    At 3:15pm to 6:30pm, Wednesday 20th June

  • Getting Good At Groovy Workshop

    by Kenneth Kousen

    This half-day workshop will bring you up to speed on the specifics of the Groovy programming language. We'll touch on most of the major features of the language, from collections and closures to builders, AST transformations, and metaprogramming. Specific examples will cover topics from Groovy itself and will be supported by unit and integration tests and built using Gradle.

    Featured topics will include: collections, closures, operator overloading, scripts and classes, unit and integration testing, AST transformations, parsing and building both XML and JSON, and working with SQL. If time is available, other projects from the Groovy ecosystem, like Gradle, Spock, and GPars, will be included.

    A minimum comfort level with Java is assumed. Some exposure to Groovy would be helpful but not required.

    At 3:15pm to 6:30pm, Wednesday 20th June

  • Gradle Workshop (Bring a Laptop)

    by Tim Berglund and Matthew McCullough

    Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.

    Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?

    Gradle has received the attention of major open source efforts and has chalked up significant conversions by the Spring Integration, Hibernate, and Grails projects. What do these technology leaders see in this bold new build tool? They see not only a better way to build Java applications, but an extensive ecosystem of connecting to existing Ant and Maven build files while expanding the horizon of test, CI, and deployment automation in an easy manner. Join us for 90 minutes and let us take you on this same walk of discovery of the most innovative build tool you've ever seen.

    At 3:15pm to 6:30pm, Wednesday 20th June

  • NoSQL data modeling with Mongo and Neo4j

    by Peter Bell

    With NoSQL data stores you need to completely rethink how to model your data.

    In this session we'll look at the very different approaches to data modeling required for MongoDB and Neo4j.

    At 3:15pm to 4:45pm, Wednesday 20th June