Friday, January 28, 2011

Empty module for Open Wonderland development

I was going through the first part of the 4 part tutorial Developing a new Cell when I realised that the empty module that is available for download contains quite an outdated classpath for use with Netbeans. So I decided to create a new one an upload it to my github account, mainly because in this way it can be developed further if things change in the near future (this pretty much means: feedback very welcome!).

As it stands now, the module is just an updated copy of the one in the tutorial. With time, I'm planning to modify the build file to add testing libraries (probably JUnit and mockito). It would be really cool if these dependencies could be 'pushed down' in to the Wonderland building system so that they are available to all module developers out of the box. But for now, feel free to clone, fork, or download the code.

If your local copy of Wonderland source files follows the structure in the README file, then you should be ready to go with little changes to the module (just a couple of rename actions, and the cusotmisation of

To make it even easier, I've recorded a screencast, and I've been working (in progress) on an update of the tutorial material.

Tuesday, January 25, 2011

Open Wonderland Development course starting tomorrow

I cannot believe it is already tomorrow!!! I am really excited and cannot wait to start working.

In the end a great bunch of people applied for the course, and although initially I was only offering 10 seats, it will be 12 of us starting the course. Hope it will also be 12 of us finishing it!

I am truly sorry to have had to deny several applications, but the pre-requisites were higher than an introductory course, and a good bunch of people did not complete the sign-up task, so I could not approve their applications.

If you are still interested, you can follow the course through the P2PU site, as all the content is openly available. Course link.

Looking forward to starting this collaborative project and I will be documenting several steps of the process in this blog, so stay tuned if you want to hear more!

Friday, January 14, 2011

sample sign-up task for the OWL development course

This is a sample of what I am expecting to see with applications for the course. The exercise is explained in the Sign-up task section at the main page of the OpenWonderland development course at P2PU.

Here is the screenshot of the bean-shell plugin working on my local Wonderland server:

Saying hi from beside the Beanshell Console

To get it to work I had to compile and run the core server, and then, from the wonderland-modules unstable folder, cd into the beanshell-plugin directory and type:
ant deploy

That deployed the module to my server. To activate it, I just added it from the main Wonderland menu (tools --> Beanshell console).

Reflection: I did not run into any trouble doing this, but this was only because I had done it before! call it cheating if you like! ;-)

And this is all you need to finish the sign-up task. The last step would be to apply for the course and send me the link to your blog post.

Open Wonderland Development Course at P2PU

I am organising an 'Open Wonderland Development course' at P2PU. This is a course that follows a peer to peer approach, it is all community based, and totally free.

About P2PU
The Peer to Peer University is a bit different. All work is done through p2p collaboration. Courses generally run for 6 weeks (next batch starting on the 26th of January 2011). You do not need to be an expert to organise a course, mainly because of the fact that you will be a facilitator, as opposed to a teacher/lecturer. All you need is a collection of open accessible resources to run a course (you can also create your own).

I think this model fits perfectly the software profession, if you compare it with the individualised approaches of any 'normal' university. You will not get a degree after finishing a course, but you might get much more out of it...

About Open Wonderland
Open Wonderland is a toolkit to create virtual worlds. It is 100% Java, it has a relatively small core, but its extensibility through 'wonderland modules' makes of it a platform to do pretty much whatever you want within the 3D environment. Out of the box you can share X11 apps within the world (Open office, Chrome, Eclipse, or freemind work pretty well), communicate through text, voice, or even the telephone, and drag and drop all kinds of digital materials such as pdf files, images, etc.

You can also write your own modules. One of the available modules is an scripting engine based on "JSR 223: Scripting for the Java platform". Using this module you can script objects inside the virtual world using any language supported by the specification (Javascript, PHP, Ruby, and so on).

The project was initially born at Sun Microsystems in 2007, but support from Sun/Oracle stopped earlier last year(2010). It was an open source project from inception and although most people envisioned its death after Oracle laid off the team, it has been quite a different story since then. The community has taken control of the project through the creation of the Open Wonderland Foundation (non-profit), and all kinds of meetings inworld have been happening ever since. All Wednesdays at 1pm (EST) there are development meetings in which the community share an instance of Netbeans and hack on code as a group (every avatar can take control of the instance and start driving).
I do have to say that things are going a lot slower, no doubt of that, but there are more users now than ever before, and development continues at a steady pace.

So, why am I doing this, what's in it for me? The experience really. I was not part of the initial wonderland team and my association has not been other than as a volunteer in the community for the last few months. I thought this would be a good way to give back to the community.
I am also a researcher in IT in Education, and this is just a way for me to experiment with ideas, mostly taken from Software Craftsmanship.

I see a few different ways that learning can be organised around the wonderland system (apart from development work which will also be covered).
Although it is a fairly big system (with a small core), test automation is almost inexistent. One of my goals would be to start inspecting the system by testing it from within, and see where that leads us. There is a test harness in place, but it hasn't been used much and it would be great to inspect that too.
Another course for experimenting is the building system. Ant scripts exist for the system but dependency management is not explicit. The build is also way too dependent on netbeans.

These are two scenarios that people are quite likely to find in their everyday job. So, what's in it for you? Well, the experience really! :)
Some people might find attractive the fact that some out of the office learning can being organised (to a point) by someone else. I say 'to a point' because, as mentioned earlier, this is a peer to peer experience, I am not an expert, and learning is ultimately the responsibility of the participants themselves.

This is a 'distance learning experience', and I do not expect people meeting face to face, but I do expect meetings avatar to avatar. It is definitely not the same (nowhere near!) but in my opinion is the closest experience to the real thing that I've had so far.

In a nutshell
So, as a summary, if you are interested in learning through technology, be it software development, testing automation, scm, and so on, and you want to do it within an existing system, and more importantly, in a collaboratively, community-based way, please have a look at the course.

Link to the course:
Dates: starting on January the 26th (2011)
Pre-requisites: Please read through the sign-up task (main page of the course) before applying.