Quantcast

[IPython-User] ipython notebook server experience

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[IPython-User] ipython notebook server experience

Skipper Seabold
Hi,

I had my first experience using the IPython notebook server in a
classroom setting this week. The students mostly liked it, but I'm
afraid they were mostly Python novices and I may have learned more
than they did. In any case, I'm hooked and see many possibilities.
Great work.

I'm curious about a couple of things. Is the same notebook intended to
be run by multiple users connected to the same server? 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? 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.

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.

The last thing I noticed is that the Clusters tab seemed to start and
assign processes on its own. At least none of the students owned up to
setting 100 processes and clicking start. Expected? Ghost in the
machine? Or sneaky student?

Thanks,

Skipper
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Matthias Bussonnier

Le 11 juil. 2012 à 16:08, Skipper Seabold a écrit :

Hi,

I had my first experience using the IPython notebook server in a
classroom setting this week. The students mostly liked it, but I'm
afraid they were mostly Python novices and I may have learned more
than they did. In any case, I'm hooked and see many possibilities.
Great work.

Thanks for your kind words and your feedback.

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.

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. 
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.

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.
As for your resources problem, amazon EC2 is free for the first hundreds of hour I think[2], so your student can 
each get an account and could mess around without impacting others performances.

The last thing I noticed is that the Clusters tab seemed to start and
assign processes on its own. At least none of the students owned up to
setting 100 processes and clicking start. Expected? Ghost in the
machine? Or sneaky student?

We never had any issues report on this,
and the code is pretty strait forward,
so my guess is the second one.

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.

Thanks again.
-- 
Matthias

[1] nbcloud : https://notebookcloud.appspot.com/login
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Skipper Seabold
On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <[hidden email]> wrote:

Le 11 juil. 2012 à 16:08, Skipper Seabold a écrit :

Hi,

I had my first experience using the IPython notebook server in a
classroom setting this week. The students mostly liked it, but I'm
afraid they were mostly Python novices and I may have learned more
than they did. In any case, I'm hooked and see many possibilities.
Great work.

Thanks for your kind words and your feedback.

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?
 
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?
 
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.
 
As for your resources problem, amazon EC2 is free for the first hundreds of hour I think[2], so your student can 
each get an account and could mess around without impacting others performances.

The last thing I noticed is that the Clusters tab seemed to start and
assign processes on its own. At least none of the students owned up to
setting 100 processes and clicking start. Expected? Ghost in the
machine? Or sneaky student?

We never had any issues report on this,
and the code is pretty strait forward,
so my guess is the second one.

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.
 

Thanks again.
-- 
Matthias

[1] nbcloud : https://notebookcloud.appspot.com/login

_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user



_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Carl Smith
> Thanks I've seen this, though it's not exactly what I have in mind. I'd
> prefer to maintain my own server.

You can maintain your own stack, just not the hardware it runs on obviously.

> 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?

There's a few people looking at multi-user situations, but often seem
to want different things. I don't personally think there's anything at
all wrong with a single user server. It's not conventional,

>> As for your resources problem, amazon EC2 is free for the first hundreds
>> of hour I think[2], so your student can
>> each get an account and could mess around without impacting others
>> performances.
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Carl Smith
Sorry, I sent it before I'd finished by accident :/

It's not conventional to give each user a full vm, but there's a lot
of advantages to doing it that way, and I think collaboration and
shared resources can be enabled by back end services for the most
part.
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Moritz Beber
In reply to this post by Skipper Seabold
Hello,

just to chime in since I had a little classroom experience as well:

On 07/11/2012 05:56 PM, Skipper Seabold wrote:
On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <[hidden email]> wrote:

Le 11 juil. 2012 à 16:08, Skipper Seabold a écrit :

Hi,

I had my first experience using the IPython notebook server in a
classroom setting this week. The students mostly liked it, but I'm
afraid they were mostly Python novices and I may have learned more
than they did. In any case, I'm hooked and see many possibilities.
Great work.

Thanks for your kind words and your feedback.

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?
 

My solution was to create an account for each student, copy classroom material into their home directory, and start a password protected notebook server for each of them. All done automatically on linux with this script https://github.com/Midnighter/Notebooks-Launcher

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?
 
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.
 
As for your resources problem, amazon EC2 is free for the first hundreds of hour I think[2], so your student can 
each get an account and could mess around without impacting others performances.

The last thing I noticed is that the Clusters tab seemed to start and
assign processes on its own. At least none of the students owned up to
setting 100 processes and clicking start. Expected? Ghost in the
machine? Or sneaky student?

We never had any issues report on this,
and the code is pretty strait forward,
so my guess is the second one.

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.
 

Thanks again.
-- 
Matthias

[1] nbcloud : https://notebookcloud.appspot.com/login

_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user




_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user

