# 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**