ÜberConf Westin Westminster June 19 - 22, 2012

Tue, Jun. 19, 2012 Westminster I Westminster II Standley I Standley II Lake House Cotton Creek Meadowbrook I Meadowbrook II Windsor 8:00 - 9:00 AM EARLY REGISTRATION: PRE-CONFERENCE WORKSHOP ATTENDEES ONLY - WESTMINSTER BALLROOM FOYER 9:00 - 6:00 PM Programming iOS Workshop Android Web Application Domain-Driven Git Bootcamp with HTML 5 Christopher Judd Workshop Security Design (DDD) - An All-Day Venkat James Harmon Workshop Workshop Workshop Subramaniam Ken Sipe Paul Rayner Matthew McCullough 5:00 - 6:30 PM MAIN UBERCONF REGISTRATION - WESTMINSTER BALLROOM FOYER 6:30 - 8:30 PM DINNER/KEYNOTE - WESTMINSTER BALLROOM 3/4 7:30 - 8:30 PM Keynote: by Tim Berglund 8:30 - 10:30 PM OPENING NIGHT OUTDOOR RECEPTION - SOUTH COURTYARD ÜberConf Westin Westminster June 19 - 22, 2012

Wed, Jun. 20, 2012 Westminster I Westminster II Standley I Standley II Lake House Cotton Creek Meadowbrook I Meadowbrook II Windsor 7:00 - 8:00 AM 5K FUN RUN & POWER WALK - MEET IN LOBBY 7:30 - 8:30 AM BREAKFAST & LATE REGISTRATION - WESTMINSTER BALLROOM 3/4 8:30 - 10:00 AM Succeeding Scala for Professional Effective Spring NoSQL Build Lifecycle Developer guide OOP Principles The Who and with the Apache the Intrigued Javascript Workshop Smackdown 2012 Craftsmanship to the cloud Ken Sipe What of Agile - SOA stack Venkat development Craig Walls Tim Berglund Tools Pratik Patel Personas and Johan Edstrom Subramaniam for the Java Matthew Story Maps developer McCullough Nathaniel Schutta Peter Bell 10:00 - 10:30 AM MORNING BREAK 10:30 - 12:00 PM ActiveMQ In JavaScript Effective Spring Connected Sonar Code Hands on The Lean Startup The Trenches Libraries You Workshop Data with Neo4j Metrics Workshop Cloud Storage - for Enterprise – Aren't (continued) Tim Berglund (Bring a Laptop) Adrian Cole Software Advanced Using...Yet Craig Walls Matthew Developers Tips On Nathaniel Schutta McCullough Peter Bell Architectures and Implementations with ActiveMQ Jeff Genender 12:00 - 1:00 PM LUNCH & OUTDOOR BREAK - WESTMINSTER BALLROOM 3/4 & NORTH COURTYARD 1:00 - 1:30 PM Keynote: Billy Williams 1:30 - 3:00 PM Enterprise/ Scala Koans - A Designing Securing the Neo4J Workshop Sonar Code Hands on Why Agile Works Using Vagrant Application new and fun way for Mobile Modern Web Tim Berglund Metrics Workshop Cloud Storage Peter Bell Jerry Gulla Architecture a to learn a Scala Nathaniel Schutta with OAuth (Bring a Laptop) (continued) Case Study: programming Craig Walls (continued) Adrian Cole Virtualtourist.com language (Bring Matthew Todd Ellermann a Laptop) McCullough (continued) Nilanjan Raychaudhuri 3:00 - 3:15 PM BREAK 3:15 - 4:45 PM Enterprise Complexity Building Next The Mobile App NoSQL data Groovy Workshop Programming Gradle Workshop Continuous Architecture of Complexity Generation Smackdown: modeling with Kenneth Kousen Concurrency (Bring a Laptop) Enterprise Workshop Ken Sipe Apps Workshop Native Apps vs. Mongo and Neo4j with Akka Matthew Development Mark Richards Craig Walls The Mobile Web Peter Bell Venkat McCullough and in Java Nathaniel Schutta Subramaniam Tim Berglund Dan Allen and Nilanjan Raychaudhuri 4:45 - 5:00 PM BREAK 5:00 - 6:30 PM Integration Agile Engineering Building Next Mobile MongoDB: Groovy Workshop Programming Gradle Workshop WebSockets Architecture: Practices Generation Performance Tips Scaling Web (continued) Concurrency with (Bring a Laptop) Overview Concepts Neal Ford Apps Workshop n' Tricks Applications Kenneth Kousen Akka (continued) (continued) Johnny Wey and Patterns (continued) Pratik Patel Ken Sipe Venkat Matthew Mark Richards Craig Walls Subramaniam McCullough and and Nilanjan Tim Berglund Raychaudhuri 6:30 - 8:30 PM DINNER/KEYNOTE w/VENKAT SUBRAMANIAM- WESTMINSTER BALLROOM 3/4 8:30 - 10:00 PM The Art of Applying Groovy Software Hacking Your Visualizing Data Apponomics RSpec for Forge Ahead Gradle Plugin Problem Solving Closures for fun Craftsmanship: Brain for Fun on the Web Pratik Patel API Testing with Java Best Practices Mark Richards and productivity Positioning, and Profit Brian Sletten Jerry Gulla Development Luke Daley Venkat Patterns and Nathaniel Schutta Dan Allen Subramaniam Practices Peter Bell ÜberConf Westin Westminster June 19 - 22, 2012

Thu, Jun. 21, 2012 Westminster I Westminster II Standley I Standley II Lake House Cotton Creek Meadowbrook I Meadowbrook II Windsor 8:00 - 9:00 AM BREAKFAST - WESTMINSTER BALLROOM 3/4 9:00 - 10:30 AM AMQP: From Hacking HTML5 Spring Data What's Clojure Workshop Spock: Logical Agile Recipes Portable Concept To Code Workshop Nathaniel Schutta Workshop New In Neal Ford Testing for Peter Bell Cloud Storage Mark Richards Ken Sipe Craig Walls Grails 2.0? Enterprise with jclouds Jeff Scott Brown Applications Adrian Cole Kenneth Kousen 10:30 - 11:00 AM MORNING BREAK 11:00 - 12:30 PM High Performance Hacking HTML5 with Spring Data A Thorough Clojure Workshop Next Level Spock Leading DIY NoSQL: Messaging Workshop Play/Scala, Workshop Introduction (continued) Luke Daley Technical Change Spinning Mark Richards (continued) CoffeeScript (continued) To Grails 3 Neal Ford Nathaniel Schutta up services Ken Sipe and Jade Craig Walls Jeff Scott Brown with Whirr Matt Raible Adrian Cole 12:30 - 1:30 PM LUNCH - WESTMINSTER BALLROOM 3/4 1:30 - 3:00 PM Know Your Git Workshop Mastering Security Inception A Thorough Web Application Getting Practicing Introduction Enemy: Matthew JavaScript Frank Kim Introduction Design from a Agile Right! Continuous to Kotlin Understanding McCullough Venkat To Grails 3 Developer's Ken Sipe Delivery on Andrey Breslav AntiPatterns Subramaniam (continued) perspective the Cloud Mark Richards Jeff Scott Brown Raju Gandhi James Ward 3:00 - 3:15 PM BREAK 3:15 - 4:45 PM Advanced SOA Mockito Automated How to Use jRuby Workshop Applying Git: Grails Grown Architecture: NetKernel: architectures Workshop testing tools Secure HTTP Raju Gandhi 10 Power Tips Up: How do we Non-Functional Making IT using Open Szczepan Faber and techniques Headers Matthew get sub 500m/ Requirements Matter Again Source for JavaScript Frank Kim McCullough sec response? Ken Sipe Brian Sletten Heath Kesler Venkat Todd Ellermann Subramaniam 4:45 - 5:00 PM BREAK 5:00 - 6:30 PM Patterns Mockito Build Your Own Mobile jRuby Workshop Play vs. Grails Managing Career.Next NetKernel: and Agile Workshop Technology Development (continued) Smackdown JavaScript Jerry Gulla Making IT Matter Development: (continued) Radar Workshop Options 2014 Raju Gandhi Matt Raible and with Gradle Again (continued) Emergent Design Szczepan Faber for Architects Pratik Patel James Ward Luke Daley Brian Sletten Scott Bain Neal Ford 6:30 - 7:30 PM DINNER - WESTMINSTER BALLROOM 3/4 7:30 - 8:30 PM Keynote: by Matthew McCullough 9:00 - 11:59 PM UBERCONF 2012 PARTY @ DAVE & BUSTERS! ÜberConf Westin Westminster June 19 - 22, 2012

