Note: this is content from ÜberConf   2011. Please find current event information on our home page.

Platinum Sponsors

NFJS One - Training, Consulting, Mentoring Gradleware Contegix

ÜberConf 2011 Brochure - Download


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

Proud Supporter of:


Howard Lewis Ship

Creator of Apache Tapestry

Howard Lewis Ship is the creator and lead developer for the Apache Tapestry project, and is a noted expert on Java framework design and developer productivity. He has over twenty years of full-time software development under his belt, with over ten years of Java. He cut his teeth writing customer support software for Stratus Computer, but eventually traded PL/1 for Objective-C and NeXTSTEP before settling into Java.

Howard is respected in the Java community as an expert on web application development, dependency injection, Java meta-programming, and developer productivity. He is a frequent speaker at JavaOne, NoFluffJustStuff, ApacheCon and other conferences, and the author of "Tapestry in Action" for Manning (covering Tapestry 3.0). Lately, he's been dipping his toes into alternate languages, including Clojure.

Howard is an independent consultant, offering Tapestry training, mentoring and project work as well as training in Clojure. He lives in Portland, Oregon with his wife Suzanne, and his son, Jacob.

Blog

LinkedIn Etiquette

Posted Friday, January 27, 2012

I've used LinkedIn for many years now, long before I joined Facebook .more »

Tapestry Advantages

Posted Thursday, January 26, 2012

A summary of a discussion about the advantages of Tapestry over Struts: Exceptional exception reporting Significantly less code Live class reloading Sensible defaults, especially for SEO-friendly URLs Great community Flexibility and customizability more »

Tapestry 5.4: Focus on JavaScript

Posted Wednesday, January 25, 2012

Tapestry 5.3.1 is out in the wildmore »
Read More Blog Entries »

Presentations

Applying Patterns: How to Spot Problem Code and What To Do About It

How do you spot bad code? How do you turn it into good code? We'll be looking at code examples from real applications.more »

Have Your Cake and Eat It Too: Meta-Programming Techniques for Java

Ever been envious of how easily Python, Ruby and even JavaScript can “meta-program”? It’s like magic: seemingly simple or innocuous code takes over big responsibilities; new methods and behaviors appear out of thin air. Your code, your primary code, staysmore »

Getting Started with Apache Tapestry

Apache Tapestry is a fast, easy to use, high-performance, general purpose web framework. Tapestry eschews heavy XML configuration, base classes, and boilerplate code: instead it embraces convention-over-configuration, letting you build your application frmore »

Applying Patterns: How to Spot Problem Code and What To Do About It

close

Howard Lewis Ship By Howard Lewis Ship

How do you spot bad code? How do you turn it into good code? We'll be looking at code examples from real applications. We'll start by identifying the problem with the code: things like maintainability, clarity, and testability. Then we'll look for ways to improve that code: perhaps introducing base classes, perhaps other refactorings based on Gang of Four Patterns.



We'll examine a number of common patterns including Builder, Visitor, Chain of Responsibility, Proxy, and Strategy. This session will offer insight into how to spot the problem how to select the solution, and how to apply the changes to get your code nice and shiny!


Have Your Cake and Eat It Too: Meta-Programming Techniques for Java

close

Howard Lewis Ship By Howard Lewis Ship

Ever been envious of how easily Python, Ruby and even JavaScript can “meta-program”? It’s like magic: seemingly simple or innocuous code takes over big responsibilities; new methods and behaviors appear out of thin air. Your code, your primary code, stays simple and easy to follow. Now, we know you can do that for scripting languages, but what do we do about Java? With the proper component-focused context, it is possible to emulate many of those same capabilities, by applying a simple set of code transformations at runtime.



In this session you’ll learn about meta-programming and how it can apply to traditional Java. You’ll learn about the techniques needed to transform classes at runtime, adding new behaviors and addressing cross-cutting concerns. The presentation will discuss a new framework for this specific purpose, but also draw examples from the Apache Tapestry web framework, which itself is rich in meta-programming constructs.


Getting Started with Apache Tapestry

close

Howard Lewis Ship By Howard Lewis Ship

Apache Tapestry is a fast, easy to use, high-performance, general purpose web framework. Tapestry eschews heavy XML configuration, base classes, and boilerplate code: instead it embraces convention-over-configuration, letting you build your application from simple, concise POJO (Plain Old Java) page and component classes. Tapestry is laser-focused on giving you maximum bang for your programming buck, and this shows up as a broad range of well-integrated features, including extensive Ajax support. Don't let unfamiliarity get in the way of learning this powerful, friendly tool.



Tapestry is different from traditional action-oriented frameworks, such as Struts and SpringMVC, because it is component-based: it organizes the overall application into pages, and builds pages from reusable components. Tapestry leverages this overall map of the application to take over many responsibilities normally tossed in the developer's lap, such as building and dispatching on URLs, and managing server-side state.

Tapestry is very easy to get started with: a few seconds using Maven and you'll have a template project ready to customize. In this session, we'll start with that template, add in some database support, and have a somewhat polished application that includes client-side and server-side input validation and basic Ajax support. Along the way we'll learn a bit about what Tapestry is doing under the covers to support you as a developer: obsessive attention to exception reporting, live reloading of classes, the ease with which reusable components can be created, and lots of meta-programming. We'll also touch on what makes Tapestry great in production: its terrific performance, its approach to organizing and deploying JavaScript, and how it exposes other assets to the client in a scalable, efficient way.



Books

by Howard M. Lewis Ship

Tapestry in Action (In Action series) Buy from Amazon
List Price: $44.95
Price: $34.16
You Save: $10.79 (24%)
  • The creator of Tapestry details how to use this new framework's components to create rich web-based GUIs using links, images, and HTML forms. The challenges of web application development are discussed, such as managing server-side state properly, application localization, and maintaining synchronization between the client web browser and the application server. At the same time, the benefits of a clean separation between presentation logic and business logic and how well Tapestry succeeds in keeping these two concerns apart are identified. Written for new Tapestry users and even developers new to creating web applications in general, this guide includes extensive notes on development "gotchas," including common Tapestry errors and how to fix them. Advanced techniques are covered as well, including creating entirely new components, integration with traditional servlet and JSP applications, and creation of client-side JavaScript. Finally, a complete J2EE application, the Virtual Library, is presented and analyzed in detail.





Blogs

John Smart

Managing state between steps

Posted By: John Smart on Feb. 21, 2012

Sometimes it's useful to be able to pass information between steps. For example, you might need to check that a client's details entered into a registration form appear correctly on a confirmation page later on. You could do this by passing values fro



Andres Almiray

The Griffon Trove: peeking at the build

Posted By: Andres Almiray on Feb. 20, 2012

There are times when working with Griffon you'd like to know what's really happening during build process execution; for example, how much time does it take for a task to complete, or what are the different events you can react to using build event h



Andres Almiray

The Griffon Trove: what version are you running?

Posted By: Andres Almiray on Feb. 19, 2012

Welcome to a new series of posts regarding Tips & Tricks about Griffon. The Griffon team decided to leave a late San Valentin present in the form of Griffon



Bruce Snyder

Yak Shaving to Install Git Via MacPorts on OS X Lion

Posted By: Bruce Snyder on Feb. 19, 2012

Today I needed to set up a new MacBook Pro and as such one of the tasks was to install git on OS X Lion. Being that I am a fan of MacPorts, I decided to start there but I ran into some strange errors. Unfortunately I wound up doing a lot of yak sha



Bruce Snyder

The Regenexx Stem Cell Procedure for my Knee

Posted By: Bruce Snyder on Feb. 18, 2012

In my last blog post, I discussed the problems I have had with my knee, the recent injury causing meniscus tears and about the alternative treatment I elected to have instead of surgery. Well this week I underwent the treatments for the Regenexx pro



Johanna Rothman

Pragmatic Managers Posted for Your Reading Pleasure

Posted By: Johanna Rothman on Feb. 17, 2012

I have posted 2012′s Pragmatic Manager emails. I have been writing in themes this year: I am writing about geographically distributed teams in preparation for my Geographically Distributed Teams Workshop with Shane in April: Building Trust in An



Johanna Rothman

Webinar Recording Available, Last Day for Early Registration for Workshop

Posted By: Johanna Rothman on Feb. 15, 2012

Shane and I recorded a webinar at noon today, about our Geographically Distributed Agile Teams workshop. We had a great time, and answered a lot of questions. We had a few recording glitches, so if you hear me talking over Shane, oo



Terry Ryan

Inception Score Easter Egg with Web Audio API

Posted By: Terry Ryan on Feb. 15, 2012

There's a great video on YouTube detailing an Easter Egg in the score for the movie Inception.  Basically Inception is about dreams and the slowing down of time. Likewise the score is based on the slowing down of music that is played inside the plot of



Terry Ryan

Web Audio API: setting playbackRate

Posted By: Terry Ryan on Feb. 14, 2012

I was working on a little demo showing the manipulation of playback rates of audio clips.  The Audio tag failed miserably.  On Safari and Chrome (both for Mac) the audio tag couldn't playback the audio any slower than half spe



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