Wonderblog

Project Wonderland Virtual World Toolkit Blog

                 
 

Reviewing Wonderland Code In-World


As the Wonderland core team, we spend a lot of time using Wonderland.  We use it for meetings, we use it for collaborative work, and we even use the world for socializing. But this week we tried something new: a group code review in Wonderland.

Code reviews are an on-going process that we usually work on asynchronously: I email out the code for review, and the reviewers get back to me once they have gone through it. While this is effective for small changes, in this case we wanted to review a large amount of code with the whole group. So we decided to get together in world and discuss the code together, almost like a reading group.

The biggest challenge was getting the code into world. We could have brought a NetBeans editor into world, but that would force everyone to have the same view. Instead, we used Drew Harry's slide spreader app to display PDFs of the source code. We found it works much better when everyone has their own view of the source.  That way we can assign people to break out of the main discussion and answer specific questions before joining the main group again.  And by using the spatial layout, we can always see at a glance where everyone is.  Here is what it looks like in-world:


Overall, it worked pretty well. We were able to explore the code both as a group and individually. And seeing the code sweeping off into the distance definitely gave a sense of how much there is to review!

There is still plenty of room for improvement.  We had to make the slides very big to make them easier to read, but this makes it hard to align your view with the slides. It would have been great to be able to see the code in the HUD.  Also, there is no syntax highlighting and no ability to jump to other parts of the code, which would have sped things up significantly. All this got me thinking it would be nice to have a lightweight shared code viewer -- maybe based on JSyntaxPane -- to use in world. Sounds like a new module to write...

 
 
 
 

Writing a Story, Starting a Movement


I am delighted to introduce today's guest blogger, Nina Nussbaum-Jones from Lockheed Martin. She has been an active participant on the Wonderland forum as well as an enthusiastic advocate for the use of Wonderland technology in her company. Her energy, persistence, and courage are inspirational. Today, Nina is sharing her story with us. Or, more accurately, her storybook.

I have worked at Lockheed Martin for 27 years, starting out as a system programmer in the basement of the computer center (which consisted of 1 DECsystem-20!).  Working closely with other engineers back then meant fighting over the few terminals in the computer room, eavesdropping on arguments nearby, and generally having fun in those big open spaces has led me on a mission to restore that connectedness that has been mercilessly absorbed in the sound-proof cubicle walls that separate the workforce today.

Why Project Wonderland?

After the packaging is tossed, the software installed, and the novelty has dissipated, it’s the heart of the people writing the software that comes through, and the community around it that has forged the open source movement.  And it’s that sense of community that makes open source a movement!** And that’s what we have found in Project Wonderland.


**Remember Arlo Guthrie’s definition in “Alice’s Restaurant”?

Why a story?

The story you are about to read is true.  We have endured for 9 months, persisting in our quest to tell our story, and we’re a bit tired of repeating ourselves.  So I wrote it down, hoping to inspire all of us who want to keep doing what it is that we do and still have fun doing it!  (And also hoping to show that us misunderstood right-brained engineers really do rock!)

Adventures in Wonderland, Starring Nina Nussbaum-Jones and Christopher Stathokostas
(PDF, 2MB)

- Nina Nussbaum-Jones

Editor's Note: For those of you like me who are old enough to remember Arlo Guthrie fondly, but not the details of the song lyrics, and for those too young to have heard them, I thought you might like a pointer to the lyrics of "Alice's Restaurant." The part about what makes a movement a movement is almost at the very end...but I hope you'll read them all the way through and then think about singing along with the rest of us to turn this small movement into something much larger.

 
 
 
 

La Progetto Wunderland


One of the indicators of the worldwide reach of a project is when you receive complaints about it only being in English. We found ourselves in this position earlier this year when we were contacted on the forums from Switzerland by Ronny Standke. However, Ronny didn't contact us to complain--he contacted us to offer to internationalise Project Wonderland! Since then, working with the core team, Ronny has internationalised the majority of the core source code and also provided German (de) and Swiss German (de_CH) localisations. Not to be outdone, our colleague Michel Denis has provided a French (fr) locale, and I've produced a British English (en_GB) variant of the default US English. 

We invited Ronny to write a blog entry on his experience: 

'Here at imedias, the information center for digital media in school and teaching of the University of Applied Sciences Northwestern Switzerland, we were given a task from the canton Solothurn to set up an "active and living environment" for headteachers.
After a long evaluation phase we decided to use Project Wonderland. The reasons for choosing Project Wonderland were:
    • it is available for all major operating systems
    • it can be run without any complex installation (thanks to Java Web Start)
    • it focuses on the more serious aspects of virtual worlds (such asapplication sharing)
    • it is Free Software
    • it is written in Java, a great programming language we can also read and write
However, Project Wonderland obviously has some negative aspects, such as:
    • it is not very mature
    • it is comparatively slow
    • it is not available in the (natural) languages we natively speak in Switzerland (German, French, Italian, Rhaeto-Romanic)

We are confident that Project Wonderland will mature over time and that speed issues will be resolved. The one area where we can help to improve the situation is translating the client to our languages. We downloaded the source code via anonymous svn and performed the localisation (L10n) for German, i.e. we just translated the few resource bundle files we found. Unfortunately, most of Wonderland was still missing internationalisation (i18n). Because we have some experience with i18n/L10n of Java programs we tried adding the missing pieces. After some days of careful source patching, translating, updating from svn and resolving conflicts we had a pretty good i18n coverage.
We did not want to keep this work behind our closed doors so I contacted the Project Wonderland team and asked if they were interested in our work. After sending the initial patch I was welcomed with open arms and a huge amount of appreciation and received developer access almost instantly. Then I tried committing the changes we made piece by piece, checked every change and by doing so noticed several little (mostly cosmetic) things that were crying out for a fix. I became a little too ambitious with it, started breaking things until it raised some eyebrows and was brought back into line. Now I am working in minimal invasive mode, conducting a code review with the owner of the source code before committing my changes and also learned to write bug reports before sending in a patch for review. So, let this be a small lesson for you all future Wonderland contributors. ;-)
Right now we (the whole Project Wonderland team) are still finding pieces of Project Wonderland where i18n is missing or can be improved and fixing those parts. We really look forward to a version where our target group must not jump over a language barrier in addition to the technical challenge they will face when using a virtual world client for the first time in their lives. When working with the development version of Project Wonderland it is great and encouraging to see the improvements that happen to it every day. And it is also great to see that other Project Wonderland team members start taking care of little cosmetic things in the source. ;-)
And (just in case you wondered), we are still calling it "Project Wonderland" here.'

To get some idea of how the user interface changes when using different locales, the screenshots below are of the avatar configuration user interface for the US English, German, French and British English locales, respectively (you may need to widen your browser). Volunteers are needed for other languages, so if you're able to spend a while translating from English, German, French, or British English to some other language, please get in touch.

US English Avatar Selection UI US English Avatar Configuration UI

German Avatar Selection UI German Avatar Configuration UI

French Avatar Selection UI French Avatar Configuration UI

British English Avatar Selection UI British English Avatar Configuration UI

 
 
 
 

Project Wonderland v0.5 User Preview 2 (updated)


We have just released the second preview of Wonderland 0.5. You can download the release from the Binary Downloads page. Since we have been feature frozen since the first preview, this release primarily contains bug fixes. Check out the Issue Tracker to see a list of all 214 bugs that were fixed since September 14th. There are still over 200 known bugs left to fix, so it will take a while longer to work through all of those and arrive at a final 0.5 release. While not the final 0.5 version, we believe that this release is now more stable, and certainly more functional, than v0.4. On the programming side, the APIs have also been stabilized. We strongly encourage anyone still using 0.4 to move to this second preview release as soon as possible.

In addition to bug fixes, the release contains a few previously unfinished or incomplete features. These include:

Apps on HUD

In Preview 2, you can right click on any 2D application and select "Show in HUD" from the context menu. This places a copy of the application on the glass pane, known as the HUD or heads-up display. In the image below, you can see Firefox running in the world (bottom left). By also placing the Firefox window on the HUD, we can walk around or change camera angles while maintaining a pixel-perfect view of the Firefox window.

Firefox on the HUD

To remove the application from the HUD, you can simply click on the blue Remove from HUD icon or the red X in the window header. This will not close the application in-world, but will simply remove the item from your glass pane.

Go to user

"Go to user," an important feature from v0.4, has finally made a reappearance in v0.5. To use the feature, open the Users list (Window --> Users) and click on the name of the person you wish to find. Then click on the icon to the right of the telephone icon, which the cursor is pointing to in the image below.

Also note that you can change the volume for any user in this window, as well as change how name tags are displayed (right-most icon).

Cone of Silence

Some changes have been made to the Cone of Silence. There is no longer a Cone of Silence item in the Components dialog. Instead, you can add a Cone of Silence capability to any object to turn it into a sound-proof area. The property sheet for the Cone of Silence has been re-designed, providing more options for defining the bounds of the cone. Perhaps the most useful new feature is the ability to "Show Bounds."

This lets you see exactly where the sound proof area is located. In the left-hand image below, you can see what the bounds look like when I select "Use Cell Bounds" from the property sheet. Although the object is cylindrical, you can see from the visualization that the bounds are rectangular. If I used these bounds for the cone of silence, people standing right outside the pod would be included in the cone of silence and be able to hear anyone speaking inside. To avoid this problem, I chose to specify a radius, which gives me a spherical shaped area instead of a rectangular one. By adjusting the size of the sphere (below right), I was able to more exactly match the shape of the pod model such that the cone of silence only activates when avatars step inside the pod.

The new property sheet also allows you to specify if you want to hear any audio from outside the cone.  You might want this, for example, if you are holding private meetings in the cone, but still want to hear the buzz of activity from the surrounding space.

Authenticated Login

In this release, a server can be set up with authentication. The new authentication scheme allows you to configure the server so that any guest may log in, but only authorized users can access the Server Admin console.

See the tutorial Configuring Wonderland Authentication for information on how to set up authentication on your own server.

Webcam

Although not technically part of the Preview 2 release, I wanted to mention the availability of a new stable module for viewing webcams in world. The Webcam module is available for download from the Documents and Files section of the wonderland-modules open source site. To install this module, download webcamviewer.jar and save it on your computer. Then use the Manage Modules section of the Server Admin console to install the module on your server. The next time you restart the Darkstar server, you will have a Webcam item in your Component dialog (Insert --> Component...). For more information on installing modules, refer to the Managing Modules section of the Web-Based Administration tutorial.

The image below shows the Webcam application running in the world. To switch cameras, right click on the application and select "Take Control" from the context menu. Then click on the Open icon (second one from the left) and enter a camera URL. For example, for this Citron-crested Cockatoo cam in Germany, I entered:

http://chrissie.selfhost.tv:85/axis-cgi/mjpg/video.cgi?resolution=640x480

For more information, see Nigel's New Webcam Module forum post.


 
 
 
 

A Very Spooky Test


Yesterday we conducted our second community test of the release candidate for Project Wonderland v0.5 User Preview 2. On the whole, the test went extremely well.

As you can see from the screenshots and video, the test script was based on a Halloween theme. The video should give you a sense of the interaction. During the session, we tested various HUD windows including the Users list, the FPS (Frames Per Second) Meter, and Gestures. The bulk of the test focused on Capabilities, including Audio, Placemarks, Cone of Silence, Clickable Link, and Portal.  During the test we added spooky sounds to objects in the world, including creating a "tomb of silence," we piled into a coffin, and we stepped through a tombstone portal to the "great beyond." In the afterworld, we made good use of our time by creating sticky notes with things that went well during the test and things that went wrong. During this debriefing session we recorded and discussed the various problems that cropped up.

The good news is that most of the functionality worked for most of the people. Of course, as with any test, we did find a number of problems. If you're interested in the details, the issues are listed in my recent forum post. The worst problem of the day happened near the end of the session when everyone's sticky notes simultaneously vanished. Although vanishing was in keeping with our theme, the cause of this unintended vanishing was a real mystery. Fortunately, a few us were able to recreate the problem after the test. It had to do with some software cleaning up too vigorously when people teleported to a far-away place like the "great beyond." Once identified, the problem was easy to fix. The other serious issue that surfaced during the test was a shared application "deadlock" problem. The test helped to characterize the problem, which we had seen before. This one is a bit more complex to fix, but a fix is in the works.

Below are some still images from the test. One feature to point out is the Happy Halloween scary face one. This shows a PDF document on the HUD, which is a new feature in the Preview 2 release.



 
 
 
 
 

« November 2009
SunMonTueWedThuFriSat
1
3
4
5
6
7
8
10
11
12
13
14
15
16
17
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today

[This is a Roller site]
Theme by Rowell Sotto.
 
© wonderland