Fri, Jun. 22, 2012 Westminster I Westminster II Standley I Standley II Lake House Cotton Creek Meadowbrook I Meadowbrook II Windsor 8:00 - 9:00 AM BREAKFAST - WESTMINSTER BALLROOM 3/4 9:00 - 10:30 AM Domain Sustainable Advanced Hadoop Continuous Messaging Grails in the Introduction Patterns for Modeling Using Test-Driven JavaScript Tim Berglund Delivery All-day in the cloud - Enterprise: Can to Solr Efficient Build Domain-Driven Development for Java Devs Workshop, Pt. why do i care? I? Should we? Erik Hatcher Promotion Design (DDD) Scott Bain Pratik Patel 1: Deployment Oleg Todd Ellermann Hans Dockter Paul Rayner Pipelines Zhurakousky Neal Ford 10:30 - 10:45 AM MORNING BREAK 10:45 - 12:15 PM Strategic Design Functionally Intelligently Hadoop Continuous Enterprise Creating DSLs Solr Recipes The User Story Using DDD Testing Modern Organizing (continued) Delivery All-day Integration in Groovy Erik Hatcher Lifecycle: Paul Rayner Web Applications Large JavaScript Tim Berglund Workshop, Pt. Patterns with Venkat Just Enough, with Geb Projects 1: Deployment Spring Integration Subramaniam Just In Time Luke Daley Johnny Wey Pipelines Oleg Charles Bradley (continued) Zhurakousky Neal Ford 12:15 - 1:30 PM OUTDOOR BREAK & LUNCH - WESTMINSTER BALLROOM 3/4 & NORTH COURTYARD 1:30 - 3:00 PM Using DDD Enterprise Acceptance Semantic Web Continuous Enterprise Creating DSLs Solr Recipes Anxious Cows Patterns for Security API and Story Workshop Delivery All- Integration in Groovy (continued) in ClojureScript Supple Design library from Testing Patterns Brian Sletten day Workshop Patterns with (continued) Erik Hatcher Tim Berglund Paul Rayner OWASP Charles Bradley Pt 2: Agile Spring Integration Venkat Ken Sipe Infrastructure (continued) Subramaniam Neal Ford Oleg Zhurakousky 3:00 - 3:15 PM AFTERNOON BREAK 3:15 - 4:45 PM Aggregate- Client-Side MVC: Decision Semantic Web Continuous Developer Running Java, Power Solr: JRuby in the Oriented Web and Mobile Making in Workshop Delivery All- Productivity Play! & Performance, Enterprise Modeling with Development Software Teams (continued) day Workshop Power Ups Scala Apps Scaling, and Jerry Gulla DDD and NoSQL with Spine.js Tim Berglund Brian Sletten Pt 2: Agile on Mac OSX on the Cloud Relevancy Paul Rayner Craig Walls Infrastructure Matthew Workshop Erik Hatcher (continued) McCullough James Ward Neal Ford 4:45 - 5:00 PM CONCLUSION OF UBERCONF 2012 - THANK YOU FOR ATTENDING! ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Tuesday, Jun. 19 8:00 - 9:00 AM : EARLY REGISTRATION: PRE-CONFERENCE WORKSHOP ATTENDEES ONLY - WESTMINSTER BALLROOM FOYER 9:00 - 6:00 PM - Sessions Session #1 @ Standley I : Programming with HTML 5 by Venkat Subramaniam Developing a rich user interface for web applications is both exciting and challenging. HTML 5 has closed the gaps and once again brought new vibe into programming the web tier. Come to this session to learn how you can make use of HTML 5 to create stellar applications.

Session #2 @ Standley II : iOS Workshop by Christopher Judd During the all day iOS hands-on tutorial, we will do soup to nuts iOS development. We will start with how to use XCode and build a universal application for iPhone and iPad using a variety of common APIs. We will finish up talking about and demoing how to prepare and deploy to the app store.

Session #3 @ Cotton Creek : Android Workshop by James Harmon Spend a day learning how to develop native apps on the world's most popular smartphone platform. You'll get hands on experience developing a native Android app that will use most of the major components available in the framework. The workshop will be taught using Android Studio with the new Gradle build system.

Session #4 @ Meadowbrook I : Web Application Security Workshop 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 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.

Session #5 @ Meadowbrook II : Domain-Driven Design (DDD) Workshop by Paul Rayner Build your awareness of the basic concepts and value of Domain-Driven Design (DDD) in one day through group exercises, paired code walkthroughs, lecture and games. Understand what DDD is and when and why it is valuable to software intensive organizations. Overview the basic principles and processes needed develop the useful sort of models, tie them into implementation and business analysis, and place them within a viable, realistic strategy.

Session #6 @ Windsor : 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

5:00 - 6:30 PM : MAIN UBERCONF REGISTRATION - WESTMINSTER BALLROOM FOYER 6:30 - 8:30 PM : DINNER/KEYNOTE - WESTMINSTER BALLROOM 3/4 Keynote: Then Our Buildings Shape Us - Tim Berglund 8:30 - 10:30 PM : OPENING NIGHT OUTDOOR RECEPTION - SOUTH COURTYARD

Wednesday, Jun. 20 7:00 - 8:00 AM : 5K FUN RUN & POWER WALK - MEET IN LOBBY 7:30 - 8:30 AM : BREAKFAST & LATE REGISTRATION - WESTMINSTER BALLROOM 3/4 8:30 - 10:00 AM - Sessions Session #7 @ Westminster I : 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. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #8 @ Westminster II : 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.

Session #9 @ Standley I : 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.

Session #10 @ Standley II : Effective Spring Workshop by Craig Walls After over 10 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?

Session #11 @ Lake House : 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.

Session #12 @ Cotton Creek : 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.

Session #13 @ Meadowbrook I : 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.

Session #14 @ Meadowbrook II : OOP Principles 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.

Session #15 @ Windsor : 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.

