Month: February 2011

Join us for CMSGeekUpDFW on 2/24

Every month, a handful of us CMS Geeks from around Dallas-Ft. Worth get together to have a beer or two and talk about content management. This month’s meeting is on Thursday, February 24 at 7:00p. We’re going to be talking about Django, a highly-productive python-based web application framework. If you’re going to be in the area (our meeting spots bounce around–this one will be at Cohabitat in Uptown Dallas) you should join in the discussion. Please RSVP so we know you’re coming.

Now available: Alfresco Fivestar Ratings add-on for Alfresco Share

A couple of weeks ago I posted a survey asking if anyone saw any value in a five star ratings widget for Alfresco Share. Honestly, it would have only taken one or two positive responses–even if no one needed one, there’s value in it for example’s sake. It turns out about 20 readers of this blog voted positively, so I went ahead and knocked it out.

This Alfresco Share customization makes it possible for any document in the repository to become “rateable”. When a document is rateable, the Alfresco Share user interface will show a clickable five star ratings widget. The stars light up to indicate the average rating for that document. Users simply click one of the stars to post their own rating. When clicked, the widget refreshes itself with the updated average.

Here is a short screencast that demonstrates the customization. You’ll want to make it full screen.

To implement this, I took the Someco Ratings Service from the Alfresco Developer Guide, moved it to the Metaversant namespace, and changed the names of my Spring beans and JavaScript root variable. Even though my initial target Alfresco version is 3.3, I didn’t want the code to conflict with Alfresco’s new back-end-only ratings service in 3.4 which uses some of the same names that were in the book. I also changed the JSON that the ratings web scripts use to be closer to what exists in 3.4. That way, when I do make a version that works with 3.4, it could potentially work with either my ratings back-end or Alfresco’s.

I then went to work on the UI side, integrating the widget into Share’s document details page, document library (both Share and repository views), search results page, and document-related dashlets. To go from what was in the book to a working integration I revamped the client-side ratings JavaScript from a set of functions to an actual object. Then, I started injecting my own methods into Alfresco’s client-side object prototypes to drop my widget in where appropriate.

Alfresco is still working to make customizations like this more modular and easier to plug in alongside their code and code from the community. Until then, be aware that if your Alfresco implementation already has customizations that override some of the same web scripts and client-side components this module does, there may be some manual integration needed. If you have an out-of-the-box installation (or a set of customizations that won’t conflict with this one) you can deploy the AMP to the Alfresco WAR and the Share customizations to the Share WAR and you’ll be set.

The Alfresco Fivestar Ratings project lives at Google Code. Feel free to check out the source, try it out, and use it on your projects. If you find a bug, log it, then fix it!

Thoughts on Alfresco’s Recognized Developer Accreditation Test

Alfresco is rolling out a new accreditation program. A certain subset of partners (I’m not sure what the criteria is–ask your rep) can take an online test that validates whether or not you know a thing or two about Alfresco. If you pass, you’re a “Recognized Alfresco Developer”, which ostensibly comes with a secret handshake and a map to the club house.

When I first heard about the program I was a little skeptical. Don’t get me wrong–anything that my company and I can use to help differentiate ourselves from more, um, what’s the word I’m looking for–casual? less-experienced? opportunistic?–partners is a good thing. And, as we continue to grow, I can use accreditation as a potential data point when making hiring decisions. My concern was that the test would lack both depth and breadth and we’d end up where we are now: A bunch of partners of varying capability lumped into the same “Gold” category (or “Platinum” if you fork over the big dough).

After taking the test (and passing–c’mon, was there any doubt?) I feel better about it. The test actually appeared to do a decent job of covering many different aspects of the product including configuration and developer issues we see on real world implementations, so it’s not an easy test. Kudos to Carlos Miguens and the Alfresco Training team–I know it must have been a big project to get the accreditation program pulled together and construct a test that, at least to me, feels like the right level of detail and difficulty.

I do think the test could be improved. I think there was way, way too much emphasis on the WCM product. The value of the 30 or so questions asked on WCM out of the 100 or so total asked is that it really does take someone who’s been around the product a while to get those right. I just think the test is over-weighted toward WCM compared to the proportion of actual “project share” the WCM product gets in real life versus the core repository.

I think there were also too many questions on the Explorer client. Again, maybe the goal is to be slightly biased towards those partners who have been working with Alfresco long enough to have done an Explorer customization or even simply to know certain details about the Explorer UI. But most clients are now using and customizing Share as their primary interface versus Explorer. On the other hand, I think it is a bit early for “Share customization” to be an accreditation test topic, so let’s not get ahead of ourselves!

