Building Software Together in Open Wonderland

March 18, 2013

By Nicole Yankelovich

Yesterday I gave a talk at the Northeast GNU/Linux Fest in Cambridge, MA. The theme of my talk was using Open Wonderland as a collaborative software development environment. I used the Subsnapshots project and the Postcards code-a-thon as two case studies to show people how we use Open Wonderland throughout the software development process. One thing that struck me when I put this presentation together was how many collaboration tools we actually have to support this rather complex and multidisciplinary process.

I published my slides on Slideshare in case others are interested.


New Collaborative Text Editor App

December 12, 2012

By Bob Potter

Multi-user text editor iconDisplaying and editing text can be accomplished with several tools in Open Wonderland.  These include Sticky Notes, the PDF Viewer and via the Shared Applications server using Open Office or web-based editors such as Google Docs. Each of these, however, comes with significant limitations.  Sticky Notes are best used for short pieces of text.  The PDF Viewer will show text documents but not permit them to be edited.  Open Office editing is limited to documents managed on the application server, and due to the nature of shared applications, does not support cut and paste from the user’s computer. The cut and paste limitation also applies to web-based apps. In addition to the cut and paste limitation, the usability of the web-based editors is not optimal because of the large overhead of editing text in a web browser on the application server. Additionally, given the nature of shared apps, there can be lags in viewing text updates in Open Office or other Xll apps. Finally, shared applications place a significant overhead on the application server, especially when the user is navigating and editing text.

Frequently in our Wonderland community meetings, we have experienced the need for a text editor that can:

  1. Display a large amount of text,
  2. Be edited concurrently by multiple users,
  3. Support cut and paste from the user’s system,
  4. Import selected file types using drag-and-drop; and
  5. Export the edited text back to the user’s computer.

The new Collaborative Text Editor module recently uploaded to the Module Warehouse meets these needs for routine text editing.

Collaborative Text Editor

Using the Collaborative Text Editor for note-taking in an Open Wonderland community meeting.

Once the module has been installed, a text editor can been inserted into the world using the Insert –> Object dialog.  To edit text, one or more users can take control of the editor, move the cursor to the desired location, and start typing.  The editor is limited to plain text and does not yet support any formatting such as bold and italic. There are two buttons in the lower right of the frame.  The “Sync” button can be used to refresh the display with the master copy of the document stored on the server.  This function is only required if the text appears to get out of sync when multiple people are typing or editing at the same time.  The second button, labelled “Export,” will bring up the Save File dialog, permitting the user to save a copy of the file to their own computer.

The Collaborative Text Editor supports drag and drop of text files. If a user drops in a file with the .txt, .log, .html, .java or .xml extension, the editor will automatically open and display the document. Note that since this is a text editor, it will display the Java, html, or xml source, complete with all the code and markup information. Files dropped into the world can be edited and saved back to the user’s system via the export capability.

This editor is based on the work Jonathan Kaplan (Chief Architect of the Open Wonderland Foundation) had done for the programming demo module called “Sorting Algorithms.”   Within that module, Jon had developed a code editor that permitted concurrent editing by users.  This current collaborative editor was developed by extracting and enhancing this code to create a generic text editor application.

Technical Details

The module contains both client and server code to manage the concurrent insertion and deletion of text.  Since users are actually editing slightly different copies of the same document, both the clients and the server need to adjust the position of each insertion (or deletion) based on the current state of the document in their space.  The server’s responsibility is more complex. It is receiving messages from multiple clients, each possibly being a different version from what is in the server’s master copy.  The server transforms each of these changes into the most recent version and forwards these on to the clients.  The clients have to ensure that any local modifications that have occurred since their last update has been applied are considered when determining the target position of the changes received from the server.

The code for this module is presently hosted on GitHub. (https://github.com/bpotter/textEditor.git)  The standard Open Wonderland license applies to this module. This is still a work in progress. I would appreciate your feedback.


OWL Showcase: STCC ESL Virtual Campus

December 3, 2012

By Nicole Yankelovich

Please join us for an informative OWL Showcase on Wednesday. We will be visiting Springfield Technical Community College’s (STCC) virtual campus currently being used to teach English as a Second Language (ESL).

OWL Showcase: STCC ESL Virtual Campus
Wednesday, December 5th
1-2pm US Eastern time
(see event time in your time zone)
Registration on Eventbrite required

WonderBuilders has worked with the STCC faculty to create an extensive learning environment for ESL students.

Collage of STCC virtual campus

Selection of STCC virtual campus spaces

In this US National Science Foundation sponsored project, two ESL classrooms are completing their first semester-long deployment of Open Wonderland. During the tour, attendees will have the opportunity to try out some of the in-world activities designed for students including recording audio conversations, going on an activity scavenger hunt, participating in a photo hunt, and creating a custom fair booth.

Registration is required for this event. Since this not a public world, the URL for the server will not be made public. The login information will only be sent to people who register using the Eventbrite link above.

If you plan on attending and have a smart phone, please consider taking some photos using Instagram so you can more fully participate in the “photo hunt” activity. You can see a preview of this activity in the ESL Department’s recently published Photo Hunt album on Facebook as well as a preview of the Multi-Cultural Fair Booth Activity.

If you are not able to make the tour on Wednesday, there is a possibility of another tour on Sunday, December 16th at 2pm US Eastern time. If enough people express interest, we will set up a second tour on that date. To express interest, please leave a comment on this blog article or post a message on the Open Wonderland forum.


OWL Chatbot Module for a Virtual Campus

November 26, 2012

By Nisarg Naik

The research project summarized in this article was conducted as part of the requirements for degree of MSc Computer Science at Nottingham Trent University in the UK. For this project, I created an Open Wonderland Chatbot Module.

A chatbot is a virtual character that simulates an intelligent conversation with humans. The main purpose of this project was to extend Open Wonderland’s non-player character (NPC) functionality to interact with human avatars. The chatbot is embedded in a virtual campus simulated learning environment (see screenshots of the virtual campus). The main purpose of the chatbot is to communicate or guide users to solve their problems.

Clifton Campus

Virtual campus in which chatbot is integrated.

Here is an example of an integrated chatbot window in which a user has engaged in a conversation with the chatbot from inside Open Wonderland.

Chatbot window

Chatbot window

While chatbots can be used to simulate conversations that convince people the bot is a real person, they can also be used as an advanced search engine to retrieve factual knowledge for users.

Technical Details

Initially, my intention was to develop a basic conversational agent program which could perform keyword-matching to scan for user inputs and generate replies. In the final project, however, I instead integrated a highly developed existing artificial intelligence engine. This engine is based on ALICE (Artificial Linguistic Internet Computer Entity) which uses an AIML-based (Artificial Intelligence Markup Language) interpreter to query and retrieve information. To integrate this technology into Open Wonderland, I experimented with both a Java-based AIML interpreter known as Program-D and a web-based AIML interpreter called Pandorabots. I ended up using Pandorabots for the Chatbot module prototype.

Pandorabots uses the XML-RPC (remote procedure call) communication protocol. It uses XML to encode data, and it works by sending an HTTP request to the server. A client can interact with Pandorabots using a Bot ID. The main advantage of using Pandorabots is that it is easy for users to create and add knowledge to their chatbots by uploading AIML files.

The diagram below illustrates where the Chatbot module fits into the structure of the Virtual Campus once it is complete.

Virtual Campus system diagram.

Virtual Campus system diagram.

As envisioned, the Virtual Campus will include seven buildings covering many disciplines including business, arts, technology, team collaboration, socializing room, student club, and student service. Students will be able to get virtual resources from various specialized virtual departments and directly obtain relevant information easily. The Virtual Campus will also include non-academic rooms for entertainment.

The chatbot functionality will be used throughout the Virtual Campus as an automated guide or instructor, able to interact with students to solve their problems. The AIML integration will allow us to interface with a variety of additional knowledge bases, such as WolframAlpha and DBpedia, allowing students to retrieve information from the chatbot without leaving the virtual world environment.

A big advantage of using Open Wonderland is that it is a great multi-user virtual environment engine that provides many functionalities and in-world applications that students and lecturers can utilize in the Virtual Campus. A well organized virtual campus can be the most efficient way for students and lecturers to collaborate. To support this collaboration, we are planning to use the PDF viewer, an in-world web browser, the Microsoft Office document viewer, text-chat, VOIP audio, webcam video integration, the Screen Sharer and VNC Viewer for desktop sharing, NetBeans for programming projects, in-world music players, wall posters, and the multi-user white board for discussions and sketching. These tools, embedded in the virtual world, are similar to desktop-based applications.

For more information, please refer to my full dissertation, “Integration of a Chatbot Engine on a Multiuser Virtual Environment to Enhance Educational Framework for a Virtual Campus.

I have also made the source code for the Chatbot module available, as well as the 3D models used to create the Virtual Campus.

 

 


Postcards from Wonderland

November 12, 2012

By Nicole Yankelovich

The Postcards from Wonderland code-a-thon wrapped up this evening. The project isn’t entirely complete, but we now have a working prototype:

Initial Postcard Implementation

The first working version of the Postcards feature.

To create a postcard, the user positions an in-world camera and clicks on the green camera button to take a photo. A window then pops up with the photo (not quite displayed properly yet) and allows the user to type in a name for the Postcard and add a message. The user can then save the Postcard to their computer or export it to a photo sharing site.

The whiteboards on the right side of the image show the rough design for the web app that will be used to export the Postcards to services such as Facebook, Flickr, Instagram, and others. The export piece is still a work in progress.

During the two code-a-thon sessions, the group broke up into three teams. Two of the teams worked on coding while the third team worked on design and documentation. The documentation is in the form of a photo essay – really a screenshot essay – of the two code-a-thon sessions.

Creating Facebook photo essay in Wonderland

Creating the Facebook photo essay as a mechanism for documenting the code-a-thon.

If you click on the individual images in the Facebook Postcards album, you will see that each one includes a narrative explaining what the group was doing at that point in the project.

We used a wide range of Wonderland collaboration tools during the two sessions. We began by setting up several different Cardwalls to record “user stories” and track tasks. The design team made heavy use of Whiteboards to sketch out the Postcards UI design. All the teams used the Screen Sharer to collaborate. The design team used it to work on the user interface document in Google Docs and also to create the photo essay on Facebook.  The development teams used it to share terminal and web browser windows. The development teams also used two in-world copies of the NetBeans software development environment, sticky notes, and VNC (a desktop sharing tool). The VNC session is what is visible in the first screenshot above. They used it to show Wonderland running on a remote test server. In this way, the group could use the main community server for collaboration and a separate server to install and test the new Postcard code.

All the code developed for this project is publicly available in a Postcards github repository.


Postcards Part II – New Participants Wanted!

November 7, 2012

By Nicole Yankelovich

Last month, we held our first ever Open Wonderland code-a-thon, working on a project we called Postcards From Wonderland. The non-technical code-a-thon participants created a screenshot journal of the project in an album on the Open Wonderland Facebook page. Be sure to click on the images to read the narrative. This Sunday, we will be continuing this project, brainstorming and implementing ways to publish the postcards to social media sites. This event is being managed via Eventbrite. If you would like to attend, please sign up here:

Sign up for the
Second Open Wonderland Code-A-Thon

Sunday, November 11th
1-9pm US Eastern time
See time in your timezone

It is not necessary to have participated last time to join this Sunday. This event is an excellent, free learning opportunity for both developers and non-developers. Developers can learn about Open Wonderland programming from more experienced developers, and non-technical attendees will have an opportunity to experience a variety of Open Wonderland’s collaboration tools in action.

First Postcards From Wonderland Code-a-thon

Participants in the first Postcards From Wonderland code-a-thon used multiple collaboration tools including a shared copy of NetBeans, a card wall, sticky notes, and a VNC session to watch code testing on another Wonderland server.


The “State” of Online Learing

November 2, 2012

I just came across a post on the Online Colleges Blog that I found interesting and thought others might as well.

8 States Going All In On Online Learning

Despite the name of the blog, the article focuses on online learning in K-12 as well as the college level in eight states: California, Florida, Minnesota, Idaho, Ohio, Michigan, Wisconsin, and Arizona. While there’s no specific mention of virtual world technology, programs such as the ones mentioned in these states might be interested in considering how virtual worlds compliment their existing online offerings.


Follow

Get every new post delivered to your Inbox.

Join 43 other followers

%d bloggers like this: