Review of ‘Alfresco 3 Cookbook’ by Snig Bhaumik

Cover of the Alfresco3 CookbookRecently, I was approached by Packt publishing if I would be interested in reviewing the Alfresco 3 Cookbook – quick answers to common problems. I like to cook, so I agreed. In short; I expected to cook, stirr and fry, but got a thorough guided tour through the ingredients and the kitchen.

The Cookbook is a great book if you’re a starter on Alfresco. I see many people start out with Alfresco and get overwhelmed with the possibilities. – This is their book.

It takes you by the hand and let you install Alfresco and the supporting tools needed. Almost all features of the Alfresco Explorer interface as well as many of Alfresco Share are described. I cannot help but having a glance at Munwar Shariff’s Alfresco Content Management Implementation book, also on my shelf.  There are some similarities. Next to the ‘picks and clicks’, the Cookbook also describes the first steps in configuration, the datamodel, JavaScript API (Sample chapter!), Webscrips, Freemarker and JBPM Workflow, configuring fileservers and using the Sharepoint protocol. For a starter book, it covers it all, and you can follow the guides. For a brief overview of the contents in sections, see this great review, and this one from Dick Weisinger (FormTek) is valid as well.

Alfresco provides a lot of functionality, and some feature can be realized on more than one way. If one knows the limitations, one can make the right design decisions.  Certain choices allow one way of working, but can block another. In my opinion the book lacks some reflection on the subject matter. Some examples:

  • Full text search is mentioned, but I would love some more detail. For each content item, Lucene indexes a maximum number of terms. If one stores big documents, this can be a point of attention (with a penalty on performance?) (lucene.indexer.maxFieldLength).
  • The concept of a Tag Scope is explained very briefly, but I had a different understanding than the explanation on the Wiki. From the Wiki I learned a tag scope is defined by setting an Aspect, but this was not mentioned at all in the Cookbook.
  • In the chapter about WebScript a Freemarker templates is described. The feature of JSON encoding (jsonUtils.encodeJSONString) is not mentioned at all, although it should be used at every template in my opinion, since most of the time one cannot control the content of many attributes.
  • The same for Freemarker and defaults. Having a default value in a string prevents having a null-object to apply a method onto (and fail, since Freemarker is allergic to undefined variables)
In general, the subjects often are discussed very shallow, or too brief (like topic scope), and mostly described as the bare fact. this could be explained by purpose of the book, and/or the breath of topics described. The book would be really adding value if it also describes experiences and opinions on why to do something, or when not to.
  • Why pick one mechanism over the other ? (I switched from executing a Freemarker to search and process into JavaScript once because JS allows Lucene to search in a particular store (Workspace versus Archive). Freemarker on the other hand can easily determine if a given property is a date, string or boolean.)
  • What are downsides from working in the interface only? Instantiating space templates containing Rules can be a bad idea from a management perspective since there become many definitions of the same. Policies and behaviours can be an alternative, or defining the logic at another level in the Spaces structure. These are design decisions that can make or break a project.
  • Rules can be a pain when having a test, acceptance and production environment. How to migrate from one environment to the other, especially when the repository is fully stuffed? At what point are policies and behaviours better friends?
  • Workflow can be used to automate stuff. But ‘too much’ code in a workflow is a bad idea. What are alternatives? Should you use adding/removing aspects or property values as a trigger? Should you build custom Script objects implementing the business logic?
There are a few surprises in the Cookbook. I just cannot figure why there is such a little bit about configuring Share. In my understanding Share is the interface, and it is used for many collaboration projects. A timing thing is why the book is published with the Alfresco 4 release parties being arranged. I bet writing a book takes way more time than anyone estimates. Finally I was under the impression that the book was kept simple for starters. No complex stuff (then buy Jeff Potts Alfresco Developer Guide) to scare them off. But then Snig Bhaumik took me by surprise, let us download the java code and compile Alfresco!
Although the Alfresco 3 Cookbook is a great intro for starters, the biggest benefit might be that it is a book. You can take it with you and you can enjoy it off-line. Regarding the samples I have a deja-vu to Munwar’s book and the Alfresco Wiki (JavaScript transforming Content into PDF, the ‘usual’ Freemarker templates displaying content of a Space). Some real-world samples would add value in addition to the Alfresco Wiki (think of showing permissions in a recursive Freemarker template). Having a discussion or questioning a best approach for a problem given limitations of some solutions would be awesome.
Alfresco 3 Cookbook is a great book. Having the right expectations, and no Alfresco books on the shelf!

5 Responses to “Review of ‘Alfresco 3 Cookbook’ by Snig Bhaumik”

  1. 1 Alberto Cursack September 21, 2011 at 23:57

    great review, thanks a lot !

  2. 2 vikram October 31, 2011 at 09:26

    I read the cook book written by snig bhaumik, and to my is just a copy paste of all the forums and alfresco tutorials. In the worst case i have also found the the lines with a certain amount of mistake in the forum was exactly copy pasted.(including the errors also). Dont know how a big company like packtup publishes such articles without having expert review and just make bad reputation in the company.

    • 3 tpeelen November 6, 2011 at 21:25

      First of all, thanks for your feedback.
      I do see a purpose for this book though. Especially Alfresco beginners have a nice set of recipes to start working with the product, all nicely grouped together that can be read on the couch, in the train or the plain. in my opinion the content of a book does not have to be fully unique, new and non-existing. Bundling existing knowledge has some value too. Let’s face it, the product is in the market for over 5 years now. The repository part (lets say all-but-Share) is quite stable for some time.
      Personally I am looking forward to the announced (?) book about configuring/customizing Alfresco Share….

  3. 4 vikram May 7, 2012 at 12:04

    yes i agree, with you it is just a begginer guide, in fact i know this guy Snig bhaumik, who is not author but a copy paste master.

Comments are currently closed.