Michael,

We are currently buried in paperwork so time is really lacking but feel free to email me directly with any questions you may have and I'll be glad to go through them asap.

When we started the project we believed Google Wave was here to stay so we didn't make any changed to the OT, the idea was to keep federation working with "vanilla" wave servers.

In the end we went with a KISS approach and just added a wavelet with a blip and a custom document schema. Then it was just a matter of developing a doodad and everything just worked. Our main "challenge" was getting it to work with our SVG editor without making any changes to it, no tight coupling with the wave document model.

So, our SVG editor just adds/updates DOM nodes and our doodad listens to these changes and then just adds/updates these in the document. The doodad also listens for changes to the document model and mirrors these in the DOM so we just had to come up with a way to prevent this from looping forever :P

The current WAIB implementation is really "tied" to the conversational model and it can really make it difficult for newcomers to customize it for their needs. Some simple samples of a collaborative editor (eg: ACE) or a simple app (eg: http://scrumblr.ca/) built using WAIB would really illustrate the point that there's more to Wave than the conversation model and a threaded view....

On 28-11-2011 18:05, Michael MacFadden wrote:
Nelson,

I thought this was very interesting.  I would love to chat with you some more 
about this.  Specifically, we are looking at representing no-conversational 
data in a wave.  We have been considering extending the OT engine to have a 
pluggable architecture that could handle arbitrary document types with 
arbitrary operations.  I am sure the challenges you faced during your project 
might give you some ideas on that.

~Michael

On Nov 28, 2011, at 9:11 AM, Nelson Silva wrote:

Hi all,

This might be a bit off-topic but I'd like to invite you all to comment on the 
results of our latest research project called ColaDI.

Here is our latest video showing the conferencing bundle built on Apache Wave:

http://youtu.be/n7XHuVOhx8M?hd=1

You can get all the details in the project's website (http://coladi.inevo.pt). 
We are still updating the site but there are a couple of other videos there you 
can watch if you'd like to.

Some background for "wavers":

- WAIB is integrated with Nuxeo ECM by running an embedded Jetty instance in 
the Tomcat Runtime. This is currently only used for the socketio servlet 
(mainly for websockets), all other servlets have been deployed directly to 
Tomcat.
- The annotation panel is rendering a separate wavelet with a single blip and a 
custom Doodad. We currently have the document exactly as the original SVG which 
is very inefficient since for stuff like PATHs we have to replace the whole 
attribute. The idea is to change the document to something more optimized ( 
that's why we didn't go with a gadget in the first place since we'd like to 
have control of both the rendering and the document as well as the granularity 
of the document ops)
- The body document is using a RDF schema with SVG for annotations
- The annotated document can be 2D (<svg/>  or<image/>) or 3D (X3D using X3DOM 
- webgl)
- When a conferencing session is started a custom wavelet factory creates a new 
wave with all the wavelets and the required initial content. It also is 
responsable for adding the participants as well as the meeting robot.
- The MeetingRobot listens to document changes and maintains the meeting minute 
structure ready for rendering.
- Minutes are rendered using Freemarker along with XHTMLRenderer for producing 
PDF files.

We'd love to get all sorts of comments/suggestions. We are currently mostly 
dealing with the required paperwork (forms, reports, etc) for formally closing 
the project, since this was a national funded project, but will soon start 
polishing the solution and looking for ways to monetize it.

Regards,

    Nelson Silva

Reply via email to