JQuery tabs in Wicket and issue tracking across the universe

Xavier Hanin (of Ivy fame) has created a tabbed client side JQuery/Wicket panel for use in his open source continuous integration project xooctory. I still haven’t seen the tabs in action, so I can’t comment on their greatness yet.

What struck me most is the ease with which Xavier was able to construct the tabs, which is a feat in its own for both JQuery and Wicket.

Wicket makes very easy to develop such components, and that’s one of the thing I like the most about wicket. [...] My wicket implementation is about 140 lines of Java (well, 50 lines of Java and the rest of comments and imports) and 40 lines of html (most of which is used for testing only). That’s all, and you don’t need to be an expert in wicket to write such a component.

Of course I also looked around on xoocode for more of Xavier’s projects and he seems to like Wicket a lot, so we now have 3 issue trackers (that I know of) written using Wicket (are issue trackers the new blog-in-5-minutes applications?):

  • jtrac (Peter Thomas’ trac Nasa inspired tracker)
  • bugeater (Philip Chapman/Andrew Lombardi/Ryan Gravener’s issue tracker)
  • xoosent (Xavier’s issue tracker)

And other developer tools built using Wicket are xooctory (a continuous integration server), artifactory (a maven proxy). Wicket inspired is the already famous build tool called Gosling, which has performed a reboot, but seems to get into shape pretty fast.

The reasons for being a software engineer

While perusing a series covering a business model based on the Amazon S3 software service I came across the following quote:

Outsiders do not realise how deeply technological development, like scientific research, is shaped and driven by emotion. [...] The reason that half of us are in computing at all is that we see computers as things that we can make beautiful things out of

And that really sums up my emotion when I am building creating software.

JavaScript animation libraries compared

The Wicket framework is adding animation (effects) support to its capabilities. Instead of reinventing the wheel we are looking at different libraries. Our list of requirements is not that big:

  • the footprint of the library should be small
  • the philosophy of the library should be similar to Wicket’s
  • the library should enable most if not all effects available in most popular libraries
  • the code should be clean and work in all modern browsers
  • the library should play nice with the leading javascript libraries such as prototype, scriptaculous, dojo, jquery and Yahoo! ui

Now not a very impressive list, but apparently enough to drop scriptaculous and dojo (too large), prototype (not an effects library, can enable conflicts with scriptaculous, rico and others). I haven’t got much experience with jquery, but it seems to cover too much for our taste: we don’t need a full stack Ajax framework (already have that in place), but merely the animation part.

So that leaves Yahoo! Animation and … animator.js created by Bernard Sumption. I discovered animator.js when it was first featured on ajaxian.com and added it to my list of things to check out. Recently I was looking at some effects for our application and wanted to remove dependencies left over from the time Wicket didn’t support Ajax out of the box. Currently we have superb Ajax support and are now ready to take it to the next level.

I already had created a proof of concept, “I’m jealous of the Scriptaculous front page design”, new front page for Wicket. I made my first cut using animator.js and wanted to see how much work it would be to build it with Yahoo! Animation. So I spent a day to rewrite it using Yahoo! and tried to tweak the animation a bit to make it smoother.

You can see the animation on my people.apache.org page (links provided below). I have tried the animations using Safari and Firefox (1.5 and 2.0) and it led me to the following conclusions:

  • safari’s javascript is horribly slow
  • firefox’s javascript is extremely fast (compared to IE and safari)
  • I hate writing javascript
  • Yahoo’s event model is a bit more advanced than animate.js, somehow it looks smoother
  • Animate.js seems to deliver more snappier animations
  • I hate writing javascript

Try the animations yourself and don’t limit it to one browser. Comments are welcomed and appreciated. Press the back button to return here and select the other animation:

Enjoy!

So long, farewell, auf wiedersehen, adieu! for the constructor change

The last couple of weeks have marked the end for the Wicket trunk (formerly known as wicket 2.0, constructor change etc.). With a simple

rm -rf /Workspaces/wicket-2.x

I removed my local working copy of the effort. I imagine such commands being issues more frequently when we have backported most, if not all features from trunk into our 1.x stream. You can track the backports here.
So long, farewell, auf wiedersehen, adieu!