New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notebook feature requests #977

Open
fperez opened this Issue Nov 6, 2011 · 193 comments

Comments

Projects
None yet
@fperez
Member

fperez commented Nov 6, 2011

This is a meta-issue to list, discuss and shake out ideas for improvements to the notebook. It can serve as a central page for users to propose ideas and discuss them; as they get more fleshed out and there's a chance of implementing one of them, we can make a separate issue (or pull request, if there's code) for it.

In our docs we already have some items noted, so that list should be used as a starting point for the discussion.

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 6, 2011

Member

Hi,
Because you're asking for it I thought of :

  • A post-saving hook (like for example to call a versioning system)
  • save a .ipynb~ after each execution in case of the user closing the page (but without the output, for speed)
  • Visual indication of which cell are currently busy [edit] forget it, I was using an older version at work... should be more up to date[/edit]
  • (as an option ?) if help pannel if visible, update its content when '(' is inserted. kind of a tooltip.
  • a "read-only" adress for sharing ?
Member

Carreau commented Nov 6, 2011

Hi,
Because you're asking for it I thought of :

  • A post-saving hook (like for example to call a versioning system)
  • save a .ipynb~ after each execution in case of the user closing the page (but without the output, for speed)
  • Visual indication of which cell are currently busy [edit] forget it, I was using an older version at work... should be more up to date[/edit]
  • (as an option ?) if help pannel if visible, update its content when '(' is inserted. kind of a tooltip.
  • a "read-only" adress for sharing ?
@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 6, 2011

Member

On Sun, Nov 6, 2011 at 2:03 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

  • Visual indication of which cell are currently busy

This is already done in master, busy cells have their prompt written
as 'In []' while busy, with the '' replaced by their number when
they finish.

  • a "read-only" adress for sharing ?

Already done in master. You can start a notebook with --read-only and
it will open in a new port in read-only mode. If it's a notebook that
has password protection, then the same address can be used both for
read-write (authenticated users) and read-only (unauthenticated).

Member

fperez commented Nov 6, 2011

On Sun, Nov 6, 2011 at 2:03 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

  • Visual indication of which cell are currently busy

This is already done in master, busy cells have their prompt written
as 'In []' while busy, with the '' replaced by their number when
they finish.

  • a "read-only" adress for sharing ?

Already done in master. You can start a notebook with --read-only and
it will open in a new port in read-only mode. If it's a notebook that
has password protection, then the same address can be used both for
read-write (authenticated users) and read-only (unauthenticated).

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 10, 2011

Member

I've just created PR #987 which kind of replace my 5th point.
and another idea. Maybe we can add the shortcut for the action at the end of the "tooltip" that apear when hovering the corresponding button. like :
Delete [Delete the selected cell (Ctrl+m d)]

Member

Carreau commented Nov 10, 2011

I've just created PR #987 which kind of replace my 5th point.
and another idea. Maybe we can add the shortcut for the action at the end of the "tooltip" that apear when hovering the corresponding button. like :
Delete [Delete the selected cell (Ctrl+m d)]

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 11, 2011

Member

Adding a few of our existing plans, to be tracked here:

  • IPython project == folder == repo. Everything you would have in a project goes here - scripts, notebooks, data. It all gets tracked together, and there will be some simple interface for managing non-notebook contents, and a few VCS actions. You can use multiple projects with one server, but they know nothing of each other (GitHub is used frequently as a reference).
  • Notebooks can have multiple worksheets: Our model is that a notebook == a kernel == a namespace, but you can have multiple pages in that notebook separately working against the same kernel.
  • Notebooks should have multi-level sections, which should facilitate collapsing groups of cells, as well as a good model for a notebook in rst.
  • ReST support - ReST support will be provided at the full document level, so you get all the cross-referencing, linking, scoping, etc. power that you expect from sphinx, which you cannot have if you render text cells with rest one at a time.
Member

minrk commented Nov 11, 2011

Adding a few of our existing plans, to be tracked here:

  • IPython project == folder == repo. Everything you would have in a project goes here - scripts, notebooks, data. It all gets tracked together, and there will be some simple interface for managing non-notebook contents, and a few VCS actions. You can use multiple projects with one server, but they know nothing of each other (GitHub is used frequently as a reference).
  • Notebooks can have multiple worksheets: Our model is that a notebook == a kernel == a namespace, but you can have multiple pages in that notebook separately working against the same kernel.
  • Notebooks should have multi-level sections, which should facilitate collapsing groups of cells, as well as a good model for a notebook in rst.
  • ReST support - ReST support will be provided at the full document level, so you get all the cross-referencing, linking, scoping, etc. power that you expect from sphinx, which you cannot have if you render text cells with rest one at a time.
@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 11, 2011

Member

An idea @ivanov had the other day:

  • reproducible/copyable urls/anchors per-cell, so you can have links to a particular cell that last (at least for the life of the notebook server).

And one from @stefanv, that we had working briefly, but had to remove as the first implementation caused data loss on renames:

  • consistent urls for notebooks - right now, the urls for notebooks are UUIDs, which are regenerated when the server starts. These should be the same from one server session to the next. This is certainly doable, but one has to be careful
    about what happens when the notebook is renamed.
Member

minrk commented Nov 11, 2011

An idea @ivanov had the other day:

  • reproducible/copyable urls/anchors per-cell, so you can have links to a particular cell that last (at least for the life of the notebook server).

And one from @stefanv, that we had working briefly, but had to remove as the first implementation caused data loss on renames:

  • consistent urls for notebooks - right now, the urls for notebooks are UUIDs, which are regenerated when the server starts. These should be the same from one server session to the next. This is certainly doable, but one has to be careful
    about what happens when the notebook is renamed.
@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 11, 2011

Member

@Carreau

  • A post-saving hook (like for example to call a versioning system)
  • save a .ipynb~ after each execution in case of the user closing the page (but without the output, for speed)

My idea for this is actually something akin to the OSX 10.7 Versions model (in idea, not implementation). The notebook should be autosaved silently, but the true 'save' action is actually a git add && commit. I know how much @fperez hates autosave, but I think that a web-based tool that doesn't do any kind of autosave can never be considered production-ready. With this model properly implemented, it would be impossible for autosave to cause data loss, because your last intentional save is always a git checkout -- foo.ipynb away (for which there should certainly be a simple UI in the web interface).

Member

minrk commented Nov 11, 2011

@Carreau

  • A post-saving hook (like for example to call a versioning system)
  • save a .ipynb~ after each execution in case of the user closing the page (but without the output, for speed)

