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