[IPython-User] ipython notebook server experience

Matthias BUSSONNIER bussonniermatthias@gmail....
Thu Jul 12 03:26:14 CDT 2012

Le 11 juil. 2012 à 17:56, Skipper Seabold a écrit :

> On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <bussonniermatthias@gmail.com> wrote:
>> I'm curious about a couple of things. Is the same notebook intended to
>> be run by multiple users connected to the same server?
> We plan on having simultaneous user being able to edit the same notebook at the same time, 
> probably with a per-cell lock.
>> Would it make sense to have an option for copy-on-open that could be set in global
>> settings with the default to the current behavior?
> I don't really see the reason why, or not enough people will have the use of it. 
> In the end we might allow to create a new notebook from an URL, otherwise, 
> you just have to open a notebook and create a copy from the file menu.
> Well my thinking is that with this set to copy on open/write, when each user opens the notebook, it is no longer the same notebook. It is now theirs. IIUC, with the cell locks, you would have users editing the same file, just not overwriting each others changes?

Yes, that's the plan, to be able to collaborate, on the same *notebook*, with cell-lock and I think push 
to all connected client when the lock is released.
I know of at least one french-linux-centerd-web-site[1] that allows users to write news in this collaborative 
editing manner, where each paragraph have a lock, and every lock release trigger a version snapshot.

Its true that it's sometime difficult to make the distinction between *notebook* and *notebook server*.
And as there is no multi-user capability, there is no notion of identity so no notion of *theirs*.

>> Relatedly and i don't know if this make sense, but is it possible to have these copied
>> notebooks not show up in the directory ?
>> Ie., I have a set of examples
>> that can serve as templates, but no one is interested in seeing the
>> copies of others or new files created by others in the list.
> All this is related to multiuser capability, but in your case (and generally with multi user), you wish to have 
> user isolated in their home. Which is not the case right now. 
> Right. I give the whole server a scratch environment with limited privileges.
> Trying to get around with invisible files and so on is IMHO the wrong way to solve
> a bigger problem of multi-user on the same *server*. If you really want copy on write 
> notebooks, it might be doable later when we'll have the possibly of choosing a backend to store
> the notebooks (PR in Progress), but I doubt this particular backend will be implemented by us.
> You might want to have a look at nbcloud[1], which run the IPython notebook an amazon EC2.
> With this each of your student will have its own notebook instance in its own Vm in the cloud.
> You could provide a small first notebook that download more notebooks in the current directory if needed.
> Thanks I've seen this, though it's not exactly what I have in mind. I'd prefer to maintain my own server. Devil's advocate here: It seems like to me, and maybe I'm just totally misunderstanding, but a notebook server that only serves well for one person is a bit of a misnomer. Why wouldn't I just provide different user accounts where people could SSH into the box with their own account and run the qt-console?

We will add a multi-user, and multi-home directory aware server. But it is still a lot of work, and we will have to be
really careful with security. Depending on how we add multi users , we might provide the same mechanism as unix
account with a skel, that is copied when a new user is created.

Notebook and (Qt-)console are really different UI, and I thing notebook is better for beginners.
Nothing prevent you to run n notebook-servers with different profiles. 
Every student will then just connect on a different port.
It will give you a slightly better isolation by still keeping you under control.

That might be one thing that can be done in next week sprint.

>> I also saw fairly poor performance due to our server. I currently only
>> have two virtual processors allocated on this machine. I'm curious
>> what others have found to be satisfactory for notebook servers (or
>> similar endeavors) with say 10-30 concurrent users. I can request more
>> resources.
> As the notebook run as a particular user and there is non privileges separation, I doubt you'll find 
> 30 person sharing the same account.
> With nbcloud? Currently, I do have 30 people logged in to a single box with the server being run by a single account.

No, I speak in general, the problem is single account, so anyone that have access can by mistake erase everything.
So IMHO, right now,  you won't find a real case of real work done on one box with only one *notebook server*, sysadmins would
I think spawn at least 1 server per user.

> Also, in my opinion, it would be great to have the first impressions from your students.
> Things that might look obvious from our point of view might not make sense at all to new user.
> So don't hesitate if you have more feedback.
> As I mentioned most of them had very little Python background. As is often the case, I think they took to it faster than I did to be honest, since I have more set ideas and context.

Well it was more in a UI point of view, are they confused with icons, do they feel like items are in the right menu. 
For example I was surprised by the fact that *pasting a cell* replace the current cell and does not insert it above or below.
This has nothing to do with python programming, but if it really confuses new *notebook* user, python master or not, 
we might consider changing the behavior.


[1] - https://linuxfr.org/ , "Tribune de rédaction" for logged users.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/ipython-user/attachments/20120712/3bbfc3b8/attachment.html 

More information about the IPython-User mailing list