My idea for this is actually something akin to the OSX 10.7 Versions model (in idea, not implementation). The notebook should be autosaved silently, but the true 'save' action is actually a git add && commit. I know how much @fperez hates autosave, but I think that a web-based tool that doesn't do any kind of autosave can never be considered production-ready. With this model properly implemented, it would be impossible for autosave to cause data loss, because your last intentional save is always a git checkout -- foo.ipynb away (for which there should certainly be a simple UI in the web interface).

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 11, 2011

Member

 I know how much @fperez hates autosave,

The autosave I hate is the one that inferior tools like Word use:
autosave that clobbers the file you're working on. But there's a form
of it that I very much like, and that we should probably implement
right away: auto-save of a temporary copy on a relatively fast
schedule (say once every few minutes at most).

I don't like autosave on the main file I'm working on b/c I think it's
a bad idea on many fronts, but an autosaved file that's differently
named, and only used as a recovery tool in the case of an untimely
crash, is something I'd want to have now. Esp given that something
as simple as a browser crash can kill your user session...

Emacs does that and it works pretty well: auto-save files are silently
deleted when the buffer is closed, but if one is ever found upon
opening a file, it most likely means that emacs died badly, and it
offers you to auto-recover it.

Member

fperez commented Nov 11, 2011

 I know how much @fperez hates autosave,

The autosave I hate is the one that inferior tools like Word use:
autosave that clobbers the file you're working on. But there's a form
of it that I very much like, and that we should probably implement
right away: auto-save of a temporary copy on a relatively fast
schedule (say once every few minutes at most).

I don't like autosave on the main file I'm working on b/c I think it's
a bad idea on many fronts, but an autosaved file that's differently
named, and only used as a recovery tool in the case of an untimely
crash, is something I'd want to have now. Esp given that something
as simple as a browser crash can kill your user session...

Emacs does that and it works pretty well: auto-save files are silently
deleted when the buffer is closed, but if one is ever found upon
opening a file, it most likely means that emacs died badly, and it
offers you to auto-recover it.

@ivanov

This comment has been minimized.

Show comment
Hide comment
@ivanov

ivanov Nov 11, 2011

Member

it'd be great to have a cell manipulating API - creating and moving cells from another session hooked to the same kernel. I remember @minrk was telling me that this would require some sort of locking or at least synchronization mechanism, since you can make oodles of cells in the browser and nothing gets sent over the wire until you want to execute some code - but still, this would be a powerful addition to the workflow to be able to create and manipulate the notebook from some other client.

one simpler implementation of this would be something like an 'edit' button, like wikis have, that notifies you of someone else holding a lock requesting that no one else edit the notebook for a while. Nothing would prevent you from overriding it, but at least you'd get the notice that another client is intending to manipulate the NB for a while

Member

ivanov commented Nov 11, 2011

it'd be great to have a cell manipulating API - creating and moving cells from another session hooked to the same kernel. I remember @minrk was telling me that this would require some sort of locking or at least synchronization mechanism, since you can make oodles of cells in the browser and nothing gets sent over the wire until you want to execute some code - but still, this would be a powerful addition to the workflow to be able to create and manipulate the notebook from some other client.

one simpler implementation of this would be something like an 'edit' button, like wikis have, that notifies you of someone else holding a lock requesting that no one else edit the notebook for a while. Nothing would prevent you from overriding it, but at least you'd get the notice that another client is intending to manipulate the NB for a while

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 11, 2011

Member

More:

  • multi-cell selection and actions. Right now, there's no way to copy/paste/delete multiple cells.
  • cell split/join: we should have actions to split a cell at the current point as well as merging a cell with the one previous/next or a group of cells (once we have multi-cell selection implemented).
Member

fperez commented Nov 11, 2011

More:

  • multi-cell selection and actions. Right now, there's no way to copy/paste/delete multiple cells.
  • cell split/join: we should have actions to split a cell at the current point as well as merging a cell with the one previous/next or a group of cells (once we have multi-cell selection implemented).
@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 11, 2011

Member

I know how much @fperez hates autosave,

The autosave I hate is the one that inferior tools like Word use:
autosave that clobbers the file you're working on. But there's a form
of it that I very much like, and that we should probably implement
right away: auto-save of a temporary copy on a relatively fast
schedule (say once every few minutes at most).

I don't like autosave on the main file I'm working on b/c I think it's
a bad idea on many fronts, but an autosaved file that's differently
named, and only used as a recovery tool in the case of an untimely
crash, is something I'd want to have now. Esp given that something
as simple as a browser crash can kill your user session...

Emacs does that and it works pretty well: auto-save files are silently
deleted when the buffer is closed, but if one is ever found upon
opening a file, it most likely means that emacs died badly, and it
offers you to auto-recover it.

This is makes sense, as long as it doesn't do what emacs et al. do (Word did the same, if I recall), and put recovery files adjacent to the originals. They should go in /tmp, or possibly the cache dir proposed for outputs - they must be hidden somehow, and efficiently and very aggressively cleaned up. I have had to delete thousands of foo~ files that supposedly get cleaned up by various apps, and I wish fewer applications created them, not more.

Personally, I find in-place autosave+vcs preferable, because not only does it make it impossible for autosave to lose your data, it also makes it impossible for you to clobber your own work with imprudent saves. It does have plenty of disadvantages, of course (reliance on vcs, proliferation of commits, etc.), so I fully expect to be overruled on this point, as it may well not be the best general solution.

Member

minrk commented Nov 11, 2011

I know how much @fperez hates autosave,

The autosave I hate is the one that inferior tools like Word use:
autosave that clobbers the file you're working on. But there's a form
of it that I very much like, and that we should probably implement
right away: auto-save of a temporary copy on a relatively fast
schedule (say once every few minutes at most).

I don't like autosave on the main file I'm working on b/c I think it's
a bad idea on many fronts, but an autosaved file that's differently
named, and only used as a recovery tool in the case of an untimely
crash, is something I'd want to have now. Esp given that something
as simple as a browser crash can kill your user session...

Emacs does that and it works pretty well: auto-save files are silently
deleted when the buffer is closed, but if one is ever found upon
opening a file, it most likely means that emacs died badly, and it
offers you to auto-recover it.

This is makes sense, as long as it doesn't do what emacs et al. do (Word did the same, if I recall), and put recovery files adjacent to the originals. They should go in /tmp, or possibly the cache dir proposed for outputs - they must be hidden somehow, and efficiently and very aggressively cleaned up. I have had to delete thousands of foo~ files that supposedly get cleaned up by various apps, and I wish fewer applications created them, not more.

Personally, I find in-place autosave+vcs preferable, because not only does it make it impossible for autosave to lose your data, it also makes it impossible for you to clobber your own work with imprudent saves. It does have plenty of disadvantages, of course (reliance on vcs, proliferation of commits, etc.), so I fully expect to be overruled on this point, as it may well not be the best general solution.

@takluyver

This comment has been minimized.

Show comment
Hide comment
@takluyver

takluyver Nov 11, 2011

Member

I'll agree with autosaving a copy in a hidden location (I think the IPython
directory is probably the place - temporary files might be lost if your
system goes down).

I'd certainly like it to be easy to integrate with a VCS, but I don't think
it should be the default mechanism, essentially for the reasons Min
mentioned. Also, we'd either have to depened on a specific VCS (annoying if
you want to keep your project in another system), or go to the trouble of
handling different systems (probably at least hg, git and svn).

Member

takluyver commented Nov 11, 2011

I'll agree with autosaving a copy in a hidden location (I think the IPython
directory is probably the place - temporary files might be lost if your
system goes down).

I'd certainly like it to be easy to integrate with a VCS, but I don't think
it should be the default mechanism, essentially for the reasons Min
mentioned. Also, we'd either have to depened on a specific VCS (annoying if
you want to keep your project in another system), or go to the trouble of
handling different systems (probably at least hg, git and svn).

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 11, 2011

Member

Throwing more ideas:

Could the <tab> completer keep a list of the completion possibility and do a filtering "as you type", then be dismissed when there is no matches left or escape is pressed. All in js of course to avoid querrying the kernel ...

About the Cell copy/pasting, could it be possible to have a copy, collapse (...) button that appear on the left when hovering a rendered/executed cell, a little like editing your message when you just post it on github.

Is there a way to know if a certain notebook is opened from somewhere else, or if the kernel status has been modified since last execution. I'm not familiar with websocket, but are the messages broadcasted or send on a by-host basis? If so and we get a message that don't belong to us, we might want to prompt the user with a message saying that the kernel status may have changed ? Or just count the prompt number...

Member

Carreau commented Nov 11, 2011

Throwing more ideas:

Could the <tab> completer keep a list of the completion possibility and do a filtering "as you type", then be dismissed when there is no matches left or escape is pressed. All in js of course to avoid querrying the kernel ...

About the Cell copy/pasting, could it be possible to have a copy, collapse (...) button that appear on the left when hovering a rendered/executed cell, a little like editing your message when you just post it on github.

Is there a way to know if a certain notebook is opened from somewhere else, or if the kernel status has been modified since last execution. I'm not familiar with websocket, but are the messages broadcasted or send on a by-host basis? If so and we get a message that don't belong to us, we might want to prompt the user with a message saying that the kernel status may have changed ? Or just count the prompt number...

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 11, 2011

Member

Actually @minrk, it seems you do like how emacs does it, because you haven't actually had a problem with it :) Let me explain: the ~ files that bug you are not the autosave ones, those are backup files that contain a copy of the previous saved version of your current file. You can actually instruct emacs to never create those if you don't want them.

The autosave files (in the sense I described above) are by default named #filename#. The fact you're not complaining about those means that it works fine: you hardly ever see them, the only show up if you had emacs segfault in the middle of a big edit.

And I would argue that by default, those should be saved next to their normal file, because the whole point is to make them easy to find in the case of an accident, and in normal usage patterns they never are a bother. In 15 years of daily emacs use I've probably had to clean those up a handful of times.

Member

fperez commented Nov 11, 2011

Actually @minrk, it seems you do like how emacs does it, because you haven't actually had a problem with it :) Let me explain: the ~ files that bug you are not the autosave ones, those are backup files that contain a copy of the previous saved version of your current file. You can actually instruct emacs to never create those if you don't want them.

The autosave files (in the sense I described above) are by default named #filename#. The fact you're not complaining about those means that it works fine: you hardly ever see them, the only show up if you had emacs segfault in the middle of a big edit.

And I would argue that by default, those should be saved next to their normal file, because the whole point is to make them easy to find in the case of an accident, and in normal usage patterns they never are a bother. In 15 years of daily emacs use I've probably had to clean those up a handful of times.

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 11, 2011

Member

@Carreau: yes, we do know when a notebook has been opened, and I'd love to add to the dashboard a button next to any open notebook to allow me to kill its kernel. It's easy to do, we just haven't put too much work on the dashboard functionality yet because our focus has been on the notebooks themselves.

Member

fperez commented Nov 11, 2011

@Carreau: yes, we do know when a notebook has been opened, and I'd love to add to the dashboard a button next to any open notebook to allow me to kill its kernel. It's easy to do, we just haven't put too much work on the dashboard functionality yet because our focus has been on the notebooks themselves.

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 11, 2011

Member

@fperez - 'like' is much too strong a word for anything I feel about emacs ;), but it's fine, as long as they do not appear adjacent to real files. A quick search reveals that I do have some of those files lying around, and given how extremely rarely I use emacs, that is not a good sign. Most of the 'foo~' files on my system were created by various other apps, many of which do a bad job at cleaning up.

If emacs is good at cleaning up that's great, but it is not particularly relevant - the model of writing extra files means we have to be extremely aggressive/careful about cleaning up residue, lest we create a huge annoying mess. Putting those files aside somewhere is a big step towards controlling that mess.

I do think this more primitive model is the right solution for us in general, I would just be very sad if IPython becomes one of the far-too-many Linux apps that litter the filesystem with garbage.

Member

minrk commented Nov 11, 2011

@fperez - 'like' is much too strong a word for anything I feel about emacs ;), but it's fine, as long as they do not appear adjacent to real files. A quick search reveals that I do have some of those files lying around, and given how extremely rarely I use emacs, that is not a good sign. Most of the 'foo~' files on my system were created by various other apps, many of which do a bad job at cleaning up.

If emacs is good at cleaning up that's great, but it is not particularly relevant - the model of writing extra files means we have to be extremely aggressive/careful about cleaning up residue, lest we create a huge annoying mess. Putting those files aside somewhere is a big step towards controlling that mess.

I do think this more primitive model is the right solution for us in general, I would just be very sad if IPython becomes one of the far-too-many Linux apps that litter the filesystem with garbage.

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 17, 2011

Member

I'd like to have an option in %pycat that output the file in a cell, and not in the pager for the notebook.

Member

Carreau commented Nov 17, 2011

I'd like to have an option in %pycat that output the file in a cell, and not in the pager for the notebook.

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 17, 2011

Member

On Thu, Nov 17, 2011 at 8:54 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

I'd like to have an option in  %pycat that output the file in a cell, and not in the pager for the notebook.

That already exists, it's called %loadpy. It even works with URLs,
not just with local file paths.

Member

fperez commented Nov 17, 2011

On Thu, Nov 17, 2011 at 8:54 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

I'd like to have an option in  %pycat that output the file in a cell, and not in the pager for the notebook.

That already exists, it's called %loadpy. It even works with URLs,
not just with local file paths.

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 17, 2011

Member

yes, except that I don't want the cell to be executable... And if I do a "run all" it append the code again ant run it twice ...

Member

Carreau commented Nov 17, 2011

yes, except that I don't want the cell to be executable... And if I do a "run all" it append the code again ant run it twice ...

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 17, 2011

Member

On Thu, Nov 17, 2011 at 10:42 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

yes, except that I don't want the cell to be executable... And if I do a "run all" it append the code again ant run it twice ...

Ah, you want it just printed out... OK. The easiest solution would be
to add a flag to pycat so it prints to stdout unconditionally and
never use the pager. That would be a quick and easy fix.

Member

fperez commented Nov 17, 2011

On Thu, Nov 17, 2011 at 10:42 AM, Bussonnier Matthias
reply@reply.github.com
wrote:

yes, except that I don't want the cell to be executable... And if I do a "run all" it append the code again ant run it twice ...

Ah, you want it just printed out... OK. The easiest solution would be
to add a flag to pycat so it prints to stdout unconditionally and
never use the pager. That would be a quick and easy fix.

@Carreau

This comment has been minimized.

Show comment
Hide comment
@Carreau

Carreau Nov 17, 2011

Member

Yes, I should have been more precise, but I was on the go and post the message not to forgot later...

Member

Carreau commented Nov 17, 2011

Yes, I should have been more precise, but I was on the go and post the message not to forgot later...

@satra

This comment has been minimized.

Show comment
Hide comment
@satra

satra Nov 19, 2011

Contributor

finally getting to this (better late that never). so here it goes?

  • i'd like to see username back. why? because if i'm sharing a read-only or read-write notebook, i would like to know who i'm sharing with. (kind of like google chat). since tornado supports openid, perhaps set a dual authentication scheme, openid and/or password. talking of google chat, integrated chat would be nice :)
  • also i'd like to be ping-ed each time somebody else has added or changed a cell. i know this is rather fragile at the moment.
  • ctrl+enter should execute the current cell and leave the cursor in the cell without highlighting
  • duplicate a notebook that you are working on and haven't saved into a new notebook
  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"
  • notebook diff. what has changed between last saved version and now.
  • split a cell at an arbitrary point, merge cell with previous or next cell
  • save workspace optionally with the notebook
  • ctrl g+?? for git/github key bindings :) i kind of simply stick a cell and do !git ...
  • gist like revision history
  • any possibility of a key binding to toggle the help display and the sidebar
  • open help in a new synched browser tab (one can have it side by side)
  • optional layouts for notebooks (on my giant screen, i might want [sidebar, notebook, help] in columns; on my little screen, i might just want notebook)
  • open a local notebook in the remote session.
  • indicate notebook status: loca/remote, notebook-userid

... more to come

Contributor

satra commented Nov 19, 2011

finally getting to this (better late that never). so here it goes?

  • i'd like to see username back. why? because if i'm sharing a read-only or read-write notebook, i would like to know who i'm sharing with. (kind of like google chat). since tornado supports openid, perhaps set a dual authentication scheme, openid and/or password. talking of google chat, integrated chat would be nice :)
  • also i'd like to be ping-ed each time somebody else has added or changed a cell. i know this is rather fragile at the moment.
  • ctrl+enter should execute the current cell and leave the cursor in the cell without highlighting
  • duplicate a notebook that you are working on and haven't saved into a new notebook
  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"
  • notebook diff. what has changed between last saved version and now.
  • split a cell at an arbitrary point, merge cell with previous or next cell
  • save workspace optionally with the notebook
  • ctrl g+?? for git/github key bindings :) i kind of simply stick a cell and do !git ...
  • gist like revision history
  • any possibility of a key binding to toggle the help display and the sidebar
  • open help in a new synched browser tab (one can have it side by side)
  • optional layouts for notebooks (on my giant screen, i might want [sidebar, notebook, help] in columns; on my little screen, i might just want notebook)
  • open a local notebook in the remote session.
  • indicate notebook status: loca/remote, notebook-userid

... more to come

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 19, 2011

Member

I'm just going to respond to the ones that are already there or for
which we have already an answer, the rest are valid, longer-term
requests as per the intent of this page. Thanks for the ideas!

  • also i'd like to be ping-ed each time somebody else has added or changed a cell. i know this is rather fragile at the moment.

It's not fragile, it simply doesn't exist! There's zero
synchronization support right now, but it's high on our
priority/interest list.

  • ctrl+enter should execute the current cell and leave the cursor in the cell without highlighting

I can see people also wanting the current behavior, since it makes it
easy to quickly retype a different command in-place, which is how I
often find myself using the in-place mode. To be honest, I find that
half the time I'd want what you ask for, the other I want what we have
now. So there's probably not a perfect default for this one :)

  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"

Unfortunately we can't: that dialog is generated by the browser, not
by us, and we have zero control over it. It's the same one you get in
gmail if you try to close a page mid-operation.

  • any possibility of a key binding to toggle the help display and the sidebar

C-m h already toggles the help. We don't have one for the sidebar, though.

  • open a local notebook in the remote session.

You can already do this: drag and drop a notebook file onto the list
area in the dashboard, and it will be uploaded to the remote session
for opening.

Member

fperez commented Nov 19, 2011

I'm just going to respond to the ones that are already there or for
which we have already an answer, the rest are valid, longer-term
requests as per the intent of this page. Thanks for the ideas!

  • also i'd like to be ping-ed each time somebody else has added or changed a cell. i know this is rather fragile at the moment.

It's not fragile, it simply doesn't exist! There's zero
synchronization support right now, but it's high on our
priority/interest list.

  • ctrl+enter should execute the current cell and leave the cursor in the cell without highlighting

I can see people also wanting the current behavior, since it makes it
easy to quickly retype a different command in-place, which is how I
often find myself using the in-place mode. To be honest, I find that
half the time I'd want what you ask for, the other I want what we have
now. So there's probably not a perfect default for this one :)

  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"

Unfortunately we can't: that dialog is generated by the browser, not
by us, and we have zero control over it. It's the same one you get in
gmail if you try to close a page mid-operation.

  • any possibility of a key binding to toggle the help display and the sidebar

C-m h already toggles the help. We don't have one for the sidebar, though.

  • open a local notebook in the remote session.

You can already do this: drag and drop a notebook file onto the list
area in the dashboard, and it will be uploaded to the remote session
for opening.

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 20, 2011

Member
  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"

Unfortunately we can't: that dialog is generated by the browser, not by us, and we have zero control over it. It's the same one you get in gmail if you try to close a page mid-operation.

Not quite, we have control over part of the message here.

Member

minrk commented Nov 20, 2011

  • the "stay or leave the page" message should say "you have unsaved changes. do you want to cancel, save and quit or quit with saving"

Unfortunately we can't: that dialog is generated by the browser, not by us, and we have zero control over it. It's the same one you get in gmail if you try to close a page mid-operation.

Not quite, we have control over part of the message here.

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 20, 2011

Member

On Sat, Nov 19, 2011 at 4:02 PM, Min RK
reply@reply.github.com
wrote:

Not quite, we have control over part of the message here.

Ah, OK, I didn't realize at least we could improve it a little. Thanks
for the pointer!

Member

fperez commented Nov 20, 2011

On Sat, Nov 19, 2011 at 4:02 PM, Min RK
reply@reply.github.com
wrote:

Not quite, we have control over part of the message here.

Ah, OK, I didn't realize at least we could improve it a little. Thanks
for the pointer!

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 20, 2011

Member

Note that #888 is a dedicated discussion about reST support, for anyone interested. That's one of the biggest topics and deserves a separate discussion, as there are quite a few complex issues there.

Member

fperez commented Nov 20, 2011

Note that #888 is a dedicated discussion about reST support, for anyone interested. That's one of the biggest topics and deserves a separate discussion, as there are quite a few complex issues there.

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 21, 2011

Member
  • i'd like to see username back. why? because if i'm sharing a read-only or read-write notebook, i would like to know who i'm sharing with. (kind of like google chat). since tornado supports openid, perhaps set a dual authentication scheme, openid and/or password. talking of google chat, integrated chat would be nice :)

Brian and I removed the username because it didn't actually do anything, and we didn't want to present the illusion of a multi-user environment we don't actually have. Once the server has some sense of users being distinct, then it should be returned.

Member

minrk commented Nov 21, 2011

  • i'd like to see username back. why? because if i'm sharing a read-only or read-write notebook, i would like to know who i'm sharing with. (kind of like google chat). since tornado supports openid, perhaps set a dual authentication scheme, openid and/or password. talking of google chat, integrated chat would be nice :)

Brian and I removed the username because it didn't actually do anything, and we didn't want to present the illusion of a multi-user environment we don't actually have. Once the server has some sense of users being distinct, then it should be returned.

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 23, 2011

Member

On Mon, Nov 21, 2011 at 11:41 AM, Min RK
reply@reply.github.com
wrote:

Brian and I removed the username because it didn't actually do anything, and we didn't want to present the illusion of a multi-user environment we don't actually have.  Once the server has some sense of users being distinct, then it should be returned.

I think the right approach is to offer a 'nickname' field, pre-filled
to the real username (so people who don't care about it don't have to
type anything). By calling it 'nickname' instead of 'username' it's
clear that this isn't a user in the real sense of the word, and simply
a nickname for display/chat purposes.

It should be very clear to everyone that the notebook is fundamentally
a single-user system, and that when you have a collaborator
connected you've given them full-authority shell-level access to
your system. They can do !rm -rf ~ and they'll nuke your home
directory if they are so inclined.

Member

fperez commented Nov 23, 2011

On Mon, Nov 21, 2011 at 11:41 AM, Min RK
reply@reply.github.com
wrote:

Brian and I removed the username because it didn't actually do anything, and we didn't want to present the illusion of a multi-user environment we don't actually have.  Once the server has some sense of users being distinct, then it should be returned.

I think the right approach is to offer a 'nickname' field, pre-filled
to the real username (so people who don't care about it don't have to
type anything). By calling it 'nickname' instead of 'username' it's
clear that this isn't a user in the real sense of the word, and simply
a nickname for display/chat purposes.

It should be very clear to everyone that the notebook is fundamentally
a single-user system, and that when you have a collaborator
connected you've given them full-authority shell-level access to
your system. They can do !rm -rf ~ and they'll nuke your home
directory if they are so inclined.

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Nov 23, 2011

Member

That makes sense, but I still think having such a field that has exactly no function is more confusing than anything, so we shouldn't put it back until we have some functionality that uses it, and we can call it a nickname if that best suits whatever functionality it is that we have.

Member

minrk commented Nov 23, 2011

That makes sense, but I still think having such a field that has exactly no function is more confusing than anything, so we shouldn't put it back until we have some functionality that uses it, and we can call it a nickname if that best suits whatever functionality it is that we have.

@fperez

This comment has been minimized.

Show comment
Hide comment
@fperez

fperez Nov 23, 2011

Member

Agreed, I just wanted to hash out the idea. Definitely shouldn't put it there until there's actual usage code for it.

Member

fperez commented Nov 23, 2011

Agreed, I just wanted to hash out the idea. Definitely shouldn't put it there until there's actual usage code for it.

@minrk minrk removed the type-enhancement label Jan 14, 2015

@varnion

This comment has been minimized.

Show comment
Hide comment
@varnion

varnion Feb 3, 2015

pandocs-citeproc support

I'd be really nice if we could use citations in markdown cells like those supported by pandocs-citeproc:
http://johnmacfarlane.net/pandoc/README.html#citations

for instance, with this:

    ... in a process called *Muller's Ratchet* [@Muller1964; @Haigh1978].
    .. as suggested by Drake [-@Drake1991].
    My model is based on that by @Hadany2003 who showed...

we 'd get this:
... in a process called Muller's Ratchet (Muller 1964; Haigh 1978).
.. as suggested by Drake (1991).
My model is based on that by Hadany and Beker (2003) who showed...

(I picked up those examples on the blog of Yoav Ram)

Another nice alternative would be proper latex citation syntax, but i think those were already requested.

varnion commented Feb 3, 2015

pandocs-citeproc support

I'd be really nice if we could use citations in markdown cells like those supported by pandocs-citeproc:
http://johnmacfarlane.net/pandoc/README.html#citations

for instance, with this:

    ... in a process called *Muller's Ratchet* [@Muller1964; @Haigh1978].
    .. as suggested by Drake [-@Drake1991].
    My model is based on that by @Hadany2003 who showed...

we 'd get this:
... in a process called Muller's Ratchet (Muller 1964; Haigh 1978).
.. as suggested by Drake (1991).
My model is based on that by Hadany and Beker (2003) who showed...

(I picked up those examples on the blog of Yoav Ram)

Another nice alternative would be proper latex citation syntax, but i think those were already requested.

