damianavila / RISE

RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension
Other
3.66k stars 414 forks source link

Keeping Binder Alive During RISE Presentations #524

Open psychemedia opened 4 years ago

psychemedia commented 4 years ago

Something I noticed as a gotcha running a RISE presentation on MyBinder recently was that with the slides running in the browser, a five minute wait between me firing up the Binder and checking the slideshow worked, and my interactive cells some way into the presentation, the Binder timed out while I was presenting which meant either skipping on the interactive slides or restarting Binder (and Sod’s Law getting put onto another stack and requiring another build).

Would some sort of background keep-kernel-alive process be possible that could be started when launching the slideshow and killed when it’s closed?

parmentelat commented 4 years ago

Wow, are you saying you rely on binder to run a presentation ? is this truly the only issue that you are running into ? What do the binder guys have to say about your use case ?

psychemedia commented 4 years ago

Yes. In this case it was a bit meta - the presentation was in part also demonstrating how to use MyBinder. So it was embarrassing when it stopped working...;-)

damianavila commented 4 years ago

Wondering if there is a config option in MyBinder to keep the kernel alive... I guess there are some non-RISE users presenting on plain notebook being affected by this problem.

psychemedia commented 4 years ago

Poking around, seems like this issue explored keeping Binderhub sessions alive. I'm pretty sure I saw some discussion somewhere about this recently (last week or two; maybe in context of Jupyterhub session timeouts?) but I can't for the life of me remember where and I'm pretty sure I didn't make a note of it at the time... Bah...:-(

A workaround is "restarting" a session (thread). This can be done by saving and reloading a notebook in browser local store, but I don't think there's a way of saving state from one Binderhub session to the next (as yet?!)

damianavila commented 4 years ago

Thanks for the references, pretty interesting discussions. On the RISE side, IMHO, we should probably wait a little bit to see how those discussions evolve. If those discussions do not evolve, then we can think of implementing sometime on our side.

psychemedia commented 3 years ago

This may provide a route to keeping a Binder server alive? https://github.com/mmh352/tutorial-server/blob/default/src/tutorial_server/jupyterhub_ping.py

kurtmckee commented 3 years ago

Binder's docs state "Binder is meant for interactive and ephemeral interactive coding, meaning that it is ideally suited for relatively short sessions."

It may be that this ticket can be closed as an unsupported use case (for Binder) or wont-fix (for RISE).

parmentelat commented 3 years ago

lgtm

psychemedia commented 3 years ago

I would just make the comment that it means anyone who tries to use MyBinder for a live presentation using RISE runs the risk of any code cell execution demos not working:

It may also be the case that other JupyterHub servers have cull-if-no-apparent-actviity policies that could lead to embarrassment for anyone giving a RISE presentation on such a server.

damianavila commented 3 years ago

I disagree with the closing, I think the Binder usage is important enough that we may, at least, explore some pinging mechanisms from the RISE side, of possible...