GSoC proposal: collaborative editor

Daniele E. Domenichelli daniele.domenichelli at gmail.com
Wed Mar 21 01:09:08 UTC 2012


Hello Othmane,

On 20/03/12 23:01, Othmane Moustaouda wrote:
>I thought that
> should be possible to manage the text's changes through a mechanism
> based on diffs, i.e. each time an user makes a change to the shared
> text, a diff will be generated and shared to all other participants.
>
> In order to make this possible, in my vision, something like a
> checksum is needed, to ensure that all participants are working on the
> same text.
 > [...]
 > About the diff part, since Qt doesn't offer something for generating a
 > diff between two strings, I have to use some kind of library that
 > offers a diff algorithm, searching I found  a very few of interesting
 > things,
 > [...]
> a little graphical detail (adopted by almost collaborative editors)
> could be that each participant will have its own color and every
> addition made by him will have that color as background.

diff + checksum makes me think about git! You could also get for free a 
full history of the document, tags, blame (for the colours), and much 
more... Perhaps it makes no sense, but it might be worth investigating.



> All these informations will be transmitted via a D-Bus Tube, I thought
> that for this case a D-Bus Tube is more convenient for use than a
> Stream Tube as it offers the possibility to handle events via signals
> (for example an user login or logout, or a text modify).

On 21/03/12 00:12, David Edmundson wrote:
 > Quick word change - on a stream tube, you'd still have a dbus
 > connection to telepathy so you'd get signals for
 > entering/disconnecting. You're absolutely right a dbus one some
 > advantages (like the last one you mentioned) but the contacts in the
 > room isn't one.

If I remember correctly, you do get connect/disconnect signals on multi 
user dbustubes, for single user tubes you just get disconnected.
I don't think you can have multi user streamtubes though, so if you want 
to go for a multi user collaborative editor dbustubes is the way to go.



> I made an initial UI draft, it's very basic, something like a starting point
> http://dl.dropbox.com/u/61029609/ui_draft1.png

+1 on the mockup from me too! Try to find out if some parts of the UI 
can be reused later for something else (for example to make a "shared 
whiteboard"), and/or if you can reuse some code or libraries for your 
interface.



Good luck with your project!
  Daniele


More information about the KDE-Telepathy mailing list