[IPython-dev] IPEP 3: Multiuser support in the notebook

Matthias BUSSONNIER bussonniermatthias at gmail.com
Mon Sep 10 12:49:34 EDT 2012


Le 9 sept. 2012 à 22:13, Brian Granger a écrit :

>>> I don't think we want to do this.
>> 
>> The problem I came across then she doing live collaboration, is others browsers not knowing for which cell iopub is meant.
>> 
>> * Browser send execution request,
>> * IOPub and answer came back.
>> * current cell/output to json, tagged with cell id.
>> * send to the server, that redispatch to other Clients browser.
>> 
>> I thought this was inefficient, especially depending on how you want syncing to be fine grained, you had to resend at "every" received iopub messages.
> 
> OK I am following you now and agree that this is not very efficient.
> 
> There is also the issue of how to handle long running cells where a
> user closes the notebook and then the result returns  over iopub.
> Currently any output that is not loaded into an open notebook is lost.
> We do need something on the server side that *always* has the full
> state of the notebook document.  My thought for this is that the part
> of the server that handles live collaboration and saves, should
> subscribe to iopub should put the data into the notebook document and
> then broadcast it to clients.  If we move in that direction, the
> notebook would no longer monitor iopub directly, but would instead
> monitor diffs coming from the server.  But again, these are huge
> issues that we need to discuss in a IPEP on the topics.

I think you still will have to send some patches from browser to server as some js extension might do stuff to output. 

> 
> I think we will have to learn about Operational Transforms (used by
> Google Docs and Wave).  ShareJS is an interesting start:
> 
> http://sharejs.org/

This is cool !

But this will be quite difficult to integrate IMHO, 
we might really need a more MVC model for the notebook.
-- 
Matthias




More information about the IPython-dev mailing list