Friday, June 16, 2006

Cocoon, my preferred platform for web development

I thought it was about time I posted something on the platform I have been producing sites and applications with for about two years now, Cocoon. We use Cocoon at my company VNU BME Europe for all our main business websites. Initially this was just within the UK where we have had some fifteen or so websites running on Cocoon 2.1.5 for about two and a half years. Our sites get vast amounts of traffic, and all 15 are running off three live machines, with the load spread by two proxies. The platform was designed and architected by a friend of mine Pier Fumagalli (of Java, Apache and Cocoon fame), and thanks to him I have had some excellent experience in working with high load sites, and cutting edge XML publishing systems.

More recently, Pier once again designed the basis for a new platform which we are rolling out across Europe (already live in Italy), see the following list of sites;

www.channelonline.it
www.computer-idea.it
www.databusiness.it
www.fotoideaonline.it
www.gdoweb.it
www.networknews.it
www.pcmagazine.it
www.pmi-business.it
www.vnunet.it.

This time my role, aside from the custom Cocoon templating language Pier built, was much more involved in architecting key parts of the system, this was great experience for me at this point in my career. The Italian websites have so far been up and running for some ten weeks, so far so good. France and Spain are soon to follow! Just a few weeks ago, I stepped up into Pier's role as Application Developer and Architect, as sadly he has decided it is time to leave the websites business after spending the best part of the last fifteen years in it. So now the challenge, and problems to solve are mine, lets hope all his help and passing on of knowledge has set me in good stead!

So why Cocoon? Well, we, as part of the publishing world, opted for XML as a format for handling articles, (common sense really), and Cocoon is just about the most complete XML manipulation toolkit you can find. Currently on 2.1.9 stable, it is a little more complex and heavyweight than many platforms, but just enables you to do things in a very tidy way when the solution is thought through carefully. Our platform is a stripped down version of 2.1.9, with a custom templating language built on, and a nice 'inherited' component system. It enables our designers to build entire sites in a matter of days once the core generic components are available, this enables us to work with a small agile team of developers.

Hope you go take a look at Cocoon, its worth a try. More details to come soon!

LDAP revisited

I had a chat to Jeremy Quinn of Cocoon and Apache fame on Wednesday regarding whether LDAP is in fact an over elaborate death trap designed by a Bond villain... and he was enclined to disagree. Jeremy has worked with both relational DB's and LDAP before, and emphasised that the biggest advantage LDAP has is that it is naturally hierarchichal in terms of organisation. With relation DB's you kind of 'fake' hierarchy, this seems to me to be a valid point. Furthermore, modifying LDAP at any time during a projects history is easy, classes do not need to be re-compiled etc etc, whereas we know how many mechanisms have invented to ease this process when using DB's. Thanks Jeremy, finally I have a glimmer of understanding as to why we should want to use this (not so) new fangled technology in place of a simple Mysql installation! More reading and playing with LDAP to come!!!!!!

Sunday, June 11, 2006

Buzzwords, 'cool' technologies, and finding a real use for things

It seems to me, that despite IT being loosely based on science, there is a massive amount of hype over some not so recently emerging concepts, (Ajax for example), and that we sometimes invent too many ways to do the same thing (relational DB versus LDAP. I am not by nature a procrastinator... but I spent a lot of time recently trying to find a use for Ajax within our many varied websites at work, and in trying to decide whether LDAP is better for a registration project than a simple relational DB.

So first, lets look at Ajax. Firstly, we all already know that what was coined as a marvellous new technology has been around for an eternity with varied different names. But Ajax 'sounds cool'. Ajax removes the need for the page to refresh, hmm, provided you pages are quick in the loading... not much of a biggie there I reckon. Don't get me wrong, I can see a place for Ajax in very specialised online 'tools', and I love the stuff the Dojo boys are doing, but it is really hard to find really really real useful uses for this stuff. If I got a quid every time someone said 'and now we really want to use Ajax on our sites', I would be able to give up working... well OK, maybe not, but I would be able to buy myself plenty of beer :-)

Now on to LDAP. Simply... why? Why use this instead of a relational DB? I am no expert on the LDAP spec, I have a great deal of reading to do, but I am already fully aware that nobody seems to be able to give me a concrete answer on why we should use LDAP for our registration project. Can anyone convince me that LDAP is not like an overelaborate and doomed to failure death trap designed by a super villain from a Bond movie? If I ever figure this out, I will be sure to revisit this blog post!