Platinum Sponsors

Gradleware Contegix Github

ÜberConf 2013 Brochure - Download


Westin Westminster
Westin Westminster
10600 Westminster Blvd
Westminster, CO   80020
Map »

Proud Supporter of:


Workshops

If you are attending a workshop, be sure to bring a laptop and review the Workshop Requirements.

Full-Day Workshops

Full-day workshops are on Tuesday and require registration.

with James Harmon

James Harmon

The technology industry has been swept up in many historical waves. In 1980 the widespread adoption of the PC, fifteen years later in 1995 the browser became widespread and in 2010 with the introduction of the iPhone, the smart phone wave began. Don't miss out. Grab your surfboard and learn how to ride the coming wave of smart phone development with Android.

Spend a day learning how to do development on the most popular smartphone platform available. Android is a Java platform - you can leverage your existing Java skills. You'll get hands on experience developing an Android app that will use all the major components of Android applications.

Use Android Activites to create the User Interface. Learn how to run background services. Create broadcast receivers to react to changes in the phones state. You'll even learn how to interact with the location services and display Google maps.

We'll take a deep dive into the details. You'll write code to interact with Android's built-in SQLite database. You'll add logging to your app and you'll even learn how to do unit testing in the Android environment.

Leave the class with hands-on skills and a working application that will be ready to publish to the Android Market.

Don't miss out. Grab your board and ride the Android wave!

See Workshop Requirements »

with Alan Shalloway

Alan Shalloway

This class goes underneath design patterns to understand the principles behind the patterns. Patterns are a manifestation of 3 principles:

  • Find what varies and encapsulate it
  • Design to public methods
  • Prefer delegation over inheritance

This session describes how to think in terms of the principles of patterns to be able to discover patterns in your designs and to create new quality designs when patterns aren’t present.

After presenting the fundamental lessons of design patterns the class proceeds into how patterns can be used both in an upfront manner or in an agile manner. The tutorial continues by comparing and contrasting seemingly different design methods:

  • test driven development
  • pattern oriented design
  • refactoring from poor designs
  • commonality variability analysis
  • designs based on code qualities with standard object-oriented approaches


with Paul Rayner

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.

Topics Introduced

Morning

  • What is DDD and how is modeling useful?
  • Developing a shared modeling language to enable effective collaboration
  • Using reference scenarios to guide modeling
  • What makes a model useful to a software project?
  • Architectural options for implementing DDD
  • Aggregate design - applying effective aggregate design for both relational and NoSQL solutions
  • Domain events - decoupling, scaling and modeling chronology in distributed systems

Afternoon

  • Prioritizing sophisticated design for where it will have the greatest impact
  • Clarifying a shared vision
  • Mapping the terrain of your systems to enable effective modeling and design
  • Integrating agile with rigorous design
  • Succeeding with DDD and avoiding common adoption pitfalls


with Venkat Subramaniam

Venkat Subramaniam

With Java supporting lambda expressions, we have nothing to stop us from creating functional style of code for our day to day applications. We're so used to object-oriented programming, but remember the paradigm shift we went through to adapt to that way of programming. It is yet another paradigm shift and most of us wonder how in the world can we write functional style code. Much like how OO was not as much about the syntax as it was about the design, functional programming is about the design, the idioms, and the data structures we'd use to program.

In this hands-on workshop, we will learn about functional programming using practical examples, create small apps that will make use of this style of programming, and relate to how it differs from the traditional way we're used to and the benefits it offers.

See Workshop Requirements »

with Tim Berglund

Tim Berglund

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.

The workshop style of this class will allow you to observe and discover the value of this new version control tool first hand. You'll be cloning, creating, commiting, and pushing repositories by the conclusion of this session.

PreReq: Basic knowledge of a version control system. Subversion knowledge is a plus, but not imperative.



with Kenneth Kousen

Kenneth Kousen

This full-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.



with Christopher Judd

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.

The app we build will allow us to experiment with a bunch of APIs including Core Data, Camera, and more.

See Workshop Requirements »

with Pratik Patel

Pratik Patel

