Skip to content
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

Currently being generated cell output disappears once you close/reload the page #6003

Open
deKeijzer opened this issue Feb 19, 2019 · 5 comments
Milestone

Comments

@deKeijzer
Copy link

Maybe not so much a bug, more a quality of life request.
Would it be possible to 'refresh' the cell output, after closing/reloading the webpage?

Currently while running e.g.

import time

for i in range(100):
     print(i)
     time.sleep(1)

When you reload the page when i=5, the cell output will stay at 5 and not update. However, the kernel does stay running and after this loop is done, one can just continue using the kernel of said notebook (which is convenient).

When one is using loops to process data, it occasionally can take some hours for a cell to complete, while the output of the cell is printing statistics. It would be nice to be able to close the page, open it a could hours later and get the 'updated' or at least new cell output.

Terminals already have this ability, which is awesome. If notebooks could get this ability, that would be great.

@jasongrout
Copy link
Contributor

This is an issue with the larger Jupyter architecture and the 'right' fix requires significant changes to how Jupyter kernel interaction works. In particular, kernel messages and the notebook state should be stored in the server, not in browser. Good news, though: there is active work, notably in the nteract project, to fix this architectural issue with Jupyter.

CC @rgbkrk @captainsafia

@jasongrout jasongrout added this to the Future milestone Feb 22, 2019
@rgbkrk
Copy link
Member

rgbkrk commented Feb 22, 2019

Yes! We're exploring this now. However, there's no firm deadline on this, as it's still formative.

We're going to lean heavily on the implementation of sync within sagemathinc's cocalc which supports realtime interactive jupyter notebooks. That work is going to be extracted into a BSD-3-Clause sync library.

The intention is that we'll create a well documented and specified protocol that all modern jupyter frontends can use (jupyterlab, nteract, papermill, nbconvert).

Another part of this effort has been to firm up some of the kernel status and messaging with a relay with message recall built in (contrary to our current message replay mechanism): https://github.com/nteract/kernel-relay

Note: I include papermill and nbconvert as we'd ❤️ to be able to write to a notebook as part of a job in automation while seeing a live view in a separate frontend.


Additional interested participants: @willingc, @williamstein, @mpacer, @MSeal

Related issues:

@vidartf
Copy link
Member

vidartf commented Feb 27, 2019

Note, that once RTC is in place, we could add a "super node" running in Node on the server to incorporate the jupyter messages into the notebook document.

@ellisonbg
Copy link
Contributor

To add to what @vidartf has said, this has come up a number of times and the tentative idea is to have the kernel service take kernel messages and covert them to patches to the CRDT store, essentially acting as another "collaborator". Non stateful kernel messages (widgets, maybe others) can still be let through a propagate to the frontend.

@ellisonbg
Copy link
Contributor

ellisonbg commented Mar 6, 2019

Moved this last comment over to #5382 as it was related to the bigger picture of real time collaboration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants