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 wilmore »

Tapestry 5.4: Focus on JavaScript

Posted Tuesday, January 24, 2012

more »

Review: Gradle Class with Luke Daley

Posted Tuesday, January 24, 2012

Last week, Luke Daly arrived in Portland to teach a three day Gradle class; the folks at Gradleware were nice enough let me audit the class (so it only cost me a couple of thousand dollars of lost billing revenue to attend). My goals for the class was more »

Hackergarten in PDX - Friday January 20th

Posted Friday, January 13, 2012

Merlyn Albery-Speyer is organizing a Hackergarten while Luke Daley (creator of Geb, and Gradle committer) is in town to run an in-depth Gradle training. I'll be there, working on Tapestry, or Gradle, or a video game, or something. Please see Meryln'smore »

Adding "Ajax Throbbers" to Zone updates

Posted Thursday, December 29, 2011

A common desire in Tapestry is for Zone updates to automatically include a throbber (or "spinner") displayed while the Ajax update is in process. This is, unfortunately, a space where the built-in Tapestry 5.3 Zone functionality is a bit lackinmore »

Dissecting a Tapestry Operation Trace

Posted Friday, December 23, 2011

I'm helping out a client who is having a problem using Spock and Tapestry 5.3 together. The Spock/Tapestry integration was created for Tapestry more »

Dissecting a Tapestry Operation Trace

Posted Thursday, December 22, 2011

Imore »
Read More Blog Entries »

Presentations

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 »

Clojure 101

A brief introduction to the Clojure programming language: combining the best features from 40 years of Lisp heritage with the familiarity, performance, and ubiquity of Java and the Java virtual machine.more »

Getting Started Writing Interactive Fiction

If you're of an, ahem, certain age, you may remember the joy of text adventures: adventure games powered by prose and the player's imagination. The days of "Zork" and "Planetfall" and commercially available text adventures are long gone … but the concept,more »

Spock: A Highly Logical Way To Test

Spock is a fabulous new testing framework for the JVM. Spock leverages all the DSL power of the Groovy language to make testing a breeze. Spock tests are concise and readable, with excellent support for error reporting and for mock object creation.more »

Modern Application Foundations: RequireJS and Twitter Bootstrap

We're all increasingly in the business of writing richly interactive applications using HTML and JavaScript … that's a given. But the devil's in the details, and most applications get those details wrong. Getting JavaScript from the server to the browser more »

PhoneGap: Bridging the Gap between Web Apps and Mobile Apps

PhoneGap (soon to be Apache Callback) is an established framework for building cross-platform mobile applications using just HTML5 and JavaScript … that still provides access to native features such as the camera, geolocation, notifications, and more. more »

Testing Web Applications with Geb

If you build web applications and cringe at the phrase "but how are we going to test it?" you're going to love Geb: the browser automation and testing tool. Geb is a Groovy framework for testing web applications: it builds on Selenium, but draws ideas fromore »

Backbone.js: Run your application in-browser

Follow the trends and you'll notice that, increasingly, web applications are running in the browser. That can be great news … until you have to write the JavaScript for all that client-side behavior. Fortunately, a new breed of client-side MVC frameworks more »

Clojure: Up To Speed

Clojure is an elegant language … concise, and expressive, without going overboard (I'm looking at you Haskell!). Weaving together the language itself, the immutable collection types, the carefully crafted mutable reference types, lazy evaluation, and the more »

Howard's NFJS Schedule

San Antonio, TX
Apr 13 - 14, 2012


Books

Tapestry in Action (In Action series)

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.