├── docs
├── _config.yml
├── images
│ ├── issues.png
│ ├── code-org.png
│ ├── issues2.png
│ ├── code-issues.png
│ ├── git-cartoon.png
│ ├── git-intro-2.jpg
│ ├── git-intro.png
│ ├── git-online.png
│ ├── github-orgs.png
│ ├── new project.png
│ ├── new-branch.png
│ ├── pullrequest.png
│ ├── toyota-way.jpeg
│ ├── user-story.png
│ ├── Kolb-stages.jpeg
│ ├── agile-deming.png
│ ├── agile-toyota.png
│ ├── blank kanban.png
│ ├── blank project.png
│ ├── data-planning.jpg
│ ├── fetchupstream.png
│ ├── project-board.png
│ ├── scrum-board.jpeg
│ ├── scrum_sochova.png
│ ├── GitHub-Desktop.png
│ ├── GitHub_pages_1.png
│ ├── GitHub_pages_2.png
│ ├── PDCA-Multi-Loop.png
│ ├── add kanban card.png
│ ├── agile-elements.png
│ ├── agile-innovation.png
│ ├── agile-waterfall.png
│ ├── agile-waterfall2.png
│ ├── agile-waterfall3.png
│ ├── history-github.png
│ ├── project template.png
│ ├── scrum_sutherland.jpg
│ ├── vrdata-backlog.png
│ ├── RStudio-screenshot.png
│ ├── Week1-Screen-Shot.png
│ ├── Week2-Screen-Shot.png
│ ├── Week3-Screen-Shot.png
│ ├── Week4-Screen-Shot.png
│ ├── Week5-Screen-Shot.png
│ ├── Week6-Screen-Shot.png
│ ├── Week7-Screen-Shot.png
│ ├── Week8-Screen-Shot.png
│ ├── Week9-Screen-Shot.png
│ ├── add card as issue.png
│ ├── git-linear-flow-2.png
│ ├── git-repo-structure.png
│ ├── github-discussions.png
│ ├── Kanban_board_example.jpeg
│ ├── RStudio-Cloud-Tools.png
│ ├── agile-elements-w-text.png
│ ├── git-merge-conflict-gh.png
│ ├── github-pb-oa-example.png
│ ├── pull-request-github.png
│ ├── ExtinctionRiskAnalysis.pdf
│ ├── RStudio-Cloud-Terminal.png
│ ├── tools-logo-transparent.png
│ ├── Emblem-important-red.svg.png
│ ├── RStudio-Cloud-screenshot.png
│ ├── kanban-board-with-swimlanes.jpeg
│ ├── scrum_ultimate_beginners_guide.jpg
│ ├── youtube-brands.svg
│ └── Scrum_process.svg
├── static
│ ├── slideswoosh.PNG
│ ├── slideteal.png
│ ├── slideswooshver.png
│ ├── xaringan-template.png
│ └── noaa-fisheries-rgb-2line-horizontal-small.png
├── template-tufte_files
│ └── figure-html
│ │ ├── unnamed-chunk-1-1.png
│ │ ├── unnamed-chunk-3-1.png
│ │ └── unnamed-chunk-4-1.png
├── libs
│ └── header-attrs
│ │ └── header-attrs.js
├── index.md
├── theme
│ ├── xaringan_template.Rmd
│ └── xaringan-themer.css
├── template-extra.Rmd
├── template-tufte.Rmd
├── tufte.css
├── slides-style.css
├── Week3-RVerse-2022.Rmd
├── xaringan-themer.css
├── Week4-Scrum-2022.Rmd
└── template-tufte.html
├── .Rhistory
├── .gitignore
├── _config.yml
├── slides.Rproj
├── README.md
└── LICENSE
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-minimal
--------------------------------------------------------------------------------
/docs/images/issues.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/issues.png
--------------------------------------------------------------------------------
/docs/images/code-org.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/code-org.png
--------------------------------------------------------------------------------
/docs/images/issues2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/issues2.png
--------------------------------------------------------------------------------
/.Rhistory:
--------------------------------------------------------------------------------
1 | 7263-2900
2 | 13841+12326
3 | exp(-.3)
4 | exp(-2.47)
5 | 975/3
6 | 5*35
7 | 40*50*0.01
8 | 50/2
9 |
--------------------------------------------------------------------------------
/docs/images/code-issues.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/code-issues.png
--------------------------------------------------------------------------------
/docs/images/git-cartoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-cartoon.png
--------------------------------------------------------------------------------
/docs/images/git-intro-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-intro-2.jpg
--------------------------------------------------------------------------------
/docs/images/git-intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-intro.png
--------------------------------------------------------------------------------
/docs/images/git-online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-online.png
--------------------------------------------------------------------------------
/docs/images/github-orgs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/github-orgs.png
--------------------------------------------------------------------------------
/docs/images/new project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/new project.png
--------------------------------------------------------------------------------
/docs/images/new-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/new-branch.png
--------------------------------------------------------------------------------
/docs/images/pullrequest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/pullrequest.png
--------------------------------------------------------------------------------
/docs/images/toyota-way.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/toyota-way.jpeg
--------------------------------------------------------------------------------
/docs/images/user-story.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/user-story.png
--------------------------------------------------------------------------------
/docs/static/slideswoosh.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/static/slideswoosh.PNG
--------------------------------------------------------------------------------
/docs/static/slideteal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/static/slideteal.png
--------------------------------------------------------------------------------
/docs/images/Kolb-stages.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Kolb-stages.jpeg
--------------------------------------------------------------------------------
/docs/images/agile-deming.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-deming.png
--------------------------------------------------------------------------------
/docs/images/agile-toyota.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-toyota.png
--------------------------------------------------------------------------------
/docs/images/blank kanban.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/blank kanban.png
--------------------------------------------------------------------------------
/docs/images/blank project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/blank project.png
--------------------------------------------------------------------------------
/docs/images/data-planning.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/data-planning.jpg
--------------------------------------------------------------------------------
/docs/images/fetchupstream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/fetchupstream.png
--------------------------------------------------------------------------------
/docs/images/project-board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/project-board.png
--------------------------------------------------------------------------------
/docs/images/scrum-board.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/scrum-board.jpeg
--------------------------------------------------------------------------------
/docs/images/scrum_sochova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/scrum_sochova.png
--------------------------------------------------------------------------------
/docs/images/GitHub-Desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/GitHub-Desktop.png
--------------------------------------------------------------------------------
/docs/images/GitHub_pages_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/GitHub_pages_1.png
--------------------------------------------------------------------------------
/docs/images/GitHub_pages_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/GitHub_pages_2.png
--------------------------------------------------------------------------------
/docs/images/PDCA-Multi-Loop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/PDCA-Multi-Loop.png
--------------------------------------------------------------------------------
/docs/images/add kanban card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/add kanban card.png
--------------------------------------------------------------------------------
/docs/images/agile-elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-elements.png
--------------------------------------------------------------------------------
/docs/images/agile-innovation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-innovation.png
--------------------------------------------------------------------------------
/docs/images/agile-waterfall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-waterfall.png
--------------------------------------------------------------------------------
/docs/images/agile-waterfall2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-waterfall2.png
--------------------------------------------------------------------------------
/docs/images/agile-waterfall3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-waterfall3.png
--------------------------------------------------------------------------------
/docs/images/history-github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/history-github.png
--------------------------------------------------------------------------------
/docs/images/project template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/project template.png
--------------------------------------------------------------------------------
/docs/images/scrum_sutherland.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/scrum_sutherland.jpg
--------------------------------------------------------------------------------
/docs/images/vrdata-backlog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/vrdata-backlog.png
--------------------------------------------------------------------------------
/docs/static/slideswooshver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/static/slideswooshver.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.ss~
2 | *.ss#*
3 | .#*.ss
4 |
5 | *.scm~
6 | *.scm#*
7 | .#*.scm
8 | .Rproj.user
9 |
10 | .DS_Store
11 |
--------------------------------------------------------------------------------
/docs/images/RStudio-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/RStudio-screenshot.png
--------------------------------------------------------------------------------
/docs/images/Week1-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week1-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week2-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week2-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week3-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week3-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week4-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week4-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week5-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week5-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week6-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week6-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week7-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week7-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week8-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week8-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/Week9-Screen-Shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Week9-Screen-Shot.png
--------------------------------------------------------------------------------
/docs/images/add card as issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/add card as issue.png
--------------------------------------------------------------------------------
/docs/images/git-linear-flow-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-linear-flow-2.png
--------------------------------------------------------------------------------
/docs/images/git-repo-structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-repo-structure.png
--------------------------------------------------------------------------------
/docs/images/github-discussions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/github-discussions.png
--------------------------------------------------------------------------------
/docs/static/xaringan-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/static/xaringan-template.png
--------------------------------------------------------------------------------
/docs/images/Kanban_board_example.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Kanban_board_example.jpeg
--------------------------------------------------------------------------------
/docs/images/RStudio-Cloud-Tools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/RStudio-Cloud-Tools.png
--------------------------------------------------------------------------------
/docs/images/agile-elements-w-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/agile-elements-w-text.png
--------------------------------------------------------------------------------
/docs/images/git-merge-conflict-gh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/git-merge-conflict-gh.png
--------------------------------------------------------------------------------
/docs/images/github-pb-oa-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/github-pb-oa-example.png
--------------------------------------------------------------------------------
/docs/images/pull-request-github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/pull-request-github.png
--------------------------------------------------------------------------------
/docs/images/ExtinctionRiskAnalysis.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/ExtinctionRiskAnalysis.pdf
--------------------------------------------------------------------------------
/docs/images/RStudio-Cloud-Terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/RStudio-Cloud-Terminal.png
--------------------------------------------------------------------------------
/docs/images/tools-logo-transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/tools-logo-transparent.png
--------------------------------------------------------------------------------
/docs/images/Emblem-important-red.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/Emblem-important-red.svg.png
--------------------------------------------------------------------------------
/docs/images/RStudio-Cloud-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/RStudio-Cloud-screenshot.png
--------------------------------------------------------------------------------
/docs/images/kanban-board-with-swimlanes.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/kanban-board-with-swimlanes.jpeg
--------------------------------------------------------------------------------
/docs/images/scrum_ultimate_beginners_guide.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/images/scrum_ultimate_beginners_guide.jpg
--------------------------------------------------------------------------------
/docs/static/noaa-fisheries-rgb-2line-horizontal-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/static/noaa-fisheries-rgb-2line-horizontal-small.png
--------------------------------------------------------------------------------
/docs/template-tufte_files/figure-html/unnamed-chunk-1-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/template-tufte_files/figure-html/unnamed-chunk-1-1.png
--------------------------------------------------------------------------------
/docs/template-tufte_files/figure-html/unnamed-chunk-3-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/template-tufte_files/figure-html/unnamed-chunk-3-1.png
--------------------------------------------------------------------------------
/docs/template-tufte_files/figure-html/unnamed-chunk-4-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RVerse-Tutorials/slides/main/docs/template-tufte_files/figure-html/unnamed-chunk-4-1.png
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | title: RVerse-Tutorial slides
2 | description: slide presentations
3 | logo: docs/static/xaringan-template.png
4 | show_downloads: false
5 | theme: jekyll-theme-minimal
6 | plugins:
7 | - jemoji
--------------------------------------------------------------------------------
/slides.Rproj:
--------------------------------------------------------------------------------
1 | Version: 1.0
2 |
3 | RestoreWorkspace: Default
4 | SaveWorkspace: Default
5 | AlwaysSaveHistory: Default
6 |
7 | EnableCodeIndexing: Yes
8 | UseSpacesForTab: Yes
9 | NumSpacesForTab: 2
10 | Encoding: UTF-8
11 |
12 | RnwWeave: Sweave
13 | LaTeX: pdfLaTeX
14 |
--------------------------------------------------------------------------------
/docs/libs/header-attrs/header-attrs.js:
--------------------------------------------------------------------------------
1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to
2 | // be compatible with the behavior of Pandoc < 2.8).
3 | document.addEventListener('DOMContentLoaded', function(e) {
4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/images/youtube-brands.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | ## Welcome to GitHub Pages
2 |
3 | You can use the [editor on GitHub](https://github.com/nmfs-general-modeling-tools/presentations/edit/main/docs/index.md) to maintain and preview the content for your website in Markdown files.
4 |
5 | Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files.
6 |
7 | ### Markdown
8 |
9 | Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for
10 |
11 | ```markdown
12 | Syntax highlighted code block
13 |
14 | # Header 1
15 | ## Header 2
16 | ### Header 3
17 |
18 | - Bulleted
19 | - List
20 |
21 | 1. Numbered
22 | 2. List
23 |
24 | **Bold** and _Italic_ and `Code` text
25 |
26 | [Link](url) and 
27 | ```
28 |
29 | For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/).
30 |
31 | ### Jekyll Themes
32 |
33 | Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/nmfs-general-modeling-tools/presentations/settings/pages). The name of this theme is saved in the Jekyll `_config.yml` configuration file.
34 |
35 | ### Support or Contact
36 |
37 | Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and we’ll help you sort it out.
38 |
--------------------------------------------------------------------------------
/docs/theme/xaringan_template.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "FIMS"
3 | subtitle: "Planning Meeting 2"
4 | author: "Christine Stawitz"
5 | date: "`r Sys.Date()`"
6 | output:
7 | xaringan::moon_reader:
8 | css: ["xaringan-themer.css"]
9 | lib_dir: libs
10 | nature:
11 | ratio: '4:3'
12 | highlightStyle: github
13 | highlightLines: true
14 | countIncrementalSlides: false
15 | slideNumberFormat: "Page %current%"
16 | ---
17 | layout: true
18 |
19 |
20 | ```{r xaringanthemer, include=FALSE, warning=FALSE}
21 | # Run this code to create xaringan-thermer.css
22 |
23 | #remotes::install_github("nmfs-general-modeling-tools/nmfspalette")
24 | library(xaringanthemer)
25 | require(nmfspalette)
26 |
27 | #make colors css names
28 |
29 | style_xaringan(title_slide_background_color=unname(nmfs_cols("darkblue")),
30 | title_slide_text_color = unname(nmfs_cols("darkblue")),
31 | background_color=unname(nmfs_cols("blue")),
32 | header_font_google = google_font("Raleway"),
33 | text_color = unname(nmfs_cols("darkblue")),
34 | header_color = unname(nmfs_cols("darkblue")),
35 | text_font_google = google_font("Raleway", "300", "300i"),
36 | code_font_google = google_font("Source Code Pro"),
37 | background_image = "static/slideswoosh.PNG",
38 | background_size = "cover",
39 | title_slide_background_image = "static/slideteal.png",
40 | title_slide_background_size = "cover",
41 | inverse_background_color = unname(nmfs_cols("processblue")),
42 | inverse_text_color = unname(nmfs_cols("supltgray")),
43 | footnote_font_size = "0.6em",
44 | footnote_color = unname(nmfs_cols("darkblue")),
45 | footnote_position_bottom = "10px",
46 | link_color = unname(nmfs_cols("medteal")),
47 | text_slide_number_color = unname(nmfs_cols("lightteal")),
48 | text_slide_number_font_size = "0.6em",
49 | code_highlight_color = unname(nmfs_cols("medteal")),
50 | extra_css = list(".remark-slide-number" =list(
51 | "font-size"="0.6em",
52 | "font-weight"="bold",
53 | "margin" = "0px 840px -2px 0px"))
54 | )
55 | ```
56 |
57 | .footnote[U.S. Department of Commerce | National Oceanic and Atmospheric Administration | National Marine Fisheries Service]
58 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Cloned from [xaringan NMFS templates](https://github.com/nmfs-openscapes/xaringan-nmfs)
2 |
3 | ### To use
4 |
5 | Open one of the template Rmd files in the `docs` folder and save. Then edit with your material. Click knit to make the presentation. Note, the css files need to be in the same folder as your Rmd file.
6 |
7 | To host on GitHub, go to settings in your GH repo and turn on GitHub Pages (scroll to bottom). Select the main branch and docs folder and click save. Save the url that it tells you. The url to your slideshow will be something like `yourname.github.io/thisrepo/docs/slides.html`.
8 |
9 | ### `template.Rmd`.
10 |
11 | This is a basic presentation. [Slides](docs/template.html)
12 |
13 | * The css used is at the top
14 | * `slideNumberFormat:` specifies how to show the slide number
15 | * See the slides for examples of different slide formats
16 |
17 | ### `template-extra.Rmd`.
18 |
19 | This has a variety of extra bells and whistles. [Slides](docs/template-extra.html)
20 |
21 | * A progress bar at top
22 | * A right side bar
23 | * Special formating of sidebar text
24 | * Boxes with text
25 | * 3 and 4 column formats
26 |
27 | ### `template-tufte.Rmd`.
28 |
29 | This is a Tufte presentation. [Slides](docs/template-tufte.html)
30 |
31 | * Uses the Tufte style fonts
32 | * Uses the Tufte line spacings and header styles
33 | * Has a progress bar at the top
34 |
35 | ### Adapting.
36 |
37 | Edit the css files or add new ones. See the `theme` folder for the `xaringan_template.Rmd` that has the code that produces `xaringan-themer.css`. Use that code to create that css file.
38 |
39 |
40 |
41 |
42 | This repo and the NMFS xargingan theme was adapted from [nmfs-fish-tools/presentations](https://github.com/nmfs-fish-tools/presentations) made by [Christine Stawitz](https://github.com/ChristineStawitz-NOAA). The Tufte fonts and css are from [tufte-css](https://github.com/edwardtufte/tufte-css). `slide-style.css` is adapted from An RStudio workshop on data science [design-ds-classroom](https://github.com/rstudio-conf-2020/design-ds-classroom) by [Mine Cetinkaya-Rundel](https://github.com/mine-cetinkaya-rundel). Slides created via the R package [{xaringan}](https://github.com/yihui/xaringan) and [{xaringanthemer}](https://pkg.garrickadenbuie.com/xaringanthemer/articles/xaringanthemer.html).
43 |
--------------------------------------------------------------------------------
/docs/template-extra.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Template - Extra"
3 | subtitle: "Some extra css for side notes and boxes"
4 | author: "Eli Holmes NOAA Fisheries, NWFSC `r Sys.Date()`"
5 | output:
6 | xaringan::moon_reader:
7 | self_contained: true
8 | css: ["xaringan-themer.css", "slides-style.css"]
9 | lib_dir: libs
10 | nature:
11 | ratio: '4:3'
12 | highlightStyle: github
13 | highlightLines: true
14 | countIncrementalSlides: false
15 | slideNumberFormat: |
16 |
17 |
18 |
19 |
`
20 | ---
21 | layout: true
22 |
23 | .footnote[U.S. Department of Commerce | National Oceanic and Atmospheric Administration | National Marine Fisheries Service]
24 |
25 |
26 | ```{r setup, include=FALSE}
27 | options(htmltools.dir.version = FALSE)
28 | ```
29 |
30 | ---
31 |
32 | # Notes
33 |
34 | The template and css makes a presentation that has a few tweaks in `slides-style.css`. `slide-style.css` is adapted from An RStudio workshop on data science [design-ds-classroom](https://github.com/rstudio-conf-2020/design-ds-classroom) by [Mine Cetinkaya-Rundel](https://github.com/mine-cetinkaya-rundel).
35 |
36 | * I have tweaked the title slide css in `slides-style.css` and needed to remove `date:` from the yaml.
37 | * `slides-style.css` has a number of extra customizations such as square for the bullets, some colored boxes, and a wide left column class.
38 | * Instead of page numbers, there is a progress bar across the top.
39 | * You may want to futz with the css for the title at the top of `slides-style.css`
40 |
41 | ---
42 |
43 | ## Side notes
44 |
45 |
46 | .pull-left-wide[
47 | 1. This has side notes in a 'hand' font.
48 | 1. There is black and blue versions.
49 | ]
50 | .pull-right-narrow[
51 | .hand-blue[
52 | You can add sidenotes. Here I have wrapped the text in `.hand-blue` to make it smaller and blue.
53 | ]
54 |
55 | .hand[
56 | You can add black sidenotes.
57 | ]
58 | ]
59 |
60 | ---
61 |
62 | ## Side margin
63 |
64 |
65 | .pull-left-wide[
66 | The side margin is not limited to text.
67 |
68 | - Figures
69 | - References
70 | - Images
71 |
72 | Everything will get scaled to fit.
73 | ]
74 | .pull-right-narrow[
75 | .hand-blue[
76 | ```{r}
77 | plot(1:10)
78 | ```
79 |
80 | 
81 | ]
82 | ]
83 |
84 | ---
85 |
86 | # Footnotes
87 |
88 | Because the NMFS footnote is already occupying the footnote space, you need to add some linefeeds to move the footnote upward.
89 |
90 |
91 |
92 | - some content
93 | - a [link](http://www.google.com)
94 |
95 |
96 | ```{r}
97 | r <- 2 + 2
98 | ```
99 |
100 | .footnote[It is quite finicky. Add a linefeed and it breaks.
]
101 |
102 |
103 |
104 | ---
105 |
106 | # Boxes
107 |
108 | .bluebox[## Blue box
109 | - The ## header will appear at the top in grey
110 | - Or leave it off and add different text or header
111 | ]
112 |
113 | .orangebox[## Orange box
114 | ```{r fig.height=2, echo=FALSE, fig.align='center'}
115 | plot(1:100)
116 | ```
117 | ]
118 |
119 | .yellowbox[## Yellow box
120 | A note.
121 | ]
122 |
123 | ---
124 |
125 | # Boxes and side notes
126 |
127 | .pull-left-wide[
128 | .orangebox[## Orange box
129 | ```{r fig.height=2, echo=FALSE, fig.align='center'}
130 | plot(1:100)
131 | ```
132 | ]
133 | ]
134 |
135 | .pull-right-narrow[
136 | .hand-blue[
137 | You can add sidenotes. Here I have wrapped the text in `.hand-blue` to make it smaller and blue.
138 | ]
139 |
140 | .small[`.small` also works but the text is different. You can change this in the css. Note you need a linefeed in the side note code.
141 | ]
142 |
143 | .small[If you leave off the line-feed, then it will use a span element and won't pick up the right line-height spacing.]]
144 |
145 |
146 | ---
147 |
148 | class: middle
149 |
150 | # A slide with just a title
151 |
152 | ---
153 |
154 | ## Two column format
155 |
156 | .pull-left[
157 | - **ggplot2** is tidyverse's data visualization package
158 | - The `gg` in "ggplot2" stands for Grammar of Graphics
159 | - It is inspired by the book **Grammar of Graphics** by Leland Wilkinson
160 | ]
161 | .pull-right[
162 | - **ggplot2** is tidyverse's data visualization package
163 | - The `gg` in "ggplot2" stands for Grammar of Graphics
164 | - It is inspired by the book **Grammar of Graphics** by Leland Wilkinson
165 | ]
166 |
167 | ---
168 |
169 | ## Three column format
170 |
171 | .three-column[
172 | Column 1
173 |
174 | You can have code.
175 |
176 | ```{r}
177 | lm(mpg ~ hp, data=mtcars)
178 | ```
179 | ]
180 |
181 | .three-column[
182 | Column 2
183 |
184 | You can have images and embed video.
185 |
186 | 
187 |
188 |
189 | ]
190 |
191 | .three-column[
192 | Column 3
193 |
194 | 🌎 January 25, 2022
195 |
196 | 🌗 09:00 - 17:00
197 |
198 | 🎉 [rverse](http://rverse-tutorials.github.io)
199 |
200 | ]
--------------------------------------------------------------------------------
/docs/template-tufte.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Template - Tufte style"
3 | subtitle: "Tufte fonts and line spacings"
4 | author: "Eli Holmes NOAA Fisheries, NWFSC Seattle, WA `r Sys.Date()`"
5 | output:
6 | xaringan::moon_reader:
7 | css: ["xaringan-themer.css", "slides-style.css", "tufte.css"]
8 | lib_dir: libs
9 | nature:
10 | ratio: '4:3'
11 | highlightStyle: github
12 | highlightLines: true
13 | countIncrementalSlides: false
14 | slideNumberFormat: |
15 |
16 |
17 |
18 |
`
19 | ---
20 | layout: true
21 |
22 | .footnote[U.S. Department of Commerce | National Oceanic and Atmospheric Administration | National Marine Fisheries Service]
23 |
24 |
25 | ```{r setup, include=FALSE}
26 | options(htmltools.dir.version = FALSE)
27 | ```
28 |
29 | ---
30 |
31 | # Notes
32 |
33 | The template and css makes a presentation that is vaguely like a Tufte handout in that it has Tufte font and you can have side notes.
34 |
35 | * I have tweaked the title slide css in `slides-style.css` and needed to remove `date:` from the yaml.
36 | * `slides-style.css` has a number of extra customizations such as square for the bullets, some colored boxes, and a wide left column class.
37 | * I couldn't get `self_contained: true` to work for this one so you cannot make a self-contained html file.
38 |
39 | ---
40 |
41 | ## Tufte style
42 |
43 | ### Changes
44 |
45 | .pull-left-wide[
46 | 1. The Tufte style is best known for sidenotes $^1$ but also has a number of other features.
47 | - Tufte font
48 | - Specific size ratios for text to headers
49 | - Different line spacing
50 | 1. The Tufte style is specified in the `tufte.css`
51 | ]
52 | .pull-right-narrow[
53 | .hand-blue[
54 | You can add sidenotes. Here I have wrapped the text in `.hand-blue` to make it smaller and blue.
55 |
56 | $^1$ In order to add a sidenote with number, you'll have to do that manually.
57 | ]
58 | ]
59 |
60 | ---
61 |
62 | ## You can put anything in the side margin
63 |
64 |
65 | .pull-left-wide[
66 | The side margin is not limited to text.
67 |
68 | - Figures
69 | - References
70 | - Images
71 |
72 | Everything will get scaled to fit.
73 | ]
74 | .pull-right-narrow[
75 | .hand-blue[
76 | ```{r}
77 | plot(1:10)
78 | ```
79 |
80 | 
81 | ]
82 | ]
83 |
84 | ---
85 |
86 | # Footnotes
87 |
88 | Because the NMFS footnote is already occupying the footnote space, you need to add some linefeeds to move the footnote upward.
89 |
90 |
91 |
92 | - some content
93 | - a [link](http://www.google.com)
94 |
95 |
96 | ```{r}
97 | r <- 2 + 2
98 | ```
99 |
100 | .footnote[It is quite finicky. Add a linefeed and it breaks.
]
101 |
102 |
103 |
104 | ---
105 |
106 | # `slides-style.css` has boxes
107 |
108 | .bluebox[## Blue box
109 | - The ## header will appear at the top in grey
110 | - Or leave it off and add different text or header
111 | ]
112 |
113 | .orangebox[## Orange box
114 | ```{r fig.height=2, echo=FALSE, fig.align='center'}
115 | plot(1:100)
116 | ```
117 | ]
118 |
119 | .yellowbox[## Yellow box
120 | A note.
121 | ]
122 |
123 | ---
124 |
125 | # Boxes and side notes
126 |
127 | .pull-left-wide[
128 | .orangebox[## Orange box
129 | ```{r fig.height=2, echo=FALSE, fig.align='center'}
130 | plot(1:100)
131 | ```
132 | ]
133 | ]
134 |
135 | .pull-right-narrow[
136 | .hand-blue[
137 | You can add sidenotes. Here I have wrapped the text in `.hand-blue` to make it smaller and blue.
138 | ]
139 |
140 | .small[`.small` also works but the text is not itallic or blue. Note you need a linefeed in the sidenote code.
141 | ]
142 |
143 | .small[If you leave off the line-feed, then it will use a span element and won't pick up the right line-height spacing.]]
144 |
145 |
146 | ---
147 |
148 | class: middle
149 |
150 | # A slide with just a title
151 |
152 | ---
153 |
154 | ## Two column format
155 |
156 | .pull-left[
157 | - **ggplot2** is tidyverse's data visualization package
158 | - The `gg` in "ggplot2" stands for Grammar of Graphics
159 | - It is inspired by the book **Grammar of Graphics** by Leland Wilkinson
160 | ]
161 | .pull-right[
162 | - **ggplot2** is tidyverse's data visualization package
163 | - The `gg` in "ggplot2" stands for Grammar of Graphics
164 | - It is inspired by the book **Grammar of Graphics** by Leland Wilkinson
165 | ]
166 |
167 | ---
168 |
169 | ## Three column format
170 |
171 | .three-column[
172 | Column 1
173 |
174 | You can have code.
175 |
176 | ```{r}
177 | lm(mpg ~ hp, data=mtcars)
178 | ```
179 | ]
180 |
181 | .three-column[
182 | Column 2
183 |
184 | You can have images and embed video.
185 |
186 | 
187 |
188 |
189 | ]
190 |
191 | .three-column[
192 | Column 3
193 |
194 | 🌎 January 25, 2022
195 |
196 | 🌗 09:00 - 17:00
197 |
198 | 🎉 [rverse](http://rverse-tutorials.github.io)
199 |
200 | ]
--------------------------------------------------------------------------------
/docs/tufte.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | /* Import ET Book styles
4 | adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
5 |
6 | @font-face {
7 | font-family: "et-book";
8 | src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot");
9 | src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg");
10 | font-weight: normal;
11 | font-style: normal;
12 | font-display: swap;
13 | }
14 |
15 | @font-face {
16 | font-family: "et-book";
17 | src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot");
18 | src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf") format("truetype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf") format("svg");
19 | font-weight: normal;
20 | font-style: italic;
21 | font-display: swap;
22 | }
23 |
24 | @font-face {
25 | font-family: "et-book";
26 | src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot");
27 | src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg");
28 | font-weight: bold;
29 | font-style: normal;
30 | font-display: swap;
31 | }
32 |
33 | @font-face {
34 | font-family: "et-book-roman-old-style";
35 | src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot");
36 | src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg");
37 | font-weight: normal;
38 | font-style: normal;
39 | font-display: swap;
40 | }
41 |
42 | /* Tufte CSS styles */
43 | html {
44 | font-size: 15px;
45 | }
46 |
47 | /* Font sizes */
48 | .larger { font-size: 400% }
49 | .large { font-size: 130% }
50 | .midi { font-size: 85% }
51 | .small, .small p, span.small {
52 | font-size: 1.1rem;
53 | line-height: 1.3rem;
54 | }
55 | .xsmall { font-size: 60% }
56 | .tiny { font-size: 50% }
57 |
58 |
59 | body {
60 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
61 | background-color: #fffff8;
62 | color: #111;
63 | }
64 |
65 |
66 | h1 {
67 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
68 | font-weight: 400;
69 | margin-top: 4rem;
70 | margin-bottom: 1.5rem;
71 | font-size: 3.2rem;
72 | line-height: 1;
73 | }
74 |
75 | h2 {
76 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
77 | font-style: italic;
78 | font-weight: 400;
79 | margin-top: 2.1rem;
80 | margin-bottom: 1.4rem;
81 | font-size: 2.2rem;
82 | line-height: 1;
83 | }
84 |
85 | h3 {
86 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
87 | font-style: italic;
88 | font-weight: 400;
89 | font-size: 1.7rem;
90 | margin-top: 2rem;
91 | margin-bottom: 1.4rem;
92 | line-height: 1;
93 | }
94 |
95 | hr {
96 | display: block;
97 | height: 1px;
98 | width: 55%;
99 | border: 0;
100 | border-top: 1px solid #ccc;
101 | margin: 1em 0;
102 | padding: 0;
103 | }
104 |
105 | p,
106 | dl,
107 | ol,
108 | ul {
109 | font-size: 1.4rem;
110 | line-height: 2rem;
111 | }
112 |
113 | p {
114 | margin-top: 1.4rem;
115 | margin-bottom: 1.4rem;
116 | padding-right: 0;
117 | vertical-align: baseline;
118 | }
119 |
120 |
121 | /* Handwriting */
122 | .hand{
123 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
124 | }
125 | .hand-blue{
126 | font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
127 | font-style: italic;
128 | color: var(--provence);
129 | }
130 | .hand-blue p {
131 | font-size: 1.1rem;
132 | line-height: 1.3rem;
133 | }
134 |
135 | .footnote, .footnote p{
136 | position: absolute;
137 | bottom: 0em;
138 | padding-right: 4em;
139 | font-size: 0.85rem;
140 | }
--------------------------------------------------------------------------------
/docs/slides-style.css:
--------------------------------------------------------------------------------
1 | /* Custom fonts */
2 | @import url('https://fonts.googleapis.com/css?family=Montserrat:400,900&display=swap');
3 | @import url('https://fonts.googleapis.com/css?family=Gochi+Hand|Handlee&display=swap');
4 |
5 |
6 | /* colors */
7 | /* From: https://www.pantone.com/color-intelligence/color-of-the-year/color-of-the-year-2020-palette-exploration */
8 |
9 | :root {
10 | --classic-blue: #0F4C81;
11 | --provence: #638CC7;
12 | --baby-blue: #B6CADA;
13 | --baby-blue-30: #B6CADA30;
14 | --monument: #7A8387;
15 | --stucco: #A58D7F;
16 | --peach-quartz: #F5B895;
17 | --peach-quartz-30: #F5B89530;
18 | --cornhusk: #F4DBB3;
19 | --cornhusk-30: #F4DBB330;
20 | }
21 |
22 |
23 | /* Title slide customization */
24 | .title-slide h1 {
25 | text-align: left;
26 | font-weight: bold;
27 | padding-left: 20%;
28 | font-family: Raleway;
29 | }
30 |
31 | .title-slide h2 {
32 | text-align: left;
33 | font-weight: normal;
34 | padding-left: 20%;
35 | font-family: Raleway;
36 | }
37 |
38 |
39 | .inverse h2 {
40 | font-weight: normal;
41 | }
42 |
43 | .title-slide a {
44 | color: var(--baby-blue);
45 | }
46 |
47 | .title-slide h3 {
48 | padding-top: 2rem;
49 | text-align: right;
50 | font-family: Raleway;
51 | font-weight: normal;
52 | position: absolute;
53 | bottom: 10%;
54 | height: 4px;
55 | display: block;
56 | left: 0;
57 | right: 10%;
58 | bottom: 20%;
59 | }
60 |
61 | /* Alignment */
62 | .right{
63 | text-align: right;
64 | }
65 |
66 | /* Margins around headers */
67 |
68 | h1, h2, h3 {
69 | margin-top: 3px;
70 | margin-bottom: 3px;
71 | margin-right: 5px;
72 | margin-left: 5px;
73 | }
74 |
75 |
76 | /* Font colors */
77 | .pink {
78 | color: var(--peach-quartz);
79 | }
80 |
81 | /* Font sizes */
82 | .larger { font-size: 400% }
83 | .large { font-size: 130% }
84 | .midi { font-size: 85% }
85 | .small { font-size: 70% }
86 | .xsmall { font-size: 60% }
87 | .tiny { font-size: 50% }
88 |
89 | /* Custom fonts */
90 |
91 | .huge-blue-number {
92 | font-family: 'Montserrat', sans-serif;
93 | font-size: 1700%;
94 | font-weight: bold;
95 | color: var(--provence);
96 | }
97 | .huge-pink-number {
98 | font-family: 'Montserrat', sans-serif;
99 | font-size: 1700%;
100 | font-weight: bold;
101 | color: var(--peach-quartz);
102 | }
103 |
104 | /* Handwriting */
105 | .hand{
106 | font-family: 'Gochi Hand', cursive;
107 | font-size: 125%;
108 | }
109 | .hand-blue{
110 | font-family: 'Gochi Hand', cursive;
111 | color: var(--provence);
112 | font-size: 125%;
113 | }
114 |
115 | /*Alternative two-column layouts*/
116 |
117 | /*Left 70% - Right 30% */
118 | .pull-left-wide {
119 | width: 70%;
120 | float: left;
121 | }
122 | .pull-right-narrow {
123 | width: 27%;
124 | float: right;
125 | }
126 | .pull-right-narrow ~ * {
127 | clear: both;
128 | }
129 |
130 | /*Left 30% - Right 70% */
131 | .pull-left-narrow {
132 | width: 30%;
133 | float: left;
134 | }
135 | .pull-right-wide {
136 | width: 67%;
137 | float: right;
138 | }
139 | .pull-right-wide ~ * {
140 | clear: both;
141 | }
142 |
143 |
144 | /* Four column layout */
145 | .four-column {
146 | float: left;
147 | width: 25%;
148 | text-align: center;
149 | }
150 |
151 | /* Three column layout */
152 | .three-column {
153 | float: left;
154 | width: 33%;
155 | text-align: center;
156 | }
157 |
158 | /* Clear floats after the columns */
159 | .row:after {
160 | content: "";
161 | display: table;
162 | clear: both;
163 | }
164 |
165 |
166 | /* Progress bar */
167 | /* https://github.com/yihui/xaringan/wiki/Progressbar */
168 | .remark-slide-number {
169 | position: inherit;
170 | }
171 |
172 | .remark-slide-number .progress-bar-container {
173 | position: absolute;
174 | top: 0;
175 | height: 4px;
176 | display: block;
177 | left: 0;
178 | right: 0;
179 | }
180 |
181 | .remark-slide-number .progress-bar {
182 | height: 100%;
183 | background-color: var(--classic-blue);
184 | }
185 |
186 | /* Square bullets for lists */
187 |
188 | ul{
189 | list-style-type: square;
190 | }
191 |
192 |
193 | /* Custom boxes */
194 | .bluebox, .yellowbox, .orangebox {
195 | padding: 5px 5px;
196 | margin-top: 5px;
197 | margin-bottom: 5px;
198 | }
199 | .bluebox{
200 | border-left: solid 5px var(--baby-blue);
201 | background-color: var(--baby-blue-30);
202 | }
203 | .bluebox h2{
204 | font-size: 150%;
205 | font-weight: bold;
206 | font-style: normal;
207 | color: var(--monument);
208 | margin-bottom: 10px;
209 | margin-top: 2px;
210 | }
211 | .yellowbox {
212 | border-left: solid 5px var(--cornhusk);
213 | background-color: var(--cornhusk-30);
214 | }
215 | .yellowbox h2{
216 | font-size: 150%;
217 | font-weight: bold;
218 | font-style: normal;
219 | color: var(--stucco);
220 | margin-bottom: 10px;
221 | margin-top: 2px;
222 | }
223 | .orangebox {
224 | border-right: solid 5px var(--peach-quartz);
225 | background-color: var(--peach-quartz-30);
226 | }
227 | .orangebox h2{
228 | font-size: 150%;
229 | font-weight: bold;
230 | font-style: normal;
231 | color: var(--monument);
232 | margin-top: 2px;
233 | margin-bottom: 10px;
234 | }
235 |
236 | /* Code highlighting */
237 | .remark-code-line-highlighted {
238 | background-color: var(--peach-quartz)
239 | }
240 |
241 | /* Footer */
242 | div.my-footer {
243 | border-top: 1px solid var(--classic-blue);
244 | position: absolute;
245 | bottom: 0px;
246 | height: 35px;
247 | width: 90%;
248 | }
249 | div.my-footer span {
250 | font-size: 12pt;
251 | position: absolute;
252 | color: #333333;
253 | bottom: 10px;
254 | }
255 | div.my-footer a {
256 | font-size: 12pt;
257 | color: #333333;
258 | }
259 |
260 |
261 | /* Footnote */
262 | .footnote, .footnote p{
263 | position: absolute;
264 | bottom: 0.5em;
265 | padding-right: 4em;
266 | font-size: 0.70rem;
267 | font-family: Raleway;
268 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/docs/Week3-RVerse-2022.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Week 3 & 4: Intro to agile project management"
3 | subtitle: "Kanban with GitHub project boards"
4 | date: "`r Sys.Date()`"
5 | output:
6 | xaringan::moon_reader:
7 | self_contained: true
8 | css: ["xaringan-themer.css"]
9 | lib_dir: libs
10 | nature:
11 | ratio: '4:3'
12 | highlightStyle: github
13 | highlightLines: true
14 | countIncrementalSlides: false
15 | slideNumberFormat: "Page %current%"
16 | ---
17 | layout: true
18 |
19 | .footnote[U.S. Department of Commerce | National Oceanic and Atmospheric Administration | National Marine Fisheries Service]
20 |
21 |
22 | ```{r setup, include=FALSE}
23 | options(htmltools.dir.version = FALSE)
24 | ```
25 |
26 | ---
27 |
28 | class: middle
29 |
30 | ### Note there are tons on info online + videos on agile project management.
31 |
32 | ---
33 |
34 | ## What kinds of projects are we talking about?
35 |
36 | **Complex projects**
37 |
38 | * big tasks with lots of different stages
39 | * potentially many different team members and different needed skills
40 | * Often team projects but could also be a solo project
41 | * Examples: a large report or manuscript, a complex model, a software package, or an software application.
42 |
43 |
44 | ---
45 |
46 | # What is agile?
47 |
48 |
49 | .pull-left[
50 | A **lightweight** workflow **structure** for software development which is characterized by 4 key features -->
51 |
52 | Traced back to the [Agile Manifesto](https://agilemanifesto.org/) (4 statement and 12 principles) written at a 2001 gathering of software development "visionaries", but the ideas trace back much earlier. [Good overview on Wikipedia](https://en.wikipedia.org/wiki/Agile_software_development).
53 |
54 | Today agile methodologies are the norm in software development.
55 | ]
56 | .pull-right[
57 | - Rapid incremental and iterative development
58 | - Open team culture - autonomous, highly communicative, empowered
59 | - Team reflection and continual improvement
60 | - Customer focus - early and frequent delivery of workable products
61 | ]
62 |
63 | ---
64 |
65 | class: middle
66 |
67 | 
68 |
69 | .footnote[Radical Candor is a book by Kim Scott.
]
70 | ---
71 |
72 | ## What it is not: Waterfall
73 |
74 | Let's imagine that we are preparing a big report or perhaps we have put in a, successful, proposal for a new big modeling project to address some management issue.
75 |
76 | .center[
77 |
78 | ]
79 |
80 | ---
81 |
82 |
85 |
86 |
87 | # Originating Ideas
88 |
89 | 
90 |
91 |
92 | ---
93 |
94 | ## Industrial quality control
95 |
96 | A key element of agile methodologies is iterative cycles, similar to the Plan-Do-Check-Act (PDCA) cycle:
97 |
98 | .center[
99 | 
100 | ]
101 |
102 | This was popularized by the work of **William Edwards Deming**1 on how to design workflow and organizational systems that improve quality control, though the ideas are traced back to the 1930-50s with work on industrial quality control systems (e.g., Walter A. Shewhart cycle) and earlier ideas on the scientific method.
103 |
104 | .footnote[[1] Leading thinker in statistical quality control and industrial engineering in the 1950s to 1980s.
]
105 | ---
106 |
107 | class: middle
108 |
109 | .center[
110 |
111 | ]
112 |
113 | ---
114 |
115 | ## Lean manufacturing
116 |
117 | .pull-left[
118 |
119 | ]
120 |
121 | .pull-right[
122 | Lean manufacturing refers to a profound change in the structure and culture of manufacturing teams to a flat hierarchy with
123 |
124 | * intense focus on empowering of and continual learning by individual team members
125 | * systems (workflows) that are self-organizing, self-correcting, and spontaneously continually improving
126 |
127 | The origin of these ideas is also credited to W. Edwards Deming, but adopted earliest in Japan where he visited to train Japanese engineers in quality control in the post-WWII period.
128 | ]
129 |
130 |
131 | ---
132 |
133 | class: middle
134 |
135 | .center[
136 |
137 | ]
138 |
139 | ---
140 |
141 | ## Rapid software application development theory
142 |
143 | Lastly, agile is related to work in the 1980s on systems for rapid innovation for software application development (Barry Boehm, James Martin, James Kerr).
144 |
145 | By definition, innovation is creating something novel so you can't write a plan to get to the "product" because you don't know what the product is. Because the customer (who you don't yet since you are developing something new) has never seen the product, the design process is organic and knowledge gained from the development process itself affects the design at each cycle.
146 |
147 | * Rapid iterations with learning
148 | * Working demos (prototypes)
149 | * Tight collaboration with "customer"
150 | * Team culture: autonomous teams where members plan their own work and work their own plans.
151 |
152 | ---
153 |
154 | class: middle
155 |
156 | .center[
157 |
158 | ]
159 |
160 | ---
161 |
162 | ## Experiential learning
163 |
164 | In "experiential learning" (David A Kolb, 1970s-1980s), the activity is the teacher via explicit periods of reflection and experimentation (trying something to fix the identified problem).
165 |
166 | .center[
167 |
168 | ]
169 |
170 | ---
171 |
172 | class: middle
173 |
174 | 
175 |
176 | ---
177 |
178 | class: middle
179 |
180 | # Agile methodologies
181 |
182 | ---
183 |
184 | ## Kanban
185 |
186 | .center[
187 |
188 | ]
189 |
190 | ---
191 |
192 | ## Why use a Kanban board?
193 |
194 | Visualize the flow of work so that we can improve it incrementally and organically--meaning no fixed framework. Just seeing your workflow helps you see the problems.
195 |
196 | * transparency -- visual representation of the team's workflow
197 |
198 | * iterative and incremental -- each task is a well-defined task (ca 1-2 days to move columns)
199 |
200 | * "workable product" -- minimize work in progress and **finish tasks before taking on new tasks** "WIP limits"
201 |
202 | * problems with task "flow" are addressed as they arise
203 |
204 | * No "sprints", time-boxed tasks, or time targets.
205 |
206 | .footnote[Atlassian has a nice Kanban video series: [intro](https://www.youtube.com/watch?v=iVaFVa7HYj4), [designing your Kanban board](https://www.youtube.com/watch?v=Bcid33tgq8A), [work in progress limits](https://www.youtube.com/watch?v=zEJn6eQO6FE), [writing kanban cards](https://www.youtube.com/watch?v=PxXdcQrPIUI)
]
207 |
208 | ---
209 |
210 | ## Kanban cards: aka the task card
211 |
212 | Each project task lives on a card that gets edited as it moves. Team members can add comments and notes as it moves.
213 |
214 | * a description
215 | * deadline
216 | * assigned team member(s)
217 | * small: 1-2 days of work (not 1 hour)
218 |
219 | ---
220 |
221 |
222 | 
223 |
224 | ---
225 |
226 | ## Example: NWFSC OA Lab
227 |
228 | @Paul McElhany, NWFSC
229 |
230 | 
231 |
232 | ---
233 |
234 | ## Kanban with GitHub
235 |
236 | Let's Kanban with GitHub!
237 |
238 | Note,
239 |
240 | * Kanban boards are often physical boards.
241 | * Lots of different applications for online Kanban boards.
242 | * Online versions allow you to link cards to "issues", e.g. GitHub issues.
243 |
244 |
245 |
--------------------------------------------------------------------------------
/docs/xaringan-themer.css:
--------------------------------------------------------------------------------
1 | /* -------------------------------------------------------
2 | *
3 | * !! This file was generated by xaringanthemer !!
4 | *
5 | * Changes made to this file directly will be overwritten
6 | * if you used xaringanthemer in your xaringan slides Rmd
7 | *
8 | * Issues or likes?
9 | * - https://github.com/gadenbuie/xaringanthemer
10 | * - https://www.garrickadenbuie.com
11 | *
12 | * Need help? Try:
13 | * - vignette(package = "xaringanthemer")
14 | * - ?xaringanthemer::style_xaringan
15 | * - xaringan wiki: https://github.com/yihui/xaringan/wiki
16 | * - remarkjs wiki: https://github.com/gnab/remark/wiki
17 | *
18 | * Version: 0.4.1
19 | *
20 | * ------------------------------------------------------- */
21 | @import url(https://fonts.googleapis.com/css?family=Raleway:300,300i&display=swap);
22 | @import url(https://fonts.googleapis.com/css?family=Raleway&display=swap);
23 | @import url(https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap);
24 |
25 |
26 | :root {
27 | /* Fonts */
28 | --text-font-family: Raleway;
29 | --text-font-is-google: 1;
30 | --text-font-family-fallback: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, Ubuntu, roboto, noto, segoe ui, arial;
31 | --text-font-base: sans-serif;
32 | --header-font-family: Raleway;
33 | --header-font-is-google: 1;
34 | --header-font-family-fallback: Georgia, serif;
35 | --code-font-family: 'Source Code Pro';
36 | --code-font-is-google: 1;
37 | --base-font-size: 20px;
38 | --text-font-size: 1rem;
39 | --code-font-size: 0.9rem;
40 | --code-inline-font-size: 1em;
41 | --header-h1-font-size: 2.75rem;
42 | --header-h2-font-size: 2.25rem;
43 | --header-h3-font-size: 1.75rem;
44 |
45 | /* Colors */
46 | --text-color: #00467F;
47 | --header-color: #00467F;
48 | --background-color: ;
49 | --link-color: #008998;
50 | --code-highlight-color: #008998;
51 | --inverse-text-color: #E8E8E8;
52 | --inverse-background-color: #0093D0;
53 | --inverse-header-color: #f3f3f3;
54 | --inverse-link-color: #008998;
55 | --title-slide-background-color: #00467F;
56 | --title-slide-text-color: #00467F;
57 | --header-background-color: #00467F;
58 | --header-background-text-color: ;
59 | }
60 |
61 | html {
62 | font-size: var(--base-font-size);
63 | }
64 |
65 | body {
66 | font-family: var(--text-font-family), var(--text-font-family-fallback), var(--text-font-base);
67 | font-weight: 300;
68 | color: var(--text-color);
69 | }
70 | h1, h2, h3 {
71 | font-family: var(--header-font-family), var(--header-font-family-fallback);
72 | font-weight: 600;
73 | color: var(--header-color);
74 | }
75 | .remark-slide-content {
76 | background-color: var(--background-color);
77 | font-size: 1rem;
78 | background-image: url(static/slideswoosh.PNG);
79 | background-size: cover;
80 | padding: 16px 64px 16px 64px;
81 | width: 100%;
82 | height: 100%;
83 | }
84 | .remark-slide-content h1 {
85 | font-size: var(--header-h1-font-size);
86 | }
87 | .remark-slide-content h2 {
88 | font-size: var(--header-h2-font-size);
89 | }
90 | .remark-slide-content h3 {
91 | font-size: var(--header-h3-font-size);
92 | }
93 | .remark-code, .remark-inline-code {
94 | font-family: var(--code-font-family), Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
95 | }
96 | .remark-code {
97 | font-size: var(--code-font-size);
98 | }
99 | .remark-inline-code {
100 | font-size: var(--code-inline-font-size);
101 | color: #000;
102 | }
103 | .remark-slide-number {
104 | color: #1ECAD3;
105 | opacity: 1;
106 | font-size: 0.6em;
107 | }
108 | strong {
109 | font-weight: bold;
110 | }
111 | a, a > code {
112 | color: var(--link-color);
113 | text-decoration: none;
114 | }
115 | .footnote {
116 | position: absolute;
117 | color: #00467F;
118 | bottom: 10px;
119 | padding-right: 4em;
120 | font-size: 0.6em;
121 | }
122 | .remark-code-line-highlighted {
123 | background-color: var(--code-highlight-color);
124 | }
125 | .inverse {
126 | background-color: var(--inverse-background-color);
127 | color: var(--inverse-text-color);
128 |
129 | }
130 | .inverse h1, .inverse h2, .inverse h3 {
131 | color: var(--inverse-header-color);
132 | }
133 | .inverse a, .inverse a > code {
134 | color: var(--inverse-link-color);
135 | }
136 | .title-slide, .title-slide h1, .title-slide h2, .title-slide h3 {
137 | color: var(--title-slide-text-color);
138 | }
139 | .title-slide {
140 | background-color: var(--title-slide-background-color);
141 | background-image: url("static/slideteal.png");
142 | background-size: cover;
143 | }
144 | .title-slide .remark-slide-number {
145 | display: none;
146 | }
147 | /* Two-column layout */
148 | .left-column {
149 | width: 20%;
150 | height: 92%;
151 | float: left;
152 | }
153 | .left-column h2, .left-column h3 {
154 | color: #777;
155 | }
156 | .left-column h2:last-of-type, .left-column h3:last-child {
157 | color: #000;
158 | }
159 | .right-column {
160 | width: 75%;
161 | float: right;
162 | padding-top: 1em;
163 | }
164 | .pull-left {
165 | float: left;
166 | width: 47%;
167 | }
168 | .pull-right {
169 | float: right;
170 | width: 47%;
171 | }
172 | .pull-right + * {
173 | clear: both;
174 | }
175 | img, video, iframe {
176 | max-width: 100%;
177 | }
178 | blockquote {
179 | border-left: solid 5px lightgray;
180 | padding-left: 1em;
181 | }
182 | .remark-slide table {
183 | margin: auto;
184 | border-top: 1px solid #666;
185 | border-bottom: 1px solid #666;
186 | }
187 | .remark-slide table thead th {
188 | border-bottom: 1px solid #ddd;
189 | }
190 | th, td {
191 | padding: 5px;
192 | }
193 | .remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) {
194 | background: #eee;
195 | }
196 | table.dataTable tbody {
197 | background-color: var(--background-color);
198 | color: var(--text-color);
199 | }
200 | table.dataTable.display tbody tr.odd {
201 | background-color: var(--background-color);
202 | }
203 | table.dataTable.display tbody tr.even {
204 | background-color: #eee;
205 | }
206 | table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
207 | background-color: rgba(255, 255, 255, 0.5);
208 | }
209 | .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate {
210 | color: var(--text-color);
211 | }
212 | .dataTables_wrapper .dataTables_paginate .paginate_button {
213 | color: var(--text-color) !important;
214 | }
215 |
216 | /* Horizontal alignment of code blocks */
217 | .remark-slide-content.left pre,
218 | .remark-slide-content.center pre,
219 | .remark-slide-content.right pre {
220 | text-align: start;
221 | width: max-content;
222 | max-width: 100%;
223 | }
224 | .remark-slide-content.left pre,
225 | .remark-slide-content.right pre {
226 | min-width: 50%;
227 | min-width: min(40ch, 100%);
228 | }
229 | .remark-slide-content.center pre {
230 | min-width: 66%;
231 | min-width: min(50ch, 100%);
232 | }
233 | .remark-slide-content.left pre {
234 | margin-left: unset;
235 | margin-right: auto;
236 | }
237 | .remark-slide-content.center pre {
238 | margin-left: auto;
239 | margin-right: auto;
240 | }
241 | .remark-slide-content.right pre {
242 | margin-left: auto;
243 | margin-right: unset;
244 | }
245 |
246 | /* Slide Header Background for h1 elements */
247 | .remark-slide-content.header_background > h1 {
248 | display: block;
249 | position: absolute;
250 | top: 0;
251 | left: 0;
252 | width: 100%;
253 | background: var(--header-background-color);
254 | color: var(--header-background-text-color);
255 | padding: 2rem 64px 1.5rem 64px;
256 | margin-top: 0;
257 | box-sizing: border-box;
258 | }
259 | .remark-slide-content.header_background {
260 | padding-top: 7rem;
261 | }
262 |
263 | @page { margin: 0; }
264 | @media print {
265 | .remark-slide-scaler {
266 | width: 100% !important;
267 | height: 100% !important;
268 | transform: scale(1) !important;
269 | top: 0 !important;
270 | left: 0 !important;
271 | }
272 | }
273 |
274 |
275 |
--------------------------------------------------------------------------------
/docs/theme/xaringan-themer.css:
--------------------------------------------------------------------------------
1 | /* -------------------------------------------------------
2 | *
3 | * !! This file was generated by xaringanthemer !!
4 | *
5 | * Changes made to this file directly will be overwritten
6 | * if you used xaringanthemer in your xaringan slides Rmd
7 | *
8 | * Issues or likes?
9 | * - https://github.com/gadenbuie/xaringanthemer
10 | * - https://www.garrickadenbuie.com
11 | *
12 | * Need help? Try:
13 | * - vignette(package = "xaringanthemer")
14 | * - ?xaringanthemer::style_xaringan
15 | * - xaringan wiki: https://github.com/yihui/xaringan/wiki
16 | * - remarkjs wiki: https://github.com/gnab/remark/wiki
17 | *
18 | * Version: 0.4.1
19 | *
20 | * ------------------------------------------------------- */
21 | @import url(https://fonts.googleapis.com/css?family=Montserrat:300,300i&display=swap);
22 | @import url(https://fonts.googleapis.com/css?family=Arimo&display=swap);
23 | @import url(https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap);
24 |
25 |
26 | :root {
27 | /* Fonts */
28 | --text-font-family: Montserrat;
29 | --text-font-is-google: 1;
30 | --text-font-family-fallback: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, Ubuntu, roboto, noto, segoe ui, arial;
31 | --text-font-base: sans-serif;
32 | --header-font-family: Arimo;
33 | --header-font-is-google: 1;
34 | --header-font-family-fallback: Georgia, serif;
35 | --code-font-family: 'Source Code Pro';
36 | --code-font-is-google: 1;
37 | --base-font-size: 20px;
38 | --text-font-size: 1rem;
39 | --code-font-size: 0.9rem;
40 | --code-inline-font-size: 1em;
41 | --header-h1-font-size: 2.75rem;
42 | --header-h2-font-size: 2.25rem;
43 | --header-h3-font-size: 1.75rem;
44 |
45 | /* Colors */
46 | --text-color: #00467F;
47 | --header-color: #00467F;
48 | --background-color: #FFFFFF;
49 | --link-color: #008998;
50 | --code-highlight-color: #008998;
51 | --inverse-text-color: #E8E8E8;
52 | --inverse-background-color: #0093D0;
53 | --inverse-header-color: #f3f3f3;
54 | --inverse-link-color: #008998;
55 | --title-slide-background-color: #00467F;
56 | --title-slide-text-color: #E8E8E8;
57 | --header-background-color: #00467F;
58 | --header-background-text-color: #FFFFFF;
59 | }
60 |
61 | html {
62 | font-size: var(--base-font-size);
63 | }
64 |
65 | body {
66 | font-family: var(--text-font-family), var(--text-font-family-fallback), var(--text-font-base);
67 | font-weight: 300;
68 | color: var(--text-color);
69 | }
70 | h1, h2, h3 {
71 | font-family: var(--header-font-family), var(--header-font-family-fallback);
72 | font-weight: 600;
73 | color: var(--header-color);
74 | }
75 | .remark-slide-content {
76 | background-color: var(--background-color);
77 | font-size: 1rem;
78 | background-image: url(static/slideswoosh.PNG);
79 | background-size: cover;
80 | padding: 16px 64px 16px 64px;
81 | width: 100%;
82 | height: 100%;
83 | }
84 | .remark-slide-content h1 {
85 | font-size: var(--header-h1-font-size);
86 | }
87 | .remark-slide-content h2 {
88 | font-size: var(--header-h2-font-size);
89 | }
90 | .remark-slide-content h3 {
91 | font-size: var(--header-h3-font-size);
92 | }
93 | .remark-code, .remark-inline-code {
94 | font-family: var(--code-font-family), Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
95 | }
96 | .remark-code {
97 | font-size: var(--code-font-size);
98 | }
99 | .remark-inline-code {
100 | font-size: var(--code-inline-font-size);
101 | color: #000;
102 | }
103 | .remark-slide-number {
104 | color: #1ECAD3;
105 | opacity: 1;
106 | font-size: 0.6em;
107 | }
108 | strong {
109 | font-weight: bold;
110 | }
111 | a, a > code {
112 | color: var(--link-color);
113 | text-decoration: none;
114 | }
115 | .footnote {
116 | position: absolute;
117 | color: #00467F;
118 | bottom: 10px;
119 | padding-right: 4em;
120 | font-size: 0.6em;
121 | }
122 | .remark-code-line-highlighted {
123 | background-color: var(--code-highlight-color);
124 | }
125 | .inverse {
126 | background-color: var(--inverse-background-color);
127 | color: var(--inverse-text-color);
128 |
129 | }
130 | .inverse h1, .inverse h2, .inverse h3 {
131 | color: var(--inverse-header-color);
132 | }
133 | .inverse a, .inverse a > code {
134 | color: var(--inverse-link-color);
135 | }
136 | .title-slide, .title-slide h1, .title-slide h2, .title-slide h3 {
137 | color: var(--title-slide-text-color);
138 | }
139 | .title-slide {
140 | background-color: var(--title-slide-background-color);
141 | background-image: url("static/slideteal.png");
142 | background-size: cover;
143 | }
144 | .title-slide .remark-slide-number {
145 | display: none;
146 | }
147 | /* Two-column layout */
148 | .left-column {
149 | width: 20%;
150 | height: 92%;
151 | float: left;
152 | }
153 | .left-column h2, .left-column h3 {
154 | color: #777;
155 | }
156 | .left-column h2:last-of-type, .left-column h3:last-child {
157 | color: #000;
158 | }
159 | .right-column {
160 | width: 75%;
161 | float: right;
162 | padding-top: 1em;
163 | }
164 | .pull-left {
165 | float: left;
166 | width: 47%;
167 | }
168 | .pull-right {
169 | float: right;
170 | width: 47%;
171 | }
172 | .pull-right + * {
173 | clear: both;
174 | }
175 | img, video, iframe {
176 | max-width: 100%;
177 | }
178 | blockquote {
179 | border-left: solid 5px lightgray;
180 | padding-left: 1em;
181 | }
182 | .remark-slide table {
183 | margin: auto;
184 | border-top: 1px solid #666;
185 | border-bottom: 1px solid #666;
186 | }
187 | .remark-slide table thead th {
188 | border-bottom: 1px solid #ddd;
189 | }
190 | th, td {
191 | padding: 5px;
192 | }
193 | .remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) {
194 | background: #eee;
195 | }
196 | table.dataTable tbody {
197 | background-color: var(--background-color);
198 | color: var(--text-color);
199 | }
200 | table.dataTable.display tbody tr.odd {
201 | background-color: var(--background-color);
202 | }
203 | table.dataTable.display tbody tr.even {
204 | background-color: #eee;
205 | }
206 | table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
207 | background-color: rgba(255, 255, 255, 0.5);
208 | }
209 | .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate {
210 | color: var(--text-color);
211 | }
212 | .dataTables_wrapper .dataTables_paginate .paginate_button {
213 | color: var(--text-color) !important;
214 | }
215 |
216 | /* Horizontal alignment of code blocks */
217 | .remark-slide-content.left pre,
218 | .remark-slide-content.center pre,
219 | .remark-slide-content.right pre {
220 | text-align: start;
221 | width: max-content;
222 | max-width: 100%;
223 | }
224 | .remark-slide-content.left pre,
225 | .remark-slide-content.right pre {
226 | min-width: 50%;
227 | min-width: min(40ch, 100%);
228 | }
229 | .remark-slide-content.center pre {
230 | min-width: 66%;
231 | min-width: min(50ch, 100%);
232 | }
233 | .remark-slide-content.left pre {
234 | margin-left: unset;
235 | margin-right: auto;
236 | }
237 | .remark-slide-content.center pre {
238 | margin-left: auto;
239 | margin-right: auto;
240 | }
241 | .remark-slide-content.right pre {
242 | margin-left: auto;
243 | margin-right: unset;
244 | }
245 |
246 | /* Slide Header Background for h1 elements */
247 | .remark-slide-content.header_background > h1 {
248 | display: block;
249 | position: absolute;
250 | top: 0;
251 | left: 0;
252 | width: 100%;
253 | background: var(--header-background-color);
254 | color: var(--header-background-text-color);
255 | padding: 2rem 64px 1.5rem 64px;
256 | margin-top: 0;
257 | box-sizing: border-box;
258 | }
259 | .remark-slide-content.header_background {
260 | padding-top: 7rem;
261 | }
262 |
263 | @page { margin: 0; }
264 | @media print {
265 | .remark-slide-scaler {
266 | width: 100% !important;
267 | height: 100% !important;
268 | transform: scale(1) !important;
269 | top: 0 !important;
270 | left: 0 !important;
271 | }
272 | }
273 |
274 |
275 |
276 |
277 | /* Extra CSS */
278 | .remark-slide-number {
279 | font-size: 0.6em;
280 | font-weight: bold;
281 | margin: 0px 840px -2px 0px;
282 | }
283 |
--------------------------------------------------------------------------------
/docs/Week4-Scrum-2022.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Week 3 & 4: Intro to agile project management"
3 | subtitle: "Scrum with GitHub project boards"
4 | date: "`r Sys.Date()`"
5 | output:
6 | xaringan::moon_reader:
7 | self_contained: true
8 | css: ["xaringan-themer.css"]
9 | lib_dir: libs
10 | nature:
11 | ratio: '4:3'
12 | highlightStyle: github
13 | highlightLines: true
14 | countIncrementalSlides: false
15 | slideNumberFormat: "Page %current%"
16 | ---
17 | layout: true
18 |
19 | .footnote[U.S. Department of Commerce | National Oceanic and Atmospheric Administration | National Marine Fisheries Service]
20 |
21 |
22 | ```{r setup, include=FALSE}
23 | options(htmltools.dir.version = FALSE)
24 | ```
25 |
26 |
27 | ---
28 |
29 | .pull-left[
30 | 
31 | ]
32 | .pull-right[
33 | Note there are tons on info online: videos and courses on Scrum.
34 |
35 | * Good 3-hour video course. [Scrum Fundamentals](https://learning.oreilly.com/videos/scrum-fundamentals) It is available free through most universities or you can get a free 10-day trial.
36 | * [4 minute overview of product development with Scrum](https://www.youtube.com/watch?v=L_sAo93ASTU&ab_channel=Kaizenko)
37 | * [Longer 15min overview of Scrum sprints](https://www.youtube.com/watch?v=wxbjCSEyq2I&t=398s&ab_channel=AgileEducationbyAgileAcademy)
38 | * [What is a sprint?](https://www.youtube.com/watch?v=7wGQU37fyiI&ab_channel=Codecademy)
39 | ]
40 | ---
41 |
42 | ## What kinds of projects are we talking about?
43 |
44 | **Complex projects**
45 |
46 | * big tasks with lots of different stages
47 | * potentially many different team members and different needed skills
48 | * Often team projects but could also be a solo project
49 | * Examples: a large report or manuscript, a complex model, a software package, or an software application.
50 |
51 |
52 | ---
53 |
54 |
55 | # Agile principles
56 |
57 | 
58 |
59 |
60 | ---
61 |
62 | ## Iterative cycles of work and learning
63 |
64 | A key element of agile methodologies is iterative cycles:
65 |
66 | .center[
67 | 
68 | ]
69 |
70 | ---
71 |
72 | class: middle
73 |
74 | ## Nice idea...but how on earth do we make this happen?
75 |
76 | ---
77 |
78 | ## Scrum
79 |
80 | A lightweight framework (meaning flexible and easy to apply) for applying agile principles to making useable products. Define "product" however is appropriate for your work. Scrum uses repeated 14-30 day cycles of work (time-boxed).
81 |
82 |
83 | 
84 |
85 | ---
86 |
87 | ## 3 Roles (jobs) in Scrum
88 |
89 | * **Product owner** -- works on the backlog and liasons with the customer so work for next sprint is ready
90 |
91 | * **Scrum master** -- basically a team coach to help team stay "agile" and so product owner doesn't start micro-managing things.
92 |
93 | * **Developers** -- people working on the individual tasks and helping peers
94 |
95 | .center[
96 | *The most important element to Agile (and Scrum) is the team's enthusiasm for communication, openness and transparency*
97 | ]
98 |
99 | .center[
100 |
101 | ]
102 |
103 | ---
104 |
105 | ## 5 events
106 |
107 | .center[
108 | *Plan some work - Get it done - Debrief/learn - Plan more work*
109 | ]
110 |
111 | * **Sprint Planning** - what will we complete in our time-boxed window
112 |
113 | * **Sprint** - working on tasks
114 |
115 | * **Daily Scrum** - check-in every day (yesterday, today, any barriers)
116 |
117 | * **Sprint Review** - end of sprint, get feedback on the product produced in sprint
118 |
119 | * **Sprint Retrospective** - last event, whole team discusses workflow and makes improvements
120 |
121 | .center[
122 |
123 | ]
124 |
125 | ---
126 |
127 | ## 3 artifacts
128 |
129 | * **Product backlog** - all the things we need to do to complete the product. **ordered** and prioritized
130 |
131 | * **Sprint backlog** - everything that the team commits to achieve in a given sprint
132 |
133 | * **Sprint Product Increment** - something you can show, demo, get feedback on
134 |
135 | .center[
136 |
137 | ]
138 | ---
139 |
140 | ## Scrum board
141 |
142 | Not an "official" artifact, this is a key part of the sprint and is used at the daily check-in and throughout the day. **Names are attached to each task.**
143 |
144 | .center[
145 |
146 | ]
147 |
148 | ---
149 |
150 | ## User Stories
151 |
152 | .pull-left[
153 | These are the 1-3 day chunks of work. You'll complete user stories during a sprint. Not actually part of Scrum Framework, but widely used in software development's application of Scrum.
154 |
155 | * Who: is this task for?
156 |
157 | * What: is the task producting?
158 |
159 | * Why: does the person want this?
160 |
161 | * Definition of done
162 |
163 | ]
164 | .pull-right[
165 |
166 | #### Tasks
167 |
168 | User stories will have a series of tasks to complete. Depending on the user story and the person(s) doing the work, you might list these out as separate issues or just checkboxes.
169 |
170 | * [How to create effective user stories](https://www.youtube.com/watch?v=KnXqHK2t3KQ&ab_channel=dan2dan)
171 |
172 |
173 | ]
174 |
175 | ---
176 |
177 | .center[
178 | 
179 | ]
180 |
181 | ---
182 |
183 | ## Epics
184 |
185 | .pull-left[
186 | A larger (multiple sprints) chunk of related work that can be broken down into user stories. Goal is to organize your work into pieces that have some natural hierarchy and order so that you can **get work down more efficiently**.
187 |
188 | Epics are fleshed out (broken into user stories + adding detail) as the project gets closer to being ready for the epic.
189 | ]
190 |
191 | .pull-right[
192 | * [Atlassian info on epics](https://www.atlassian.com/agile/project-management/epics)
193 | * [What is an Epic in Agile and Scrum?](https://www.youtube.com/watch?v=8eDyB3MSibc&ab_channel=DejanMajkic)
194 | ]
195 |
196 | ---
197 |
198 | ## Essential parts of Scrum
199 |
200 | * Developer team = 3-7 people
201 | * The daily in-person (or video) check-in. Time-boxed to 15 minutes. This is called the "scrum"
202 | * The Scrum master
203 | * Short iterations with 'minimal working product' at end
204 | * A retrospective to improve process
205 |
206 | ---
207 |
208 | class: middle
209 |
210 | ## Let's run a Scrum Sprint with GitHub!
211 |
212 | ---
213 |
214 | ## Note
215 |
216 | My solo sprint is missing an essential feature of Scrum, ahem, the "scrum"
217 |
218 | Nonetheless,
219 |
220 | * Practicing solo is a "safe" way to get better at Scrum
221 | * You get the advantages of the other 3 circles of 'agile'
222 | * Try it out. Does it work for you? Use some real mini-sprints as a learning tool.
223 |
224 | .center[
225 |
226 | ]
227 |
228 | ---
229 |
230 | ## Retrospective
231 |
232 | * Also my "stories" were not proper user stories, more like tasks
233 |
234 | * Review - I did present to the end users but didn't get actual feedback
235 |
236 | * Retrospective (I sort of did this), but this was definitely a weak point
237 |
238 | ---
239 |
240 | ## Ideas for learning more
241 |
242 | So so many books and resources out there for learning Scrum. Here are two that I really enjoyed.
243 |
244 | .pull-left[
245 | Fascinating book about the history of Scrum. You will not learn Scrum in this book. It is about the experiences of the author in developing team frameworks.
246 |
247 | .center[
248 |
249 | ]
250 | ]
251 |
252 | .pull-right[
253 | I am interested in the ideas around self-organizing teams and the role of the Scrum Master. Written by a talented team coach with many good insights.
254 |
255 | .center[
256 |
257 | ]
258 | ]
259 |
260 |
261 |
--------------------------------------------------------------------------------
/docs/template-tufte.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Template - Tufte style
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
212 |
213 |
214 |
303 |
304 |
323 |
324 |
334 |
335 |
336 |
--------------------------------------------------------------------------------
/docs/images/Scrum_process.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
384 |
--------------------------------------------------------------------------------