Skip to content

Commit

Permalink
Merge pull request #105 from yarikoptic/enh-codespell
Browse files Browse the repository at this point in the history
codespell: add configuration, workflow and fix some typos with it
  • Loading branch information
anibalsolon authored Oct 28, 2023
2 parents 22b058c + 86348fa commit 1e40ee6
Show file tree
Hide file tree
Showing 28 changed files with 79 additions and 53 deletions.
4 changes: 4 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[codespell]
skip = .git,*.pdf,*.svg
#
# ignore-words-list =
22 changes: 22 additions & 0 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Codespell

on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3
- name: Codespell
uses: codespell-project/actions-codespell@v2
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ We kindly ask that you cite the following articles when publishing papers and co

#### MIT Copyright (c) 2020 brainlife.io The University of Texas at Austin and Indiana University

# Installation intructions
# Installation instructions

```
sudo apt install pip
Expand Down
10 changes: 5 additions & 5 deletions docs/apps/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ App can run on many different environment / clusters. To normalize the execution

## Prerequisite

Before you start making an App for brainlife, you should be familar with the following general concepts:
Before you start making an App for brainlife, you should be familiar with the following general concepts:

1. You should be familar with at least 1 programming language (Matlad, Python, R, etc..)
1. You should be familiar with at least 1 programming language (Matlad, Python, R, etc..)

2. You should be comfortable with bash terminal and some basic bash scripting. Please see [https://docs.microsoft.com/en-us/learn/modules/bash-introduction/](https://docs.microsoft.com/en-us/learn/modules/bash-introduction/){target=_blank}

3. You should know how to use [git](https://git-scm.com/docs/gittutorial){target=_blank} and [github](https://guides.github.com/){target=_blank} to publish your git repo.

4. Although you can develop and test your App on your local computer, brainlife.io will run your App mostly on various HPC resources. Therefore, you should be familar with basic concetps on HPC systems. Please see
4. Although you can develop and test your App on your local computer, brainlife.io will run your App mostly on various HPC resources. Therefore, you should be familiar with basic concetps on HPC systems. Please see

- [https://researchcomputing.princeton.edu/support/knowledge-base/slurm](https://researchcomputing.princeton.edu/support/knowledge-base/slurm){target=_blank}
- [Intro to HPC at IU (YouTube)](https://www.youtube.com/watch?v=atHXod7ZsfY){target=_blank}
Expand All @@ -48,7 +48,7 @@ You would normally follow these steps to develop and register your App on Brainl
8. Contact resource administrators and ask them to enable your App (more below).

!!! hint
Creating an App for brainlife.io requires you to be familiar with wide range of techincal knowledge in areas including programming, unix/shell, git, HPC.
Creating an App for brainlife.io requires you to be familiar with wide range of technical knowledge in areas including programming, unix/shell, git, HPC.
Please refer to [learn-neuroimaging.github.io](https://learn-neuroimaging.github.io/tutorials-and-resources/11-programming/){target=_blank} for a community curated list of online tutorials.

# Enabling an App on a compute resource
Expand Down Expand Up @@ -118,7 +118,7 @@ All App should have clearly defined upper bound (aka "Big-O") in terms of resour

This informs the batch scheduler how long / how much of its computing capability is needed to run your App. Your job will be killed if you exceed what you specify in these directives.

When the job is executed on HPC system, the batch scheduler will allocate requested amount of time / resources for the job and it will consume SUs on those resources based on these parameters. It is important to keep the resource requirement as low as possible so that your job will not consume more SUs than necessary. You should measure the amount of CPU / memory resource typically consumed and set these parameter accordingly. If your job takea a long time to run, you will need to set the walltime requirement high enough to accomdate it. Not only the cost of running jobs increases as you increase the resource requirement, it will also increase the queue time of the job waiting for the block of requested resource to become available for your job.
When the job is executed on HPC system, the batch scheduler will allocate requested amount of time / resources for the job and it will consume SUs on those resources based on these parameters. It is important to keep the resource requirement as low as possible so that your job will not consume more SUs than necessary. You should measure the amount of CPU / memory resource typically consumed and set these parameter accordingly. If your job takea a long time to run, you will need to set the walltime requirement high enough to accommodate it. Not only the cost of running jobs increases as you increase the resource requirement, it will also increase the queue time of the job waiting for the block of requested resource to become available for your job.

!!! warning
Please be conservative with amount of cpus-per-task (or ppn). Most batchscheduler will consume SUs based on number of CPU counts you request times the amount of time. For example, if you request a job to run for 2 hours with 16 cores, it will consume 2x16=32 units. If you only use 4 cores for your job, please set it to 4 so that it will only consume 2x4=8 units instead.
Expand Down
4 changes: 2 additions & 2 deletions docs/careers/devrel.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Community Developer / Outreach Coordinator

Do you like helping other people? Or do you enjoy meeting new people? If yes, then you will enjoy this role buidling a stronger community around brainlife.io, and making sure we have an effective online presence (website, documentation, social media, etc..).
Do you like helping other people? Or do you enjoy meeting new people? If yes, then you will enjoy this role building a stronger community around brainlife.io, and making sure we have an effective online presence (website, documentation, social media, etc..).

### You are a solid fit for this position if...

Expand All @@ -21,7 +21,7 @@ Do you like helping other people? Or do you enjoy meeting new people? If yes, th
* Has experience working with document template frameworks like mkdocs / jekyll
* Has experience editing videos, and making screencast tutorials.
* Can adopt to an existing design / documentation style standards
* Familar with progressive, accessbility web standards and handling cross-browser compatibility issues
* Familiar with progressive, accessibility web standards and handling cross-browser compatibility issues
* Has excellent eyes for detail, consistency and accuracy
* Proficient understanding of git, and has strong presence on github.
* Experience with CRM tools.
Expand Down
2 changes: 1 addition & 1 deletion docs/careers/rse_ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Scientific UI / Visualization Engineer

brainlife.io users rely on variety of visualization tools made avaialble on the platform. These are meant to enable quick quality control for App outputs and data quality. The visualization engineer will be reponsible for developing and maintaining various visualization tools that are easy to understand, that can inform meaningful information to assist our users' decision making process. As an UI Engineer, you will also be tasked to conduct various UI / UX testings on the entire brainlife.io platform.
brainlife.io users rely on variety of visualization tools made available on the platform. These are meant to enable quick quality control for App outputs and data quality. The visualization engineer will be responsible for developing and maintaining various visualization tools that are easy to understand, that can inform meaningful information to assist our users' decision making process. As an UI Engineer, you will also be tasked to conduct various UI / UX testings on the entire brainlife.io platform.

### You are a solid fit for this position if...

Expand Down
4 changes: 2 additions & 2 deletions docs/careers/sysad.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Cloud and Cluster Administrator

brainlife.io runs Apps on varaiety of HPC clusters and public and private cloud computing platforms. You will be reponsible for maintaining these clusters and optimize our auto-scaling clusters that can meet the current demand from our users in a most efficient manner.
brainlife.io runs Apps on varaiety of HPC clusters and public and private cloud computing platforms. You will be responsible for maintaining these clusters and optimize our auto-scaling clusters that can meet the current demand from our users in a most efficient manner.

### You are a solid fit for this position if...

Expand All @@ -23,7 +23,7 @@ brainlife.io runs Apps on varaiety of HPC clusters and public and private cloud
* Demonstrable ability to write clean, concise, and maintainable code.
* Python, and bash. Familiarity with nodejs, npm and Javascript ecosystems.
* Familiarity with common OWASP vulnerabilities.
* Great feedbacks from your past work coleagues and other research / software engineers.
* Great feedbacks from your past work colleagues and other research / software engineers.
* git, ansible, experience using monitoring systems (sensu, munin, etc..)
* Experience with 24x7 operations.
* You can work without a lot of supervisions, but can keep the team member informed of your progress.
Expand Down
2 changes: 1 addition & 1 deletion docs/cli/app.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ if [ ! $? -eq 0 ];
fi
echo "finished!"
# Download the ouput data
# Download the output data
bl data download -i
for id in $(bl data query --taskid $taskid --json | jq -r ".[]._id"); do
echo "downloading data $id"
Expand Down
2 changes: 1 addition & 1 deletion docs/cli/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ done

So far we have described how you can upload / download data from brainlife.io which is stored in Brainlife's project archive. On brainlife.io, you run
Apps inside "process" and data generated there can be "archived" to the brainlife.io's project archive. Sometimes, you want to download files generated
inside a process, which may contain extra files that are not archived in project archive. You might also want to access proceess data as you can specify
inside a process, which may contain extra files that are not archived in project archive. You might also want to access process data as you can specify
which files / directory to download - rather than the entire `.tar.gz` content from project archive.

The following python script demonstrates how you can query for existing processes / tasks, and download content stored under each tasks.
Expand Down
6 changes: 3 additions & 3 deletions docs/cli/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ bl data update --id <dataid> -m /path/to/sidecar.json

## Bulk Update Tags

By combining with other CLIs and a bit of bash scripting, you can bulk update tags on multiple datas.
By combining with other CLIs and a bit of bash scripting, you can bulk update tags on multiple data.

Let's say you have a file with a list of subject names to update.

Expand All @@ -58,7 +58,7 @@ Let's say you have a file with a list of subject names to update.
..
```

