Skip to content

Commit a8a5fa0

Browse files
kafitzgeraldpre-commit-ci[bot]brian-rose
authored
Add central glossary, additional abbreviations, links, and minor editorial changes (#582)
* add abbreviations and central glossary along with some minor editorial changes to why-python.md * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix typo Co-authored-by: Brian Rose <[email protected]> * formatting Co-authored-by: Brian Rose <[email protected]> * update BinderHub definition Co-authored-by: Brian Rose <[email protected]> * Update myst.yml Co-authored-by: Brian Rose <[email protected]> * capitalize all abbreviations Co-authored-by: Brian Rose <[email protected]> * capitalize one more * leverage NSF abbreviation Co-authored-by: Brian Rose <[email protected]> --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Brian Rose <[email protected]>
1 parent 91b2219 commit a8a5fa0

File tree

5 files changed

+72
-58
lines changed

5 files changed

+72
-58
lines changed

appendix/glossary.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
title: Glossary
3+
description: Glossary of terms used in Pythia Foundations.
4+
---
5+
6+
:::{glossary}
7+
8+
[Binder](https://jupyter.org/binder)
9+
: An open-source service that allows users to create sharable, interactive computing environments from {term}`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.
10+
11+
: The public service to run Binder is on <https://mybinder.org>, which is running {term}`BinderHub`. The Binder links on most Project Pythia pages point to <https://binder.projectpythia.org>, which is a Pythia-specific implementation of {term}`BinderHub` running on the NSF-supported [Jetstream2](https://jetstream-cloud.org/) cloud computing service.
12+
13+
BinderHub
14+
: The underlying technology and infrastructure that powers {term}`Binder`. BinderHub deploys and manages the interactive computing environments for {term}`Jupyter Notebooks`, ensuring that users can access and share reproducible computational work.
15+
16+
Conda
17+
: 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 {term}`miniconda`.
18+
: See [Conda documentation](https://docs.conda.io/en/latest/) and the [Conda cheat sheet](https://docs.conda.io/projects/conda/en/4.6.0/_downloads/) and @conda-commands in the context of Project Pythia.
19+
20+
Jupyter Notebooks
21+
: 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 {term}`Jupyter Kernels`, {term}`Jupyter Lab`, {term}`Jupyter Hub`, {term}`Binder`, and {term}`BinderHub`.
22+
23+
Jupyter Kernels
24+
: Software engines and their environments (e.g., conda environments) that execute the code contained in {term}`Jupyter Notebooks`.
25+
26+
Jupyter Lab
27+
: A popular web application on which users can create and write their {term}`Jupyter Notebooks`, as well as explore data, install software, etc. You can find more information on running Jupyter Lab [here](https://jupyter.org/install).
28+
29+
: See @installing-python-in-jupyter for more.
30+
31+
Jupyter Hub
32+
: A web-based platform that authenticates users and launches {term}`Jupyter Lab` applications for users on remote systems.
33+
34+
Miniconda
35+
: [Miniconda](https://docs.conda.io/en/latest/miniconda.html) is a free minimal installer for {term}`Conda`. Miniconda only comes with the {term}`Conda` package management system; it is a pared-down version of the full Anaconda Python distribution.
36+
: See @installing-conda.
37+
38+
Miniforge
39+
: Miniforge is the community driven and more permissively licensed minimal installer.
40+
41+
[NCL](https://www.ncl.ucar.edu/)
42+
: The NCAR Command Language (NCL) is an interpreted language designed specifically for scientific data analysis and visualization.
43+
44+
Python package
45+
: 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 {term}`conda`.
46+
:::

foundations/conda.md

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,19 +136,4 @@ Conda is a package and environment management system that allows you to quickly
136136
- [Conda documentation](https://docs.conda.io/en/latest/)
137137
- [Conda cheat sheet](https://docs.conda.io/projects/conda/en/stable/user-guide/cheatsheet.html#cheatsheet)
138138
- [Anaconda](https://docs.anaconda.com/anaconda/install/)
139-
- [Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/main)
140-
141-
## Glossary
142-
143-
:::{glossary}
144-
Conda
145-
: 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 {term}`miniconda`.
146-
: See [Conda documentation](https://docs.conda.io/en/latest/) and the [Conda cheat sheet](https://docs.conda.io/projects/conda/en/stable/user-guide/cheatsheet.html#cheatsheet) and @conda-commands in the context of ProjectPythia.
147-
148-
Miniconda
149-
: [Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/main) is a free minimal installer for {term}`conda`. Miniconda only comes with the {term}`conda` package management system; it is a pared-down version of the full Anaconda Python distribution.
150-
: See @installing-conda.
151-
152-
Python Package
153-
: 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 {term}`conda`.
154-
:::
139+
- [Miniconda](https://docs.conda.io/en/latest/miniconda.html)

foundations/getting-started-jupyter.ipynb

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -187,35 +187,6 @@
187187
"- [Jupyter Documentation](https://jupyter.org/)\n",
188188
"- [Xdev Python Tutorial Seminar Series - Jupyter Notebooks](https://youtu.be/xSzXvwzFsDU)"
189189
]
190-
},
191-
{
192-
"cell_type": "markdown",
193-
"metadata": {},
194-
"source": [
195-
"## Glossary\n",
196-
"\n",
197-
":::{glossary}\n",
198-
"Jupyter Notebooks\n",
199-
": 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 {term}`Jupyter Kernels`, {term}`Jupyter Lab`, {term}`Jupyter Hub`, {term}`Binder`, and {term}`BinderHub`.\n",
200-
"\n",
201-
"Jupyter Kernels\n",
202-
": Software engines and their environments (e.g., conda environments) that execute the code contained in {term}`Jupyter Notebooks`.\n",
203-
"\n",
204-
"Jupyter Lab\n",
205-
": A popular web application on which users can create and write their {term}`Jupyter Notebooks`, as well as explore data, install software, etc. You can find more information on running Jupyter Lab [here](https://jupyter.org/install).\n",
206-
": See @installing-python-in-jupyter for more.\n",
207-
"\n",
208-
"Jupyter Hub\n",
209-
": A web-based platform that authenticates users and launches {term}`Jupyter Lab` applications for users on remote systems.\n",
210-
"\n",
211-
"Binder\n",
212-
": An open-source service that allows users to create sharable, interactive computing environments from {term}`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. \n",
213-
": The public service to run Binder is on <https://mybinder.org>, which is running {term}`BinderHub`. ProjectPythia \n",
214-
"\n",
215-
"BinderHub\n",
216-
": The underlying technology and infrastructure that powers {term}`Binder`. BinderHub deploys and manages the interactive computing environments for {term}`Jupyter Notebooks`, ensuring that users can access and share reproducible computational work.\n",
217-
":::"
218-
]
219190
}
220191
],
221192
"metadata": {
@@ -239,7 +210,7 @@
239210
"name": "python",
240211
"nbconvert_exporter": "python",
241212
"pygments_lexer": "ipython3",
242-
"version": "3.10.8"
213+
"version": "3.14.0"
243214
},
244215
"nbdime-conflicts": {
245216
"local_diff": [

foundations/why-python.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@
22

33
You're already here because you want to learn to use Python for your data analysis and visualizations.
44

5-
**Perhaps the #1 reason to use Python is because it is so widely used in the scientific community!**
5+
**Perhaps the #1 reason to use Python is that it is so widely used in the scientific community!**
66

77
Python can be compared to other high-level, interpreted, object-oriented languages, but is especially great because it is free and open source!
88

99
Want to know what these terms mean for you and your work? Read on!
1010

11-
## High level languages
11+
## High-level languages
1212

13-
Other high level languages include MatLab, IDL, and NCL. The advantage of high level languages is that they provide built-in functions, data structures, and other utilities that are commonly used, which means it takes less code to get real work done. The disadvantage of high level languages is that they tend to obscure the low level aspects of the machine such as memory use, how many floating point operations are happening, and other information related to performance. C, C++, and Fortran are all examples of lower level languages. The "higher" the level of language, the more computing fundamentals are abstracted.
13+
Other high-level languages include [MATLAB](wiki:MATLAB), [IDL](wiki:IDL_(programming_language)), and {term}`NCL`. The advantage of high-level languages is that they provide built-in functions, data structures, and other utilities that are commonly used, which means it takes less code to get real work done. The disadvantage of high-level languages is that they tend to obscure the low-level considerations such as memory use, how many floating-point operations are happening, and other information related to performance. [C](wiki:C_(programming_language)), [C++](wiki:C%2B%2B), and [Fortran](wiki:Fortran) are all examples of lower-level languages. The "higher" the level of language, the more computing fundamentals are abstracted.
1414

1515
## Interpreted languages
1616

17-
Most of your work is probably already in interpreted languages if you've ever used IDL, NCL, or MatLab (interpreted languages are typically also high level). So you are already familiar with the advantages of this: you don't have to worry about compiling or machine compatibility (it is portable). And you are probably familiar with their deficiencies: sometimes they can be slower than compiled languages and potentially more memory intensive.
17+
Most of your work is probably already in interpreted languages if you've ever used [IDL](wiki:IDL_(programming_language)), {term}`NCL`, or [MATLAB](wiki:MATLAB) (interpreted languages are typically also high-level). So you are already familiar with the advantages of this: you don't have to worry about compiling or machine compatibility (it is portable). And you are probably familiar with their deficiencies: sometimes they can be slower than compiled languages and potentially more memory-intensive.
1818

19-
## Object Oriented languages
19+
## Object-oriented languages
2020

21-
Objects are custom datatypes. For every custom datatype, you usually have a set of operations you might want to conduct. For example, if you have an object that is a list of numbers, you might want to apply a mathematical operation, such as sum, onto this list object in bulk. Not every function can be applied to every datatype; it wouldn't make sense to apply a logarithm to a string of letters or to capitalize a list of numbers. Data and the operations applied to them are grouped together into one object.
21+
Objects are custom datatypes. For every custom datatype, you usually have a set of operations you might want to conduct. For example, if you have an object that is a list of numbers, you might want to apply a mathematical operation, such as sum, to this list object in bulk. Not every function can be applied to every datatype; it wouldn't make sense to apply a logarithm to a string of letters or to capitalize a list of numbers. Data and the operations applied to them are grouped together into one object.
2222

2323
## Open source
2424

25-
Python as a language is open source, which means that there is a community of developers behind its codebase. Anyone can join the developer community and contribute to deciding the future of the language. When someone identifies gaps in Python's abilities, they can write up the code to fill these gaps. The open source nature of Python means that Python as a language is very adaptable to the shifting needs of the user community. This harkens back to the idea that the widespread use of Python within the scientific community is a benefit to you! The large Python user base within your field has established high level community Python packages that are available to you in your workflow.
25+
Python, as a language, is open source, which means that there is a community of developers behind its codebase. Anyone can join the developer community and contribute to deciding the future of the language. When someone identifies gaps in Python's abilities, they can write up the code to fill these gaps. The open source nature of Python means that Python as a language is very adaptable to the shifting needs of the user community. This harkens back to the idea that the widespread use of Python within the scientific community is a benefit to you! The large Python user base within your field has established high-level community Python packages that are available to you in your workflow.
2626

2727
Python is a language designed for rapid prototyping and efficient programming. It is easy to write new code quickly with less typing.

myst.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,28 @@ project:
1717
settings:
1818
output_matplotlib_strings: remove
1919
abbreviations:
20-
FOSS: Free and open-source software
21-
VCS: Version control system
22-
FTP: File transfer protocol
20+
API: Application Programming Interface
21+
DOI: Digital Object Identifier
22+
FOSS: Free and Open-Source Software
23+
FTP: File Transfer Protocol
24+
HTTP: Hypertext Transfer Protocol
25+
ID: Identifier
26+
IDL: Interactive Data Language
27+
NCAR: NSF National Center for Atmospheric Research
28+
NCL: NCAR Command Language
29+
NSF: U.S. National Science Foundation
30+
PR: Pull Request
31+
SPE: Scientific Python Ecosystem
32+
SSH: Secure Shell Protocol
2333
TCP: Transmission Control Protocol
34+
VCS: Version Control System
2435
toc:
2536
- file: landing-page.md
2637
- title: Preamble
2738
children:
2839
- file: preamble/how-to-use.md
2940
- file: preamble/how-to-cite.md
30-
- title: Foundational skills
41+
- title: Foundational Skills
3142
children:
3243
- file: foundations/overview.md
3344
- file: foundations/why-python.md
@@ -56,7 +67,7 @@ project:
5667
- file: foundations/github/review-pr.md
5768
- file: foundations/github/github-workflows.md
5869
- file: foundations/github/contribute-to-pythia.md
59-
- title: Core Scientific Python packages
70+
- title: Core Scientific Python Packages
6071
children:
6172
- file: core/overview.md
6273
- file: core/numpy.md
@@ -89,6 +100,7 @@ project:
89100
- file: core/xarray/dask-arrays-xarray.ipynb
90101
- title: Appendix
91102
children:
103+
- file: appendix/glossary.md
92104
- file: appendix/how-to-contribute.md
93105
children:
94106
- file: appendix/template.ipynb

0 commit comments

Comments
 (0)