Archive for the ‘Developer’ tag
Things to Ponder with Alfresco (Part III: WCM – Improvements)
Now days using web content management systems (WCM) is trivial. You should continuously update the website content to maintain a fresh look. It increases returning customers and popularity. Almost every major website uses a CMS to achieve this. It might be an in-house developed or an off-the-shelf product. In any case, it helps organizations to separate the content authoring team from the application development cycles. This helps in quicker content updates without being dependent on release schedules. I am going to point out certain things about WCM feature of alfresco. You can also apply the same principles to your WCM if you are using existing one, or planning to develop a new one!
Content storage format - Alfresco provides a nice feature called "web-forms". There are two types of forms currently available i.e. WCM forms and ECM forms. Both of them capture the input data and store it as XML. You can also choose to apply content transformation using XSL. It helps to save final output as either HTML, Text or PDF etc. Not to forget, the content is actually captured and saved as XML. In my perception one of the strengths of Alfresco is its content repository. If XML is target format, it is saved in CR as a cm:content property and it defeats the whole purpose. If CR is not aware of the structure of the content, it defeats the purpose of content model definition? It is not very different from storing the content xml as plain string in database. Frankly I don't see any benefit of using CR over database in this method.
To avoid such inefficient use of alfresco, you can take some effort and write a custom form component. Use custom forms (develop forms in your application and then communicate with alfresco using API) to capture user data and store them in content repository in defined content model and schema.
This will help you in -
- Content repository now understands the structure of your content. This is really important and if you have any doubts, please post that in comments. I might write about it later in my blog.
- You can apply your custom content transformation logic so that content can be exported in XML / HTML / custom output format. Just generate this once every time you update the content. It improves the efficiency of content management system to deliver target content.
- You will have a flexibility of own input format, use JSP or rails forms, its your choice!
Deployment benefits - Alfresco has another great strength, Deployment Infrastructure. I think its also one of its weaknesses. Use it wisely to improve your release management. On the release date of web application usually you come across content sanity issues, or format differences. To avoid that, setup proper environments where alfresco can sync content and test it before you push it to live. This might save you a lot of frustration.
Although its a great feature, there is a caveat to that. Generally all the code for web application is stored in CVS systems. Alfresco code (web scripts, web form definitions etc.) is stored in alfresco. Keeping the versions of alfresco code and web application code is nightmare. Develop some automated web script deployment tool and every time you release, wipe out all the previous webscripts and deploy new ones from the CVS. This always makes you keep updated code in the CVS and versioning becomes much robust.
Ubuntu: Will Skype ‘jingle’?
Skype 2.0 beta has arrived for Linux. I read about this here. I have been trying to get Google Talk support for Linux for a while. I tried that in PLUG mashup event. So summary of what I did was as follows:
What I wanted to achieve?
I wanted to integrate support for voice chat using Pidgin for Google talk users.
What we did?
We started with analysis of libjingle which is xmpp based communication library from Google code. We faced lots of problems in integrating that as a plugin with Pidgin. I could see that there is already a feature request logged with Pidgin for this support. I tried to work with Ubuntu (Gutsy Gibbon). There were many problems for libraries which are either very old or sometimes difficult to maintain.
There are many issues with the library dependencies of libjingle as well, viz. linphone, gstreamer etc. Each of them require different version which is sometimes quite old than the current stable version.
I will be working on this more to achieve the goal. There seems to be quite few huddles before I could reach there though. I don't know what is current state of this post. I am hoping this will start working soon. Till then, I'm there to see how I can add the talk plugin to pidgin.
Don’t say ‘Yesterday…’ in a stand-up!
At ThoughtWorks Pune office, we were observing a regular pattern in Stand-up. Everybody will start to speak with “Yesterday, I did this… I did that…” and whole team used to feel it more of a status update and not giving idea and sharing the context. To address this issue, one of our team-mate came with a suggestion to avoid using word “Yesterday” in the stand-up. Now you don’t have word yesterday with you, you will be automatically forced to give a update which involves not only yesterday’s work but more than that. This worked great until following conversation happened…
(Names of the team-members are changed)
Friday, 14 Sept, 9:30 IST
…
Ganpat: “Yesterday, I worked on …”
Keshubabu: “Ganpat, don’t use word 'yesterday' or at least avoid using that…”
Ganpat: “Ok. Day-before-today I worked on…”
Whole team: !!!!!!!!!!!
That was a funny incident but, we really experienced value coming out of avoiding using word ‘Yesterday’. This helped us to achieve sharing of context of the story and not just yesterday’s work.
You are not allowed to book Indian Railway tickets from Linux!
IRCTC is an online railway reservation portal. I always admired the functionality provided by this portal. It simplified life of millions of people by providing very prompt and efficient services in ticket booking and information. From technical perspective, this is really amazing; how they are knitting all the reservation information and maintaining speed of operation as well. I was always fan of this site, until the black day arrived two days back.
I occasionally travel by train. Most of the times, I take benefit of online ticket booking services from IRCTC. I was surprised by the fresh look of the site. I wasn’t knowing that enlightenment was about to end after I logged in the portal. I couldn’t see the reservation form at all! I thought, something is wrong in the server or network and somehow page is not loaded completely. I investigated a little bit and came to know that, the portal is not designed to work with non-IE browsers. I had to reboot machine to Windows and book the ticket but that was very disappointing exercise in all.
This happened because they designed site for only IE browsers. This is the problem I always wanted to hightlight through my previous posts like this and this.
I have already dropped a letter to concerned officials requesting Non-IE compatible website and waiting for response. Government and Public services portals should be designed very carefully considering there might be consumers of those services from every corner of the country. Everybody might be using different software to access those services and it is not impossible to cater all of them. Just follow Standards (...and stick to them)!
Will Callisto help eclipse to beat NetBeans?
It’s been a while since Callisto has been announced. I don't have statistics about how many downloads happened for Callisto since first release. Most of you might know that, Callisto is collection of 10 most popular eclipse projects which will be released as a distribution. That really helps! In fact, I was waiting for such thing from so long.
Eclipse has hundreds of plugins and each of them has different dependencies. Once I tried to update WTP 1.0.7 in Eclipse 3.0.1 and every time it gave me a version mismatch error. I did not even know how to resolve the plugin version dependency!
That was good example of plugin hell! The same feeling I had in Windows when it used to say XXX.dll has this version and you need XXX.dll with some different version. Now where I am supposed to get the newer version? I finally downloaded wtp-1.0.7-all.zip which has all things in-built from eclipse 3.1 to wtp latest version. Then I faced another problem, after downloading WTP, I had two versions of eclipse on my machine!
Callisto is good effort to address all such problems. Many times, I ask one of my team-member that, "Hey pal, you don't have xml editing feature installed in eclipse? Go get WTP and then it will allow you to edit/format xml in the editor." That guy spends almost half-day to build his workspace environment for editing couple of xml files.
That’s even worse example of increasing productivity by using tools!
Now Callisto will give me one URL which should broadcast throughout my team and within couple of hours everybody's eclipse workbench will be restored to latest version of top 10 projects from eclipse.org.
For those who don't know which are those top-10 projects here is the list:
- Business Intelligence and Reporting Tools (BIRT) Project
- C/C++ IDE
- Data Tools Platform
- EMF
- GEF - Graphical Editor Framework
- Graphical Modeling Framework
- Eclipse Project
- Eclipse Test and Performance Tools Platform Project
- Eclipse Web Tools Platform Project
- VE - Visual Editor
This was needed by eclipse from long time. One URL, one distribution and you are ready to go. Really it should be that simple!
I was wondering will it beat NetBeans. There are few things which NetBeans is doing good. Good examples would be Enterprise pack and Profiler. These packs integrate very tightly with NetBeans. WTP needs that simplicity. Be it anything, BPEL, Glassfish or your favorite relational database, they just get part of IDE! That’s really a great feature of NetBeans. Visual studio always has such kind of integration with all available tools. NetBeans has exactly delivered same power.
I like Xml Schema editor, Schema refactoring, Web Services development and lots of other features which are great! I tried almost each type of project creation in NetBeans since my last post. I must say, its worth to give a try to NetBeans by all those people who love eclipse.
No! No! No! I am not advocating NetBeans, I am just saying just try another project which is powerful, next-generation and perhaps best Java IDE on planet!
And above all, it’s free! So get your latest copy of NetBeans, Enterprise Pack & Profiler and start working on that. Remember it’s just another open-source project so there is nothing I can give to this community than my praising words! Soon I will get involved in editor development of NetBeans. (My current schedule doesn't permit me to blog too
)
Cheers Eclipse & NetBeans team! I really owe you a, "Thanks!”

