|
|
||||||||||||||||||
|
|
||||||||||||||||||
![]() |
![]() |
Issue 9 - Revision 8 / February 7, 2005
|
|||
|
Book Review - - - - - - - - - - - - By Samuel Sotillo | October 28, 2004 Although the title is somewhat ostentatious, McKay's is a very well written introductory book on Plone. His style is simple and direct. He approaches every topic from the bottom up, explaining new terms and concepts in a timely manner, and using notes, tips, and comments when an additional push is necessary. Sometimes, when one is already familiar with a topic, the book can become boring and redundant. However, I am certain that novice readers will appreciate the apparent circularity of McKay's style because it may help them to understand difficult topics while reinforcing previous knowledge. As both an avid reader and a modest author of technical documentation, one of the main problems I have found in the way we-technical authors-write introductory books and documentation is our tendency to over-assume what our prospect readers know on the subject we are writing about. The rule should be that if we are writing an introduction to a subject, our document should be as self-explanatory as possible-it should not assume what the reader knows unless such knowledge has been explicitly declared as a requirement, perhaps in the preface or introduction. Additionally, we should be careful to introduce every new concept and term at the right time and in the right order, to assure relevance and to guarantee consistency. Examples of bad introductory technical books and documents that do not follow these basic rules abound (you can see some of mine as examples, unfortunately). In fact, the good ones are few in number. Nonetheless, the subject of the present review, Andy McKay's The Definitive Guide to Plone, is definitely one of those few. Timing seems to be a very important ingredient of McKay's style, something the reader can ascertain from the beginning in the Table of Contents itself. The book's contents have been carefully crafted. At this point, I would say that there are two well-differentiated parts to the book. One that deals with basic stuff (Chapters 1 through 10) and another that deals with more advanced topics (Chapters 11 through 14). What I consider to be the first part of the book starts with Chapter 1, an introduction to Content Management Systems-which is very appropriate because it helps McKay's readers to grasp the highly important concept of the separation of logic from content very early on. Chapter 2 describes how to get a Plone site up and running on different platforms such as Windows, Unix, or the Mac. Chapter 3 explains how to add and edit content to your brand-new instance of Plone, "straight out of the box" as McKay says. Chapter 4 describes simple customization tasks that can be done through the Plone Control Panel and/or the Zope Management Interface. Chapter 5 and 6 introduce both Plone page templates and scripting. Page templates may be a very difficult concept for beginners who are not familiar with Zope. The same may be said about scripting, considering the fact that, today, more and more Web developers are not professional programmers. For this reason, I am sure that many of those readers will enjoy McKay's introduction to Zope Page Templates and Python scripting. Chapter 7 elaborates on two important Plone concepts, layers and skins, which allow the user to add a look-and-feel customization to his/her Plone site. Chapter 8 deals with another (sometimes) difficult Plone concept: workflows. McKay describes-in very simple language-the importance of workflows in ensuring "the separation of logic, content, and presentation," as required by all CMSs (Chapter 1). It is worth noting McKay's use of a credit card transaction to illustrate an "everyday occurrence" of a workflow. Workflows describe a sequence of transitions from one state to another, just like a "simple state machine." However, a state machine is an engineering concept, which is difficult to visualize. A credit card transaction, on the other hand, is a very common "occurrence," and a lot easier to understand for the beginner. Chapter 9 describes part of the Plone security model. Managing user access is a critical task for any modern Web-based application. In this chapter, for instance, McKay describes roles and groups. Unfortunately, when presenting these two important concepts, McKay uses the same definition for both, characterizing both roles and groups as "a logical categorization of users." The difficulty is that beyond the philosophical implications of his choice of words-it sounds somehow structuralist-these two definitions (i.e., this single common definition) actually say nothing. A role describes a collection of allowed actions (permissions) which are attributed to a particular class of users. Therefore, the logical categorization refers to a class of users (for instance, those with name Manager) exercising a certain role (for instance, that of doing managerial stuff), which is completely different from the concept of group. A group is just a collection of users-and an "extra tool" of Plone-with no complicated test: a user simply belongs to a particular group or not. (Roles, on the other hand, must satisfy a far more complicated set of conditions.) Unfortunately, McKay fails to differentiate between these two important concepts and makes things unnecessarily confusing. Nonetheless, despite this conceptual mess, McKay does a good job in this chapter, introducing important Plone authentication and authorization tools and even has time to talk about advanced topics such as bulk registration and LDAP. Chapter 10 describes another important topic: integration. Web applications depend a lot on integration, mainly because most of the time they need to interact with legacy systems. Here McKay introduces Plone products and provides a little more description of how to use Zope. Further, the chapter deals with integration for Apache and other Web servers and elaborates on integration with respect to the underlying file system, FTP access, and WYSIWYG tools. Chapters 11 through 14 constitute what I consider to be the second, more advanced part of McKay's book. Chapter 11 provides in-depth knowledge about content manipulation. The chapter starts with an overview of content types. It follows with content type configuration and how to create a new content type from an existing one. It also deals with categorization and introduces the extremely important concept of metadata. The idea of metadata is at the very heart of today's information systems, indispensable for the holy grail of searching information through unstructured data repositories like the Web. McKay does a pretty good job of explaining this and other concepts such as indexing, search forms, and validation. Chapter 12 explains how to write your own Plone products in Python. It is a very advanced topic and to understand it well, readers should have a good background in Python. Chapter 13 introduces a better way of developing Plone products: Archetypes. As McKay says, "Archetypes is a framework for automating the development" of Plone products. The chapter is a good example of McKay's best style. Concerned about how to introduce an abstract concept such as schema, McKay starts with a popular dictionary definition. Then he uses that same dictionary definition to elaborate on the specific Plone definition of schema; as something that "specifies what attributes are on your content type." The chapter is rich in reference information, such as tables describing available field types, field attributes, widget types, etc. Further, McKay introduces how to use alternate storage for Plone products such as relational DBMS. Chapter 14, the last chapter of what I've called the second part of McKay's book, is an overview of Plone administration and scaling. This chapter complements Chapter 2 with more advanced administration tasks such as packing the ZODBC, upgrading Plone, managing performance, profiling, and caching. Another interesting topic introduced in this chapter is how to use Zope Enterprise Objects (ZEO) to scale up a Plone site. ZEO is a powerful tool that can boost Plone performance for high-end enterprise-grade applications and McKay does a good job explaining the basics of it. The rest of McKay's book is a collection of appendixes that introduce some complementary information such as API programming, sample code listings, and a very useful glossary. ConclusionMcKay's book is a well-written, comprehensive introduction to Plone. His writing style is simple and straightforward. Apart from some unnecessarily confusing sections, he largely accomplishes what should be the goal of all introductory books on a new technology-to provide an in-depth, bottom-up overview of the basic underlying principles of the technology. The book is also enjoyable to read-it has plenty of cautionary notes, hints, and other bits of advice that keep the reader awake and interested. On the down side, the book covers a great deal of material, sometimes superficially. Further, I consider its title to be somewhat ostentatious, because Plone is such a young technology that there is still too much that needs to be written about it before any book could be considered a "definitive guide." Nonetheless, the book is certainly a worthwhile buy. Book Review End.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ZopeMag is committed to bringing you the best in Zope Documentation. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag |
|