Get your skills up to speed for JavaScript, the oft-misunderstood language of the web, in this full day workshop. We'll start from the very basics and learn the ins-and-outs of JavaScript. We'll look at the (many) quirks in JavaScript, and work through advanced features that make this language so powerful.

We'll talk about JavaScript design patterns, frameworks, and conventions. We'll end the day with and advanced, hands-on session, on functional programming in JavaScript. Come with an open-mind and ready to dig into code!

This workshop requires a laptop, and assumes the attendee has ZERO knowledge of JavaScript. We'll break down your bad habits, and build upon known patterns and best practices to raise your JavaScript-fu.



with Kirk Knoernschild

Kirk Knoernschild

Monolithic applications are difficult to understand, maintain, and extend with new features and functionality. Modularity helps achieve these goals. Unfortunately, few applications have been designed with modularity in mind. In this workshop, we take a deep dive into modularity. We'll start by briefly examining the benefits of a modular architecture and exploring several patterns that help us design modular software. Then we'll launch into several exercises where we take an existing monolithic software system and refactor it to a modular architecture.

Along the way, we'll examine useful tools that help us along the journey and will demonstrate the benefits of our new architecture.



with Brian Sletten

Brian Sletten

Many people are drawn to the ideas of REST but aren't sure how to take the next steps. This workshop will help get you to a comfortable place by introducing the concepts and walking through a series of exercises designing REST APIs from a variety of domains.

We will break up into teams and tackle the various aspects of a solid, stable, evolvable REST API design. This will not be a tutorial in particular REST implementations (Jersey, Restlet, etc.). The ideas will transcend specific technologies although we will talk about some particular choices.



with Ken Sipe

Ken Sipe

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

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

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

Attendees will come away with the following skills / capabilities: - threat modeling - security audit plan - introduction to Pen testing - key / certificate management - fixing web application security issues

Don't be the weakest link on the web!



Half-Day Workshops

Half-day workshops are included in the regular conference registration.

with James Harmon

James Harmon

The smartphone has been the current platform of choice for Android development but we are now in the "year of the tablet" and it is time to upgrade your skills. Even though you think you know Android programming, you still need to learn the unique techniques for developing for tablet.

We'll analyse the UI patterns important on tablets (like Action Bars). And you'll learn how to use the specialized classes (like Fragments) that were created especially for tablets.

The following topics are included in this presentation:

The Tablet Marketplace Tablet UI design Optimizing layouts for larger screens Dips, Sips and pixels Action Bars Fragments Side Navigation 3rd Party Libraries



with Venkat Subramaniam

Venkat Subramaniam

Multiple languages on the JVM offer the ability to write concise and expressive code. One thing that sets Groovy apart, more distinctively than a few others, is its ability to extend the program at runtime. Classes are open in Groovy and we can not only add methods, but we can synthesize methods as well, at runtime. This ability provides for quite an interesting set of flexibilities, paving the way to create highly dynamic applications, domain specific languages, lightweight configurable components, all with less code.

In this workshop we will dive into metaprogramming in Groovy, using practical hands-on examples and make use of it to create some dynamic behavior. We will focus on concepts and techniques you can readily put to real use on your next project.



with Nathaniel Schutta

Nathaniel Schutta

You may have noticed today's web applications involve more than a few lines of JavaScript. You've probably also figured out JavaScript lacks certain...features...that make writing non-trivial applications more challenging. How do we resolve this conundrum? Luckily for us, we can leverage libraries like Backbone add some structure to our code. Backbone brings the concepts of the model view controller pattern we've applied to the server for years to the browser.

In this workshop, we'll introduce the idea of asynchronous user interfaces and show how Backbone helps us write that style of application. We'll work our way up from the bottom building a simple application along the way. We'll create models, we'll use a templating library (or two) and we'll also explore Underscore - a JavaScript utility belt you can use right now today without committing to building MVC style web applications.

If you're struggling to manage an increasing amount of JavaScript or you want to build more responsive web applications, this workshop can help!

See Workshop Requirements »

with Craig Walls

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 2-part 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.

See Workshop Requirements »

with Brian Sam-Bodden

Brian Sam-Bodden

While many developers have embrace simpler NoSQL variants (like MongoDB and CouchDB). Cassandra is possibly at the forefront of the NoSQL innovation, providing a level of reliability and fine tuning not found in many of the competitors offerings. In this session we'll learn why you should consider Cassandra DB for your next large-data project and how to build a Cassandra based application from the ground up, taking advantage of virtualization techniques to emulate a complex multi-machine environment.

While many developers have embrace simpler NoSQL variants (like MongoDB and CouchDB). Cassandra is possibly at the forefront of the NoSQL innovation, providing a level of reliability and fine tuning not found in many of the competitors offerings. In this session we'll learn why you should consider Cassandra DB for your next large-data project and how to build a Cassandra based application from the ground up, taking advantage of virtualization techniques to emulate a complex multi-machine environment.



with Neal Ford

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.

In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.



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

In this workshop we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



with 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. This workshop focuses on the Deployment Pipeline concept from Continuous Delivery.

In this workshop I move from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. I spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



with Dan Allen

Dan Allen

How many times have you wanted to start a new project in Java EE, but struggled with copying and pasting all the pieces together? Forge can take you from 0 to Java EE, Spring, GWT and more in few swift keystrokes.

But, 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 written with Arquillian.

In this workshop, you'll learn how to achieve continuous development using Forge to automate mundane tasks and Arquillian to write real tests. Together, let's build an application, test it, and deploy it both locally and to the cloud! Let's learn to use tools to make us more confident developers.

How many times have you wanted to start a new project, 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." Well, it is!

Forge can take you from 0 to Java EE, Spring, GWT and more in few swift keystrokes. Forge helps streamline application development, eases the pain of setting up enterprise testing and integration, and utilizes the full power of JBoss AS 7 for development, testing, and deployment. You can even switch seamlessly between Forge and the Eclipse-based JBoss Developer Studio.

But, 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.

In this workshop, you'll learn how to achieve continuous development using Forge to automate mundane tasks and Arquillian to write real tests. Together, let's build an application, test it, extend it, and deploy it both locally and to the cloud! Let's learn to use tools to make us more confident developers.



with Craig Walls

Craig Walls

In modern applications, Javascript is increasingly prevalent both on the client-side and to some degree on the server-side. As we continue to crank out more Javascript code, we're finding that many of the same hard-lessons we learned in writing decoupled Java code are equally desirable in Javascript code. Without the benefit of dependency injection and AOP, both Java and Javascript code can quickly become an unnavigable and untestable mess.

Where frameworks like Spring have helped us gain control over our Java code, Cujo.js similarly aims to give our Javascript code more structure and testability.

In this session, we'll look at Cujo.js, an "unframework" that provides dependency injection that takes Javascript's unique needs into consideration to create loosely-coupled code. We'll also see how, although Cujo.js isn't strictly a UI framework, elements of Cujo.js can be brought together to elegantly build client-side UIs.



with Vaughn Vernon

Vaughn Vernon

This workshop leads you through the central concepts of Domain-Driven Design (DDD) and allows attendees to work through software modeling problems that address integrating new Core Domains with legacy systems using an event-driven architecture.

Learn hands-on to use DDD strategic design patterns to model in a financial trading legacy application, and to model and develop a new Core Domain that supports algorithmic trading. Again, using hands-on modeling exercises you will employ DDD tactical modeling to create a new algo-trading Core Domain that integrates with the legacy trading system.



with Craig Walls

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 2-part 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.

See Workshop Requirements »

with Heinz Kabutz

Heinz Kabutz

One of the hazards of multithreaded code is that if we are not careful, we might cause a deadlock in our program. The simplest of these is the “deadly embrace,” in which locks are acquired by multiple threads in different orders. The simple deadlocks can be detected automatically with the deadlock detection tool in the ThreadMXBean. However, there are also other types of deadlocks that cannot be detected automatically and that require analysis of the stack traces of all the threads, just as in the good old days.

This hands-on-lab explains what causes deadlocks and how to find them. You will then be given a body of code to test for deadlocks, using the techniques learned.



with Emad Benjamin

Emad Benjamin

The session will cover various GC tuning techniques, in particular focus on tuning large scale JVM deployments. Come to this session to learn about GC tuning recipe that can give you the best configuration for latency sensitive applications. While predominantly most enterprise class Java workloads can fit into a scaled-out set of JVM instances of less than 4GB JVM heap, there are workloads in the in memory database space that require fairly large JVMs. In this session we take a deep dive into the issues and the optimal tuning configurations for tuning large JVMs in the range of 4GB to 128GB.

In this session the GC tuning recipe shared is a refinement from 15 years of GC engagements and an adaptation in recent years for tuning some of the largest JVMs in the industry using plain HotSpot and CMS GC policy. You should be able to walk away with the ability to commence a decent GC tuning exercise on your own. The session does summarize the techniques and the necessary JVM options needed to accomplish this task. Naturally when tuning large scale JVM platforms, the underlying hardware tuning cannot be ignored, hence the session will take detour from the traditional GC tuning talks out there and dive into how you optimally size a platform for enhanced memory consumption.



with Tim Berglund

Tim Berglund

Gradle is a compelling new build tool that incorporates the lessons learned from a decade of Ant and Maven. More than just a compromise between declarative and imperative build formats, or between convention and configuration, Gradle is a sophisticated software development platform that simple builds easy and complex, highly automated continuous software delivery pipelines possible to build. Using its extensible APIs and expressive DSL, you're equipped to build your next build.

Bring your laptop to this session for the following:

  • Build a Java project
  • Resolve transitive dependencies
  • Run unit tests
  • Build a Groovy project
  • Create multi-project, polyglot builds
  • Wrap your build with a repeatable version of Gradle
  • Extend Gradle with custom tasks
  • See the plugin architecture


with Kenneth Kousen

Kenneth Kousen

Build a Grails application from start to finish in this half-day workshop. We'll start with domain classes, apply constraints, add controllers and services, apply both unit and integration tests, and then add additional functionality through plugins.

This rapid introduction to Grails will take advantage of the newest features of Grails 2.0 using the interactive scripts and db console. In addition to building an application, existing samples will be reviewed as a source of good practices and plugins.

Some knowledge of Groovy is assumed but not required.

See Workshop Requirements »

with Ken Sipe

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.

The labs will require the use of: - a virtual machine with BackTrack 5 - a wifi adaptor - and a laptop.

We will have ISO installations of BackTrack 5 for you to install on your VM. It is best if you have this pre-installed, it can be downloaded at http://www.backtrack-linux.org/ . In order to run backtrack, you will want to install this to a virtual machine, if this is new to you, pick up virtualbox or vmware.

The wifi adaptor needed is an Alfa AWUS036H or Alfa AWUS036NHA. You will need 1 of these external adaptors. There are ~ $30 at amazon.

Through the labs we will: - Disassociate wireless traffic - Crack a WEP key - Learn to break through a WPA device - Scan for open ports



with Johanna Rothman

Johanna Rothman

You don’t have to be a social butterfly to succeed with social networking. Whether you are searching for a new job, marketing your business, or recruiting for a candidate, you need to know how to network. But as a professional, you want to network with authenticity. Authentic networking means making a warm connection--having a reason to connect. You need to build your reputation to network.

You start to build your reputation at work. You extend your reputation on social networking sites, mailing lists, and with online participation.

During this session, you will analyze your current online network and your current online participation. You will focus on using social networking sites, mailing lists, and other online email and writing to build your reputation. You’ll leave with an action plan and a budding network to help you with that action plan.



with Prasanna Pendse

Prasanna Pendse

Continuous Delivery, DevOps, Cloud and Scalability are all the rage. At the heart of all of those is the ability to reliably recreate infrastructure on demand.

In this session, we'll learn to work with Infrastructure as Code. We'll use puppet to automate infrastructure in EC2 for a sample application that uses Apache, Tomcat, MySQL and MongoDB.

See Workshop Requirements »

with Neal Ford and Stuart Halloway

Neal Ford

Clojure is a powerful dynamic language that compiles to many target environments, including the JVM, JavaScript, and the CLR. In this talk, you will learn how to think in Clojure, and why you should want to.