The following script will then iterate through this list and set "S500" tag on all datas with matching subjects.
The following script will then iterate through this list and set "S500" tag on all data with matching subjects.

```bash
#!/bin/bash
Expand All @@ -68,7 +68,7 @@ do
bl data query --project 59a09bbab47c0c0027ad7046 --subject $subject --json > list.json
jq -r ".[]._id" list.json > ids.txt

#iterate each datas for this subject and add some tags
#iterate each data for this subject and add some tags
for id in $(cat ids.txt)
do
echo " updating $id"
Expand Down
4 changes: 2 additions & 2 deletions docs/cli/upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,11 @@ Status: stored

Say we have all files from several subejcts in a single folder (the current folder) with two datafiles, DWI (dffusion-weighted MRI data files) and T1W (t1 weighted MRI, anatomical data files). Say that each subject is either a control (CNTR) or a patient (PTNT).

We will first login on brainlife. Then set the current proejct variable (project IDs are the hash-numbers indicated on each project web-address on brainlife.io)
We will first login on brainlife. Then set the current project variable (project IDs are the hash-numbers indicated on each project web-address on brainlife.io)

We will match the DWI files to the correspondign brainlife.io datatype, which is neuro/dwi. We will also match the T1W files to the corresponding brainlife.io datatype which is neuro/anat/t1w.

We will automatically find the total number of subejcts and for each subject we will push on the brainlife.io platform the T1W and the DWI and match them with the corresponding datatype. The CLI command will run the brainlife.io datatype validator and upload the file, whch will magically populate the project online.
We will automatically find the total number of subejcts and for each subject we will push on the brainlife.io platform the T1W and the DWI and match them with the corresponding datatype. The CLI command will run the brainlife.io datatype validator and upload the file, which will magically populate the project online.

A bash script would would look like the following:

Expand Down
2 changes: 1 addition & 1 deletion docs/resources/register.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
!!! note
You will need a resource owner priviledge in order to register you own resource. Please contact mailto:brainlife.io@gmail.com.
You need to be a resource owner in order to register you own resource. Please contact mailto:brainlife.io@gmail.com.

## Background

Expand Down
Loading

0 comments on commit 1e40ee6

Please sign in to comment.