
Binder – Turn a Git repo into a collection of interactive notebooks - jonbaer
https://mybinder.org/
======
jvns
Binder is really amazing for Python/data science tutorial authors: I have a
pandas tutorial on github, and instead of requiring everyone to install a
bunch of Python libraries / set up a Docker container, now I can just link to

[https://mybinder.org/v2/gh/jvns/pandas-
cookbook/master](https://mybinder.org/v2/gh/jvns/pandas-cookbook/master)

and people can try out the tutorial right away! Before Binder, running
workshops always involved a TON of installation problems and it was a huge
amount of work in advance to figure out how people on windows / mac / linux
could all get the tools installed.

------
setgree
1) There's Binder, which is the infrastructure for building computational
environments around repos, and BinderHub, which hosts the executable code
online. Binder's model, as I understand it, is to develop the infrastructure
and then have universities/institutions/whatever host BinderHub:
[https://binderhub.readthedocs.io/en/latest/](https://binderhub.readthedocs.io/en/latest/)

2) One of my favorite contributions from the team is repo2docker, which turns
requirements.txt or equivalent into Dockerfiles:
[https://repo2docker.readthedocs.io/en/latest/](https://repo2docker.readthedocs.io/en/latest/),
integration into binder described here
[https://blog.jupyter.org/binder-2-0-a-tech-
guide-2017-fd4051...](https://blog.jupyter.org/binder-2-0-a-tech-
guide-2017-fd40515a3a84)

3) Not just Jupyter notebooks, also R/Rstudio/Rshiny:
[https://github.com/binder-examples/r](https://github.com/binder-examples/r)

------
betatim
Some demos and examples:

[https://jupyter.org/try](https://jupyter.org/try) all the repos linked from
there are backed by mybinder.org (The interpreted C++ one blows my mind)

Some examples if you want to know how to configure things: * Install Python
dependencies via requirements.txt [https://github.com/binder-
examples/requirements](https://github.com/binder-examples/requirements)

* Jupyter with R and RStudio: [https://github.com/binder-examples/r](https://github.com/binder-examples/r)

* Julia support: [https://github.com/binder-examples/demo-julia](https://github.com/binder-examples/demo-julia)

* Installing additional APT packages: [https://github.com/binder-examples/apt_install](https://github.com/binder-examples/apt_install)

(I work on Binder)

~~~
clwk
Do you know if this can be configured to work with Sage? If so, could you link
to an example or instructions?

~~~
betatim
Is this the Sage you mean: [https://github.com/sagemath/sage-binder-
env](https://github.com/sagemath/sage-binder-env)

Once in a while someone working with/on Sage pops up on my radar but I am not
sure what _the_ up-to-date and maintained example is unfortunately.

~~~
clwk
That’s it, yes. Thank you.

------
jonbaer
Should point out I actually found it via this doc URL where the runs are
actually embedded within the template which I found pretty interesting, turns
out to be part of Sphinx generation ...

[https://rasa.com/docs/nlu/quickstart/](https://rasa.com/docs/nlu/quickstart/)

[https://sphinx-
gallery.readthedocs.io/en/latest/gen_modules/...](https://sphinx-
gallery.readthedocs.io/en/latest/gen_modules/sphinx_gallery.binder.html)

------
QML
Does anyone know where Binder gets its funding from? Or how much it costs to
run an operation like this?

I’m wondering if it’s economically feasible to make online textbooks and
references interact-able through a Jupyter backend. I know it’s already
technically possible via nb-interact, but I haven’t seen it used besides a
classroom size.

~~~
betatim
[https://mybinder.readthedocs.io/en/latest/about.html#who-
pay...](https://mybinder.readthedocs.io/en/latest/about.html#who-pays-for-
mybinder-org)

At the current level of usage and compute resources it costs about $50000 per
year to run the services, if you don't have to pay the humans that help build
and run it. We are an open project, if anyone wants to join to learn more
about Kubernetes, Jupyter, Ops, Python, Docker you would be very welcome. We
hang out on
[https://gitter.im/jupyterhub/binder](https://gitter.im/jupyterhub/binder) and
[https://github.com/jupyterhub/binder](https://github.com/jupyterhub/binder)
is a meta repository.

(I am a project lead on Binder)

------
roadbeats
I tried it with my notebook repo at
[https://github.com/azer/notebook](https://github.com/azer/notebook) , the
result wasn't impressive; [https://hub.mybinder.org/user/azer-notebook-
rgdv97ik/edit/bo...](https://hub.mybinder.org/user/azer-notebook-
rgdv97ik/edit/books/zero-to-one.md)

Original Github view looks more clean:
[https://github.com/azer/notebook/blob/master/books/zero-
to-o...](https://github.com/azer/notebook/blob/master/books/zero-to-one.md)

------
obilgic
there should be a link to a demo already, instead of asking me for a github
url

~~~
merlincorey
I have setup one for Norvig's pytudes: [https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/tree](https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/tree)

~~~
drusepth
This link gives me a "Binder inaccessible" error, FWIW.

>Is this a Binder that you created?

>If so, your authentication cookie for this Binder has been deleted or
expired. You can launch a new Binder for this repo by clicking here.

> Did someone give you this Binder link?

>If so, the link is outdated or incorrect. Recheck the link for typos or ask
the person who gave you the link for an updated link. A shareable Binder link
should look like [https://mybinder.org](https://mybinder.org).

I got the link to work by mangling it into the following format, but I'm not
sure if this is what you were intending:
[https://mybinder.org/v2/gh/norvig/pytudes/master](https://mybinder.org/v2/gh/norvig/pytudes/master)

~~~
betatim
That is the right link. Unfortunately we haven't yet found a good UX solution
to people sharing the "wrong" link which only works for their personal
instance.

(I am a project lead on binder)

------
shakna
Getting a few security errors at the moment. [1]

> Blocked by Content Security Policy

> An error occurred during a connection to github.com.

> Firefox prevented this page from loading in this way because the page has a
> content security policy that disallows it.

[1]
[https://mybinder.org/v2/gh/torvalds/linux/master](https://mybinder.org/v2/gh/torvalds/linux/master)

------
guessmyname
Example [1] using GitHub’s mirror of the Linux kernel [2].

[1]
[https://mybinder.org/v2/gh/torvalds/linux/master](https://mybinder.org/v2/gh/torvalds/linux/master)

[2] [https://github.com/torvalds/linux](https://github.com/torvalds/linux)

~~~
merlincorey
What python notebooks are in the linux kernel tree?

That sounds interesting.

------
xydinesh
I have created a side project similar to this, at the moment It is pre alpha
with limited resources.
[https://notebooks.newrails.tech/](https://notebooks.newrails.tech/)

------
TheSwordsman
So, did this site get slashdotted? Getting connection refused errors.

------
mcs_
Any examples?

~~~
merlincorey
I went ahead and setup one for Norvig's pytudes:
[https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/tree](https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/tree)

Here's Cheryl's birthday problem in reverse:
[https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/notebo...](https://hub.mybinder.org/user/norvig-
pytudes-i2p4l9gx/notebooks/ipynb/Cheryl-and-Eve.ipynb)