@takluyver

This comment has been minimized.

Show comment
Hide comment
@takluyver

takluyver Feb 3, 2015

Member

Citations are possible with syntax like this <span data-cite='key'></span>. See my cite2c extension for a way to insert and manage them automatically. For a nicer syntax, we're waiting for CommonMark to standardise a generic inline extension syntax for Markdown. We've talked to John Macfarlane, the author of pandoc, and he's heavily involved in CommonMark, so we're optimisitic about that.

Member

takluyver commented Feb 3, 2015

Citations are possible with syntax like this <span data-cite='key'></span>. See my cite2c extension for a way to insert and manage them automatically. For a nicer syntax, we're waiting for CommonMark to standardise a generic inline extension syntax for Markdown. We've talked to John Macfarlane, the author of pandoc, and he's heavily involved in CommonMark, so we're optimisitic about that.

@varnion

This comment has been minimized.

Show comment
Hide comment
@varnion

varnion Feb 3, 2015

whoa, that was fast. thanks! this syntax is a bit ugly, but your extension will save me a LOT of time.

Now I'll be looking foward to see the progress of CommonMark =D

varnion commented Feb 3, 2015

whoa, that was fast. thanks! this syntax is a bit ugly, but your extension will save me a LOT of time.

Now I'll be looking foward to see the progress of CommonMark =D

@bencharb

This comment has been minimized.

Show comment
Hide comment
@bencharb

bencharb Feb 13, 2015

Recover trashed cells after holding down the "d" key. I've lost many hours of work from accidentally deleting many cells because I've leaned on the "d" key too long, usually when I fall asleep at the keys. The feature could work like this: after leaning on the "d" for about one second, pause the deleting with a modal dialog, "Hit 'y' to continue deleting everything."

bencharb commented Feb 13, 2015

Recover trashed cells after holding down the "d" key. I've lost many hours of work from accidentally deleting many cells because I've leaned on the "d" key too long, usually when I fall asleep at the keys. The feature could work like this: after leaning on the "d" for about one second, pause the deleting with a modal dialog, "Hit 'y' to continue deleting everything."

@takluyver

This comment has been minimized.

Show comment
Hide comment
@takluyver

takluyver Feb 13, 2015

Member

I wonder if we can distinguish between the user pressing and holding a key versus pressing it repeatedly. Deleting a cell should ideally require pressing d twice, not just holding it down until it automatically repeats. I would imagine that the answer is 'not in any reliable way across different browsers', though.

Multiple undelete is already tracked as an issue: #4924

Member

takluyver commented Feb 13, 2015

I wonder if we can distinguish between the user pressing and holding a key versus pressing it repeatedly. Deleting a cell should ideally require pressing d twice, not just holding it down until it automatically repeats. I would imagine that the answer is 'not in any reliable way across different browsers', though.

Multiple undelete is already tracked as an issue: #4924

@jasongrout

This comment has been minimized.

Show comment
Hide comment
@jasongrout

jasongrout Feb 14, 2015

Member

We probably can by detecting keydown and keyup events. At least, I'm pretty sure key repeats don't trigger multiple down/up events.

Member

jasongrout commented Feb 14, 2015

We probably can by detecting keydown and keyup events. At least, I'm pretty sure key repeats don't trigger multiple down/up events.

@takluyver

This comment has been minimized.

Show comment
Hide comment
@takluyver

takluyver Feb 14, 2015

Member
Member

takluyver commented Feb 14, 2015

@minrk

This comment has been minimized.

Show comment
Hide comment
@minrk

minrk Feb 14, 2015

Member

For reference: repeats appear to result in consecutive keydown events without keyup events in between (at least on Chrome + OS X).

If our keyboard shortcuts used keypress instead of keydown, the vast majority of the compatibility and weirdness of browsers and keyboards would go away. There's one caveat, though: we still must use keydown for non-text shortcuts (mainly esc).

Member

minrk commented Feb 14, 2015

For reference: repeats appear to result in consecutive keydown events without keyup events in between (at least on Chrome + OS X).

If our keyboard shortcuts used keypress instead of keydown, the vast majority of the compatibility and weirdness of browsers and keyboards would go away. There's one caveat, though: we still must use keydown for non-text shortcuts (mainly esc).

@bencharb

This comment has been minimized.

Show comment
Hide comment
@bencharb

bencharb Feb 18, 2015

Instead of watching keystrokes, could you put a listener on the delete event itself that splashes a nag dialog when it sees repeated deletes?

bencharb commented Feb 18, 2015

Instead of watching keystrokes, could you put a listener on the delete event itself that splashes a nag dialog when it sees repeated deletes?

@fbrundu

This comment has been minimized.

Show comment
Hide comment
@fbrundu

fbrundu Mar 17, 2015

I think it would be nice on big desktop screens to have a two pages layout of one notebook, what do you think?

fbrundu commented Mar 17, 2015

I think it would be nice on big desktop screens to have a two pages layout of one notebook, what do you think?

@ellisonbg

This comment has been minimized.

Show comment
Hide comment
@ellisonbg

ellisonbg Mar 17, 2015

Member

Yep :)

On Tue, Mar 17, 2015 at 11:18 AM, Francesco notifications@github.com
wrote:

I think it would be nice on big desktop screens to have a two pages layout
of one notebook, what do you think?


Reply to this email directly or view it on GitHub
#977 (comment).

Brian E. Granger
Cal Poly State University, San Luis Obispo
@ellisonbg on Twitter and GitHub
bgranger@calpoly.edu and ellisonbg@gmail.com

Member

ellisonbg commented Mar 17, 2015

Yep :)

On Tue, Mar 17, 2015 at 11:18 AM, Francesco notifications@github.com
wrote:

I think it would be nice on big desktop screens to have a two pages layout
of one notebook, what do you think?


Reply to this email directly or view it on GitHub
#977 (comment).

Brian E. Granger
Cal Poly State University, San Luis Obispo
@ellisonbg on Twitter and GitHub
bgranger@calpoly.edu and ellisonbg@gmail.com

@brianbreitsch

This comment has been minimized.

Show comment
Hide comment
@brianbreitsch

brianbreitsch Mar 27, 2015

Hello! I'm not sure if this is already available, but is there a way we can have a javascript hook when the notebook text editor gets loaded. Right now I think custom.js only let's you hook into when notebooks get loaded, but I could be wrong.

I'm trying to do this so I can add a codemirror keymap option to the edit dropdown.

brianbreitsch commented Mar 27, 2015

Hello! I'm not sure if this is already available, but is there a way we can have a javascript hook when the notebook text editor gets loaded. Right now I think custom.js only let's you hook into when notebooks get loaded, but I could be wrong.

