Wednesday, December 24, 2008

Widget for Internet Polyglot - Random Multilanguage Word Of The Day

We developed a widget for viral campaign for Internet Polyglot. You can see it on the sidebar of this blog. It was relatively easy. First develop a jsp page that finds a random word with all translations and then displays it and its image. Then use this page on Widgetbox or Clearspring, do some configuration and voila - the widget is ready!

So now it can be placed anywhere. Yes, practically anywhere: in your blog or a website, in you iGoogle, even on your Vista sidebar! So go ahead, click "Get & Share" and place this widget wherever you want!

Monday, December 22, 2008

Drupal vs. Joomla!

There is a huge number of articles that review Drupal and Joomla! - two the most popular CMS's (Content Management Systems). Most of them are very interesting, educating and entertaining. But until you try it yourself it's useless.

For a new site Mobile Polyglot I decided to try Joomla! first and spent about nightly 4 hours of trying to create a simple, not to say, primitive site. After 4 hours - there are still problems on how to do this, how to change that.

Drupal - 1.5 hours and everything is done! Very elegant and intuitive. Surely, my needs were very primitive and there are a lot of other tasks are waiting in the future. But for the starters - Drupal is the best!

And check out Mobile Polyglot!

Friday, December 19, 2008

Hibernate - reassociated object has dirty collection reference

There is a hard-to-understand hibernate error message happens sometimes:

org.springframework.orm.hibernate3.HibernateSystemException: reassociated object has dirty collection reference (or an array); nested exception is org.hibernate.HibernateException: reassociated object has dirty collection reference (or an array)

I've seen many forum topics discussing what's the problem but none of them somehow gave a good answer.

And the answer is:

Make sure that your object is persistent before you try to lock it. If you try to call hiberante lock on a transient object you'll get this error.