Monday 11 June 2007

Fixed an elementary bug in the touchgraph library.

Last Friday I was pleased to get to the bottom of a bug that had been noticed by a number of people for a while now. The eProfile project uses the touchgraph library and it had been noticed by various people that certain popup menus only ever appeared on the Windows platform; never on Mac or Linux. For a cross-platform technology like Java, this had always struck me as daft! Anyway, it was actually quite an elementary mistake in the touchgraph library. There are numerous MouseListener inner-class adapters throughout the code that get informed of various types of mouse event. There is in fact a isPopupTrigger() method on the MouseEvent class that gets passed as a parameter to these adapters. All I did was hovered my mouse over the isPopupTrigger() method to get the javadoc - this is what it said:

Returns whether or not this mouse event is the popup menu trigger event for the platform.

Note: Popup menus are triggered differently on different systems. Therefore, isPopupTrigger should be checked in both mousePressed and mouseReleased for proper cross-platform functionality.


Code was only looking for this in the mouseReleased() event, not the corresponding mousePressed() event too! Therefore, to make it cross-platform compatible all I had to do was extract the code that responded to the popup trigger to a private method and add it to mousePressed() method too (within an if-else clause with the code that was already there).

eProfile is actually written against v1.21 of the touchgraph library (from 03/04/2002); the most recent version is actually v1.22 (from 04/12/2002), but I saw that the bug is still present in that code too. The touchgraph library is an excellent library for forced-graph visualization (especially if you look at their Amazon and Google demos). Part of the problem (from reading their web-site) is that they are still working out how to separate proprietary from open-source portions of their code, so the stuff they are making available, they refer to themselves are older touchgraph components. One might assume that if these libraries were maintained as fully-fledged open-source projects, then such bugs would have been knocked out by members of the community a long time ago ;-).

Friday 18 May 2007

Starting to look at RSF for web-pages.

I've been starting to look at RSF for those elements of Frockle that require a web-interface. There are various reasons why we are looking at using this framework. One of the main reasons is that it works well with Sakai, which Oxford will be using as it's institutional VLE within the next few years. As a framework for writing web-applications, I think it's pretty nifty. These are some of the key features:

  • templates are based on XHTML, therefore you can view them as-is in a web browser. All dynamic aspects of the view are inserted via the attribute rsf:id on standard XHTML elements.
  • is heavily based on Spring.
  • is very modular and flexible, so you can, for instance, pick your favourite persistence mechanism; Hibernate, iBatis, etc.
I've just been getting started on it in the last day or so; checking it out from svn, verifying the installation and looking at the examples.

Friday 27 April 2007

Peer Review: Bolton, April 25th 2007.

Colin and I attended the peer review meeting held in Bolton on Wednesday (April 25th 2007). Although most people stayed the previous night, we opted for a nice early (06.35) train up from Oxford!

I had been to Bolton University for a previous meeting and upon leaving the station on foot was pretty sure we were heading in the right direction. However, after about quarter of an hour, I realized we'd gone the wrong way! So we double backed on ourselves and caught a mini-cab instead. As it was we only missed about 5 minutes of the meeting proper.

We were one of the teams in a group of three, with ResourceBrowser and DesignShare. We were reviewed by ResourceBrowser and reviewed DesignShare. A full description of what I found can be found in our wiki here. However, undoubtedly one of the most impressive features of their project is that they already have demonstrable software! Alas, we did not have a great deal for ResourceBrowser to review; we have our project infrastructure in place, but not a great deal of content yet :-(.

I definitely think the whole exercise was useful and worthwhile. I believe (from my experience of working on the TReCX project last year) the most useful aspect is that it forces toolkit developers in particular to examine their own projects from the point of view of how someone else coming to it would. If they do that (and take the reviewers feedback on board) then this should give the outputs of the project a sporting chance of actually being adopted by anybody else.

Thursday 19 April 2007

Bookmarked key T&D locations in del.icio.us.

As can probably seen from some of my previous posts, I have recently got into using http://del.icio.us/ for bookmarking purposes. I'd meant to do this earlier, but yesterday I finally got round to bookmarking key locations (entry on JISC page, main project, web-site, blog, etc) of all the projects in the current round of toolkits and demonstrators. Also, where the project has an RSS feed from the blog (which many of course do nowadays) I wanted to "bookmark" that too, so that I and others could add this to their favourite RSS reader. As I'm using the Yahoo! del.icio.us Firefox add-on I've bookmarked all the feeds to project blogs as Firefox Live bookmarks (the add-on does this via use of the tag firefox:rss). Therefore, if you want to add a blog feed to your reader search my bookmarks with the tag firefox:rss and get the link location from there. As I abhor long compound tags(!) these bookmarks can be found by using the tags t&d+2007 (or jisc+t&d+2007 if you want to be really precise!) or simply follow the link below:

http://del.icio.us/lxsocon/t&d+2007

Tuesday 13 March 2007

Switching to del.icio.us bookmarks.

Just before anyone thinks to themselves that this post doesn't seem to have much to do with the project, I'd like to give out the following link:

http://del.icio.us/lxsocon/frockle

That link will contain my own public bookmarks related to the Frockle project!

I'd been holding off from using del.icio.us for bookmarking purposes because I thought I was more comfortable thinking about bookmarks hierarchically. I've been using Google Browser Sync to synchronize my cookies, saved passwords, bookmarks, history, tabs & windows between my home and work machines, which is possible on any computer which has Firefox and the plugin. However, I did appreciate all along that there were many instances where tags really come into their own - such as when a given bookmark has two or more equally valid parents (or "containers"). What finally made me decide to make the switch was that at some point recently the Yahoo! del.icio.us Firefox plugin started offering the facility to use "classic" Firefox bookmarks side by side with the del.icio.us ones. It may just be a personal thing, but I find organizing the following in a hierarchical fashion more natural and logical:

  • links to HTML documentation (manuals, API, etc).
  • multi-tabs (bookmarking multiple related tabs).
  • administrative URLs (links to administrating things like Tomcat instances, routers, etc).
So, I'm going to start shifting bookmarks in the above categories out of del.icio.us and (back) into Firefox.

Thursday 25 January 2007

Kick-off meeting: 22nd Jan 2007

Colin and I attended the kick-off meeting for the current round of toolkits and demonstrators in JISCs new location in London (just off the Strand), which was held on Monday 22nd January 2007.

I think all in all we both found it a pretty interesting exercise. I was involved with last year's round through the TReCX project. This kick-off meeting differed in several ways to the previous one I had been to. One way, was the lively presentation given by Andrew Charlesworth on the legal issues concerning software projects in the HE/FE sector. The other, was in the way that this year we have been put into peer-pairs from the start (pairing up with an associated project in which we have something(s) in common, such as project aims, choice of technologies, etc). Last year, we formed peer pairs about halfway through. The way in which we did this was fun too, via speed-dating. We had 4 "rounds" each of 5 minutes in length, whereby each of the projects gave a (very) short presentation on what their project was about to the other 3 projects sat round the table. After the last round, we then had to write down on paper up to 6 projects (in order) with whom we would like to pair and the reasons why. (At the time of writing, we have yet to be informed who we are actually going to be paired with - that's down to the organizers!).

(On the train on the way there I was quite chuffed to have been able to have done a spot of online banking on my relatively old Nokia 7210, via the rather cunning Java-based Opera Mini web-browser!).