Plone 3 Intranets Review
Víctor Fernandez de
Alba
When Packt asked me to
review this book I have to honestly
say that I wasn't looking forward to it. Plone as a product has a notorious
track record for what I believe to be not the friendliest or most accessible
documentation. Regardless of it's technical superiority and usability, it's a
glaring deficiency. This is getting better with time but there is still a lot of
work to do. Unfortunately my apprehension was filled with curiosity and I
agreed to do so at one of the busiest times for me. That and the fact that
instead of going on another tirade about documentation it would probably be
useful to use my own
guidelines in reviewing the book.
<h2>Nutshell for the impatient.</h2>
For those of you that cannot wait, have ADD, or TLDR syndrome here's a
short summary. Actually, this may come as a shock but I really enjoyed the
book. My initial wanton and disregard was primarily for Chapter 8 but
clearly it was simply due to context. Packt should really not use that as a
sample chapter for this book, it's a complete turn off for several reasons. I
will pass that gripe along. That said, there are some tidbits in this book that
really make it a good reference manual and a keeper for at least a little while.
In regard to technical documentation that means it's something you probably
want on your shelf if you're doing anything with Plone and intranets in the
forseeable future. Quite frankly the book should be updated in minor fashion
with a subsequent release for Plone 4 as not much has changed and it will
help to get the book in hands of more new administrators and users of Plone.
With some very minor changes this book could be called Plone 4 Intranets.
This issue was most likely do to time constraints as Plone 4 has only recently
been released. The intended audience for this book is administrators or new
users who tend to do their own administration and I think it's successful in
reaching that audience. That said on a scale of 1 - 10 I give the book a strong
7.
<h2>Chapter 1</h2>
The introduction gives a good general background to Plone and how it
came into existence. Discussing the excellent security track record of the CMS
and it's general history up until present. It then begins to segue into the more
complicated but powerful features of Plone. Workflow, States and Transitions.
This chapter also covers and introduces Python and ZODB (Zope Object
Database) and why they are useful not only to Plone but to the entire content
management space. It's short-and-sweet providing just enough information
and background to make it useful to the reader. There is also a nice
overview
of the Plone community which introduces the reader to the entire community
with a great handshake and welcome that is actually quite refreshing. An
introduction on the fine line between extranet and intranets and how the
spaces merge in some use case is a great cap for this
chapter.
<h2>Chapter 2</h2>
Some introduction to the ZMI (Zope Management Interface) and a
discussion of blob file types with no background was a bit too early I believe.
The issue is that blob file types are native to Plone 4 and not Plone 3. It's
again an issue of time constraint and it must of been difficult for Victor to find
the right balance between the two versions but I just don't think the mention
of the information was relevant here. Also even though ZMI is explained in
detail it will be a little hard for non-technical users to fully grasp. The
installation of Plone is shown with the Buildout system instead of
the unified installer as a first option which I felt was a little hard to swallow as
well. For non Plone users this will all seem foreign extremely early on in the
book. However the book shines in guides for installing with the unified
installer on the major operating systems environments. This really should
have been outlined before the buildout instruction but even there the
documentation is precise. The explanation of buildout and how it functions is
really good and it takes you down into the specific sections for each buildout
configuration which is quite handy. If you don't know how to install Plone or
have been having trouble you can follow along step-by-step with these
instruction.
All in all Chapter 2 feels a little abbreviated and some of the concepts I
felt should have been introduced through a relevant example in using them. If
you are well versed in Plone it may seem rote here but will make good printed
reference material for buildout. Otherwise this chapter maybe slighty
confusing to a completely new administrator of Plone. If as a new user you
aren't readily thrown off by Buildout introduction
you've survived one of the more difficult chapters. Also there is no dire need
to use buildout. If you are confused then I recommend reading the sections
for the unified installer specified for your operating system and it should help
you along digesting some of the concepts.
<h2>Chapter 3</h2>
The chapter starts off with creating a Plone site named "intranet". That
one example would of been wholly useful as a step through from Chapter 2.
That said this chapter gives a great overview of the breakdown of the default
Plone theme installed with Plone 3. This has since been replaced in Plone 4
but that is pointed out in the chapter. We also get a well versed overview of
the Plone user interface and how one can go about navigating it. As well as a
few good examples on adding some of Plones default content types. This
includes a walk-through and breakdown of the content structure and default
hierarchy of a Plone site. The Dublin Core
Metadata
specification and good coverage of creating content in Plone is
discussed. Including setting up content with some of the default content
views. This chapter will certainly help the intended audience in navigation and
use of Plone's interface and it succeeds in a comprehensive overview
here.
<h2>Chapter 4</h2>
In this chapter we deal with the configuration of Plone through it's
configlets. They are identified, explained and then broken down into a
detailed explanation of usage. Good coverage of ZODB (Zope Object Database)
packing via the maintenance configlet and the issues and concerns wrapped
around that. There is also a section specifically page 65 which discusses the
fact that Plone 4 has its own UI for site creation that simply feels a little out of
place. The mention of this should have been in Chapter 3. Otherwise this
chapter gives a great overview of the power of the ZMI (Zope Management
Interface) and how it can affect site health if administered incorrectly. A valid
and perfect apt warning as we delve deeper into the ZMI. For anyone well
versed in Plone this is simply a fantastic overview of the ZMI and all of the
objects related to Plone. Adding new products is also discussed in the two-
way fashion. Meaning the old style products and the new standard de facto
recommended procedure of using buildout and eggs (like zip files). The
example given for eggs is really a poor one I believe. TinyMCE is native to
Plone 4 and even though this book is specifically for Plone 3 one has to
suspect that some users will just grab the latest package of Plone which will
cause problems. Other than that this is a great chapter that begins to show
you the power of Plone and the ZMI.
<h2>Chapter 5</h2>
This chapter begins one of the most important series of chapters in
regards to Plone. Managing users and groups. The discussion on roles in
Plone as well as the entire overview of the security system is excellent
coverage of the topic that simply doesn't get much mention at all. Even
experienced Plone administrators or developers get confused about the setup
from time to time. So for instance, the fact that roles are isolated so an editor
who may have the rights to edit content may not have rights to explicitly read
that content. For that you'd need to be granted the reader role. This chapter
also covers how to create and manage a new user or group. There is also
more coverage of administration through the ZMI to create user and groups.
The author even clears up some common misconceptions that a new
administrator to Plone may have such as confusing Plone PAS with the Zope
PAS module. This is a solid meat and potatoes chapter.
<h2>Chapter 6</h2>
Next in this important series of chapters is Managing Workflows. This is
probably one of the most critical and useful topics covered in this book. So far
and up until this point there haven't been many visual diagrams and
explanations for the most part. With the exception of stepping through
commands we don't get much visual aid. This begins to change here as it
begins to become necessary. There is great overview of workflows and what
they are comprised of. Including coverage on out of the box workflows related
with Plone. The difference between a state and a transition and what you can
do with each specific action. There is also light discussion on tales/tal which
exposes the lack of documentation on topics like ZPT (Zope Page Templates).
The book does it's best to provide a link but no coverage is giving there. Quite
frankly one should be able to pickup another manual on ZPT or the likes but a
comprehensive manual doesn't really exist here. We also talk about
some
third party add-on products for Plone primarily collective.workflowed,
collective.wtf and DcWorkflowGraph which simply is a requirement if you are
going to be doing anything with workflows. I really wish one tool was chosen
instead a discussion of the three. Having the three divergent paths even
though useful in the context of choice may confuse a new user should one of
those paths fail. Otherwise this was an excellent chapter and worth the read
even if you are an experienced Plone user, administrator or developer. This
chapter along with the previous one make this book worth keeping as a
reference manual.
<h2>Chapter 7</h2>
Security is important and this chapter covers securing the intranet.
Concentrating primarily on permissions and workflows the chapter goes into
great detail on converging what we have learned up until now in the previous
chapters. The differences between Global and Local roles is great. I feel the
discussion on Anonymous, Owner and Authenticated functional roles was a
bit brief and needed much more detailed explanation. The coverage on
actually creating and implementing a policy is pretty good. From outlining
requirements, building an example intranet workflow, creating a private
section for your intranet and even taking into account third party addon
products security and settings you will be well versed towards this chapters
end on security. This is also the chapter where we start to see a bit of python
code that quite frankly is ok. There is a note, noting that basic product
development will take place in Chapter 10. New users to Plone will most likely
have to skip to this chapter to ramp up and immediately cover that
background if they would like to continue following in earnest but it's not
absolutely necessary. There is also a discussion on collective.sharingroles at
the end which nicely caps the chapter. I'm not sure if it's absolutely required,
but it's a decent addition to the overall chapter.
<h2>Chapter 8</h2>
Using a content type effectively. This chapter in the context of reading
the book is completely useful. Otherwise in the context of simply a sample
chapter it's useless. Quite frankly, there is nothing in this chapter that isn't
already on Plone.org in some fashion.
This doesn't exactly entice
one to buy the book, as I read this as a sample chapter I said to myself, I have
already read this stuff many a time over. Sans this one gripe in this chapter
you'll learn about creating collections and querying the ZODB (Zope Object
Database). We also learn about the useful features of other out-of-the-box
Plone content types. Other than that there is not much to say about this
chapter. I wouldn't have necessarily called it useful outside of the context of
the book and even in context it's more of a standard straight forward
chapter.
<h2>Chapter 9</h2>
This is a nice progression from the previous chapter as it discusses
external content-types and products that can be used with Plone. Most of
these products are primarily for intranet purposes obviously and a good over
view is given of each product. You have calendar, events, blog, survey, poll,
document management and form generation products. In specific the form
generation product covered is PloneFormGen and I'm pleased that this was the
only thing covered on the topic of form generation. There are actually other
different ways to create a form but the author picks one and sticks with it. An
experienced user or administrator of Plone would be able to branch off where
necessary. Also the discussion on the document management products is
really quite useful for intranet settings. This chapter is great in introducing
these add-on products that most intranets will need to use and gives a good
overview of each different type of product.
<h2>Chapter 10</h2>
This chapters goal is to introduce the readers to the basics of Plone
product development and I think it succeeds in that regard. It steps through
the basics of creating and building a completely useful product it's not as
comprehensive as my own documentation on the topic but it's very
comprehensive and readable. GenericSetup the tool used to manage some of
the major tool objects in Plone is broken down in detail and explained
including a matrix of all the relevant xml and it's subsequent description.
There is even an example of cloning a content type with GenericSetup through
the ZMI (Zope Management Interface). The only issue with this chapter
is any
mention of Dexterity. Dexterity is on track to be a replacement/sister for
Archetypes. Unfortunately there are some sacrifices that will be made and
incompatibility with the previous Archetype system is unavoidable.
Quite
frankly Archetypes will be around for sometime to come and there is nothing
useful to be had by even mentioning it in any context at this point in the
book.
<h2>Chapter 11</h2>
Content rules are triggered based on Zope event handlers and this
coverage is pretty decent you'll learn how to create rules and have them
triggered based on specific event. You'll also learn how to create syndicated
feeds from folderish content type objects. However the most important piece
in this chapter will have to go to versioning. Versioning is an absolute
requirement for any content management system and Plone has a simple and
straight-forward way it handles changes to content. This chapter will give a
great overview of how to use the versioning system as well as managing
version policy. The WebDAV and External Editor coverage is also useful.
<h2>Chapter 12</h2>
Chapter 12 starts with the pronouncement "Theming -- what a huge
subject in Plone!" This is quite right as Plone and theming opens all avenue of
possibility I was surprised to see this chapter in this book. After reading it
and with the prior knowledge that there are numerous other manuals,
reference material and books on the topic of Plone theming this chapter is in
my opinion superfluous. All that stated the chapter does give a decent
overview of theming Plone. Changing logos, managing viewlets describing the
page render process and useful tools like Gloworm it
makes itself a chapter of bonus material. Viewed in that context this again
makes the book a solid and useful reference manual.
<h2>Chapter 13</h2>
This is simply a great chapter that discusses proper deployment of Plone
for three different types of deployments. Victor goes into useful detail on site
deployment describing it as a continuous process there are many different
options and implementations but breaking the process down into 3 different
deployment sizes is reachable. We have small 1-50, medium 50-100 and
large 100+ every essential process for a working deployment is covered from
backing up, restoring and packing the database to rotating log files,
scheduling, virtual hosting, load balancing between ZEO clients for
redundancy, caching and even externally authenticating against LDAP
(Lightweight Directory Access Protocol). Each process has enough coverage to
get any of your deployments off of the ground. The only thing that I think is
missing from this chapter is a way to assess and manage performance which I
would have easily given up chapter 12 for. All in all however the final chapter
in this book is yet another solid and useful chapter in what has turned out to
be a great and useful manual.
<h2>Recommendation</h2>
All things considered this book in so far as a technical manual is great
coverage of the topic of Plone and Intranets. The author does an excellent job
in conveying the material and even if you aren't doing anything with intranets
there are several solid chapters on Plone deployment, theming and others that
make the book a solid purchase for anyone planning to use Plone for almost
any application. I give the author my congrats and highly recommend it as a
solid buy.
Syndicated 2010-10-01 02:18:36 from Christopher Warner » Advogato