mybinder.org now supports julia 1.x, including Project.toml
and Manifest.toml
files, out of the box.
How do you use it? You create a github repo, put a Project.toml
and Manifest.toml
in the root and add some Jupyter Notebooks to the repo. Then you go to https://mybinder.org/ and enter the URL of your github repository. What you get there is a link that you can for example embed in a web page, share with someone else etc.
What happens if someone clicks on that link? It will automatically spin up a VM instance in the cloud (I believe Google hosted), provision it with exactly the julia environment that is specified in the Project.toml
and Manifest.toml
, and then it takes you to a hosted version of IJulia notebook where you can run code and do whatever you want. It is like a small, free Julia Box, with the additional option to easily share a pre-configure environment with others! It supports both the traditional Jupypter Notebook, and JupyerLab.
What are some scenarios where this might be useful? Here are three scenarios: 1) You want to provide replication code for a scientific paper, with this setup you can create something that replicates the computational environment exactly that one needs to run your code, and provide a one-click link to a fully provisioned computing environment to run your code. 2) You want to teach a course. You can provision a computational environment that has all the packages pre-installed that you need, and then share that link with the participants of your course, so that they don’t need to install anything to run the course content. 3) you want to provide example code or tutorials for your package, not as static documentation, but as runnable notebooks. I’m sure there are many more use-cases!
All the new Julia support we added over the last couple of weeks should also be available for groups that host their own JuptyerHub and have integrated that with their own BinderHub (for example UC Berkeley provides that kind of infrastructure on campus). In that case you wouldn’t be using the free, public hosted VMs to run stuff, but can use your own computational resources.
This was all exceptionally pleasant joint work between @NHDaly, the awesome Jupyter Binder team and myself.