# Binder
### Tim Head
<br />
<br />
<br />
Notes (open this now): http://bit.ly/binder-osip19
---
# The Goal
You should share:
1. the **data** ✅
2. analysed by **the code** ✅
3. that has to run in **the environment** ⁉️
By this evening you will learn why sharing the environment is important and one way to do so.
---
<img src="https://i.imgur.com/KxDvxaT.jpg" alt="When your collaborator sends you code" class="" style="height: 75vh">
<br />
What tools do you know to make this easier?
---
## The New Student
<img src="https://i.imgur.com/RCWYmCW.png" alt="Other people's computers" class="" style="height: 60vh">
<br />
How long to get a new person up and running?
---
## The Collaboration
<img src="https://i.imgur.com/YTnB8PD.png" alt="Science apps" class="" style="border: none;box-shadow: none; height: 60vh">
<br />
Collaborating with people who don't code.
---
## The Professor
<p style="text-align: left;"><strong>Prof</strong>: could you quickly re-make the plot from our paper with the latest data?<br>
<strong>Prof</strong>: … BTW giving the talk this afternoon.<br>
<strong>You</strong>: Sure …
</p>
---
## Hurdles 🚧
Common barriers to sharing work
* not enough time
* requires new skills
* too difficult
* support burden
---
## Binder Design Principle
<br />
<br />
"Make sharing too easy not to do."
---
<img src="https://i.imgur.com/7RN4GeI.png" alt="Project Binder" class="" style="border: none;box-shadow: none;">
Project Binder builds tools that automate community best practices for sharing code.
* In most cases you just keep doing what you were doing already
* Reduces time and effort needed for sharing
* Even a professor can do research again!
---
<!-- .slide: data-background-image="https://i.imgur.com/XjTGvzT.jpg" data-background-size="contain" -->
---
## Plan for today
1. Exercise on why environnments matter (20min)
2. Zero to Binder (60min)
3. Coffee
4. Introduction to breakouts
5. Breakouts (90min)
6. Show and tell
7. Wrap up
---
## Concrete Goals 📝
1. Understand how the environment in which you run your code impacts reproducibility
2. Be familiar with what Project Binder is and how it can help
3. Make your code "one click" runnable
---
## Plan for today
1. ➡️ Exercise on "Why environnments matter" (20min) ⬅️
2. Zero to Binder (60min)
3. Coffee
4. Introduction to breakouts
5. Breakouts (90min)
6. Show and tell
7. Wrap up
---
## Why the environment matters
Each example comes in two versions that look to be the same but give different results. Your job is to work out why.
Instructions: http://bit.ly/2ksNu0f
---
<!-- .slide: data-background-iframe="https://mybinder.org" -->
<h2 class="raw" style="background: azure;">Interlude: who owns <a href="http://mybinder.org" target="_blank" rel="noopener">mybinder.org</a>?</h2>
---
<!-- .slide: data-background-iframe="https://mybinder.org" -->
<h2 class="raw" style="background: azure;">Interlude: who owns <a href="http://mybinder.org" target="_blank" rel="noopener">mybinder.org</a>?</h2>
<h2 class="raw" style="background: azure;">mybinder.org is open infrastructure</h2>
---
## Plan for today
1. Exercise on why environnments matter (20min)
2. ➡️ Zero to Binder (60min) ⬅️
3. Coffee
4. Introduction to breakouts
5. Breakouts (90min)
6. Show and tell
7. Wrap up
---
## Zero to Binder
Instructions: http://bit.ly/2lEC4Xj
---
<!-- .slide: data-background-image="https://i.imgur.com/uhZziLN.jpg" data-background-size="contain" -->
---
## Links for later
These links will help you find things again later:
* [mybinder.org](https://mybinder.org) -- run other people's code
* [repo2docker](https://repo2docker.readthedocs.io/) -- tool used to automate generating of docker images
* http://bit.ly/2lEC4Xj - Zero To Binder guide
---
## Wrap up
😲 Shocking realisation: sharing your data and code isn't enough. You need to share the computational environment as well!
The good news you now know how to get started on doing that (Project Binder).
---
# ☀️☕️🍫 Coffee
Back here at 16.30h!
Discuss:
Is open science possible if publishers own all the tools and infrastructure?
Does open science need open infrastructure?
---
## Interlude: who pays for mybinder.org?
If open science needs open infrastructure, who pays?
---
## Plan for today
1. Exercise on why environnments matter (20min)
2. Zero to Binder (60min)
3. Coffee
4. ➡️ Introduction to breakouts ⬅️
5. Breakouts (90min)
6. Show and tell
7. Wrap up
---
## Breakout sessions
* next activity: extend the example Binder into one that runs your research code
* more time/can't do that: checkout the ideas for other projects: http://bit.ly/binder-osip19
---
## Plan for today
1. Exercise on why environnments matter (20min)
2. Zero to Binder (60min)
3. Coffee
4. Introduction to breakouts
5. Breakouts (90min)
6. ➡️ Show and tell ⬅️
7. Wrap up
---
## Show and Tell
We will go around the room and ask everyone to say a few words about what they did:
1. what did you try?
2. what worked well?
3. where did you get stuck?
No questions now, save them for dinner.
---
## Plan for today
1. Exercise on why environnments matter (20min)
2. Zero to Binder (60min)
3. Coffee
4. Introduction to breakouts
5. Breakouts (90min)
6. Show and tell
7. 🎉 Wrap up 🎉
---
## Thank you!
🙇♂️
<br />
<br />
This style of workshop only works with active participants!
---
## It is all about the environment
If you want others to (re)use your work you need to share:
1. the **data** ✅
2. analysed by **the code** ✅
3. that has to run in **the environment** ✅
---
<img src="https://i.imgur.com/7RN4GeI.png" alt="Project Binder" class="" style="border: none;box-shadow: none;">
Project Binder builds tools that automate community best practices for sharing code.
* In most cases you just keep doing what you were doing already
* Reduces time and effort needed for sharing
* Even a professor can do research again!
---
<img src="https://i.imgur.com/7RN4GeI.png" alt="Project Binder" class="" style="border: none;box-shadow: none;">
Project Binder is:
* ... an open project that welcomes contribution and participation from all
* ... a group of people who want to make sharing too easy not to do
* ... a free service https://mybinder.org (thanks donors and voluntneers!)
* ... not something that can be bought, sold or acquired
---
## Concrete Achievements 📝
1. Understand how the environment in which you run your code impacts reproducibility
* [examples](https://github.com/alan-turing-institute/the-turing-way/blob/master/workshops/boost-research-reproducibility-binder/paired_examples.md)
3. Be familiar with what Project Binder is and how it can help
* tools that automate community best practices for sharing code
5. Make your code "one click" runnable
* even your professor can do research again!
---
# Fin.
---
# Fin.
Interlude: how to govern open infrastructure that can't be owned?
---
{"metaMigratedAt":"2023-06-14T23:40:42.845Z","metaMigratedFrom":"YAML","title":"Binder","breaks":true,"slideOptions":"{\"center\":false,\"theme\":\"simple\"}","contributors":"[{\"id\":\"8d57b2ac-05ca-4695-82dd-ee90f44be8ea\",\"add\":8858,\"del\":1816}]"}