I also think it would be helpful feedback to give the test taker an idea of what was missed. It doesn’t have to be the exact question (although there were several answers I’d love to vigorously defend if I did indeed miss them) but other similar tests I’ve taken in the past have offered up the “weak” areas so the student could shore those up. Thanks for the passing grade and everything, but, not giving any hint as to what I missed is like starting a great joke with a huge build-up and then dropping dead before you can tell me the punch line.

What I don’t know is how well formal training prepares you for the test. I would hope that, in the aggregate, real world implementers score as good or better than groups of test takers who are fresh out of Alfresco training but lack on-the-ground experience. Really, it has to be that way for accreditation to be meaningful. I haven’t taken any of Alfresco’s training, so I’m curious to hear feedback on the test from those that have.

If you haven’t taken your test yet, good luck! I wish I could tell you what to study that will help you do well, but, honestly, I can’t think of any one reference that’s going to do the trick. And, really, I guess that’s a good thing.

Apache Chemistry cmislib 0.4 incubating now available

Apache Chemistry LogoThe Apache Chemistry development team is pleased to announce that the 0.4 incubating release of cmislib, the Python client API for CMIS, is now available for download. You may have to use one of the backup servers until the mirrors fully update. Alternatively, you can use easy_install to install cmislib by typing “easy_install cmislib”.

This release has various fixes and enhancements that the community has contributed since cmislib joined the Apache Chemistry project with its 0.3 release. If you are using Alfresco, you might be interested in an enhancement in cmislib 0.4 that makes it possible to use ticket-based authentication instead of basic auth.

For those who haven’t used it, cmislib makes it easy to work with CMIS-compliant repositories from Python.

Any interest in a pre-3.4 five star ratings widget for Alfresco Share?

One of the examples I put in the Alfresco Developer Guide is a five star ratings widget. The example company in the book, SomeCo, uses it to let their web site users rate whitepapers published on the site. Metaversant recently took that code and implemented it in a production web site, and that client gave us permission to take the code (which wasn’t really changed that much from the book anyway) and release it as open source.

But in Alfresco 3.4 Community and Enterprise, Alfresco has implemented partial ratings functionality. Right now, it consists of the back-end, repository tier services and it is darn close to what’s in the book.

With the back end in place, I expect Alfresco to release ratings functionality in the Share front-end in an upcoming release. So, I’m somewhat reluctant to package up my ratings stuff and release it as it is partially obsolete in 3.4 anyway. On the other hand, it would give those of you on releases earlier than 3.4 a functional ratings widget, and, with some adjustments, I could make the front-end work with Alfresco’s rating service in 3.4, which would mean functional ratings in Share for those of you that have already upgraded.

If the code was ready to go, I’d just package it up and if only one person used it, great. But, the client we did the widget for was using a heavily customized version of Share–we didn’t integrate the widget into the out-of-the-box document library or document details page. That’s the last bit of work that needs to be done. Even if there is no interest, I might do it anyway just to have as an example. But, I’d be even more motivated if there were folks out there who would use it in their production implementations.

So what do you say? Any interest? Take the survey below and let me know.

Create your free online surveys with SurveyMonkey, the world’s leading questionnaire tool.

Alfresco Developer Guide source updated, uploaded to Google Code

Back in July of 2009, I did a reorg of the source code that accompanies the Alfresco Developer Guide. Shortly after that I validated against 3.2 Enterprise, but I didn’t keep up with the Alfresco releases after that. I’m happy to say that I’ve caught up. And, to make it easier for you to get to the source code, I’ve checked it all in to a Google Code project.

So, if you’re reading the book and you’re finding a couple of problems with the source code on Alfresco versions after 3.2 Enterprise, go get a version that matches up with the chapter you are on and the release of Alfresco you are running, and see if it fixes the problem.

I’ve now validated that the code works with the following versions:

  • Alfresco 2.2.4 Enterprise
  • Alfresco 3d Labs
  • Alfresco 3.0.1 Enterprise
  • Alfresco 3.1.1 Enterprise
  • Alfresco 3.2 Community
  • Alfresco 3.2 Enterprise
  • Alfresco 3.3 Community
  • Alfresco 3.3 Enterprise
  • Alfresco 3.4c Community
  • Alfresco 3.4 Enterprise