Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Binder

An open-source service that allows users to create sharable, interactive computing environments from Jupyter Notebooks and other repositories. Binder can reproduce a computational environment directly from a GitHub repository, providing a seamless way to share and interact with code and data.

The public service to run Binder is on https://mybinder.org, which is running BinderHub. The Binder links on most Project Pythia pages point to https://binder.projectpythia.org, which is a Pythia-specific implementation of BinderHub running on the NSF-supported Jetstream2 cloud computing service.

BinderHub

The underlying technology and infrastructure that powers Binder. BinderHub deploys and manages the interactive computing environments for Jupyter Notebooks, ensuring that users can access and share reproducible computational work.

branch

A separate workspace to make and track changes without impacting other branches of the code repository.

bug

An error or flaw in software.

checkout

A Git command used to change branches.

clone

A Git command used to create a local copy of a remote repository.

command-line tools

Text-based programs that users interact with via the terminal application or command line.

commit

A snapshot of your Git repository at a specific time.

Conda

Conda is an open-source, cross-platform, language-agnostic package manager and environment management system that allows you to quickly install, run, and update packages within your work environment(s). To install conda, we recommend miniconda.

See Conda documentation, particularly the Conda cheat sheet, and Useful Conda commands in the context of Project Pythia.

DevOps

The integration and automation of practices and processes for software development and operations.

discussions

An optional feature of GitHub repositories that allows for things like sharing project related announcements, gauging opinions through polls, hosting planning discussions, and Q&A.

documentation

Software documentation is descriptive content (e.g., text, images, videos) that is either embedded in the software code or distributed alongside the corresponding software.

Feature Branch Workflow

A collaborative development workflow where new development takes place on dedicated branches rather than the main branch.

fork

A copy of another project hosted on a collaborative development platform such as GitHub.

Forking Workflow

A collaborative development workflow where new development takes place on forked repositories rather than the main project repository.

free and open-source software

Software that is free of charge and where the underlying code is publicly available.

Git

A popular, distributed version control system.

GitHub

A web platform for collaborative software development.

issue

A common feature of collaborative development platforms such as GitHub used to track bugs, request features, and manage work related for a specific repository.

Jupyter Notebooks

The Jupyter Notebook software is an open-source web application that allows you to create and share Jupyter Notebooks (*.ipynb files). Jupyter Notebooks contain executable code, LaTeX equations, visualizations (e.g., plots, pictures), and narrative text. The code does not have to just be Python, other languages such as Julia or R are supported as well. Jupyter Notebooks are celebrated for their interactive output that allows movement between code, code output, explanations, and more code - similar to how scientists think and solve problems. Jupyter Notebooks can be thought of as a living, runnable publication and make for a great presentation platform. See also Jupyter Kernels, Jupyter Lab, Jupyter Hub, Binder, and BinderHub.

Jupyter Kernels

Software engines and their environments (e.g., conda environments) that execute the code contained in Jupyter Notebooks.

Jupyter Lab

A popular web application on which users can create and write their Jupyter Notebooks, as well as explore data, install software, etc. You can find more information on running Jupyter Lab here.

See Installing Python in Jupyter for more.

Jupyter Hub

A web-based platform that authenticates users and launches Jupyter Lab applications for users on remote systems.

Linux

A free and open-souce operating system based on Unix.

local

Refering to something, such as a Git repository, on your computer rather than a remote server.

merge

A specific type of commit that combines changes from two branches.

Miniconda

Miniconda is a free minimal installer for Conda. Miniconda only comes with the Conda package management system; it is a pared-down version of the full Anaconda Python distribution.

See Installing Conda.

Miniforge

Miniforge is the community driven and more permissively licensed minimal installer.

NCL

The NCAR Command Language (NCL) is an interpreted language designed specifically for scientific data analysis and visualization.

origin

The name for the default remote Git repository where you plan to publish commits.

pull

A Git command used to download and integrate changes into your local repository.

pull request

A mechanism to propose code changes to be merged into a repository.

push

A Git command to upload local commits to a remote repository.

Python package

A Python package is a collection of modules, which, in turn, are essentially Python scripts that contain published functionality. There are Python packages for data input, data analysis, data visualization, etc. Each package offers a unique toolset and may have its own unique syntax rules. You can install Python packages with conda.

repository

A storage space containing all of the files and revision history for a software project. Also known as a repo.

remote

A repository hosted on a server such as GitHub.

scientific Python ecosystem

A collection of open source Python packages that support analysis, manipulation, and visualization of scientific data.

upstream

The project repository from which a fork was created.

version control

A software practice for tracking and managing changes to code and other information stored in repositories

version control system

Software tools that track and manage changes to project code and files over time.