10:00 - 10:30 AM : MORNING BREAK 10:30 - 12:00 PM - Sessions Session #16 @ Westminster I : 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.

Session #17 @ Standley I : 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 ÜberConf -Session Schedule- (event schedule as of October 14, 2020) 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.

Session #18 @ Standley II : Effective Spring Workshop (continued) by Craig Walls After over 10 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?

Session #19 @ Lake House : 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.

Session #20 @ Cotton Creek : 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.

Session #21 @ Meadowbrook I : 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.

Session #22 @ Windsor : The Lean Startup - for Enterprise Software Developers by Peter Bell Intuit and even the US government want to be "lean startups".

12:00 - 1:00 PM : LUNCH & OUTDOOR BREAK - WESTMINSTER BALLROOM 3/4 & NORTH COURTYARD Keynote: $escTool.xml(${presentation.title}) - Billy Williams 1:30 - 3:00 PM - Sessions Session #23 @ Westminster I : 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?

Session #24 @ Westminster II : Scala Koans - A new and fun way to learn a Scala programming language (Bring a Laptop) (continued) by Nilanjan Raychaudhuri Have you looked into Scala? Scala is a new object-functional JVM language. It is statically typed and type inferred. It is multi-paradigm and supports both object oriented and functional programming. And it happens to be my favorite programming language. If you are interested in Scala, how you are planning to learn Scala? You probably are going to pick up a book or two and follow through some examples. And hopefully some point down the line you will learn the language, its syntax and if you get excited enough maybe build large applications using it. But what if I tell you that there is a better path to enlightenment in order to learn Scala?

Session #25 @ Standley I : 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. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #26 @ Standley II : 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.

Session #27 @ Lake House : Neo4J Workshop by Tim Berglund TBA

Session #28 @ Cotton Creek : Sonar Code Metrics Workshop (Bring a Laptop) (continued) 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.

Session #29 @ Meadowbrook I : Hands on Cloud Storage (continued) 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.

Session #30 @ Meadowbrook II : Why Agile Works by Peter Bell Learn why key agile practices work.

Session #31 @ Windsor : 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.

3:00 - 3:15 PM : BREAK 3:15 - 4:45 PM - Sessions Session #32 @ Westminster I : 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!

Session #33 @ Westminster II : 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?

Session #34 @ Standley I : 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.

Session #35 @ Standley II : The Mobile App Smackdown: Native Apps vs. The Mobile Web by Nathaniel Schutta Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing ÜberConf -Session Schedule- (event schedule as of October 14, 2020) but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.

Session #36 @ Lake House : NoSQL data modeling with Mongo and Neo4j by Peter Bell With NoSQL data stores you need to completely rethink how to model your data.

Session #37 @ Cotton Creek : 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.

Session #38 @ Meadowbrook I : Programming Concurrency with Akka by Venkat Subramaniam and Nilanjan Raychaudhuri I call the JDK concurrency API as the synchronize and suffer model. Fortunately, you don't have to endure that today. You have some nice options, brought to prominence on the JVM by Scala and Clojure.

Session #39 @ Meadowbrook II : Gradle Workshop (Bring a Laptop) by Matthew McCullough and Tim Berglund 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?

Session #40 @ Windsor : 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.

4:45 - 5:00 PM : BREAK 5:00 - 6:30 PM - Sessions Session #41 @ Westminster I : Integration Architecture: Concepts and Patterns by Mark Richards Very few applications stand alone anymore. Rather, they are combined together to form holistic systems that perform complex business functions. One of the big challenges when integrating applications is choosing the right integration styles and usage patterns. In this session we will explore various techniques and patterns for application integration, and look at what purpose and role open source integration hubs such as Camel and Mule play in the overall integration architecture space (and how to properly use them!). Through actual integration scenarios and coding examples using Apache Camel you will learn which integration styles and patterns to use for your system and how open source integration hubs play an part in your overall integration strategy

Session #42 @ Westminster II : Agile Engineering Practices by Neal Ford Most of the time when people talk about agile software development, they talk about project and planning practices and never mention actual development practices. This talk delves into best development practices for agile projects, covering all of its aspects.

Session #43 @ Standley I : Building Next Generation Apps Workshop (continued) 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.

Session #44 @ Standley II : Mobile Performance Tips n' Tricks by Pratik Patel Creating a web site, web app, or native app for mobile use presents a special set of challenges. Specifically, developers and designers should be zoned into the techniques for usability - and usability can be enhanced greatly by taking performance elements into consideration up-front. In this session, we explore the many performance tips and tricks you can employ to make your website or web app or native app shine on mobile devices. This is an advanced course that discusses issues such as image loading, JavaScript performance, and wireless latency. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #45 @ Lake House : MongoDB: Scaling Web Applications by Ken Sipe Google “MongoDB is Web Scale” and prepare to laugh your tail off. With such satire, it easy to pass off MongoDB as a passing joke… but that would be a mistake. The humor is in the fact there seems to be no end to those who parrot the MongoDB benefits without a clue. This session is about getting a clue.

Session #46 @ Cotton Creek : Groovy Workshop (continued) 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.

Session #47 @ Meadowbrook I : Programming Concurrency with Akka (continued) by Venkat Subramaniam and Nilanjan Raychaudhuri I call the JDK concurrency API as the synchronize and suffer model. Fortunately, you don't have to endure that today. You have some nice options, brought to prominence on the JVM by Scala and Clojure.

Session #48 @ Meadowbrook II : Gradle Workshop (Bring a Laptop) (continued) by Matthew McCullough and Tim Berglund 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?

Session #49 @ Windsor : WebSockets Overview by Johnny Wey Ever wanted to send a realtime "push" message from a server to a client running in a browser? Send messages from one client to another? Write realtime games and other demanding applications using JavaScript?

6:30 - 8:30 PM : DINNER/KEYNOTE w/VENKAT SUBRAMANIAM- WESTMINSTER BALLROOM 3/4 8:30 - 10:00 PM - Sessions Session #50 @ Westminster I : The Art of Problem Solving by Mark Richards As Tech Leaders, we are presented with problems and work to find a way to solve them, usually through technology. In my opinion this is what makes this industry so much fun. Let's face it - we all love challenges. Sometimes, however, the problems we have to solve are hard - really hard. So how do you go about solving really hard problems? That's what this session is about - Heuristics, the art of problem solving. In this session you will learn how to approach problems and also learn techniques for solving them effectively. So put on your thinking cap and get ready to solve some easy, fun, and hard problems.

Session #51 @ Westminster II : Applying Groovy Closures for fun and productivity by Venkat Subramaniam You can program higher order functions in Groovy quite easily using closures. But the benefits of closures go far beyond that. Groovy has a variety of capabilities hidden in closures.

Session #52 @ Standley I : Software Craftsmanship: Positioning, Patterns and Practices by Peter Bell None of us want to think of ourselves as "cowboy coders", but what does it mean to be a software craftsman, and is it a useful distinction? If so, what are some of the best patterns for honing our craft?

Session #53 @ Standley II : Hacking Your Brain for Fun and Profit by Nathaniel Schutta The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.