I'm trying to do this so I can add a codemirror keymap option to the edit dropdown.

@brianbreitsch

This comment has been minimized.

Show comment
Hide comment
@brianbreitsch

brianbreitsch Mar 27, 2015

It looks like we just need to add events.trigger('app_initialized.EditorApp'); to main.js under edit.
Question: should the event be 'app_initialized.EditorApp' or something else?

brianbreitsch commented Mar 27, 2015

It looks like we just need to add events.trigger('app_initialized.EditorApp'); to main.js under edit.
Question: should the event be 'app_initialized.EditorApp' or something else?

@l00mi

This comment has been minimized.

Show comment
Hide comment
@l00mi

l00mi Apr 29, 2015

Is there already a Feature Request for Block comment/uncomment?

l00mi commented Apr 29, 2015

Is there already a Feature Request for Block comment/uncomment?

@dsblank

This comment has been minimized.

Show comment
Hide comment
@dsblank

dsblank Apr 29, 2015

Contributor

Block comment/uncomment is handled by the editor (CodeMirror). As that is language-dependent, that could be tricky. But control+/ does comment out the block one line at a time, and is very robust... even if the user's selection is a bit off. In any event, CodeMirror would be the place to make the request.

Contributor

dsblank commented Apr 29, 2015

Block comment/uncomment is handled by the editor (CodeMirror). As that is language-dependent, that could be tricky. But control+/ does comment out the block one line at a time, and is very robust... even if the user's selection is a bit off. In any event, CodeMirror would be the place to make the request.

@l00mi

This comment has been minimized.

Show comment
Hide comment
@l00mi

l00mi Apr 29, 2015

Yes, just discovered that.. unfortunately it seems only to work on US Keyboard layout..
Could it make sense to uncomment all if having multiple lines selected and hit # ? A bit like indentation works?

l00mi commented Apr 29, 2015

Yes, just discovered that.. unfortunately it seems only to work on US Keyboard layout..
Could it make sense to uncomment all if having multiple lines selected and hit # ? A bit like indentation works?

@tmearnest

This comment has been minimized.

Show comment
Hide comment
@tmearnest

tmearnest May 4, 2015

Tabbed notebooks

I was thinking that it would be really nice to have separate "pages" or "tabs" associated with a notebook. These would be essentially subnotebooks that are all connected to the same kernel. The main idea is that it would be easy to separate concerns within the document, e.g. one page for imports, initializations, data loading, another page for defining common functions, then a page for the main calculations. Or if there are multiple parts to the calculation that are logically separable, these could go to different tabs as well. I've been finding myself working with large notebooks with tons of output and it gets cluttered really fast. This kind of organization would fix that problem.

tmearnest commented May 4, 2015

Tabbed notebooks

I was thinking that it would be really nice to have separate "pages" or "tabs" associated with a notebook. These would be essentially subnotebooks that are all connected to the same kernel. The main idea is that it would be easy to separate concerns within the document, e.g. one page for imports, initializations, data loading, another page for defining common functions, then a page for the main calculations. Or if there are multiple parts to the calculation that are logically separable, these could go to different tabs as well. I've been finding myself working with large notebooks with tons of output and it gets cluttered really fast. This kind of organization would fix that problem.

@takluyver

This comment has been minimized.

Show comment
Hide comment
@takluyver

takluyver May 4, 2015

Member

We actually had a plan to have worksheets in notebooks - it was even reflected in earlier versions of the file format. But we didn't do it, and we decided that we probably won't, although we're open to someone doing it as an extension.

We know that working with long notebooks is awkward, and we do have some plans to address this, like collapsible sections or tables of content.

Member

takluyver commented May 4, 2015

We actually had a plan to have worksheets in notebooks - it was even reflected in earlier versions of the file format. But we didn't do it, and we decided that we probably won't, although we're open to someone doing it as an extension.

We know that working with long notebooks is awkward, and we do have some plans to address this, like collapsible sections or tables of content.

@MInner

This comment has been minimized.

Show comment
Hide comment
@MInner

MInner May 20, 2015

Hello everyone! I have no idea of how it could be implemented, but it feels like a somewhat critical, at least I face this problem very often. If something occasionally outputs some huge chunk of text into it's output then chrome (and I guess the same thing applies to other browsers too) becomes super-unresponsive (consumes entire CPU and stuck) trying to render all that text in a cell output. The most unpleasant part is that if you close this unresponsive tab and try to reopen the notebook, it would very likely tell you that it is corrupted or too huge to be successfully opened :(

Probably, if you could add some internal super-simple profiling thing that could detect (e.g. too much time between two sequential timeout callback calls) those sucks, stop pushing output to notebook cell and suggest user to clear cell (or continue)?

