holepunch

github/karthik/holepunch

Reproducible Notebooks with

- x - x - bit.ly/rmedicine2020

Use arrows or touch gestures to navigate slide deck

Now

Future

Over time

Dependencies change

Datasets become

unavailable

APIs break

Two solutions

Carefully document your dependencies

Create a container with the exact versions of packages used in your analysis

1

2

Research compendia

Gentleman and Temple Lang, 2004
...We introduce the concept of a compendium as both a container for the different elements that make up the document and its computations (i.e. text, code, data, ...), and as a means for distributing, managing and updating the collection.

 

The R package structure is great way to organize and share as a compendium!

Compendia need a minimal DESCRIPTION file

devtools::install_deps()

Binder

Binder is an open source project that is designed to make it really easy to share analyses that are in notebooks.

mybinder.org

Binder

mybinder.org

Any web browser

Exact versions of dependencies already installed
Your code is ready to run

How do you get your project binder ready with holepunch?

/karthik/holepunch

The workflow

Load holepunch

Write { description, Dockerfile}

Add badge to readme

Push to GitHub

Build Docker image on Binder

1

2

3

4

Write a DESCRIPTION file

1

Add a Dockerfile

2

3

4

Generate a badge

Build Binder

🖐️ Commit and push to GitHub 🖐️

1

2

3

4

write_dockerfile()
generate_badge()
build_binder()
write_compendium_
description()

🖐️ Commit and push to GitHub 🖐️

 

1

 

2

 

3

 

4

Limitations

 1 gb ram

Times out after 10 mins of inactivity

You still have to figure out how to read in data

karthik.github.io/holepunch/
bit.ly/rmedicine2020