Skip to content

Commit

Permalink
tables!
Browse files Browse the repository at this point in the history
  • Loading branch information
gwct committed Jan 15, 2025
1 parent 5fd35a7 commit 010f8df
Show file tree
Hide file tree
Showing 24 changed files with 397 additions and 184 deletions.
40 changes: 21 additions & 19 deletions data/tables/general.csv
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
Term,Definition
Hardware,"The physical components of the computer (*e.g.* the hard drive, motherboard, monitor, etc.)"
Software,The programs stored on the computer that the user interacts with.
Software,"The programs stored on the computer that the user interacts with."
Operating system (OS),"The software that interfaces between the computer's hardware and other user facing software. Common operating systems for desktop computers are Windows, macOS, and Linux. Common operating systems for mobile devices are iOS and Android."
Unix,"An early operating system that many modern OS's are based upon, including Linux, macOS and iOS, and Android. These OS's are said to be ""Unix-like""."
Program,"A collection of code designed for the uesr to perform a specific task (*e.g. write a document, analyze some data, play a game, send a message*). Perhaps also called an application or app."
Unix,"An early operating system that many modern 'Unix-like OS's, such as Linux and macOS, are based upon."
Program,"A collection of code designed for the user to perform a specific task (*e.g. write a document, analyze some data, play a game, send a message*). Perhaps also called an application or app."
Command,"An instruction given to the computer to perform an operation (such as opening a file, adding a row to a data table, etc.). The way a command is given to the computer is often dictated by the programming language in which it is to be interpreted (known as that language's **syntax**)."
Argument,"Options specified in the command line when running a program or command."
Script,"A set of commands written in a particular programming language's **syntax** that are stored as plain text in a file. When interpreted by that programming language, the commands will be executed in order."
Shell*,"The program that interprets commands typed into a terminal. In your (Unix-like) terminal you can type `echo $SHELL` to check which shell is loaded."
Terminal*,The window in which you type commands in to be interpreted by the shell
Console*,"Similar to terminal, but full screen with no graphical component."
Bash,A common **shell** program for Unix-like systems.
Command line*,The location where commands are type within the terminal window
Command prompt*,The information displayed on the command line before the cursor
Argument,Options specified in the command line when running a program or command.
Library,Files containing general code blocks that can be used widely by different programs
Dependency,A program or library that is required for another program to run.
Package,A **program** and all it's dependencies.
Module,Similar to library.
Terminal*,"The window in which you type commands in to be interpreted by the shell. Also known as a **command line interface**."
Console*,"Similar to terminal, but full screen with no graphical component, only text."
Command line*,"The text interface within a terminal where commands are typed."
Command prompt*,"The information displayed on the command line before the cursor."
Shell*,"The program that interprets commands typed into a terminal. In your (Unix-like) terminal you can type `echo $SHELL` to check which shell is loaded. It can also execute a **shell script**, which is a collection of commands in a text file."
Bash,"A common **shell** program for Unix-like systems. It is the default shell for most Linux distributions."
Environment variable,"A piece of information that is stored in the shell and can be accessed by commands run in it."
`PATH`,"An **environment variable** that lists directories where the shell looks for programs to run."
Library,"Files containing general code blocks that can be used widely by different programs."
Dependency,"A program or library that is required for another program to run."
Package,"A bundle of **software** containing **programs** and their accompanying **libraries** and **dependencies**, often with scripts for installation."
Module,"Similar to library."
File system,"The way in which files and directories are organized in a nesting, tree-like structure."
Directory,A named location on a computer that contains files and/or other directories.
Directory,"A named location on a computer that contains files and/or other directories."
File,"A named location on a computer that contains data, commonly in the form of plain text."
User,Every person that uses a computer has an account on that computer and is then called a user.
User,"Every person that uses a computer has an account on that computer and is then called a user."
Group,"User accounts may be placed into groups (e.g. a lab group, or other working group) so that relevant files may be easily accessed by anyone in that group"
Permissions,"User accounts on a computer may have different permissions set for them that dictate which files they can read, write to, and execute (i.e. run like a command). You may check your permissions on a file or directory with `ls -l`, which returns a <a href=""https://www.redhat.com/en/blog/linux-file-permissions-explained"">permissions string</a>. The owner of a particular file can change its permissions with <code class=""inline-code"">chmod</code> (see previous link)."
Root,"The lowest level in the file system in which all directories and files are stored. Critical system files are stored close to the **root**. Usually located at `/` and usually only accessible by the computer's administrators."
Root,"The lowest level in the file system in which all directories and files are stored. Critical system files are stored close to the **root**. Usually located at `/` and usually only accessible by the computer's administrators. Root may also refer to the user account with the highest permissions on Unix-like systems."
Home,"A user's home directory is where that user has read, write, and execute permissions within the file system."
Path,"The location of a file or directory within the file system, with directories separated by slash characters (`/`)."
Absolute path,The full name of a file or directory that includes all directories and sub-directories starting from the root of the file system to the specified file or directory.
Relative path,The name of a file or directory that includes all directories and sub-directories starting from the user's current location.
Absolute path,"The full name of a file or directory that includes all directories and sub-directories starting from the root of the file system to the specified file or directory."
Relative path,"The name of a file or directory that includes all directories and sub-directories starting from the user's current location."
34 changes: 20 additions & 14 deletions data/tables/git.csv
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
Term,Definition
<a href="https://git-scm.com/" target="_blank">Git</a>,"Software for **version control**, which keeps track of changes to files in a given directory."
Version control,"The process of tracking changes to files over time, allowing you to recall specific versions later."
<a href="https://github.com/" target="_blank">Github</a>,"A web-based platform that facilitates **Git**'s use for collaboration between individuals. Other web-based platforms include <a href="https://about.gitlab.com/" target="_blank">GitLab<a> and <a href="https://bitbucket.org/" target="_blank">BitBucket</a>."
Repository/Repo,"A **directory** of files that has been initialized by Git for syncing, possibly including code, documentation, or data."
init,"The process of initializing a directory as a Git repository."
clone,A copy of a repository or the process of copying a repository. Typically used when downloading a repository from Github or one of the other web-based Git platforms.
fork,"Git repositories are created by a single user or organization, however other user's can make copies of them on their own accounts so they can edit them without affecting the original files. This is called a fork: a copy of a repository between users."
branch,"A copy of a repository from a certain point within that repository's history. Typically a repository has a ""main"" branch and other branches are created off of it. Changes on the main branch are not reflected in the split branch unless explicitly synced and vice versa."
pull,"The process of integrating changes from one version of a repository to another (*e.g.* from a fork back to the original repo, or from a branch back to the main branch). There are two general use cases: 1) When the owner of a repository makes changes to it, you **pull** those changes into your local copy. 2) When you make changes to a forked repository or a branch of a repository and want to incorporate the changes back to the original repo or branch, you initiate a **pull request**, and then whoever is in charge of the original repository can **pull** those changes in."
pull request,"When someone has made changes to a fork or a branch that they wish the owner's or the original repository to incorporate, they initiate a **pull request** so the owner can review and potentially **pull** the changes."
staging area,"When a user changes or adds files to a repository, they must first add them to an intermediate **staging area** where they can be reviewed."
add,"The process of adding new/edited files to the staging area."
commit,"The process of saving changes to the repository. This is done after adding files to the staging area."
push,"The process of uploading committed changes from a local repository to a remote repository to a remote platform (*e.g.* Github)."
"<a href='https://git-scm.com/' target='_blank'>Git</a>","Software for **version control**, which keeps track of changes to files in a given directory."
"Version control","The process of tracking changes to files over time, allowing you to recall specific versions later."
"<a href='https://github.com/' target='_blank'>Github</a>","A web-based platform that facilitates **Git**'s use for collaboration between individuals. Other web-based platforms include <a href='https://about.gitlab.com/' target='_blank'>GitLab<a> and <a href='https://bitbucket.org/' target='_blank'>BitBucket</a>."
"Repository/Repo","A **directory** of files that has been initialized by Git for syncing, possibly including code, documentation, or data."
"Remote repository","A repository that is hosted on a server, typically on a web-based platform like Github."
"`init`","The process of initializing a directory as a Git repository."
"`clone`",A copy of a repository or the process of copying a repository. Typically used when downloading a repository from Github or one of the other web-based Git platforms.
"Fork","Creating a personal copy of a repository on your own account from an original repository, possibly from another account or organization, enabling modifications without affecting the original."
"Branch","A copy of a repository from a certain point within that repository's history. Typically a repository has a ""main"" branch and other branches are created off of it. Changes on the main branch are not reflected in the split branch unless explicitly synced and vice versa."
"`pull`","The process of integrating changes from one version of a repository to another (*e.g.* from a fork back to the original repo, or from a branch back to the main branch). There are two general use cases: 1) When the owner of a repository makes changes to it, you **pull** those changes into your local copy. 2) When you make changes to a forked repository or a branch of a repository and want to incorporate the changes back to the original repo or branch, you initiate a **pull request**, and then whoever is in charge of the original repository can **pull** those changes in."
"Pull request","When someone has made changes to a fork or a branch that they wish the owner's or the original repository to incorporate, they initiate a **pull request** so the owner can review and potentially **pull** the changes."
"`merge`","The process of combining changes from one branch into another branch, typically done as part of a **pull request**."
"Conflict","A situation where two branches have changes in a file that Git cannot automatically merge, requiring manual resolution."
"Staging area","When a user changes or adds files to a repository, they must first add them to an intermediate **staging area** where they can be reviewed."
"`add`","The process of adding new/edited files to the staging area."
"`commit`","The process of saving changes to the repository. This is done after adding files to the staging area."
"`push`","The process of uploading committed changes from a local repository to a remote repository to a remote platform (*e.g.* Github)."
"`status`","A command that shows the status of the repository, including which files have been changed, added, or deleted."
"`switch`/`checkout`","A command that allows you to switch between branches."
".gitignore","A file that tells Git which files to ignore when committing changes."
12 changes: 7 additions & 5 deletions data/tables/hpc.csv
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
Term,Definition
Server,"A general term for a computer that allows others to connect to it via a network. In HPC, this is a computer setup to have users connect and work on it remotely, usually with more resources than personal computers to accommodate more resource intensive commands and multiple users."
ssh,"A program that allows users to connect to a server remotely, possibly by typing `ssh <username>@<server address>` into a **terminal**, though there are many ways to connect to a server."
ssh,"Secure Shell (SSH) is a protocol used to securely connect to a server remotely, enabling encrypted communications. Typically initiated from a terminal using `ssh <username>@<server address>` into a **terminal**, though there are many ways to connect to a server."
Cluster,"An interconnected collection of **servers** setup such that users can connect to one and specify high resource commands to run which are distributed to the others based on available resources."
Node,"One computer within a cluster."
Login node,"The **node** within the **cluster** which users connect to and interact with. Users can submit jobs from the login node, but they are not run there."
Head node,"The **node** within the **cluster** which handles job scheduling and resource allocation, though sometimes login nodes are used as head nodes."
Head node,"The node within the cluster responsible for managing job scheduling and resource allocation; sometimes serves dual roles as a login node."
Compute node,"The **node** within the **cluster** which actually runs the jobs."
Job,"A submitted **command** or set of commands passed from the user to the job scheduler on a **cluster**."
Job scheduler,"A program that coordinates job submission for all users on the cluster. This program distributes jobs to compute nodes and allocates resources. Harvard uses the <a href="https://slurm.schedmd.com/ target="_blank">SLURM</a> job scheduling program."
Queue,"A list of jobs waiting to be run on a **cluster**."
Job scheduler,"A program that coordinates job submission for all users on the cluster. This program distributes jobs to compute nodes and allocates resources. Harvard uses the <a href='https://slurm.schedmd.com/' target='_blank'>SLURM</a> job scheduling program."
Queue,"A list of jobs waiting to be run on a **cluster**, where priority and scheduling determine the execution sequence."
Partition,"A subset of the **cluster**'s resources that can be allocated to a job. Partitions can have different resource limits and priorities."
Interactive job,"A job that is run on a **cluster** in real time, allowing the user to interact with the job as it runs. On SLURM, this involves using `salloc` to allocate resources and `srun` to execute applications interactively within the allocated environment."
Batch job,"A job that is submitted to a **cluster** and run without user interaction. On SLURM, this is done with the `sbatch` command."
Batch job,"A job that is submitted to a **cluster** and run without user interaction. On SLURM, this is done with the `sbatch` command."
I/O (Input/Output) Operations,"The process of transferring data to and from storage devices. In HPC, this is a critical consideration for performance, as slow I/O can bottleneck the speed of a job."
Scratch,"Temporary storage on a **cluster** that is not backed up and is intended for short-term storage of data. Typically data is deleted periodically. Users are responsible for moving data to more permanent storage."
Loading

0 comments on commit 010f8df

Please sign in to comment.