Session #54 @ Lake House : Visualizing Data on the Web by Brian Sletten We are far from the early days of ugly HTML. We have sophisticated visualization tools available to us now to help our users consume complex data in attractive and informative ways. Come hear how you can adopt these visualization systems (calling them libraries is inappropriate) today. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #55 @ Cotton Creek : Apponomics by Pratik Patel You've got a great idea for a mobile app. You have a team together. You're building the killer app. Do you know enough about the various app stores to know what to do next? How about pricing strategies for iOS and Android? Have you thought about the Nook Color and Amazon Fire? In this session, I'll bring my experience as CTO of TripLingo, an awesome company developing foreign language learning apps. TripLingo has been featured on the iOS store a dozen times, as well as the Android market and Nook store.

Session #56 @ Meadowbrook I : RSpec for API Testing by Jerry Gulla We all know the benefits of Service Oriented Architecture (SOA), but it’s not without it’s pitfalls. If you’re providing an API, wether for internal or external use, testing it is essential. Even if you only consume other APIs, testing them to make sure they didn’t change or break can be critical. RSpec is Behavior Driven Development (BDD) testing framework. Although RSpec was born out of the Ruby community, it’s not limited to testing Ruby APIs! It turns out it’s a great way to test ALL your APIs, regardless of language.

Session #57 @ Meadowbrook II : Forge Ahead with Java Development by Dan Allen How many times have you wanted to start a new project in Java, but struggled with copying and pasting all the pieces together? Has the Maven archetype syntax left you with your eyes crossed? Everyone else is talking about Rails, Grails, and Roo, and you're left thinking, "I wish it were that easy for Java EE." Well, it is!

Session #58 @ Windsor : Gradle Plugin Best Practices by Luke Daley One of Gradle's attractive features is that plugins are extremely simple to write and can do anything. Gradle plugins can add new functionality, enhance existing functionality or even remove undesired functionality. If you've ever wanted to write a Gradle plugin, or are interested in the deep details of plugins, then this session is for you. In this session we'll explore some fundamental concepts that can be used as guidelines when developing plugins and new Gradle functionality, and the role of plugins and how they can be used.

Thursday, Jun. 21 8:00 - 9:00 AM : BREAKFAST - WESTMINSTER BALLROOM 3/4 9:00 - 10:30 AM - Sessions Session #59 @ Westminster I : AMQP: From Concept To Code by Mark Richards Advanced Message Queuing Protocol (AMQP) is a new way of looking at messaging that is quickly gaining in popularity and use, particularly in the financial services industry. Unlike JMS, which defines a standard API across platforms, AMQP defines a standard wire-level protocol across languages and platforms, finally making true cross-platform messaging a reality. In this session I will start by describing exactly what AMQP is and what problems it specifically solves (that JMS can't!). I will then describe the basic architecture and how AMQP routes messages, and then, through live interactive coding, demonstrate how to build a simple producer and consumer using RabbitMQ to send and receive AMQP messages. We will then take a brief look at other aspects of AMQP such as performance, load balancing, and handling undelivered messages.

Session #60 @ Westminster II : Hacking Workshop by Ken Sipe The net has cracks and crackers are among us. With all the news of security failures, it can be a challenge to know what is FUD and what is really at risk and to what extent. This session isn’t about hacking an application together nor is it about coding a solution. It is about looking at the network and network infrastructure and understanding some of its weaknesses. This workshop is a 50% mix of lecture / discussion and hands on attacking in order to best understand the challenges.

Session #61 @ Standley I : HTML5 by Nathaniel Schutta Interested in HTML5? Want a change to play around with the latest and greatest in web app development? This workshop is for you! We'll cover feature detection, web forms, the new HTML elements, take a spin around the canvas, and we'll finish up with offline/local storage and web sockets.

Session #62 @ Standley II : Spring Data Workshop by Craig Walls In recent years, there has been a renewed interest in how data is stored. Although RDBMS has long been treated as a one-size-fits-all solution for data storage, a new breed of datastores has arrived to offer a best-fit solution. Key-value stores, column stores, document stores, graph databases, as well as the traditional relational database are options to consider. With these new data storage options come new and different ways of interacting with data. Even though all of these data storage options offer Java APIs, they are widely different from each other and the learning curve can be quite steep. Even if you understand the concepts and benefits of each database type, there's still the huge barrier of understanding how to work with each database's individual API. Spring Data is a project that makes it easier to build Spring-powered applications that use new data, offering a reasonably consistent programming model regardless of which type of database you choose. In addition to supporting the new "NoSQL" databases such as document and graph databases, Spring Data also greatly simplifies working with RDBMS-oriented datastores using JPA.

Session #63 @ Lake House : What's New In Grails 2.0? by Jeff Scott Brown In this session, Grails core developer Jeff Brown will deliver an update on the latest and greats features of the Grails framework - a dynamic, web application framework based on the Groovy language and designed for Spring. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #64 @ Cotton Creek : Clojure Workshop by Neal Ford In an increasingly crowded field of languages, Clojure stands alone. It is a dynamic, functional, high performance dialect of Lisp that runs on both the JVM and CLR. The creator cast aside assumptions from both the Lisp and Java communities to create a remarkable language implementation.

Session #65 @ Meadowbrook I : Spock: Logical Testing for Enterprise Applications 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.

Session #66 @ Meadowbrook II : Agile Recipes by Peter Bell You don't need to "do scrum" or "implement lean" to be agile.

Session #67 @ Windsor : Portable Cloud Storage with jclouds by Adrian Cole Key/value stores are the most common storage offerings in the cloud today. While conceptually similar, BlobStores present different programming models and consistency models that must be considered in application design. After this session, you'll understand these differences, and know how to use jclouds to avoid cloud lock-in and increase testability without restricting access to cloud-specific features.

10:30 - 11:00 AM : MORNING BREAK 11:00 - 12:30 PM - Sessions Session #68 @ Westminster I : High Performance Messaging by Mark Richards If you need your messaging-based systems to be fast - really fast - then this is the session to attend. In this session I will introduce and demonstrate some relatively simple tips and tricks to get the best performance and throughput from your messaging system. Through live code demonstrations I will show the impact of both configuration and design changes using Spring JMS, ActiveMQ, and RabbitMQ. So buckle up those seat belts - its going to be a fast ride.

Session #69 @ Westminster II : Hacking Workshop (continued) by Ken Sipe The net has cracks and crackers are among us. With all the news of security failures, it can be a challenge to know what is FUD and what is really at risk and to what extent. This session isn’t about hacking an application together nor is it about coding a solution. It is about looking at the network and network infrastructure and understanding some of its weaknesses. This workshop is a 50% mix of lecture / discussion and hands on attacking in order to best understand the challenges.

Session #70 @ Standley I : HTML5 with Play/Scala, CoffeeScript and Jade by Matt Raible This session shows you how to use some of the hottest technologies today to build a webapp, an API and a mobile application to track fitness workouts. Using HTML5 technologies (specifically geo and local storage), I’ll show you how you can track the time, distance and music you listened to while exercising. Play with Scala is used for the backend and services, while CoffeeScript and Jade are used for the front-end templating and Ajax communication.