I would like to change my script in a way that it sets up the accounts on one machine but that the notebook servers that I start connect to a remote cluster of ipython kernels so as not to overtax that one machine. I lack the knowledge as to whether that is actually possible but with your need as motivation and help by the awesome ipython folks I can work on this.

Would that be a suitable scenario for you?

Best,
Moritz


_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Matthias Bussonnier
In reply to this post by Skipper Seabold

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

On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <[hidden email]> 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.

-- 
Matthias

[1] - https://linuxfr.org/ , "Tribune de rédaction" for logged users.
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Skipper Seabold
On Thu, Jul 12, 2012 at 4:26 AM, Matthias BUSSONNIER <[hidden email]> wrote:

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

On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <[hidden email]> 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.


Thanks, this was helpful for me to understand the notebooks server a bit more.
 
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.


I didn't hear too much but will be sure to let you know as I do. One thing I wanted that I don't *think* I saw was an undo. I pressed ctrl-m d instead of ctrl-m b several times! I also kept wanting my vim keyboard shortcuts, but that's another discussion I think...

Skipper


_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Matthias Bussonnier

I didn't hear too much but will be sure to let you know as I do. One thing I wanted that I don't *think* I saw was an undo.
You have a partial per cell undo (Ctrl+z) and redo, provided by code mirror, thought history is lost when changing cell type.

I pressed ctrl-m d instead of ctrl-m b several times!
We don't have undo deletion yet … but it is planed.

I also kept wanting my vim keyboard shortcuts, but that's another discussion I think…
You are not the only one :-)
-- 
Matthias


_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Skipper Seabold
In reply to this post by Moritz Beber
On Thu, Jul 12, 2012 at 3:02 AM, Moritz Emanuel Beber <[hidden email]> wrote:
Hello,

just to chime in since I had a little classroom experience as well:


On 07/11/2012 05:56 PM, Skipper Seabold wrote:
On Wed, Jul 11, 2012 at 11:36 AM, Matthias BUSSONNIER <[hidden email]> wrote:

Le 11 juil. 2012 à 16:08, Skipper Seabold a écrit :

Hi,

I had my first experience using the IPython notebook server in a
classroom setting this week. The students mostly liked it, but I'm
afraid they were mostly Python novices and I may have learned more
than they did. In any case, I'm hooked and see many possibilities.
Great work.

Thanks for your kind words and your feedback.

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?
 

My solution was to create an account for each student, copy classroom material into their home directory, and start a password protected notebook server for each of them. All done automatically on linux with this script https://github.com/Midnighter/Notebooks-Launcher


Nice! Thanks for sharing. This looks promising for what I'm trying to achieve in a classroom setting.
 

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?
 
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.
 
As for your resources problem, amazon EC2 is free for the first hundreds of hour I think[2], so your student can 
each get an account and could mess around without impacting others performances.

The last thing I noticed is that the Clusters tab seemed to start and
assign processes on its own. At least none of the students owned up to
setting 100 processes and clicking start. Expected? Ghost in the
machine? Or sneaky student?

We never had any issues report on this,
and the code is pretty strait forward,
so my guess is the second one.

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.
 

Thanks again.
-- 
Matthias

[1] nbcloud : https://notebookcloud.appspot.com/login

_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user




_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user

I would like to change my script in a way that it sets up the accounts on one machine but that the notebook servers that I start connect to a remote cluster of ipython kernels so as not to overtax that one machine. I lack the knowledge as to whether that is actually possible but with your need as motivation and help by the awesome ipython folks I can work on this.

Would that be a suitable scenario for you?

Yes, that sounds reasonable, depending on the resources I can get dedicated to this server, though I also have access to a remote cluster. I may have to do some negotiating with IT for this to use the notebook launcher more or less as you are already. I'd also be interested in helping out with seeing about the single machine case, though I'm stretched pretty thing right now.
 

Best,
Moritz


_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user



_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ipython notebook server experience

Matthias Bussonnier
In reply to this post by Moritz Beber

>
> My solution was to create an account for each student, copy classroom material into their home directory, and start a password protected notebook server for each of them. All done automatically on linux with this script https://github.com/Midnighter/Notebooks-Launcher
>> ...

You can/should add your project to the [wiki], I also described something like that as an [idea for sprit], but apparently it is already done.
That's nice.

> I would like to change my script in a way that it sets up the accounts on one machine but that the notebook servers that I start connect to a remote cluster of ipython kernels so as not to overtax that one machine. I lack the knowledge as to whether that is actually possible but with your need as motivation and help by the awesome ipython folks I can work on this.

Min is the best to answer that I think.
 Cheers,
--
Matthias


[wiki] http://wiki.ipython.org/
[idea for sprint] http://wiki.ipython.org/SciPy2012Sprint (feel free to edit the page and add ideas)
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Loading...