[tomboy-list] Synchronization plugin
Adam Lofts
adam.lofts at gmail.com
Tue Nov 28 10:32:13 PST 2006
Hello Tomboy enthusiasts,
I am interested in writing a synchronization plugin for Tomboy - is anyone
else working on this? If so I would be interested in joining your effort.
I've done a bit of research and will outline my plan of attack below so you
guys can pick all the holes in it!
What the user will see
--------------------------------
In the tools dropdown there will be a checkbox [x] Share this note.
In the panel applet dropdown there will be a list of remote (on the LAN)
notes.
If I click on a remote note it becomes a local shared note, and I can open
it like any normal note. This note will be saved to disk like any other
note.
Any shared note can receive updates from remote tomboy peers. These updates
will be of the form "Insert text", "Delete text", etc... I.e. You can watch
someone changing your own shared note in real time.
Implementation
----------------------
One Tomboy instance becomes the master instance. This is decided by who has
been alive the longest. Host discovery is done using Avahi to find the
master instance.
The master instance keeps pristine copies of all shared notes, provides
methods to edit notes and signals updates to all clients.
When the master dies a new master is elected.
Synchronization is a problem, for example suppose I update a note when not
on my LAN and then join the LAN. Then either update to the most recently
modified note or provide some GUI to allow the user to choose.
If two people are typing into a note at once the signalling could get
difficult. May just have to live with this and tell people not to do it (or
don't share your note).
Implementation details
--------------------------------
For IPC I would like DBus but the C# bindings are not ready for peer 2 peer
use. .Net remoting seems the best choice.
Not sure if tomboy exposes enough to fully integrate remote notes (e.g.
Searching in remote notes) but will cross this bridge when comes.
Use the Note (de)serialization code to ship note changes over the network.
Is this enough information to keep the notes in sync?
What do you think?
Thanks,
Adam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.beatniksoftware.com/pipermail/tomboy-list-beatniksoftware.com/attachments/20061128/a354189b/attachment.htm
More information about the tomboy-list
mailing list