Session #71 @ Standley II : Spring Data Workshop (continued) by Craig Walls In recent years, there has been a renewed interest in how data is stored. Although RDBMS has long been treated as a one-size-fits-all solution for data storage, a new breed of datastores has arrived to offer a best-fit solution. Key-value stores, column stores, document stores, graph databases, as well as the traditional relational database are options to consider. With these new data storage options come new and different ways of interacting with data. Even though all of these data storage options offer Java APIs, they are widely different from each other and the learning curve can be quite steep. Even if you understand the concepts and benefits of each database type, there's still the huge barrier of understanding how to work with each database's individual API. Spring Data is a project that makes it easier to build Spring-powered applications that use new data, offering a reasonably consistent programming model regardless of which type of database you choose. In addition to supporting the new "NoSQL" databases such as document and graph databases, Spring Data also greatly simplifies working with RDBMS-oriented datastores using JPA.

Session #72 @ Lake House : A Thorough Introduction To Grails 3 by Jeff Scott Brown Grails is an Open Source, high productivity framework for building enterprise-scale web applications. It supports the development of many application types, including e-commerce web sites, content management systems (CMS), and RESTful web services. By leveraging sensible defaults and convention-over-configuration, Grails significantly increases developer productivity. Organizations that use Grails as their application development framework realize nearly immediate gains in developer productivity and substantially reduce the time and effort to develop complex apps.

Session #73 @ Cotton Creek : Clojure Workshop (continued) by Neal Ford In an increasingly crowded field of languages, Clojure stands alone. It is a dynamic, functional, high performance dialect of Lisp that runs on both the JVM and CLR. The creator cast aside assumptions from both the Lisp and Java communities to create a remarkable language implementation. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #74 @ Meadowbrook I : Next Level Spock by Luke Daley So you already know and love Spock, the Enterprise ready testing framework, but want to know how to make the most of it and take your testing to the next level? Then this talk is for you. Even if you're new to Spock, but are interested in making your testing more effective this talk is for you.

Session #75 @ Meadowbrook II : Leading Technical Change by Nathaniel Schutta Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal, how do we keep up with the change in our industry?

Session #76 @ Windsor : DIY NoSQL: Spinning up services with Whirr by Adrian Cole Whether it's HBase, Cassandra or one of the many others, you've probably already heard about NoSQL. Perhaps you have a continuous test flow dependency, yet are concerned about learning curve or infrastructure required for the NoSQL store you need.

12:30 - 1:30 PM : LUNCH - WESTMINSTER BALLROOM 3/4 1:30 - 3:00 PM - Sessions Session #77 @ Westminster I : Know Your Enemy: Understanding AntiPatterns by Mark Richards The ancient Chinese warrior Sun Tzu taught his men to "know your enemy" before going into battle. For us, the same thing is knowing and understanding anti-patterns - things that we repeatably do that produce negative results. Anti-patterns are used by developers, architects, and managers every day, and are one of the main factors that prevent progress and success. In this session we will look at some of the more common and significant software development anti-patterns. Through coding and design examples, you will see how these anti-patterns emerge, how to recognize when the antipattern is being used, and most importantly, how to avoid them. Although most of the coding examples will be in Java, this is a technology-agnostic session.

Session #78 @ Westminster II : Git Workshop by Matthew McCullough Git is a version control system you may have been hearing a bit about lately. But simply hearing more about it may not be enough to convince you of its value. Getting hands on experience is what really counts. In this workshop, you'll bring your Windows, Mac or Linux laptop and walk through downloading, installing, and using Git in a collaborative fashion.

Session #79 @ Standley I : Mastering JavaScript by Venkat Subramaniam JavaScript is one of those very powerful languages that is often misunderstood and underutilized. It's quite popular, yet there's so much more we can do with it.

Session #80 @ Standley II : Security Inception by Frank Kim Learn how your organization can fall prey to malicious attackers. Using real-world case studies you'll see exactly how hackers exploited and embarrassed several well-known companies. Analyzing these events provides enormous insight into what works and what doesn't when building, maintaining, and defending your app.

Session #81 @ Lake House : A Thorough Introduction To Grails 3 (continued) by Jeff Scott Brown Grails is an Open Source, high productivity framework for building enterprise-scale web applications. It supports the development of many application types, including e-commerce web sites, content management systems (CMS), and RESTful web services. By leveraging sensible defaults and convention-over-configuration, Grails significantly increases developer productivity. Organizations that use Grails as their application development framework realize nearly immediate gains in developer productivity and substantially reduce the time and effort to develop complex apps.

Session #82 @ Cotton Creek : Web Application Design from a Developer's perspective by Raju Gandhi Poorly designed web applications fail to serve both the business and the users, leading to a unnecessary costs, and frustrated customers. By keeping the user in mind, and following a few simple guidelines, you can make huge leaps in the way your users interact with your applications.

Session #83 @ Meadowbrook I : Getting Agile Right! by Ken Sipe Whether you are just getting started, or you’ve made an attempt and well… it could be better… a lot better, this session is for you. Ken has been working on Agile projects as a coach and mentor for a number of years. Come discover the common reasons teams fail to get it right. Bring your own challenges and lets discuss. This is set to be an engaging and illuminating discussion.

Session #84 @ Meadowbrook II : Practicing Continuous Delivery on the Cloud by James Ward This session will teach you best practices and patterns for doing Continuous Delivery / Continuous Deployment in Cloud environments. You will learn how to handle schema migrations, maintain dev/prod parity, manage configuration and scaling. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #85 @ Windsor : Introduction to Kotlin by Andrey Breslav Some years ago "alternative" programming languages for the JVM lived mostly in research labs and garages, industry knew about some of them, sometimes even used them, but never produced them. Recently, the trend has changed: new languages are backed by industrial vendors. To put it another way: the time has come for a new JVM language, and there are a few projects competing in this field. One of them is Kotlin, backed by JetBrains, a leading IDE vendor. Kotlin is a modern statically typed language targeting JVM and JavaScript and intended for industrial use. The main goal behind this project is to create a language that would be a good tool for developers, i.e. will be safe, concise, flexible, 100% Java-compatible and well-supported by IDE and other tooling. Kotlin is an open- source project started developed JetBrains with the help of the community.

3:00 - 3:15 PM : BREAK 3:15 - 4:45 PM - Sessions Session #86 @ Westminster I : Advanced SOA architectures using Open Source by Heath Kesler In this session attendees will learn about the different levels of concern within SOA and where to implement different frameworks within enterprise architectures. Tips and tricks that can only be learn through the school of hard knocks are presented here to give the attendee a big leap ahead in architected their systems. It will also point out commons trouble spots often encountered in large-scale systems. These are advanced system integration concepts with a focus on high availability using open source frameworks in a service- orientated architecture.

Session #87 @ Westminster II : Mockito Workshop by Szczepan Faber Do you want to learn more about Mockito framework directly from the founder? Join the workshop and get up to speed with: - principles of interaction testing - using test spies to drive the design and high quality production code - getting most of the test spy pattern to produce readable and maintainable tests - solutions to typical unit testing challenges with regards to mocking - Mockito features and patterns along with the use cases when they are most useful

Session #88 @ Standley I : Automated testing tools and techniques for JavaScript by Venkat Subramaniam Programmers often complain that it is hard to automate unit and acceptance tests for JavaScript. Testability is a design issue and with some discipline and careful design we can realize good automated tests.

Session #89 @ Standley II : How to Use Secure HTTP Headers by Frank Kim Learn how to use the latest HTTP headers to prevent attacks like Clickjacking, Cross-Site Scripting (XSS), and Session Hijacking. To address security defects developers typically resort to fixing architectural issues and security bugs directly in the code. A few use security related HTTP headers to mitigate the risks posed by malicious attackers. Some developers might even pray that security issues will be fixed automagically by the browser.

Session #90 @ Lake House : jRuby Workshop by Raju Gandhi The last decade has seen an explosion in the number of languages targeting the Java runtime. Amongst these, one of the (arguably) strong contenders is JRuby - a 100% Java port of the Ruby language. Ruby aims to make programmers "happy", and with JRuby you can find happiness without having to leave your favorite runtime! JRuby also provides deep integration with Java, allowing you to leverage existing Java libraries while writing code that is succinct, elegant and beautiful.

Session #91 @ Cotton Creek : Applying Git: 10 Power Tips by Matthew McCullough Git is a powerful content tracker and has gained acceptance by many forward leaning consultants and teams over the past several years. Those developers know that it offers the usual commit, branch, merge and tag in a distributed environment, and yet, only a few developers have explored the more powerful functions of Git. These range from searching months of history for a unit-test bug to undoing literally any mistake to splitting in-progress work into multiple commits within a single file.

Session #92 @ Meadowbrook I : Grails Grown Up: How do we get sub 500m/sec response? by Todd Ellermann How do you handle 9 million monthly unique visitors with Grails? Build pages using concurrency, SOLR, SQUID, and RESTful services on Grails, that's how!

Session #93 @ Meadowbrook II : Architecture: Non-Functional Requirements by Ken Sipe The agile focus of software development puts heavy focus on user requirements through user stories. However we can not lose sight of the non-functional requirements as well. The software could be written to the exact specification and desire of the user, however if it takes 5 minutes for a request response, or it only supports 2 users or it isn't secure, then we still haven't done our jobs as developers.

Session #94 @ Windsor : NetKernel: Making IT Matter Again by Brian Sletten The premise of Nicholas Carr's "Does IT Matter?" book was that if everyone uses the same tools, processes, products, etc., is there any competitive advantage to be had from the average IT organization? NetKernel represents a fundamentally different approach to building systems. It takes what we like about , REST and SOA and mixes it together. It inexplicably changes everything while allowing you to reuse existing code, services and libraries. Not only can it make building the kinds of systems you are building today easier, it does ÜberConf -Session Schedule- (event schedule as of October 14, 2020) it more efficiently, with less code and a far more scalable runway to allow you to take advantage of the emerging multi-core, multi-CPU hardware that is coming our way.

4:45 - 5:00 PM : BREAK 5:00 - 6:30 PM - Sessions Session #95 @ Westminster I : Patterns and Agile Development: Emergent Design by Scott Bain Our industry is at a major turning point; moving away from waterfall-style development methodologies and toward lighter-weight, Lean- Agile development. This brings great promise. However, it also creates interesting questions. What is the role of design in an Agile process? How much design is enough, and how much is over-design? Are patterns still relevant, with TDD and refactoring gaining momentum throughout the industry?

Session #96 @ Westminster II : Mockito Workshop (continued) by Szczepan Faber Do you want to learn more about Mockito framework directly from the founder? Join the workshop and get up to speed with: - principles of interaction testing - using test spies to drive the design and high quality production code - getting most of the test spy pattern to produce readable and maintainable tests - solutions to typical unit testing challenges with regards to mocking - Mockito features and patterns along with the use cases when they are most useful

Session #97 @ Standley I : Build Your Own Technology Radar Workshop for Architects by Neal Ford A Technology Radar is a tool that forces you to organize and think about near term future technology decisions, both for you and your company. This talk discusses using the radar for personal breadth development, architectural guidance, and governance.

Session #98 @ Standley II : Mobile Development Options 2014 by Pratik Patel There's a bevy of options for developing mobile apps. If you're looking at cross-platform solutions, there's a multitude of options to choose from. In this session we'll explore the three basic categories for developing mobile apps: native, cross-platform-to-native, and mobile web. We'll discuss the sweet spot for each of these three approaches and the benefits and drawbacks of each. Technologies discussed include Android, iOS, HTML5/CSS3, Phonegap, Titanium, and jQuery Mobile.

Session #99 @ Lake House : jRuby Workshop (continued) by Raju Gandhi The last decade has seen an explosion in the number of languages targeting the Java runtime. Amongst these, one of the (arguably) strong contenders is JRuby - a 100% Java port of the Ruby language. Ruby aims to make programmers "happy", and with JRuby you can find happiness without having to leave your favorite runtime! JRuby also provides deep integration with Java, allowing you to leverage existing Java libraries while writing code that is succinct, elegant and beautiful.

Session #100 @ Cotton Creek : Play vs. Grails Smackdown by Matt Raible and James Ward In this session, Matt and James will develop two apps that do the same thing. One will be written in Grails and one will be written in Play. We'll deploying them to Heroku and hammer them to see how they both perform under load. Afterward, we'll compare performance, lines of code, etc. Who will be declared the winner?!

Session #101 @ Meadowbrook I : Managing JavaScript with Gradle by Luke Daley JavaScript is playing an ever increasing role in modern web applications. This is having an impact on the way be automate the building of our applications as JavaScript introduces new challenges such as magnification, unification and even compilation of languages such as CoffeeScript.

Session #102 @ Meadowbrook II : Career.Next by Jerry Gulla We all know that a career in software can be challenging. Keeping up with the latest trends, mapping out career choices and knowing how to stay marketable are critical skills. The speaker, using his own 20+ year career as an example, will talk about techniques he’s used to survive economic downturns, government contracts, technology shifts and even going from engineering to management and back - twice!

Session #103 @ Windsor : NetKernel: Making IT Matter Again (continued) by Brian Sletten The premise of Nicholas Carr's "Does IT Matter?" book was that if everyone uses the same tools, processes, products, etc., is there any competitive advantage to be had from the average IT organization? NetKernel represents a fundamentally different approach to building systems. It takes what we like about Unix, REST and SOA and mixes it together. It inexplicably changes everything while allowing you to reuse existing code, services and libraries. Not only can it make building the kinds of systems you are building today easier, it does it more efficiently, with less code and a far more scalable runway to allow you to take advantage of the emerging multi-core, multi-CPU hardware that is coming our way.

6:30 - 7:30 PM : DINNER - WESTMINSTER BALLROOM 3/4 Keynote: Adam Smith Builds an Application - Matthew McCullough 9:00 - 11:59 PM : UBERCONF 2012 PARTY @ DAVE & BUSTERS! ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Friday, Jun. 22 8:00 - 9:00 AM : BREAKFAST - WESTMINSTER BALLROOM 3/4 9:00 - 10:30 AM - Sessions Session #104 @ Westminster I : Domain Modeling Using Domain-Driven Design (DDD) by Paul Rayner This presentation seeks to provide a solid introduction to the fundamentals of DDD. Learn why modeling a complex business domain in software is so advantageous to your business and ways in which your team can go about delivering software models to give your business a competitive edge.

Session #105 @ Westminster II : Sustainable Test-Driven Development by Scott Bain Test-Driven Development has gained a strong foothold among many development teams, but as popular as it has often become, many organizations struggle to keep the testing effort sustainable over a long period of time. As test suites become large, they tend to become significantly difficult and time consuming to maintain, which is required to keep the TDD effort alive. Similarly, disciplined refactoring skills have become, for many, an essential part of a development team's toolkit, especially when confronted with large amounts of legacy code. However, the effort it can take to refactor a system can be difficult to weigh against the business value of new development; spending time on one would seem to limit the time spent on the other.

Session #106 @ Standley I : Advanced JavaScript for Java Devs by Pratik Patel So you think you've picked up enough JavaScript to be dangerous, but feel like the whole prototypical language thing is still a mystery. In this session, we'll go from basic JavaScript to advanced JavaScript. We'll discuss and code modular JavaScript with CommonJS. We'll look into the details of a prototype language and discuss things like parasitic inheritance. We'll also look at JavaScript libraries that will help you get the most out of JavaScript - not jQuery, but a library like UnderscoreJS and SugarJS.

Session #107 @ Standley II : Hadoop by Tim Berglund When you want to measure fractions of a millimeter, you get a micrometer. When you want to measure centimeters, you get a ruler. When you want to measure kilometers, you might use a laser beam. The abstract task is the same in all cases, but the tools differ significantly based on the size of the measurement. Likewise, there are some computations that can be done quickly on data structures that fit into memory. Some can't fit into memory, but will fit on the direct-attached disk of a single computer. But when you've got many terabytes or even petabytes of data, you need tooling adapted to the scale of the task. Enter Hadoop.

Session #108 @ Lake House : Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines by Neal Ford Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

Session #109 @ Cotton Creek : Messaging in the cloud - why do i care? by Oleg Zhurakousky "Cloud" is forcing a fundamental shift in enterprise application architecture towards a highly distributed, highly parallelized, horizontal scale-out services model. Traditional means of scale-out based on the RPC and JEE deployment model are showing their limitations when it comes to the "cloud". Over the past several years, with the emergence of simple J2SE-based frameworks, open TCP and non-blocking-I/O-based messaging/eventing middleware, and noSQL data stores, it is easier than ever to deliver simple and cost- effective solutions that enable the flexible distribution and parallelization of your business applications in the cloud. This new breed of middleware allows you to base your cloud application architecture on distributed light-weight Java-based components that use simple, open messaging and eventing for inter-process collaboration.

Session #110 @ Meadowbrook I : Grails in the Enterprise: Can I? Should we? by Todd Ellermann Java/J2EE looking for something better but not sure if you can sell paying the price of a new language/framework? Not sure if Grails will work in YOUR environment?

Session #111 @ Meadowbrook II : Introduction to Solr by Erik Hatcher Apache Solr serves search requests at enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. This talk will introduce Solr's capabilities with live demonstrations.

Session #112 @ Windsor : Patterns for Efficient Build Promotion by Hans Dockter We have seen quite a few larger projects for which a naive practice of early integration between the components lead to constant breakages. Thus they were not capable to successfully build a new version of the software stack for days or even weeks. Obviously the problem of that is dramatic as no regular manual testing and capacity testing is taking place. Not only is this a massive waste of testing resources, it also leads to very long and therefore expensive feedback cycles that severely affect your time-to-market of new features. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) It also a likely source of conflict between the CI team and software development, as with no other means at hand, there is a desire to create stability by not adding new features or doing important refactoring.

10:30 - 10:45 AM : MORNING BREAK 10:45 - 12:15 PM - Sessions Session #113 @ Westminster I : Strategic Design Using DDD by Paul Rayner Not every part of a software system will be well-designed. How do you know where to put the time and effort to refine the design, or refactor existing code? Learn how strategic Domain-Driven Design (DDD) patterns can show you how to know which parts of your system matter most to your business and how to focus your team's design efforts most effectively.

Session #114 @ Westminster II : Functionally Testing Modern Web Applications with Geb by Luke Daley Geb is a browser automation solution for Groovy. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. Geb enables more expressive, more concise, and (very importantly) more maintainable web tests.

Session #115 @ Standley I : Intelligently Organizing Large JavaScript Projects by Johnny Wey Using the same techniques we've learned over the last decade of Java and other OO languages, find out how to think about and organize a large JavaScript code base intelligently.

Session #116 @ Standley II : Hadoop (continued) by Tim Berglund When you want to measure fractions of a millimeter, you get a micrometer. When you want to measure centimeters, you get a ruler. When you want to measure kilometers, you might use a laser beam. The abstract task is the same in all cases, but the tools differ significantly based on the size of the measurement. Likewise, there are some computations that can be done quickly on data structures that fit into memory. Some can't fit into memory, but will fit on the direct-attached disk of a single computer. But when you've got many terabytes or even petabytes of data, you need tooling adapted to the scale of the task. Enter Hadoop.

Session #117 @ Lake House : Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines (continued) by Neal Ford Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

Session #118 @ Cotton Creek : Enterprise Integration Patterns with Spring Integration by Oleg Zhurakousky In this workshop Oleg will give a short overview of the Enterprise Integration Patterns (EIP) as catalogued in the highly influential book of the same name and Spring Integration (SI) framework. As one of the core developers of the Spring Integration(SI) framework, Oleg will provide a quick introduction of Spring Integration, its API and will demonstrate how SI enables the development of Message and Event based systems. Along the way, you will see how SI builds upon familiar Spring idioms such as interceptors, templates, strategy and other patterns. You will also see how SI maximizes reuse of the integration support available in the Spring Framework core for everything from remoting, JMS/AMQP, data, transactions, task execution and others flattening the learning curve considerably for those already familiar with Spring framework.

Session #119 @ Meadowbrook I : Creating DSLs in Groovy by Venkat Subramaniam Domain Specific Languages have two main characteristics, fluency and context. Creating external DSLs has the advantage of good validation. However, we have to struggle with parsers. Internal DSLs offer the benefit of using the language as the host and its compiler as the parser. For a language to be a host, it needs two important characteristics: low-ceremony and metaprogramming.

Session #120 @ Meadowbrook II : Solr Recipes by Erik Hatcher Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.

Session #121 @ Windsor : The User Story Lifecycle: Just Enough, Just In Time by Charles Bradley The key to User Stories is making sure your related practices are just enough, just in time.

12:15 - 1:30 PM : OUTDOOR BREAK & LUNCH - WESTMINSTER BALLROOM 3/4 & NORTH COURTYARD 1:30 - 3:00 PM - Sessions ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #122 @ Westminster I : Using DDD Patterns for Supple Design by Paul Rayner Come on a guided tour of how applying Domain-Driven Design (DDD) building block patterns can make your code cleaner, more expressive, and more amenable to change. We cover examples of DDD patterns such as entities, value objects, closure of operations and side-effect-free functions. We will focus particularly on how implementing value objects can lead to more supple design.

Session #123 @ Westminster II : Enterprise Security API library from OWASP by Ken Sipe When it comes to cross cutting software concerns, we expect to have or build a common framework or utility to solve this problem. This concept is represented well in the Java world with the loj4j framework, which abstracts the concern of logging, where it logs and the management of logging. The one cross cutting software concern which seems for most applications to be piecemeal is that of security. Security concerns include certification generation, SSL, protection from SQL Injection, protection from XSS, user authorization and authentication. Each of these separate concerns tend to have there own standards and libraries and leaves it as an exercise for the development team to cobble together a solution which includes multiple needs.... until now... Enterprise Security API library from OWASP.