I personally suffer from that effect a lot :( That would be great if you could solve it somehow.

MInner commented May 20, 2015

Hello everyone! I have no idea of how it could be implemented, but it feels like a somewhat critical, at least I face this problem very often. If something occasionally outputs some huge chunk of text into it's output then chrome (and I guess the same thing applies to other browsers too) becomes super-unresponsive (consumes entire CPU and stuck) trying to render all that text in a cell output. The most unpleasant part is that if you close this unresponsive tab and try to reopen the notebook, it would very likely tell you that it is corrupted or too huge to be successfully opened :(

Probably, if you could add some internal super-simple profiling thing that could detect (e.g. too much time between two sequential timeout callback calls) those sucks, stop pushing output to notebook cell and suggest user to clear cell (or continue)?

I personally suffer from that effect a lot :( That would be great if you could solve it somehow.

@niallrobinson

This comment has been minimized.

Show comment
Hide comment
@niallrobinson

niallrobinson May 21, 2015

I've suffered from this too. It would be lovely to stop this happening. Especially as the only way to recover is to hand edit the notebook!

niallrobinson commented May 21, 2015

I've suffered from this too. It would be lovely to stop this happening. Especially as the only way to recover is to hand edit the notebook!

@InonS

This comment has been minimized.

Show comment
Hide comment
@InonS

InonS Jun 29, 2015

Hi all!
After making what I consider a reasonable effort to find a duplicate, I've decided to chip in with a major request. I know that Jupyter is taking over some of this stuff, but I find it incredibly detrimental to my productivity that I can't refactor code in an IPython notebook. To do so I either have to edit the ipynb file as text, or to export the whole thing to python code, which defeats the purpose of IPython in the first place. I've even looked at some of the python IDEs (PyDev, PyCharm, Spyder) but I think that IPython is only used there as an interactive console, and the entire concept of the notebook is lost.
Firstly, I'd request a "rename" refactor. Later on, maybe some object-oriented stuff like generation of accessor & mutator methods. All of this stuff seems pretty straightforward for the most part, and I'd hate to think of the IPyhton project loosing steam just because productivity is handicapped because of it.
Many thanks to all the developers who make this project happen!

InonS commented Jun 29, 2015

Hi all!
After making what I consider a reasonable effort to find a duplicate, I've decided to chip in with a major request. I know that Jupyter is taking over some of this stuff, but I find it incredibly detrimental to my productivity that I can't refactor code in an IPython notebook. To do so I either have to edit the ipynb file as text, or to export the whole thing to python code, which defeats the purpose of IPython in the first place. I've even looked at some of the python IDEs (PyDev, PyCharm, Spyder) but I think that IPython is only used there as an interactive console, and the entire concept of the notebook is lost.
Firstly, I'd request a "rename" refactor. Later on, maybe some object-oriented stuff like generation of accessor & mutator methods. All of this stuff seems pretty straightforward for the most part, and I'd hate to think of the IPyhton project loosing steam just because productivity is handicapped because of it.
Many thanks to all the developers who make this project happen!

@rossant

This comment has been minimized.

Show comment
Hide comment
@rossant

rossant Jun 29, 2015

Contributor

@InonS ipymd might be a partial solution: you can replace the ipynb format by a Markdown document, which makes refactoring easier in a good text editor

Contributor

rossant commented Jun 29, 2015

@InonS ipymd might be a partial solution: you can replace the ipynb format by a Markdown document, which makes refactoring easier in a good text editor

@InonS

This comment has been minimized.

Show comment
Hide comment
@InonS

InonS Jun 30, 2015

@rossant Thanks! I took a gander, and confirm that the notebookfile file format probably could and should be more portable, e.g. Markdown.
Still, anything that forces me to do my refactoring in an external text editor is a setback, as far as I'm concerned. A user must be able to do all the development in one environment, this includes both running interactively and refactoring.
Thank you for your feedback!

InonS commented Jun 30, 2015

@rossant Thanks! I took a gander, and confirm that the notebookfile file format probably could and should be more portable, e.g. Markdown.
Still, anything that forces me to do my refactoring in an external text editor is a setback, as far as I'm concerned. A user must be able to do all the development in one environment, this includes both running interactively and refactoring.
Thank you for your feedback!

@alvinwt

This comment has been minimized.

Show comment
Hide comment
@alvinwt

alvinwt Jul 16, 2015

Is there a way to run my scripts in the notebooks that persist after closing the browser? I expect that for simulations that run for days, it would be a good feature to have a screen like feature to detach the notebook and let the kernel run in the background without having the browser open. I use both the Python and IRKernel for my work which requires running the jobs on servers from my laptop, so leaving the browser on is not an option. This is a feature that would be useful to many people for sure.

alvinwt commented Jul 16, 2015

Is there a way to run my scripts in the notebooks that persist after closing the browser? I expect that for simulations that run for days, it would be a good feature to have a screen like feature to detach the notebook and let the kernel run in the background without having the browser open. I use both the Python and IRKernel for my work which requires running the jobs on servers from my laptop, so leaving the browser on is not an option. This is a feature that would be useful to many people for sure.

@varnion

This comment has been minimized.

Show comment
Hide comment
@varnion

varnion Jul 16, 2015

@alvinwt this would be SO AWESOME. the only way I know is using the ipython nbconvert from ipynb to ipynb, but this is a non interactive solution.

varnion commented Jul 16, 2015

@alvinwt this would be SO AWESOME. the only way I know is using the ipython nbconvert from ipynb to ipynb, but this is a non interactive solution.

@InonS

This comment has been minimized.

Show comment
Hide comment
@InonS

InonS Jul 17, 2015

@alvinwt, for "running the jobs on servers" non-interactively (i.e. batch processing), would you consider ipcluster?
@varnion, I think I don't understand how your proposal addresses the OP's concern. Could you please explain?

InonS commented Jul 17, 2015

@alvinwt, for "running the jobs on servers" non-interactively (i.e. batch processing), would you consider ipcluster?
@varnion, I think I don't understand how your proposal addresses the OP's concern. Could you please explain?

@alvinwt

This comment has been minimized.

Show comment
Hide comment
@alvinwt

alvinwt Jul 20, 2015

@InonS I would try that out if my script is in Python and I have been struggling with understanding the documentation. Currently I work a lot in the IRKernel and it would be nice if the feature is not limited to Python kernels.

alvinwt commented Jul 20, 2015

@InonS I would try that out if my script is in Python and I have been struggling with understanding the documentation. Currently I work a lot in the IRKernel and it would be nice if the feature is not limited to Python kernels.

@orome

This comment has been minimized.

Show comment
Hide comment
@orome

orome Aug 19, 2015

I'd like to be able to rearrange multiple cells at at a time by dragging them. It'd be nice if you could even do this between notebooks. Sometimes I find that code for data analysis would make more sense in a different notebook, but it sucks to copy/paste it all.

This seems to me like an essential feature that I was hoping would appear eventually. It never takes much time working in a notebook before I realize that things need to be rearranged, and then I hit a dead end and need to switch to a text editor. The omission of this feature alone (at least just multiple selection and rearranging) shapes my entire workflow: start in a notebook and quickly (after a few hours) get so constrained by the inability to move or delete groups of cells that I switch to a conventional text editor.

orome commented Aug 19, 2015

I'd like to be able to rearrange multiple cells at at a time by dragging them. It'd be nice if you could even do this between notebooks. Sometimes I find that code for data analysis would make more sense in a different notebook, but it sucks to copy/paste it all.

This seems to me like an essential feature that I was hoping would appear eventually. It never takes much time working in a notebook before I realize that things need to be rearranged, and then I hit a dead end and need to switch to a text editor. The omission of this feature alone (at least just multiple selection and rearranging) shapes my entire workflow: start in a notebook and quickly (after a few hours) get so constrained by the inability to move or delete groups of cells that I switch to a conventional text editor.

@act65

This comment has been minimized.

Show comment
Hide comment
@act65

act65 Feb 26, 2016

Hey, new to this sort of thing (git etc...). I just wanted to add something to the wishlist that you guys seem to keep.

Can we have a live/interactive version of the markdown preview - like Mou does

screen shot 2016-02-27 at 9 30 52 am

act65 commented Feb 26, 2016

Hey, new to this sort of thing (git etc...). I just wanted to add something to the wishlist that you guys seem to keep.

Can we have a live/interactive version of the markdown preview - like Mou does

screen shot 2016-02-27 at 9 30 52 am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment