193 symposiums and 30,000 attendees since 2001

Southern Ohio Software Symposium

August 15 - 17, 2008

Cincinnati Marriott Northeast
Cincinnati Marriott Northeast
9664 Mason-Montgomery Road
Mason, OH 45040
Map »


NOTE: You are viewing details about a past event. View our upcoming event schedule here ».

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. Lately, he's been dipping his toes into alternate languages, including Clojure.

Howard is the author of Tapestry in Action for Manning Publications (which covers Tapestry 3.0). He lives in Portland, Oregon with his wife Suzanne, a novelist, and his son, Jacob.

Howard is an independent consultant, offering Tapestry training, mentoring and project work as well as training in Clojure.

Blog

Live Service Reloading in Tapestry 5.2

Posted Monday, March 15, 2010

A common question I get during Tapestry training sessions is: Why can't Tapestry reload my services as well as my pages and components?. It does seem odd that I talk about how agile Tapestry is, with the live class reloading, and how nice more »

Procrastination and JavaOne 2010: See you in 2011!

Posted Monday, March 15, 2010

Well, that's what I get for waiting until more »

Live Service Reloading in Tapestry 5.2

Posted Friday, March 12, 2010

A more »

Why Eclipse leaves me wanting

Posted Thursday, March 11, 2010

I think I've come to understand why Eclipse leaves me always feeling a bit frustrated. Yes, it is more stable than IDEA, uses less memory, has some documentation, and a lot of acc more »

Java Champion

Posted Monday, March 8, 2010

You might call it petty, you might call it vain, but I've aspired to be recognized as a Java Champion for the last couple of years. The process by which you are selected for this is a bit secretive, but I've finally gotten the nod and joined the more »

March of Progress

Posted Monday, February 22, 2010

Or should that be "Late February of Progress". I have to say I'm a bit envious right now of Rich more »

Evolving the Meta Programming in Tapestry 5

Posted Friday, February 19, 2010

I've set a goal of removing Javassist from Tapestry 5 and I've made some nice advances on that front. Tapestry uses Javassist inside the web framework layer to load and transform component classes. All that code is now rewritten to updated API more »

Live reloading of Tapestry services?

Posted Thursday, February 11, 2010

During today's Tapestry Training at SkillsMatter, the question about live class reloading for Tapestry services came up. Now, my normal response is to talk about class loaders, and mysterious class-cast exceptions it would cause, and the need more »

Devoxx: Clojure Talk Now Available

Posted Thursday, February 11, 2010

A full video of my Devoxx 2009 talk, Clojure: Functional Concurrency for the JVM is now available: The talk runs about 40 minutes and does not include the questions and answers from the end. You can see I was just a touch jetla more »

Paris Clojure Talk

Posted Monday, February 8, 2010

I had a terrific time spreading the word about Clojure tonight, followed by some fun and spirited discussions over dinner. People are intrigued by Clojure, even as they struggled with a strategy for bringing it into their organization. Clojure more »

Commited to Tapestry

Posted Monday, February 8, 2010

Quite a few people have commented on Ten Years of Tapestry, many to note some of the many other great projects being built with Tapestry as a foundation. We keep a list of tutorials and extensions on the Tapestry home page, with many other sit more »

Ten Years of Tapestry

Posted Thursday, February 4, 2010

I recently realized that the first prototype of Tapestry was written ten years ago! It all started as a home project in my living room, with the original inspiration coming from some brief exposure to WebObjects. Even the "new" codebase, Tape more »
Read More Blog Entries »

Presentations

Guerilla Unit Testing Part 1: TestNG

Part one (of two) covers the TestNG unit testing framework, and shows how it integrates with Selenium (for integration testing). more »

Guerilla Unit Testing Part 2: The Weird and Wonderful EasyMock

In part two (of two) we go in depth on EasyMock, the weird and wonderful tool for creating mock objects on the fly. We'll do a good bit of live coding as we examine how to use, tame and extend this powerful tool. more »

Introduction to Tapestry 5

Tapestry 5 is a complete rewrite of Tapestry from the ground up. It takes everything good about Tapestry and cranks the volume up to eleven, while removing the frustrating parts of using Tapestry. This session takes the wraps off this new and innovative t more »

Pragmatic Patterns with Tapestry 5 IoC

Everyone likes the Gang of Four design patterns, but it's not always clear just how to make use of them in your day to day coding efforts. Hidden inside Tapestry 5 is an Inversion of Control (IoC) container that is structured around several common patter more »

Guerilla Unit Testing Part 1: TestNG

close

Howard Lewis Ship By Howard Lewis Ship

Part one (of two) covers the TestNG unit testing framework, and shows how it integrates with Selenium (for integration testing).



In part one of this two part session, we'll discuss the basics of unit testing and show how to use TestNG. We'll discuss how to use the tool, organize tests, and collect results, as well as integrate with IDEs, Ant and Maven. Lastly, we'll see advanced uses of TestNG combined with Selenium to automate integration testing within a test suite.


Guerilla Unit Testing Part 2: The Weird and Wonderful EasyMock

close

Howard Lewis Ship By Howard Lewis Ship

In part two (of two) we go in depth on EasyMock, the weird and wonderful tool for creating mock objects on the fly. We'll do a good bit of live coding as we examine how to use, tame and extend this powerful tool.



Unit testing with only gets you so far; even when you've refactored your code and hidden all your implementations behinds interfaces you are still stuck with the problem of testing the individual pieces. If you've hit this point and despaired, know that there are tools to help ... including the weird and wonderful EasyMock. We'll discuss unit testing in general, and how EasyMock is used to to generate mock objects, allowing you test each class in isolation. We'll be doing some live coding to show you step-by-step how to build up a unit test, interpret EasyMock's baffling error messages, and set yourself up for easy reuse of testing code.


Introduction to Tapestry 5

close

Howard Lewis Ship By Howard Lewis Ship

Tapestry 5 is a complete rewrite of Tapestry from the ground up. It takes everything good about Tapestry and cranks the volume up to eleven, while removing the frustrating parts of using Tapestry. This session takes the wraps off this new and innovative technology, showing off important new features such as live class reloading (the ability to change your Java classes and continue using the application without interruption or redeployment), the simplified coding model, and the total lack of XML. This session is of interest to those already using Tapestry 4, and those new to Tapestry and ready to jump on the bandwagon.



Tapestry 5 really does take everything great about Tapestry and crank it up, all with the goal of making your job as a web developer easier. Being able to change your classes at will within a running application is just the tip of the iceberg; Tapestry 5 is designed to break down the barriers to developer productivity by simplifying every aspect of creating a web application.

Tapestry 4's base classes and abstract methods are all gone, replaced with pure POJOs and a handful of annotations. All the XML configuration of Tapestry has been removed as well. Tapestry 5 practices convention over configuration with a vengeance, introducing smart defaults and intelligent logic to let Tapestry do the right thing.


Pragmatic Patterns with Tapestry 5 IoC

close

Howard Lewis Ship By Howard Lewis Ship

Everyone likes the Gang of Four design patterns, but it's not always clear just how to make use of them in your day to day coding efforts. Hidden inside Tapestry 5 is an Inversion of Control (IoC) container that is structured around several common patterns (Chain of Command, Strategy, Decorator and Filter Chain will be covered). This isn't academic navel-gazing ... this is about leveraging the common patterns so that you can write code you can easily test, and about creating frameworks and toolkits that can be easily extended.

We'll see how Tapestry uses these patterns, and go from there into how you can apply the same techniques to your own projects, resulting in better, cleaner, more testable code.



This session also serves as an introduction to the Tapestry 5 IoC container.



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. Targeted to 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.




Event Highlights

Don't miss your chance to attend more than forty education and solutions sessions:

  • In-depth Discussions
  • Peer Exchange
  • Access to Speakers
  • Expert Panel Discussions
  • Hands-on Code Examples
  • Best Practices
  • Birds of a Feather Session
  • Insight on Cutting-Edge Tools

 

Stay Informed


 
Subscribe to our RSS Feed.
RSS Feed