Session #124 @ Standley I : Acceptance and Story Testing Patterns by Charles Bradley Acceptance Testing, also known as Story Testing, is a practice that can be applied to any software project, Agile or not. However, to achieve the Agile vision of "working software over comprehensive documentation," it's very important that acceptance tests are easily automated, resulting in a phenomenon you may have heard of, called the "Agile Specification."

Session #125 @ Standley II : Semantic Web Workshop by Brian Sletten The Web is changing faster than you can imagine and it is going to continue to do so. Rather than starting over from scratch each time, it builds on what has succeeded already. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know. Roughly 25% of the Web is semantically marked up now and the search engines are indexing this information, enriching their knowledge graphs and rewarding you for providing them with this information. In the past we had to try to convince developers to adopt new data models, storage engines, encoding schemes, etc. Now we no longer have to worry about that. Rich, reusable interface elements like Web Components can be built using Semantic Web technologies in ways that intermediate developers don’t have to understand but end users can still benefit from. Embedded JSON-LD now allows disparate organizations to communicate complex data sets of arbitrary information through documents without collaboration. Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it. Whether you are jazzed or jaded, this workshop will blow your mind and provide you with the understanding of a technological shift that is already upon us.

Session #126 @ Lake House : Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure by Neal Ford Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

Session #127 @ Cotton Creek : Enterprise Integration Patterns with Spring Integration (continued) by Oleg Zhurakousky In this workshop Oleg will give a short overview of the Enterprise Integration Patterns (EIP) as catalogued in the highly influential book of the same name and Spring Integration (SI) framework. As one of the core developers of the Spring Integration(SI) framework, Oleg will provide a quick introduction of Spring Integration, its API and will demonstrate how SI enables the development of Message and Event based systems. Along the way, you will see how SI builds upon familiar Spring idioms such as interceptors, templates, strategy and other patterns. You will also see how SI maximizes reuse of the integration support available in the Spring Framework core for everything from remoting, JMS/AMQP, data, transactions, task execution and others flattening the learning curve considerably for those already familiar with Spring framework.

Session #128 @ Meadowbrook I : Creating DSLs in Groovy (continued) by Venkat Subramaniam Domain Specific Languages have two main characteristics, fluency and context. Creating external DSLs has the advantage of good validation. However, we have to struggle with parsers. Internal DSLs offer the benefit of using the language as the host and its compiler as the parser. For a language to be a host, it needs two important characteristics: low-ceremony and metaprogramming.

Session #129 @ Meadowbrook II : Solr Recipes (continued) by Erik Hatcher Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.

Session #130 @ Windsor : Anxious Cows in ClojureScript by Tim Berglund ClojureScript is a dialect of Clojure that compiles to JavaScript, and targets the JavaScript runtimes of the web as a deployment environment. It offers the unparalleled expressiveness of Lisp, the performance and space efficiency of the Google Closure Compiler, interoperability with the in-browser object model, and natural integration with server-side Clojure applications. In a time of proliferating ÜberConf -Session Schedule- (event schedule as of October 14, 2020) JavaScript extensions and client-side development frameworks, this is a compelling vision of how client-side web development should be done.

3:00 - 3:15 PM : AFTERNOON BREAK 3:15 - 4:45 PM - Sessions Session #131 @ Westminster I : Aggregate-Oriented Modeling with DDD and NoSQL by Paul Rayner Many of the problems encountered in scaling, parallelizing and distributing systems that tend to be addressed in ad-hoc ways are actually deeply connected with the manner in which the business domain has been modeled. Domain-Driven Design (DDD) has rich modeling resources for tackling concurrency, transactional and distribution boundary issues within the domain model itself, enabling teams to be more effective in dealing with business complexity and change.

Session #132 @ Westminster II : Client-Side MVC: Web and Mobile Development with Spine.js by Craig Walls In this session, we'll start with an empty directory and use Spine.js to create an interactive client-side web application. Then we'll leverage what we learned to build a mobile web application with a native feel that can be deployed either through a phone's web browser or via native wrapper frameworks such as Apache Cordova (aka, PhoneGap).

Session #133 @ Standley I : Decision Making in Software Teams by Tim Berglund Alistair Cockburn has described software development as a game in which we choose among three moves: invent, decide, and communicate. Most of our time at No Fluff is spent learning how to be better at inventing. Beyond that, we understand the importance of good communication, and take steps to improve in that capacity. Rarely, however, do we acknowledge the role of decision making in the life of software teams, what can cause it to go wrong, and how to improve it.

Session #134 @ Standley II : Semantic Web Workshop (continued) by Brian Sletten The Web is changing faster than you can imagine and it is going to continue to do so. Rather than starting over from scratch each time, it builds on what has succeeded already. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know. Roughly 25% of the Web is semantically marked up now and the search engines are indexing this information, enriching their knowledge graphs and rewarding you for providing them with this information. In the past we had to try to convince developers to adopt new data models, storage engines, encoding schemes, etc. Now we no longer have to worry about that. Rich, reusable interface elements like Web Components can be built using Semantic Web technologies in ways that intermediate developers don’t have to understand but end users can still benefit from. Embedded JSON-LD now allows disparate organizations to communicate complex data sets of arbitrary information through documents without collaboration. Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it. Whether you are jazzed or jaded, this workshop will blow your mind and provide you with the understanding of a technological shift that is already upon us.

Session #135 @ Lake House : Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure (continued) by Neal Ford Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

Session #136 @ Cotton Creek : Developer Productivity Power Ups on Mac OSX by Matthew McCullough You're a talented coder and you apply many agile practices to your daily workflow. Still, you are looking for that next boost to better keep track of information, manage your open applications, make working with the terminal more productive, recall information quickly, manage files rapidly, and produce documentation in a portable and effective manner. This presentation will show you how to apply DevonThink, Delicious bookmarks, RSS feeds, Pinboard.in, Pomodoro, Things, LaunchBar, Bash profiles, mind maps, markdown files and spotlight filters to become a more productive developer that has a world of information sorted and accessible at a moment's notice.

Session #137 @ Meadowbrook I : Running Java, Play! & Scala Apps on the Cloud Workshop by James Ward Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java, Play! and Scala apps on the cloud. Deployment is as simple as doing a "git push".

Session #138 @ Meadowbrook II : Power Solr: Performance, Scaling, and Relevancy by Erik Hatcher Make the most out of Solr by leveraging these tips and tricks to increase performance, scale Solr to your needs, and tune search results. This talk will discuss Solr architecture decisions, performance and scaling best practices, and considerations and techniques for adjusting search results for your application. ÜberConf -Session Schedule- (event schedule as of October 14, 2020) Session #139 @ Windsor : JRuby in the Enterprise by Jerry Gulla Bring the power of Ruby and Rails to your enterprise! Interested in harnessing the power of Ruby on Rails but not sure how to incorporate it into your existing Java/J2EE/Spring word? In this session, we’ll talk about real-world experiences, lessons learned and best practices for developing a new Ruby on Rails using JRuby.

4:45 - 5:00 PM : CONCLUSION OF UBERCONF 2012 - THANK YOU FOR ATTENDING!