ACKNOWLEDGMENTS
xviii
the help of several of them, but the man I want to mention first is Ray Augé. Ray is one
of the smartest guys I know, and he’s the mind behind many of Liferay’s most robust
features. He took lots of time out of many of his days to help me puzzle out some
undocumented and tricky (at least to me)
APIs—which are now documented in this
book. He didn’t just do this for me, though—he does this for everybody. I have no
idea how he gets his own work done, because he’s constantly putting himself out for
others, yet he consistently delivers on making Liferay better and better with each ver-
sion. Thanks, Ray, for all of your help with this book.
Jorge Ferrer is another one of these guys who seems to achieve the impossible.
Somehow he manages to run the Liferay office in Spain, drive many of Liferay’s proj-
ects, help other people (like me), contribute to Liferay’s core, and heavily involve
himself in Liferay’s community. Always positive, always energetic—quite frankly some-
times it makes me tired just thinking about all he does. Thanks, Jorge.
Thanks to Mike Young for walking me through Liferay’s page composition logic in
chapter 9. That was fun to puzzle out and added an important aspect to the book. In
many ways I also owe Mike for planting the seeds that got me into Liferay in the first
place. Thanks, Mike!
My graphics skills are somewhat lacking, and I definitely want to thank Emily
Young for her awesome fake product images, and Jon Neal for the graphic design of
the Inkwell theme. Believe me, you wouldn’t have wanted to see the versions I was try-
ing to make.
If you’ve read the preface, you know that we had to hire some help for me in order
to make this book possible. That help came in the form of Stephen Kostas. Steve
picked up many of my responsibilities of keeping Liferay’s training materials up to
date and free from error, making it possible for me to make only quick, sideways
glances at the training material for the last year. Thanks, Steve, for being so easy to
work with and so willing to pick up a wide variety of tasks.
I guess I have to move this along faster, or it’ll get to be as long as the book itself.
Thanks to all the trainers who helped keep the training material going while I was
working on the book: Julio Camarero, Juan Fernandez, Olaf Kock, Jonathon Omahen,
Sten Martinez, Alberto Montero, Zsigmond Rab, and Steven Cao. Thanks to Tim Tel-
cik for taking off and running with the
PDF tools.
Speaking of training, special thanks to Ed Shin and Jeff Handa for helping me
maximize my time on the book by organizing various training tasks. Thanks also to
Mike Han for keeping us in line and for your help with my workflow questions.
Thanks to Greg Amerson for the awesome Liferay
IDE/Developer Studio and all of
your excellent feedback. You’re making Liferay development easier every day, man.
To Ivan Cheung and James Min: I wouldn’t be in Liferay without you guys. Thanks!
Neil Griffin is to me the (slightly) older brother I never had. Thanks for your
encouragement and wisdom, Neil.
Thanks to my many coworkers who were so encouraging over the past year: Josh
Asbury, Alice Cheng, Paul Hinz, James Falkner, Michelle Hoshi, JR Houn, Mike