The Pattern Almanac
Authors: Linda Rising
Venue:  (2000)

From the Book:PREFACE: This book organizes and describes published patterns to help you find the pattern(s) you need. It contains two kinds of patterns: those that stand alone (patterns), and those that work within a collection (subpatterns). The collections may be pattern languages, or they may be patterns published as a unit that solve problems in a particular domain. In other words, collections comprise interdependent patterns that work together to one degree or another. Stand-alone patterns and collections of patterns are generically termed entries of the Almanac. The first section you encounter, the List of Almanac Entries, is just that: an exhaustive list of all entry titles. Next comes the Categories section, which lists categories of patterns in alphabetical order. Each category is followed by patterns, collections, and experience reports. After Categories comes the heart of the book, the Almanac Entries, containing descriptions of the patterns and collections themselves. Next comes the Bibliography, which contains references for all entries and experience reports. Finally, there is an Index of entries, subpatterns, authors, and citations. If you know the name of a pattern or collection and want to know more about it, use the List of Almanac Entries. If you're not sure of the exact title but know a key word or two, use the Index. If you're interested in patterns for a given domain, look the domain up in the Categories section. With time, you will develop your own technique for using the Almanac effectively. I'm sure you'll also discover areas for improvement. If you find that I have missed a book, article, or URL that harbors patterns, by allmeanslet me know. References to publications that show patterns in action are also welcome. And of course, corrections or additions of any kind are greatly appreciated, especially regarding misinterpretation of pattern intent or characterization, misspellings, annoying habits—you name it! A sticky topic that I hesitated to tackle, at least for now, is pattern evaluation. For those who know Christopher Alexander's work, he labels his patterns with asterisks that indicate how successfully each pattern captures a "deep and inescapable property of a well-formed environment" Alexander+77, xiv. In that vein, I'd love to hear stories about patterns that have or have not worked for you, as well as insights regarding pattern evaluation and categorization. Please send everything to risingl@acm.org, and thanks in advance for your input! Acknowledgments This has been an exhilarating project! It couldn't have happened without the hard work of many people—first and foremost, the pattern writers. Thank you all. I am honored to be a proxy for your contributions to the pattern literature. Thanks to John Vlissides for believing I could really pull this off. He made a significant contribution to the project. Thanks to Paul Becker, Mike Hendrickson, and Sarah Weaver at Addison-Wesley for their support in bringing the book to fruition. Thanks to Ross Venables for collating all those files! Thanks to Luci Crackau for her work on the categories and for allowing me to take over her office. Thanks to Patrick Chan, the Java Developers Almanac author and Frame guru who has been a tireless co-developer of this book. Thanks also to Arthur Ogawa, TEX wizard, for contributing his valuable skills to the layout. Thanks to Rosemary Michelle Simpson, indexer extraordinaire, who also made many valuable suggestions for this book. Thanks to Joel Jones, a former fellow grad student, who jumped in to ferret out experience papers and write up summaries. Thanks to all the reviewers who spent valuable time coming up with improvements to this work. Thanks to Charlie Schultz and Jeff Seigel, my original supporters at AG Communication Systems, and to Paul Narula, my most recent coach, for allowing me to spend time on this effort. Finally, thanks to Karl Rehmer, who reminds me, when I forget, that I have everything I need. Thanks, you dear heart! L.R. Phoenix, Arizona January 2000 risingl@acm.org 0201615673P04062001