# Resources
## Table of contents
- [What to learn next](#What_to_learn_next)
- [Further reading](#Further_reading)
- [Definitions/glossary](#Definitions_glossary)
- [Bibliography](#Bibliography)
## What to learn next
We recommend reading the chapter on testing, and then the chapter on continuous integration.
Note that the chapter on version control is a prerequisite for the chapter on continuous integration. The open research chapter also contains further information on sharing research reproducibly.
## Further reading
The [Docker documentation](https://docs.docker.com/get-started/) contains a lot of information about containers in general.
## Definitions/glossary
**Binder:** A web-based service which allows users to upload and share fully-functioning versions of their projects in an environment they define.
**Computational environment:** Features of a computer which can impact the behaviour of work done on it, such as its operating system, what software it has installed, and what versions of software packages are installed.
**Conda:** A commonly used package management system.
**Container:** Lightweight files that can encapsulate and entire computational environment including its operating system, customised settings, software and files.
**Dockerfile:** A file used for creating Docker images
**Image:** Files used for generating containers.
**Package management system:** A tool for installing, managing, and uninstalling software packages including specific versions.
**Virtual machine:** A simulated computer that can encapsulate and entire computational environment including its operating system, customised settings, software and files.
**YAML:** A human readable/writable markup language which used by many projects for configuration files.
## Bibliography
### Materials in the "what is a computational environment" section
- [semantic versioning](https://semver.org) **Creative Commons - CC BY 3.0**
### Materials in the "how this will help you/why this is useful" section
- [A. Brinckman, et al., Computing environments for reproducibility: Capturing the "Whole Tale", Future Generation Computer Systems (2018), https://doi.org/10.1016/j.future.2017.12.029](https://www.sciencedirect.com/science/article/pii/S0167739X17310695) **Attribution 4.0 International (CC BY 4.0)**
- [Paper presenting singularity](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0177459) **CC0 1.0 Universal (CC0 1.0)**
### Materials in the summary of ways to capture computational environments section
- [Paper presenting singularity](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0177459) **CC0 1.0 Universal (CC0 1.0)**
### Materials in the package management systems section
- [Package Managers](https://opensource.com/article/18/7/evolution-package-managers) **Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)**
- [Talk by Will Furnass on Conda](https://github.com/willfurnass/conda-rses-pres/blob/master/content.md) **Attribution-NonCommercial-ShareAlike 4.0 International**
### Materials in the YAML files section
- [YAML tutorial](https://gettaurus.org/docs/YAMLTutorial/) **[Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)**
### Materials in the Binder section
- [Binder illustration](https://opendreamkit.org/2017/11/02/use-case-publishing-reproducible-notebooks/) **Permission to use granted by Juliette Taka, Logilab and the OpenDreamKit project.**
- [mybinder docs intro](https://github.com/jupyterhub/binder/blob/master/doc/introduction.rst) **[BSD 3-Clause](https://github.com/binder-examples/requirements/blob/master/LICENSE)**
- [Original zero to Binder tutorial](https://github.com/Build-a-binder/build-a-binder.github.io/blob/master/workshop/10-zero-to-binder.md) **[BSD 3-Clause](https://github.com/binder-examples/requirements/blob/master/LICENSE)**
- [Sarah Gibson's zero to Binder](https://github.com/alan-turing-institute/the-turing-way/blob/master/workshops/boost-research-reproducibility-binder/workshop-presentations/zero-to-binder.md) **MIT**
- [Zero to Binder](https://github.com/Build-a-binder/build-a-binder.github.io/blob/master/workshop/10-zero-to-binder.md) **[BSD 3-Clause](https://github.com/binder-examples/requirements/blob/master/LICENSE)**
### Materials in the virtual machines section
- [Bryan Brown LITA blog](https://litablog.org/2014/12/virtual-machines-in-a-nutshell/) **[Copyright granted for educational use](http://www.ala.org/copyright)**
### Materials in the containers section
- [What is docker?](https://opensource.com/resources/what-docker) **CC BY-SA 4.0**
- [What are containers?](https://opensource.com/resources/what-are-linux-containers?intcmp=7016000000127cYAAQ) **CC BY-SA 4.0**
- [Docker carpentry](http://www.manicstreetpreacher.co.uk/docker-carpentry/aio/) **Creative Commons Attribution 4.0**
- [Geohackweek tutorial](https://geohackweek.github.io/Introductory/docker-tutorial_temp/) **Creative Commons Attribution 3.0 Unported**
- [NĂ¼st, D., Sochat, V., Marwick, B., Eglen, S., Head, T., & Hirst, T. (2020, April 17). Ten Simple Rules for Writing Dockerfiles for Reproducible Data Science, https://doi.org/10.31219/osf.io/fsd7t](https://github.com/nuest/ten-simple-rules-dockerfiles) **Creative Commons Attribution 4.0 International**