I strongly believe that, when it comes to technology, people learn through their fingertips. To that aim, I teach Tapestry as an interactive workshop consisting of seven labs. Each lab teaches a different aspect of Tapestry; a particular component or set of components, or a partiular challenge developers are likely to face.

Each lab starts with a 20 to 30 minute presentation that will outline the goals of the lab: the issues to be tackled, the components to be covered, the special challenges to be explored. The labs themselves consist of an Eclipse project and a partially working Tapestry application (usually, just a single page). The goal is to "fix" the application, by adding and configuring components, and by writing small amounts of Java code. For the more complex labs, the work is broken up into smaller stages. Each lab includes a cheat sheet to ensure that no one gets too frustrated.

The Workshop approach is a way for me to gently lead people into the way of Tapestry, and to help individual developers understand exactly what it is that Tapestry does and even how it operated internally. Although the labs are geared for developers who are new to web development and to Tapestry, the are also rich with information of value to even seasoned Tapestry developers.