Stub out CouchDB sync via Telepathy stream tube [BiteSize]

Reported by Jason Gerard DeRose on 2011-08-27
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Novacut
High
Unassigned

Bug Description

Perhaps the most exciting prospect of Novacut is real-time collaborative editing (think Google docs).

Rather amazingly, we pretty much get this for free by using CouchDB, as long as we're very careful about not letting the UI and render backend talk to each other directly when *changing* the state of the edit. Details here:

  http://cdn.novacut.com/couchone-guest.html

When doing a real-time collaborative edit, we want to do bi-directional replication between the two (or more) artists' CouchDB instances. Note that each Novacut project will be in it's own CouchDB database, so we'll be replicating the specific database you're sharing... we wont be doing any filtering, don't need per-document access control.

Now the tricky thing is getting through firewalls/NAT/etc, and we also don't want to just have a port open to the outside world all the time. From what I understand, this should be fairly easy to do with a Telepathy TCP stream tube:

  http://telepathy.freedesktop.org/wiki/Tubes

So this bug is to write a quick proof-of-concept script to demonstrate this is possible. In the 11.09 cycle were moving all the Novacut components to Python3, PyGI, and GTK3. Only downside to this is right now it seems pretty painful to use DBus from PyGI and there isn't much documentation. Here is some of the more useful information I've found:

  http://www.piware.de/2011/01/na-zdravi-pygi/

  https://wiki.ubuntu.com/MeetingLogs/appdevweek1104/PyGI

Honestly, feel free to use python2 and python-dbus for this proof of concept, but extra bonus points if you manage to do it with Python3 and PyGI (would require you running Oneiric).

I'd recommend this be done by someone with access to 2 Ubuntu systems... install and start system wide CouchDB on one of them like this:

  sudo apt-get install couchdb

  sudo /etc/init.d/couchdb start

Then make sure it's running okay on first system by pointing your browser here:

  http://localhost:5984/_utils/

And then try to share localhost:5984 through a Telepathy stream tube to your other computer. As long as you can successfully load the above Futon UI from the other computer (through the stream tube), then we can replicate the way we need to.

This bug is "bitesize" for someone already experienced with Telepathy tubes, but may be a fair amount to tackle if you aren't. I personally don't have experience with Telepathy, which is why I'd like to consult the wisdom of the Internet here :)

Please create a misc/ directory in the source tree, and put this demo in misc/telepathy-example.py

If you have any questions, please ping jderose in #novacut on IRC (freenode).

Changed in novacut:
milestone: 11.09 → 11.10
Changed in novacut:
milestone: 11.10 → 11.11
Changed in novacut:
milestone: 11.11 → 12.01
Changed in novacut:
milestone: 12.01 → 12.02
Changed in novacut:
milestone: 12.02 → 12.03
Changed in novacut:
milestone: 12.03 → 12.04
Changed in novacut:
milestone: 12.04 → 12.05
Changed in novacut:
milestone: 12.05 → 12.06
Changed in novacut:
milestone: 12.06 → 12.07
Changed in novacut:
milestone: 12.07 → 12.08
Changed in novacut:
milestone: 12.08 → 12.09
Jason Gerard DeRose (jderose) wrote :

I'm marking this as invalid because the new secure Dmedia peering (coming in 12.10) is a better solution for this problem.

Changed in novacut:
status: Triaged → Won't Fix
milestone: 12.09 → none
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers