Month: January 2008

Microsoft buys FAST Search & Transfer

I must confess I was not happy to read this news. Microsoft apparently decided that their own Enterprise Search products was not good enough so once again they decided to go on a shopping spree. The norwegian company FAST who makes a very capable search platform was the target this time. FAST is currently one of the big players in the search engine market together with Autonomy (which have bought Verity) and possibly a few others like Endeca.

The question now is what happens to the product. Both in terms of overall quality but also whether or not it will exist as a stand-alone product. The main intention for Microsoft is of course to boost the terrible search experience in today’s version of Sharepoint. Hopefully the 3500 installations of FAST ESP around the world is enough incentive to keep it as a stand-alone product. Another issue that concerns me is the technology aspect. Today, FAST is not built on Microsoft technology and the question what Microsoft thinks of having products based on Java, Python and even some open source components such as Tomcat. And what about FAST support for heavy-weight ECM platforms such as EMC Documentum? One thing is for sure, there will not be a FAST ESP for Mac OS X Server 🙂

I have a company!

Over the past year I have got some requests to do lectures about my experiences in life and also to produce documentary movies. So I decided it was time to start my own little company. I guess I should have done this years ago but the paper work always seemed so daunting. This time a friend of mine was about to start her own company and since she was focusing on offering accounting services it seemed like a good fit.

So now it is all done and it is called:

The Right Kind of Fruit

Which I thought was really clever since there are a somewhat obvious (depending how well you know me) reference to my favorite brand, Apple. The next project will be to set up my website.

So if you want me to come to you to talk about my experiences from being a transsexual send me an email. I usually try to talk about it in a broader perspective with reflections on gender, collective norms and how we relate to them as human beings.

Custom content model in Alfresco 2.9C

Hmm…I guess I am supposed to working on the movie project. However, during Christmas I had the usual technical discussions with my brother and I got all excited about Enterprise Content Management again. I decided to show him some new features in Alfresco 2.9 Community edition (still in development though). Since I don’t work full time configuring *nix-systems I tend to forget some of the things and got some help from him. After that I was all inspired to try to set up a demo system for the NGO RFSL that I am working for. I believe that almost every organisation need some improvements in information management and RFSL is of course no difference.

We rely heavily on email and their is a file server that some uses. Wouldn’t it be great if we could have central repository where we can store all our content in a smarter way. That includes support for metadata, versioning, permission, language versions and workflow for our most common tasks.

So I decided to dive into Alfresco once more and not just try to master configuration on Mac OS X Server but also doing real customizations on the content model and the user interface.

I first started reading the excellent guide provided by the people at ECM Architect which gave me a good start. However, rather soon I discovered that some of the stuff that I previously done in Documentum Application Builder (DAB) was not covered. So I had to resort to the Alfresco wiki and their forums to find the answers.

Unlike using DAB development for Alfresco is done by editing XML-files that resides in /tomcat/shared/classes/alfresco/extension where both the content model files resides, the configuration to the web client and finally a text file with mappings between attributes and the text that should be visible in the labels.

When all these things have been edited and saved the next thing is to restart Alfresco’s tomcat server and keep a close look at the alfresco.log file where all potential error are shown. It usually ends up being a Java trace segment but often with references to line numbers so it is a bit easier to find the errors.

What I was trying to achieve was the same things that I have done in Documentum a month ago. Creating a content model with one base type which I can then inherit attributes from. However, finding the proper structure of that is not easy. My first idea was to have a “rfsl:doc”-type as the base one and then inherit “rfsl:video” and “rfsl:audio” from them. However, since aspects provide a really good and flexible way of handling attributes it is not easy to decide which attributes that should be in the type and which should be in the aspect. It is also important to bear in mind that having content types for like presentations (which could be in both PowerPoint, PDF, Impress and Keynote-format) is one way of creating easy filtering of content. That means having a “rfsl:pres” type but if that will have more or less exactly the same attributes as “rfsl:doc” it boils down to just a filtering issue and the question is if it is worth it. Will users understand how to select which content type to use?

Another important thing for me was to have drop-down menues with values instead of empty fields. In Documentmum that is called Value Assistance and is merely a text string which has nothing to do with the actual content model. Instead the value assistance is to be seem as a template to create entries in the repository. That means that it is possible to remove stuff from value assistance while the value is still in the repository.

In Alfresco this is handled through constraints in the actual content model. Those triggers the values described in the constraints list forming a drop-down menu in the web client interface. However, the values are constraints which means that there are validations going on. So if you have removed or changed spelling of something in the constraints you will get and error when you try to display a content object with the previous value in the repository.

Constraints should come first in the content model file and looks like this:

Header Separator Generator

This particular constraint is used in an attribute called “rfsl:documentkind”. Remember that the reference in the constraints section must be exactly the same as the name of the attribute.
Another big headache was to organize the attributes in the web client interface. Again in DAB there is something called “display configurations” which refers to different Documentum clients being used in the installation. In them you just reorder the attributes as you like and insert line dividers as you see fit. For Alfresco this done in the file called “web-client-config-custom.xml”.

The order in the file determine the order they are shown in the web client and if you want a separator it can be created using:

Header Separator Generator only

And in context it could look like this if we wanted a separator in the beginning:

Header Separator Generator