Scott's Workblog

scott.bradley.wilson@gmail.com


attention!
This blog has moved! Go to my new blog!


June 12, 2009

Using "Moodle Wave" - Live demo

It looks like its going to be a while yet before Google lets more people play with its own Wave implementation (and details on any open-sourcing remain vague at this point). However, we've put up our own implementation of the Wave Gadget API (not the complete Wave system by any means) for anyone interested to play with.

I've created a Moodle course that uses some widgets, all of which make use of the Wave Gadget API. Some of these are Google examples (converted to W3C format) and some are ones we've created.

To take a look, you need to head over to our Moodle sandbox and register yourself a profile (you'll need to confirm your email address to activate the login). After that, go and enrol yourself on this course.

Feel free to play Sudoku, mess with the poetry magnets, use the chat, and vote in the polls. All these tools are Widgets, written entirely in regular HTML and JavaScript, and don't use any PHP or any part of the Moodle platform they appear in other than using the context it supplies (the course ID in this case) and participant information (display name and avatar image); this means they can be embedded into any platform. Wave - the actual conversation engine - is the obvious one, but I think it makes sense to put live-updating collaborative applications into many different kinds of contexts - social networks, VLEs, blogs - anything with users and contexts.

In addition to the W3C Widgets API and Google Wave Gadgets API, the Wookie engine that renders the widgets also provides a moderator API, enabling admins to lock and unlock widgets. (However, test accounts are in the "student" role and so won't see these controls)

What is a "mashup VLE" really like?

One of the interesting things I've noticed with the test is that it feels very different to a typical course site. For one thing, it doesn't encourage clicking through to other pages - instead you just leave the page open, often in the background, and drift back over to it if anything interesting happens. More like a Twitter-type application than a regular VLE; I wonder how this would work in actual use - would you open a browser tab for each module and flip between them to see what's going on?

This certainly has the potential to mess up the "tracking" functions that VLEs use as these are based on clicking on internal links, rather than interacting within a set of Widgets all within a page. You could be online all day chatting, voting, playing, etc., and the VLE would think you just accessed one page in the morning. Oh well, I think the tracking model in VLEs was always broken anyway - but using this kind of functionality means it'll have to be revisited if VLEs are going to use external tools. The IMS LTIv2 spec defines an "Outcomes service" but its way too complicated to use for this - it seems designed for hooking up a fully-fledged exam system not a simple widget; something simpler would be far more appropriate.

Going further

If you've got a Moodle site, and want to use Widgets and Wave Gadgets in it, we'll get some documentation together soon to show you how. Basically you need to install a Moodle block, and either get an API for our test server, or deploy the Wookie Widget Server on your own network.

If you would like to integrate Wave Gadgets into another web application, send me an email or comment on this post and I'll talk you through what you have to do. Its not difficult - just a few calls to get Widgets and set participant info. (If you're using Sakai, then the Sakai 3 team at CARET in Cambridge have already done a lot of work in this area, and I suggest contacting them.)

If you're a developer and would like to have a go at writing your own Wave Gadgets and seeing them work, then again get in touch and I'll see what I can do to let them get tested on our platform.

(PS this is being hosted on a sandbox server used by our development team, so don't rely on it or get upset if its not available!)

main archive