Friday, May 18, 2012

Book Review: 'Alfresco Share' by Amita Bhandari

Alfresco Share - Enterprise Collaboration and Efficient Social Content Management is a new book from Packt Publishing which became available in March 2012.  The book's authors are Amita Bhandari, Vinita Choudhary, and Pallika Majmudar, all consultants at Cignex.

This is the first third-party publication devoted entirely to a general discussion of Alfresco Share.  It provides a detailed feature summary of the Share product.  And surprisingly, the book already describes version 4 of Share, which is the latest major version of the Share Enterprise software and which was only just released in February.
The book targets readers that are new to Alfresco.  While much of the book's content doesn't really go beyond what's available in the Alfresco on-line documentation and wiki, the difference here is that it includes numerous screenshots that clearly illustrate the features and steps for configuring and using Share.

The authors took considerable care in creating the book's artwork.  Many of the images are annotated screenshots or are compact composite screenshots that describe the multiple steps needed to perform an operation.  I'd recommend viewing the electronic version of the book which contains color artwork, rather than the print version which has only grayscale images.

The book runs more than 300 pages and is split into 10 chapters.

The first chapter provides a brief overview of collaboration capabilities in Share and includes a brief description of a marketing site case study based on Share.

The second chapter dives into installation of the Alfresco repository and Share.  It is a bit long and includes in-depth details about installing many of the components and features that Alfresco offers. Most new users of Share will probably not need this level of detail.  They can simply use the standard Alfresco wizard install and be up and running with most of the needed Share features automatically installed and configured.

Developers will find some introductory technical material about the architecture of Share in Chapter 3. Readers primarily interested in how to use Share could skip that chapter.

It's not really until page 90 that the discussion about Share as an application begins.

Chapter 4 discusses Administration: Security, Creating/Deleting/Disabling users, Groups, Dashboards, Themes
Chapter 5 discusses how to set up a site, send invites, set site roles, and configure page features
Chapter 6 discusses collaboration tools within Share: the wiki, blog, data lists, calendar and links
Chapter 7 discusses the document library: the document list and details pages, document actions, versioning, thumbnails and web previews.  (Click here to read Chapter 7 as a sample chapter.)
Chapter 8 discusses rules-based simple workflows and out-of-the-box 'advanced' workflows based on Activiti
Chapter 9 discusses Share configurations, like creating a custom content model, configuring advanced workflow, configuring data lists, and making configurations in the alfresco-global.properties file.  While this information is good, it serves more as a starting point for how to do these types of customizations.  For most of these topics, you'll probably need to supplement this reading with documentation from somewhere else.

Chapter 10 goes back to a developer perspective and describes setting up a development environment and describes different options (JAR vs AMP) for how to deploy customizations to Share.

So, should you buy this book?  If you're new to Alfresco and just getting started with Share, this book will probably save you time that you would have otherwise spent navigating the Alfresco documentation, wiki and forums.  So for new users, I think that this book could be worth getting.

But if you've already been using Share for some time, you won't find too much new here.  And if you're looking for developer-specific information on Share, you probably won't find enough information here to warrant the purchase.


Friday, September 9, 2011

Resetting a Forgotten Alfresco admin password

It may never happen to you, but if you ever lose or forget the password for the administration user in Alfresco, it is possible to reset that password within the database.

While the reset process is easy to do, it involves fiddling directly with the database, something which you should be careful with, especially if that's not something you typically work with.  If you're having problems with a production system, by all means, experiment first on a test system.  You don't want to make a bad situation worse.

First run the following SQL to find out the identifying parameters for how the admin password is stored:

SELECT anp1.node_id,
       anp1.qname_id,
       anp1.string_value as hash_pass,
       anp2.string_value as user_string
FROM alf_node_properties anp1
        INNER JOIN alf_qname aq1
           ON aq1.id       = anp1.qname_id
        INNER JOIN alf_node_properties anp2 
           ON anp2.node_id = anp1.node_id
        INNER JOIN alf_qname aq2            
           ON aq2.id       = anp2.qname_id
WHERE aq1.local_name    = 'password'
AND aq2.local_name    = 'username';


After doing that, you'll see something like the following:

In this example, we can see that the password for admin is set to the default MD5 hash value for 'admin'.  You can set it back to some other MD5 hash value, but then of course, you'd need to calculate the MD5 value for whatever your desired password is.  It's easier to set it back to the default value corresponding to 'admin':  '209c6174da490caeb422f3fa5a7ae634'.  Then, once you can log back into Alfresco again you would be able to change the password to something else.

To update the password, the following SQL works:

UPDATE alf_node_properties 
 SET string_value='209c6174da490caeb422f3fa5a7ae634'
 WHERE 
 node_id=THEADMINNODEID
 and
 qname_id=THEADMINQNAME

Or, from the example shown in the screenshot above:

UPDATE alf_node_properties 
 SET string_value='209c6174da490caeb422f3fa5a7ae634'
 WHERE 
 node_id=4
 and
 qname_id=10

Saturday, August 13, 2011

Alfresco 3 Cookbook: Quick Answers to Common Problems by Snig Bhaumik

Alfresco 3 Cookbook: Quick Answers to Common Problems by Snig Bhaumik is the latest book from PACKT Publishing about the Alfresco Open Source Enterprise Content Management System.(CMS).  The book is now complete and is available in both print and electronic format.  Prior to the book being completed, parts of it had been  made available earlier by PACKT in a pre-release RAW format.

When I heard about this book, I was immediately interested.  The concept of having a cookbook-style reference book filled with easy-to-follow self-contained recipes for how to perform common tasks in Alfresco is very appealing.

The book is about 380 pages long and is organized into 14 chapters, each chapter covering one category of Alfresco usage, like the Administration Console, the Web Client, and the Content Model.  Then within each chapter, there are a number of recipes that describe how to perform specific tasks.  In total, the book covers more than 70 such recipes.  For example, Chapter 6 covers how to customize the Alfresco Web Client and includes recipes like the following:

  • Changing languages in the Login page
  • Changing textbox length and text area size
  • Controlling the Date Picker
  • Controlling the sidebar display

Each of the sections or 'recipes' is then broken down into a brief description of the task followed by a sub-section titled "Getting Ready" and then another one titled "How to do it...".  There's also an occasional "There's more..." section that contains a more in-depth explanation for why or how something works.  The "How to do it..." section is the heart of the recipe and it breaks down each task into step-by-step instructions for how to complete it.

The text descriptions are very clear and there are many illustrations, mostly of UI screenshots.

I like the cookbook style the book uses -- this book is part of PACKT's cookbook series.  But to stay true to the cookbook format, I would have preferred a larger number of recipes with shorter discussions about the background mechanics for how any one particular recipe works.  Some of the recipes are a bit long and stretch to as many as twenty pages.


The book starts out by describing the Alfresco installation process and then discusses topics useful to end users and administrators.  In this part of the book and even in some of the later chapters, while I liked the overall style of presentation and format, it felt like there was a lot of overlap with material already covered in other places like Munwar Shariff's book Alfresco 3 Enterprise Content Management Implementation or even with what can be found in the standard Alfresco documentation.  I would have liked to have seen more 'tips, tricks and gotchas' that go beyond just that material.

Later chapters discuss topics for those who want to customize and develop in the Alfresco environment. Topics include the Content Model, the Alfresco Javascript API, FreeMarker and Workflow. The final chapter describes how to download Alfresco source and set up a build environment.  I did like the discussion in Chapter 10 on Web Scripts.

Chapter 12 had me a bit puzzled.  That chapter discusses integration of Alfresco with Microsoft applications and has a lengthy discussion of Alfresco's MS-Office 2003 plug-in instead of discussing SharePoint protocol integration.  I may be wrong, but I had been under the impression that the Office plugin for Alfresco has been problematic and doesn't support Office 2010.

The main caveat that I have about the book though is its focus on the use of Alfresco's older Explorer client.  Alfresco Share is only mentioned on a couple of pages early on in the chapter that describes installation.  I would have liked to have seen much more about Share.  I think that almost all new deployments of Alfresco today will want to use Share as the web client, not the older Explorer client.

So, in general, I thought this book was well written and I think that you'll find a lot of useful facts about Alfresco here.  I also find the cookbook format used by the book very appealing.  But you'll likely be disappointed if you're looking for a book that covers Alfresco Share. I expect that PACKT has some books in the works on Alfresco Share coming up.  In the near term though, there is a good overview discussion on Share in the latter part of Munwar's book that I reference above.

** I'd like to thank PACKT Publishing for making available to me a complementary copy of this book for review.