Clojure encourages functional style with persistent data structures, a rich library of pure functions, and powerful processing support via the seq and reducer abstractions. Clojure implements a reference model for state, where references represent atomic successions of values, and change is encapsulated by value and reference constructors. This reference model is more substantive and suitable to application development than individual techniques such as Software Transactional Memory (STM) or actors.

The most important single principle behind Clojure is simplicity. Clojure's abstractions are simple and orthogonal. A la carte polymorphism, careful support for names and namespaces, the reference succession model, and a wide selection of small, composable protocols make Clojure programming swift, surgical and accurate.

Clojure's expressiveness does not mean that you have to compromise on power. It is an explicit design goal of Clojure to provide access to the power of the underlying platform, and for programmers never to have to "drop down" to the platform level for performance-sensitive work.

On the Web



with Arun Gupta

Arun Gupta

The Java EE 7 platform focuses on Boosting Productivity and Embracing HTML5. JAX-RS 2 adds a new Client API to invoke the RESTful endpoints. JMS 2 is undergoing a complete overhaul to align with improvements in the Java language. Long awaited Batch Processing API and Concurrency Utilities are getting added make the platform richer. A new API to build WebSocket driven applications is getting added. JSON parsing and generation is now included in the platform itself. JavaServer Faces will add support for HTML5 forms. There are several other improvements coming in this latest version of the platform. Together these APIs will allow you to be more productive by simplifying enterprise development.

This hands-on lab will provide a comprehensive introduction to the updated Java EE 7 platform using GlassFish 4. The attendees will learn the design patterns of building an application using Java EE 7.



with Christopher Judd

Christopher Judd

Wonder what all the Cloud Computing hype is about? Want to know how to deploy a standard Java web application to the cloud and get limitless scalability? Well, this hands on tutorial will answer all your questions and provide confidence by walking you through the process of deploying a sophisticated Java web application to the Amazon Web Service (AWS) Cloud.

During this tutorial you will provision clustered servers (EC2), relational database (EC2 and EBS), load balancer (Elastic Load Balancing), content delivery (Cloud Front) and how to monitor your whole infrastructure. Other Amazon Web Services will be demonstrated and discussed as appropriate.

Note: An Amazon Web Services Account is a nice to have and will incur a minimal cost during the tutorial but is not a requirement. Access to AWS will be provided to you if you don’t already have access.



with Brian Sam-Bodden

Brian Sam-Bodden

This workshop is aimed at Java and Java EE developers looking to understand and apply a Rule Engine to solve problems typically and painfully addressed with traditional programming techniques.

In this workshop you will learn how to build lean applications using Test-Driven Development Techniques in conjunction with jBoss’ Drools Rule Engine to streamline, simplify and minimize the maintenance burden of a growing application in a rapidly changing business environment

See Workshop Requirements »

with Nathaniel Schutta

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

We'll look at some popular web sites discussing what we would do differently in a mobile context and then take a look at the actual mobile experience to see what other designers actually did. Using paper, we'll work though a design or two of our own. We'll wrap up discussing various methods of creating a mobile app - should we use the web or build something native? What about shell apps? While we might not have all the answers, at the end of this workshop you'll know what questions to ask when thinking through your own situation.



with Jeremy Deane

Jeremy Deane

This two-session workshop provides a hands-on introduction to Mule Enterprise Service Bus (ESB).

Agenda

Environment Setup - Hello World! - Build and Deployment

ESB Core Concepts - Service Design Patterns - P2P Integration Exponential Cost - Enterprise Integration Patterns

Mule ESB Fundamentals - Staged Event Driven Architecture - Flows, Transports and Components - Testing and Deployment Options

Mule ESB Exercises - Service Proxy - Service Mediation - Service Orchestration



with Daniel Hinojosa

Daniel Hinojosa

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?

Scala Koans, a set of test cases that will teach you Scala language. The Scala koans will help the audience learn the language, syntax and the structure of the language through test cases. It will also teach the functional programming and object oriented features of the language. Since learning is guided by failing tests it allows developers to think and play with the language while they are learning.

See Workshop Requirements »

with Craig Walls

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.

In this 2-part workshop, we'll dig in with a hands-on exploration of a variety of data stores, including Redis, MongoDB, Neo4j, and traditional RDBMS. In doing so, you'll experience first-hand how Spring Data simplifies working with these data stores.

See Workshop Requirements »

with Arun Gupta

Arun Gupta

The Java EE 7 platform focuses on Productivity and HTML5. JAX-RS 2 adds a new Client API to invoke the RESTful endpoints, allows asynchronous client/server, and server-side content negotiation. JMS 2 is undergoing a complete overhaul to align with improvements in the Java language. Long awaited Batch Processing API and Concurrency are also getting added to build applications using capabilities of the platform itself. Together these APIs will allow you to be more productive by simplifying enterprise development.

WebSocket attempts to solve the issues and limitations of HTTP for real-time communication. A new API is getting added to build WebSocket driven applications. Processing JSON structures is inherent in any HTML5 applications and a new API to parse and generate JSON is being added to the platform. JavaServer Faces will add support for creating reusable flows and HTML5-friendly markup. There are several other improvements coming in this latest version of the platform.

The Java EE 7 platform is scheduled to release in Q2 2013. Most of the implementations are already integrated in GlassFish. This talk will provide a code-intensive introduction to the updated Java EE 7 platform. Several live demos will be shown during the talk. Don't miss out on this session to learn all about how to leverage the new and exciting standards in building your next enterprise application.





Blogs

Johanna Rothman

Devs in the ‘Ditch Slides Posted

Posted By: Johanna Rothman on May. 21, 2013

I gave a talk at Devs in the ‘Ditch last week when I was in London. I posted the slides on slideshare: Overcoming Three Pitfalls of Transitioning to Agile. The very nice people at 7digital made a video and posted it, to



Alan Shalloway

Day 15 of 100 Know You Are Managing Time to Market & How To Do It

Posted By: Alan Shalloway on May. 17, 2013

Continuing with the 100 Things You Must Know to Be Effective In Software Development The purpose of development/IT is to deliver value quickly - not just for a team, but for the entire organization. If you reflect on this, it's not about going fast, it



Alan Shalloway

Day 14 of 100 There is more than customer value

Posted By: Alan Shalloway on May. 15, 2013

Continuing with the 100 Things You Must Know to Be Effective In Software Development While adding value to the customer is the ultimate goal, there is more than customer value. There are actually at least five different types of business value: knowing



James Ward

Auto-Refresh for Play Framework Apps

Posted By: James Ward on May. 15, 2013

Over this past weekend I built a little tool for Play Framework app developers which auto-refreshes an app in Chrome when the source code or static assets change. Check out a video demonstration: For information on how to set it up, check out the proje



James Harmon

Android Panel and Kiosk Apps

Posted By: James Harmon on May. 14, 2013

One advantage of doing business in the Chicago area is getting to see lots of manufacturers.  The Midwest still builds stuff.As an Android developer who gets to talk with many of the local companies I've recently noticed a pattern in the Android sp



Alan Shalloway

Day 13 of 100 Systems Thinking From Individual to Organization

Posted By: Alan Shalloway on May. 14, 2013

Hi everyone.  To pick the pace back up I'm going to write either shorter blogs or, as in today, I will take some previous work and mold it into this work.  I appreciate your patience and will get things going agai



James Ward

Securing Single Page Apps and REST Services

Posted By: James Ward on May. 13, 2013

The move towards Single Page Apps and RESTful services open the doors to a much better way of securing web applications. Traditional web applications use browser cookies to identify a user when a request is made to the server. This approach is fundame



More Blogs »
 

Themes at ÜberConf

  • Architecture
  • Enterprise Java
  • Java Internals
  • Security - Enterprise & JVM
  • Cloud Computing
  • Languages on the JVM - Groovy, JRuby, Scala & Clojure
  • Java Web Frameworks - Wicket, Tapestry & SpringMVC
  • Build Systems - Maven & Gradle
  • Testing
  • Agility

 

Featured Speaker


 

Registration Includes

  • Four Day - Access Pass
  • All Meals / Snacks –duration of the symposium
  • Session Materials
  • Custom Binder
  • Wi-Fi Access
  • Great Raffle Giveaways
Register Now »
 

Location

Westin Westminster
Westin Westminster
10600 Westminster Blvd
Westminster, CO   80020
View Map