Sync/save notebooks to Google Drive like StackEdit?

StackEdit has a nice feature where they sync a file to your Google Drive app data folder (a hidden folder on Google Drive). I know that Binder has a feature to save a notebook to your local browser, but how hard would it be to add the ability to sync with Google Drive, to allow work across multiple computers?

I heartily look forward to when there are secure, privacy-respecting solutions to these problems… but I am not convinced the major cloud vendors are going to be a good friend in getting there.

On a number of occasions, there have been capabilities for integrating different jupyter technologies with different proprietary cloud solutions. However, each time, the vendors have deprecated the API. Using the most recent developer-level tools suggested to replace them, it is rather easy for an unwary user to generate a lot of writes, which can start costing real money.

With the yjs-backed CRDTs underlying the new JupyterLab collaborative editing features, it’s plausible someone could write a yjs-major-cloud-vendor connector.

However: I don’t see a first-party Jupyter integration for any of the major platforms’ sync technology on any core timelines, barring significant, sustained contributions from those vendors to maintain them. Unfortunately, i think we’re seeing the contrary happening, making it harder to share compute and data outside of their walled gardens.

3 Likes

Thanks so much for the background!

Basically, I am teaching a class using customized Jupyter notebooks, and mybinder.org seems to get me almost all the way to a turnkey, no-installation platform for student work. It’s great! The one missing ingredient is a reliable method of saving of individual student work across sessions…

1 Like

One downside of using mybinder.org is there’s no authentication, and since it’s a public free compute system with few restrictions on what can be run we recommend against using secrets in mybinder. In theory it should be OK since everything is containerised, but the nature of an open public system means that there’s a higher risk of something leaking out.

If you run your own BinderHub you could potentially use GitHub authentication, and you could maybe use a GitHub oauth token to setup git inside your notebook environments. It’s not as seemless as automatically synchronising files, but it could be an option, especially with GitHub - jupyterlab/jupyterlab-git: A Git extension for JupyterLab

2 Likes

Depending on the background of your students, and the availability
of a GitLab service (in principle you could use GitLab.com), travo could
be an option for your use case.

It does not offer real time sync. But it gives version tracking, permission
management, collaboration, data sovereignty (if you have your own GitLab
service), and some independence on the compute service (instructors and
students can e.g. use their own laptop). And with additional work semi-automatic
grading with nbgrader :slight_smile:

We use it here with cohorts of hundreds of 1st year students with major in maths, physics, or computer science.

Disclaimer: I am one of the main travo dev. So I am biased! But this also says
that I was sufficiently in motivated by such a solution to get my hands dirty :wink:

1 Like