├── Chemicals in the Lab
├── preamble.tex
├── _book
├── robots.txt
├── img
│ └── creative_commons.png
├── site_libs
│ ├── bootstrap
│ │ └── bootstrap-icons.woff
│ ├── quarto-html
│ │ ├── tippy.css
│ │ ├── quarto-syntax-highlighting-2f5df379a58b258e96c21c0638c20c03.css
│ │ ├── anchor.min.js
│ │ ├── popper.min.js
│ │ └── tippy.umd.min.js
│ ├── quarto-nav
│ │ ├── headroom.min.js
│ │ └── quarto-nav.js
│ ├── clipboard
│ │ └── clipboard.min.js
│ └── quarto-search
│ │ └── fuse.min.js
├── sitemap.xml
└── index.html
├── wiki
├── fork.png
├── fork2.png
├── edit-file.png
├── gh-pages.png
├── new-repo.png
├── new-repo2.png
├── settings.png
├── edit-file2.png
├── pages-build.png
├── Pages-gh-pages.png
├── commit-changes.png
├── fork-location.png
├── published-copy.png
├── Pages-gh-pages2.png
├── actions-secrets.png
├── commit-changes2.png
├── published-copy2.png
├── set-website-url.png
├── fork-uncheck-main.png
├── pages-build-deploy.png
├── published-changes.png
├── published-changes2.png
├── settings-newsecret.png
├── publishing-new-changes.png
├── publishing-new-changes2.png
└── Screen Shot 2022-01-06 at 5.43.57 PM.png
├── img
└── creative_commons.png
├── .gitignore
├── wiki_step_5_6.md
├── how_we_work.Rproj
├── book.bib
├── README.md
├── .github
└── workflows
│ └── quarto-publish.yml
├── _quarto.yml
├── references.bib
├── index.qmd
├── README_FeyLab.md
├── offboarding.qmd
├── Chemicals in the Lab.qmd
├── style.css
├── packages.bib
├── working_agreement.qmd
├── data-management.qmd
├── onboarding.qmd
├── phd_guide.qmd
└── LICENSE
/Chemicals in the Lab:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/preamble.tex:
--------------------------------------------------------------------------------
1 | \usepackage{booktabs}
2 |
--------------------------------------------------------------------------------
/_book/robots.txt:
--------------------------------------------------------------------------------
1 | Sitemap: https://pinskylab.github.io/how_we_work/sitemap.xml
2 |
--------------------------------------------------------------------------------
/wiki/fork.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork.png
--------------------------------------------------------------------------------
/wiki/fork2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork2.png
--------------------------------------------------------------------------------
/wiki/edit-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/edit-file.png
--------------------------------------------------------------------------------
/wiki/gh-pages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/gh-pages.png
--------------------------------------------------------------------------------
/wiki/new-repo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/new-repo.png
--------------------------------------------------------------------------------
/wiki/new-repo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/new-repo2.png
--------------------------------------------------------------------------------
/wiki/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/settings.png
--------------------------------------------------------------------------------
/wiki/edit-file2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/edit-file2.png
--------------------------------------------------------------------------------
/wiki/pages-build.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/pages-build.png
--------------------------------------------------------------------------------
/wiki/Pages-gh-pages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Pages-gh-pages.png
--------------------------------------------------------------------------------
/wiki/commit-changes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/commit-changes.png
--------------------------------------------------------------------------------
/wiki/fork-location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork-location.png
--------------------------------------------------------------------------------
/wiki/published-copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-copy.png
--------------------------------------------------------------------------------
/img/creative_commons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/img/creative_commons.png
--------------------------------------------------------------------------------
/wiki/Pages-gh-pages2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Pages-gh-pages2.png
--------------------------------------------------------------------------------
/wiki/actions-secrets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/actions-secrets.png
--------------------------------------------------------------------------------
/wiki/commit-changes2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/commit-changes2.png
--------------------------------------------------------------------------------
/wiki/published-copy2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-copy2.png
--------------------------------------------------------------------------------
/wiki/set-website-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/set-website-url.png
--------------------------------------------------------------------------------
/wiki/fork-uncheck-main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork-uncheck-main.png
--------------------------------------------------------------------------------
/wiki/pages-build-deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/pages-build-deploy.png
--------------------------------------------------------------------------------
/wiki/published-changes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-changes.png
--------------------------------------------------------------------------------
/wiki/published-changes2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-changes2.png
--------------------------------------------------------------------------------
/wiki/settings-newsecret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/settings-newsecret.png
--------------------------------------------------------------------------------
/_book/img/creative_commons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/_book/img/creative_commons.png
--------------------------------------------------------------------------------
/wiki/publishing-new-changes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/publishing-new-changes.png
--------------------------------------------------------------------------------
/wiki/publishing-new-changes2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/publishing-new-changes2.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .Rproj.user
2 | .Rhistory
3 | .RData
4 | .Ruserdata
5 | onboarding.Rmd
6 | offboarding.Rmd
7 | .DS_Store
8 |
9 | /.quarto/
10 |
--------------------------------------------------------------------------------
/wiki/Screen Shot 2022-01-06 at 5.43.57 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Screen Shot 2022-01-06 at 5.43.57 PM.png
--------------------------------------------------------------------------------
/_book/site_libs/bootstrap/bootstrap-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/_book/site_libs/bootstrap/bootstrap-icons.woff
--------------------------------------------------------------------------------
/wiki_step_5_6.md:
--------------------------------------------------------------------------------
1 | 5. .... To do this, go back to 'Settings' and click 'Secrets' then 'Actions'.
2 |
3 | 6. Click 'New Repositoy Secret' then Add a 'Secret' ...
4 |
5 | 
6 | - [Onboard Guide](onboarding.qmd) for new members
7 | - [Data Management Guide](data-management.qmd) for open science
8 | - [Notes on a Phd degree in the GCRG](phd_guide.qmd)
9 | - [Offboarding Guide](offboarding.qmd)
10 |
11 | It's also worth checking out our [Methods repo](https://github.com/pinskylab/pinskylab_methods), including our [Cookbook](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md) on how to solve common research problems we all face. We also have an older [Laboratory repo](https://pinskylab.github.io/laboratory/).
12 |
--------------------------------------------------------------------------------
/.github/workflows/quarto-publish.yml:
--------------------------------------------------------------------------------
1 | on:
2 | push:
3 | branches: master
4 |
5 | name: Render and Publish
6 |
7 | jobs:
8 | build-deploy:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Check out repository
12 | uses: actions/checkout@v2
13 |
14 | - name: Set up Quarto
15 | uses: quarto-dev/quarto-actions/setup@v2
16 | with:
17 | # To install LaTeX to build PDF book
18 | tinytex: true
19 | # uncomment below and fill to pin a version
20 | # version: 0.9.600
21 |
22 | - name: Publish to GitHub Pages (and render)
23 | uses: quarto-dev/quarto-actions/publish@v2
24 | with:
25 | target: gh-pages
26 | env:
27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this secret is always available for github actions
28 |
--------------------------------------------------------------------------------
/_quarto.yml:
--------------------------------------------------------------------------------
1 | project:
2 | type: book
3 | output-dir: _book
4 |
5 | book:
6 | title: "Global Change Research Group How We Work"
7 | author: "Roy Roberts"
8 | date: last-modified
9 | description: "This is the lab manual for the Global Change Research Group at the University of California Santa Cruz"
10 |
11 | page-footer:
12 | left: |
13 | Global Change Research Group
14 | right: |
15 | This book was built with Quarto .
16 | site-url: https://pinskylab.github.io/how_we_work/
17 | repo-url: https://github.com/pinskylab/how_we_work/
18 | repo-actions: [edit,issue]
19 |
20 | chapters:
21 | - index.qmd
22 | - working_agreement.qmd
23 | - onboarding.qmd
24 | - data-management.qmd
25 | - phd_guide.qmd
26 | - offboarding.qmd
27 |
28 |
29 |
30 | # not sure what the following line does; those files are present
31 | bibliography: [references.bib, book.bib]
32 |
33 |
--------------------------------------------------------------------------------
/references.bib:
--------------------------------------------------------------------------------
1 |
2 | @article{lowndes2017,
3 | title = {Our path to better science in less time using open data science tools},
4 | author = {Lowndes, Julia S. Stewart and Best, Benjamin D. and Scarborough, Courtney and Afflerbach, Jamie C. and Frazier, Melanie R. and {O{\textquoteright}Hara}, Casey C. and Jiang, Ning and Halpern, Benjamin S.},
5 | year = {2017},
6 | month = {05},
7 | date = {2017-05-23},
8 | journal = {Nature Ecology & Evolution},
9 | volume = {1},
10 | number = {6},
11 | doi = {10.1038/s41559-017-0160},
12 | url = {http://dx.doi.org/10.1038/s41559-017-0160},
13 | langid = {en}
14 | }
15 |
16 | @article{wilson2017,
17 | title = {Good enough practices in scientific computing},
18 | author = {Wilson, Greg and Bryan, Jennifer and Cranston, Karen and Kitzes, Justin and Nederbragt, Lex and Teal, Tracy K.},
19 | editor = {Ouellette, Francis},
20 | year = {2017},
21 | month = {06},
22 | date = {2017-06-22},
23 | journal = {PLOS Computational Biology},
24 | pages = {e1005510},
25 | volume = {13},
26 | number = {6},
27 | doi = {10.1371/journal.pcbi.1005510},
28 | url = {http://dx.doi.org/10.1371/journal.pcbi.1005510},
29 | langid = {en}
30 | }
31 |
--------------------------------------------------------------------------------
/_book/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | https://pinskylab.github.io/how_we_work/index.html
5 | 2025-02-28T23:59:40.542Z
6 |
7 |
8 | https://pinskylab.github.io/how_we_work/working_agreement.html
9 | 2025-02-28T23:59:41.196Z
10 |
11 |
12 | https://pinskylab.github.io/how_we_work/onboarding.html
13 | 2025-03-11T20:58:22.491Z
14 |
15 |
16 | https://pinskylab.github.io/how_we_work/data-management.html
17 | 2025-03-11T19:09:30.125Z
18 |
19 |
20 | https://pinskylab.github.io/how_we_work/phd_guide.html
21 | 2025-02-28T23:59:40.557Z
22 |
23 |
24 | https://pinskylab.github.io/how_we_work/DataBackupPlan.html
25 | 2025-02-28T23:59:40.487Z
26 |
27 |
28 | https://pinskylab.github.io/how_we_work/offboarding.html
29 | 2025-02-28T23:59:40.544Z
30 |
31 |
32 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-html/tippy.css:
--------------------------------------------------------------------------------
1 | .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
--------------------------------------------------------------------------------
/index.qmd:
--------------------------------------------------------------------------------
1 | # Welcome!
2 |
3 |
4 | This is the lab manual for the Global Change Research Group at the University of California, Santa Cruz. We study how species adapt to rapidly changing environments to inform global stewardship and train the next generation of scientific leaders. More about our group's research can be found on our [website](https://globalchange.sites.ucsc.edu/){target="_blank"}.
5 |
6 | This lab manual resource is intended to provide an overview for lab members and others about how we do our work, and our expectations for our team. It is also a space to document institutional knowledge and for important information about procedures and available resources. Lab protocol and methods can be found in a separate book [Pinsky Lab Methods](https://github.com/pinskylab/pinskylab_methods){target="_blank"}.
7 |
8 | This book is based on the [Feylab Lab Manual](https://thefaylab.github.io/lab-manual/){target="_blank"}. Because this repo existed proir, the Feylab Lab Manual repo was not forked and instead the structure and format were imitated. If interested in creating a similar please visit the [Feylab Lab Manual Repo](https://github.com/thefaylab/lab-manual){target="_blank"} or see [Quick steps to making a copy of the lab manual and publishing it](https://github.com/thefaylab/lab-manual/wiki/Quick-steps-to-making-a-copy-of-the-lab-manual-&-publishing-it){target="_blank"}!
9 |
10 | ------------------------------------------------------------------------
11 |
12 | [](http://creativecommons.org/licenses/by/4.0/){fig-alt="Creative Commons License"}This lab is licensed under a [Creative Commons Attribution 4.0 International License.](http://creativecommons.org/licenses/by/4.0/){target="_blank"}
13 |
--------------------------------------------------------------------------------
/README_FeyLab.md:
--------------------------------------------------------------------------------
1 |
2 | :sparkles: Welcome to the Faylab Lab Manual! :sparkles:
3 |
4 |
5 |
6 | This ~~bookdown~~ Quarto book is intended to be used for **incoming, current, and outgoing** members of the Fay lab group. If we missed anything, please let Gavin Fay (gfay@umassd.edu) or Madeleine Guyant (mguyant@umassd.edu) know. You can also do a pull request and we will review the changes.
7 |
8 | We hope this has all the answers you need!
9 |
10 |
11 | __Want to adapt the lab manual for your group?__ This [short tutorial](https://github.com/thefaylab/lab-manual/wiki/Quick-steps-to-making-a-copy-of-the-lab-manual-&-publishing-it) steps through how to make your own copy of the lab manual repository and set it up so that it automatically publishes the book to the web (and updates as you make changes).
12 |
13 | **Acknowledgements**
14 |
15 | The content for this book was developed as part of our group’s participation in the Openscapes Champions program.
16 | We are extremely grateful to and acknowledge [Dr. Julia Stewart Lowndes](https://github.com/jules32)’ role in helping shape how our lab both works and how we articulate our identity. 🙏
17 | Thanks also to [Ileana Fenwick](https://github.com/IleanaF) and [Stefanie Butland](https://github.com/stefaniebutland) for their work moving the lab-manual from bookdown to Quarto. 🙌
18 |
19 | ---
20 |
21 | The Faylab Lab Manual is licensed under a Creative Commons Attribution 4.0 International License .
22 |
23 |
24 |
--------------------------------------------------------------------------------
/offboarding.qmd:
--------------------------------------------------------------------------------
1 | Offboarding
2 | ================
3 |
4 | With thanks to the [Bahlai lab](https://github.com/BahlaiLab) for the model and inspiration.
5 |
6 | General project documentation
7 | -----------------------------
8 | * Make sure each of your projects complies with our [Data Management Plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md)
9 |
10 | Data questions to consider
11 | --------------------------
12 | * Has the [Data Management Policy](https://github.com/pinskylab/how_we_work/blob/master/data-management.md) been taken into consideration?
13 | * Is all data backed up in locations accessible to the lab?
14 | * Is all metadata accessible?
15 | * Are all scripts well documented?
16 |
17 | Other
18 | ----
19 | 1. Turn in keys
20 | 1. Turn in computer or other equipment
21 | 1. Return books
22 |
23 | Exit interview
24 | --------------
25 | Set up a time to talk with your mentor about:
26 | 1. What was the best part of being here?
27 | 1. What did you learn while you were here?
28 | 1. Did you get the support you needed, or could we have been better at it?
29 | 1. What can we improve for mentoring someone in your position in the future?
30 |
31 | Write-up (for undergrads)
32 | -------------------------
33 | Write up a summary of your work with the following components:
34 | 1. Goals of the project
35 | 1. Methods
36 | * detailed enough that someone could replicate your work
37 | * explain any decisions you made and why
38 | * link to and describe the input data for the project
39 | * link to the project outputs
40 | * include descriptions of metadata, any column headers in data sheets
41 | 1. Summary of findings
42 | 1. Potential next steps (could be a starting point for you at a later point or someone else)
43 | The write-up can be a markdown document within your repository or a Google Doc. If you use a Google Doc, please link to it from the README within the repository, make sure the settings are such that anyone with the link can access it, and upload a saved pdf version to the repository.
44 |
--------------------------------------------------------------------------------
/Chemicals in the Lab.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Chemicals in the Lab"
3 | format: html
4 | editor: visual
5 | ---
6 | Welcome!
7 | ==========
8 | This page has information regarding chemicals that can be found within the Pinsky Lab.
9 |
10 | A.1 Chemical Safety
11 | ----------
12 | [Chemical Spill information](https://ehs.ucsc.edu/programs/research-safety/lab-emergency-guidelines.html#chemical)
13 |
14 | [Personal Injury Response with Chemical Spills](https://ehs.ucsc.edu/programs/research-safety/lab-emergency-guidelines.html#personal-injury)
15 |
16 | [Injury Response and Management](https://ehs.ucsc.edu/lab-safety-manual/exp-acc-emerg.html#Injury)
17 |
18 | If an accident or near-miss happens, please report it using the [UCSC EH&S Incident Reporting Form](https://docs.google.com/forms/d/e/1FAIpQLSfZj7xQVDT_UArCsGQHkMi30q2qj3MLUE1-1e9TjvmWKavJ0g/viewform)
19 |
20 | As per CalOSHA regulations, we have [Safety Data Sheets](https://ehs.ucop.edu/sds/#/) readily available
21 |
22 | A.2 Chemical Recipes
23 | ----------
24 | Everything you should need will be found in the
25 | [Chemical Recipe Google Doc](https://docs.google.com/document/d/1icJzzbUOlbbLN221T4c9fG3M7Rr6MUjOG8mMEJoAjzA/edit?usp=sharing)
26 |
27 | A.3 Recycling Silica Beads
28 | ----------
29 | 1. One bag at a time pour beads into strainer
30 | 2. Pick through with forceps and remove anything that isn’t silica gel and silica with residue
31 | 3. Slowly transfer beads from strainer to baking pan or box, still working on that, and while pouring scan for missed debris
32 | 4. Take care not to over fill pan
33 | 5. After filling, place a paper towel over the beads and move the pan to the drying oven set at 75 C. Let dry overnight.
34 | 6. Based on testing 75 C for a longer period of time is fine. All the beads go back to the nice orange color
35 | 7. Remove the tray of beads from the drying oven and place into the “Used Not Sterilized” bead container. If left out they will start to collect moisture immediately
36 | 8. When ready to make sampling kits weigh out 40 g of beads and place into a ziploc bag.
37 | 9. Do not put hot beads in ziploc bags they will melt straight through it
38 | 10. Perform UV sterilization for each bag making sure that beads are not overlapping
39 | ----------
40 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | Fonts css from Alison Hill:
4 | Lato (headers)
5 | Noto Serif (body)
6 | Fira Code (code)
7 | Sofia (script)
8 | */
9 |
10 | @import url(https://fonts.googleapis.com/css?family=Lato);
11 | @import url(https://fonts.googleapis.com/css?family=Inconsolata:400,700);
12 | @import url(https://fonts.googleapis.com/css?family=Noto+Serif);
13 | @import url(https://fonts.googleapis.com/css?family=Sofia);
14 |
15 |
16 | @font-face{
17 | font-family: 'Fira Code';
18 | src: url('eot/FiraCode-Light.eot');
19 | src: url('eot/FiraCode-Light.eot') format('embedded-opentype'),
20 | url('woff2/FiraCode-Light.woff2') format('woff2'),
21 | url('woff/FiraCode-Light.woff') format('woff'),
22 | url('ttf/FiraCode-Light.ttf') format('truetype');
23 | font-weight: 300;
24 | font-style: normal;
25 | }
26 |
27 | @font-face{
28 | font-family: 'Fira Code';
29 | src: url('eot/FiraCode-Regular.eot');
30 | src: url('eot/FiraCode-Regular.eot') format('embedded-opentype'),
31 | url('woff2/FiraCode-Regular.woff2') format('woff2'),
32 | url('woff/FiraCode-Regular.woff') format('woff'),
33 | url('ttf/FiraCode-Regular.ttf') format('truetype');
34 | font-weight: 400;
35 | font-style: normal;
36 | }
37 |
38 | @font-face{
39 | font-family: 'Fira Code';
40 | src: url('eot/FiraCode-Medium.eot');
41 | src: url('eot/FiraCode-Medium.eot') format('embedded-opentype'),
42 | url('woff2/FiraCode-Medium.woff2') format('woff2'),
43 | url('woff/FiraCode-Medium.woff') format('woff'),
44 | url('ttf/FiraCode-Medium.ttf') format('truetype');
45 | font-weight: 500;
46 | font-style: normal;
47 | }
48 |
49 | @font-face{
50 | font-family: 'Fira Code';
51 | src: url('eot/FiraCode-Bold.eot');
52 | src: url('eot/FiraCode-Bold.eot') format('embedded-opentype'),
53 | url('woff2/FiraCode-Bold.woff2') format('woff2'),
54 | url('woff/FiraCode-Bold.woff') format('woff'),
55 | url('ttf/FiraCode-Bold.ttf') format('truetype');
56 | font-weight: 700;
57 | font-style: normal;
58 | }
59 |
60 | body {
61 | font-family: 'Noto Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif;
62 | }
63 |
64 | h1, h2, h3 {
65 | font-family: 'Lato';
66 | }
67 |
68 |
69 | p.caption {
70 | color: #777;
71 | margin-top: 10px;
72 | }
73 | p code {
74 | white-space: inherit;
75 | }
76 | pre {
77 | word-break: normal;
78 | word-wrap: normal;
79 | }
80 | pre code {
81 | white-space: inherit;
82 | }
83 |
84 |
85 |
--------------------------------------------------------------------------------
/packages.bib:
--------------------------------------------------------------------------------
1 | @Manual{R-base,
2 | title = {R: A Language and Environment for Statistical Computing},
3 | author = {{R Core Team}},
4 | organization = {R Foundation for Statistical Computing},
5 | address = {Vienna, Austria},
6 | year = {2019},
7 | url = {https://www.R-project.org/},
8 | }
9 | @Manual{R-bookdown,
10 | title = {bookdown: Authoring Books and Technical Documents with R Markdown},
11 | author = {Yihui Xie},
12 | year = {2019},
13 | note = {R package version 0.16},
14 | url = {https://CRAN.R-project.org/package=bookdown},
15 | }
16 | @Manual{R-knitr,
17 | title = {knitr: A General-Purpose Package for Dynamic Report Generation in R},
18 | author = {Yihui Xie},
19 | year = {2019},
20 | note = {R package version 1.26},
21 | url = {https://CRAN.R-project.org/package=knitr},
22 | }
23 | @Manual{R-rmarkdown,
24 | title = {rmarkdown: Dynamic Documents for R},
25 | author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone},
26 | year = {2019},
27 | note = {R package version 1.18},
28 | url = {https://CRAN.R-project.org/package=rmarkdown},
29 | }
30 | @Book{bookdown2016,
31 | title = {bookdown: Authoring Books and Technical Documents with {R} Markdown},
32 | author = {Yihui Xie},
33 | publisher = {Chapman and Hall/CRC},
34 | address = {Boca Raton, Florida},
35 | year = {2016},
36 | note = {ISBN 978-1138700109},
37 | url = {https://github.com/rstudio/bookdown},
38 | }
39 | @Book{knitr2015,
40 | title = {Dynamic Documents with {R} and knitr},
41 | author = {Yihui Xie},
42 | publisher = {Chapman and Hall/CRC},
43 | address = {Boca Raton, Florida},
44 | year = {2015},
45 | edition = {2nd},
46 | note = {ISBN 978-1498716963},
47 | url = {https://yihui.name/knitr/},
48 | }
49 | @InCollection{knitr2014,
50 | booktitle = {Implementing Reproducible Computational Research},
51 | editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng},
52 | title = {knitr: A Comprehensive Tool for Reproducible Research in {R}},
53 | author = {Yihui Xie},
54 | publisher = {Chapman and Hall/CRC},
55 | year = {2014},
56 | note = {ISBN 978-1466561595},
57 | url = {http://www.crcpress.com/product/isbn/9781466561595},
58 | }
59 | @Book{rmarkdown2018,
60 | title = {R Markdown: The Definitive Guide},
61 | author = {Yihui Xie and J.J. Allaire and Garrett Grolemund},
62 | publisher = {Chapman and Hall/CRC},
63 | address = {Boca Raton, Florida},
64 | year = {2018},
65 | note = {ISBN 9781138359338},
66 | url = {https://bookdown.org/yihui/rmarkdown},
67 | }
68 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-html/quarto-syntax-highlighting-2f5df379a58b258e96c21c0638c20c03.css:
--------------------------------------------------------------------------------
1 | /* quarto syntax highlight colors */
2 | :root {
3 | --quarto-hl-ot-color: #003B4F;
4 | --quarto-hl-at-color: #657422;
5 | --quarto-hl-ss-color: #20794D;
6 | --quarto-hl-an-color: #5E5E5E;
7 | --quarto-hl-fu-color: #4758AB;
8 | --quarto-hl-st-color: #20794D;
9 | --quarto-hl-cf-color: #003B4F;
10 | --quarto-hl-op-color: #5E5E5E;
11 | --quarto-hl-er-color: #AD0000;
12 | --quarto-hl-bn-color: #AD0000;
13 | --quarto-hl-al-color: #AD0000;
14 | --quarto-hl-va-color: #111111;
15 | --quarto-hl-bu-color: inherit;
16 | --quarto-hl-ex-color: inherit;
17 | --quarto-hl-pp-color: #AD0000;
18 | --quarto-hl-in-color: #5E5E5E;
19 | --quarto-hl-vs-color: #20794D;
20 | --quarto-hl-wa-color: #5E5E5E;
21 | --quarto-hl-do-color: #5E5E5E;
22 | --quarto-hl-im-color: #00769E;
23 | --quarto-hl-ch-color: #20794D;
24 | --quarto-hl-dt-color: #AD0000;
25 | --quarto-hl-fl-color: #AD0000;
26 | --quarto-hl-co-color: #5E5E5E;
27 | --quarto-hl-cv-color: #5E5E5E;
28 | --quarto-hl-cn-color: #8f5902;
29 | --quarto-hl-sc-color: #5E5E5E;
30 | --quarto-hl-dv-color: #AD0000;
31 | --quarto-hl-kw-color: #003B4F;
32 | }
33 |
34 | /* other quarto variables */
35 | :root {
36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
37 | }
38 |
39 | pre > code.sourceCode > span {
40 | color: #003B4F;
41 | }
42 |
43 | code span {
44 | color: #003B4F;
45 | }
46 |
47 | code.sourceCode > span {
48 | color: #003B4F;
49 | }
50 |
51 | div.sourceCode,
52 | div.sourceCode pre.sourceCode {
53 | color: #003B4F;
54 | }
55 |
56 | code span.ot {
57 | color: #003B4F;
58 | font-style: inherit;
59 | }
60 |
61 | code span.at {
62 | color: #657422;
63 | font-style: inherit;
64 | }
65 |
66 | code span.ss {
67 | color: #20794D;
68 | font-style: inherit;
69 | }
70 |
71 | code span.an {
72 | color: #5E5E5E;
73 | font-style: inherit;
74 | }
75 |
76 | code span.fu {
77 | color: #4758AB;
78 | font-style: inherit;
79 | }
80 |
81 | code span.st {
82 | color: #20794D;
83 | font-style: inherit;
84 | }
85 |
86 | code span.cf {
87 | color: #003B4F;
88 | font-weight: bold;
89 | font-style: inherit;
90 | }
91 |
92 | code span.op {
93 | color: #5E5E5E;
94 | font-style: inherit;
95 | }
96 |
97 | code span.er {
98 | color: #AD0000;
99 | font-style: inherit;
100 | }
101 |
102 | code span.bn {
103 | color: #AD0000;
104 | font-style: inherit;
105 | }
106 |
107 | code span.al {
108 | color: #AD0000;
109 | font-style: inherit;
110 | }
111 |
112 | code span.va {
113 | color: #111111;
114 | font-style: inherit;
115 | }
116 |
117 | code span.bu {
118 | font-style: inherit;
119 | }
120 |
121 | code span.ex {
122 | font-style: inherit;
123 | }
124 |
125 | code span.pp {
126 | color: #AD0000;
127 | font-style: inherit;
128 | }
129 |
130 | code span.in {
131 | color: #5E5E5E;
132 | font-style: inherit;
133 | }
134 |
135 | code span.vs {
136 | color: #20794D;
137 | font-style: inherit;
138 | }
139 |
140 | code span.wa {
141 | color: #5E5E5E;
142 | font-style: italic;
143 | }
144 |
145 | code span.do {
146 | color: #5E5E5E;
147 | font-style: italic;
148 | }
149 |
150 | code span.im {
151 | color: #00769E;
152 | font-style: inherit;
153 | }
154 |
155 | code span.ch {
156 | color: #20794D;
157 | font-style: inherit;
158 | }
159 |
160 | code span.dt {
161 | color: #AD0000;
162 | font-style: inherit;
163 | }
164 |
165 | code span.fl {
166 | color: #AD0000;
167 | font-style: inherit;
168 | }
169 |
170 | code span.co {
171 | color: #5E5E5E;
172 | font-style: inherit;
173 | }
174 |
175 | code span.cv {
176 | color: #5E5E5E;
177 | font-style: italic;
178 | }
179 |
180 | code span.cn {
181 | color: #8f5902;
182 | font-style: inherit;
183 | }
184 |
185 | code span.sc {
186 | color: #5E5E5E;
187 | font-style: inherit;
188 | }
189 |
190 | code span.dv {
191 | color: #AD0000;
192 | font-style: inherit;
193 | }
194 |
195 | code span.kw {
196 | color: #003B4F;
197 | font-weight: bold;
198 | font-style: inherit;
199 | }
200 |
201 | .prevent-inlining {
202 | content: "";
203 | }
204 |
205 | /*# sourceMappingURL=35eb38a806ee71ea6d2563be2308c832.css.map */
206 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-nav/headroom.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
3 | * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
4 | * License: MIT
5 | */
6 |
7 | !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=ls.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
8 |
--------------------------------------------------------------------------------
/working_agreement.qmd:
--------------------------------------------------------------------------------
1 |
2 | # Working Agreement
3 | ## Values
4 |
5 | 1. Being nice and working hard
6 | - We work to be considerate in our speech and actions, and to actively acknowledge and respect the boundaries and experiences of fellow community members.
7 | - We work to make time for others while also respecting others' time
8 | - We try our best, while recognizing that our best can change daily
9 | 2. We love science and we love life outside science
10 | - We encourage everyone to stay connected to what excites you about your work: explore and stay curious!
11 | - We value taking time for personal life so we can be our best self at work
12 | - We work to prioritize the physical and mental health of ourselves and others
13 | 3. Collaboration & sharing
14 | - We are a team: our colleagues are our resources, and in return, we are resources for our colleagues
15 | - We work to normalize asking for help and to offer help generously
16 | - We aim to be clear and concise - ambiguity causes confusion
17 | - We actively work to collaborate with local communities in and around our research sites
18 | 4. Being present
19 | - We prioritize working in person and showing up at group events to help build our community and to support each other
20 | - We know extra effort is needed to help remote group members be included
21 | - We pay attention when others speak
22 | - We work to ensure all voices are heard
23 | 5. Normalizing "I don't know yet"
24 | - Don’t know? That’s okay! We’re all here to learn, no matter what our career stage.
25 | - At the same time, we assume competence and actively recognize the wide range of expertise we each bring
26 | 6. Credit and responsibility
27 | - We celebrate our own successes and those around us!
28 | - We have intentional and early conversations around credit and authorship.
29 | - We all make mistakes. Please be honest and open when it happens.
30 | - If you see a problem, please speak up respectfully so that we all can try to find a solution.
31 | 7. Supporting a diverse environment
32 | - Please be open to others perspectives, engage with them, and be willing to revise your own
33 | - We work to vocally support diverse perspectives
34 | - To specifically amplify the work of researchers from underrepresented groups, we've committed to
35 | - Discussing an article about systemic barriers or racism at least twice a year during lab meetings. Everyone is encouraged to lead a discussion
36 | - Engaging in a lab discussion regarding systemic problems within the field of ecology and evolutionary biology or within graduate school (i.e., decolonizing conservation, systemic barriers and racism within the field of ecology, history of racism against BIPOC communities in genomics)
37 | - Prioritize the citation of underrepresented authors in our writings
38 | - Attend talks by underrepresented scientists at conferences and share the names of the speakers you enjoyed to use as inspiration for future seminar invitations and paper discussions
39 | - Acknowledge our occupation of land that is the unceded territory of the Awaswas-speaking Uypi Tribe.
40 | - We will have biannual lab meetings to discuss our progress and future work in Diversity, Equity, Inclusion & Belonging
41 | - We will be aware and acknowledge our positionalities and privileges that we hold.
42 | 8. Sharing our science outside of academia
43 | - We value community service, outreach to non-scientists audiences, and mentoring of early-career scientists
44 |
45 | ## Process
46 |
47 | 1. Meetings
48 | - Please come prepared and take notes (we often use shared Google docs)
49 | - Please set and follow an agenda
50 | - Please start and end on time
51 | - Check in regularly about the whole person
52 | 2. Group meetings
53 | - We have weekly group meetings and expect everyone in the group to attend.
54 | 3. Lab listener
55 | - A volunteer group member each quarter who observes and promotes healthy lab dynamics
56 | - An unofficial contact for concerns within the research group
57 | - Will schedule meetings with Malin as needed for issues and updates
58 | 4. This document
59 | - This document is always in progress: please suggest changes where you see fit!
60 | - We will revisit this document at the beginning of each Fall quarter
61 | 5. Project management
62 | - Please set realistic deadlines, then revise them in communication with others
63 | - It helps to break projects into smaller pieces
64 | - We do science openly, transparently, and reproducibly (see OpenScapes guides and [our data management plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md))
65 | 6. Problems
66 | - To report an issue please contact Malin. All communication will be treated as confidential to the extent possible (sexual harrassment and related concerns have to be reported, per [university policy](https://titleix.ucsc.edu/reporting/index.html)
67 | - If you aren't comfortable speaking to Malin:
68 | - contact the Lab Listener
69 | - contact the graduate program coordinator: Judy Straub (UCSC) or Shaneika Nelson (Rutgers)
70 | - If the grad student coordinator does not sound like the correct point of contact, UCSC has many resources available to you, including:
71 | - [Counseling & Psychological Services](https://caps.ucsc.edu/)
72 | - [Slug Support](https://deanofstudents.ucsc.edu/slug-support/program/graduate-students.html)
73 | - [Student Conduct](https://deanofstudents.ucsc.edu/student-conduct/index.html)
74 | - [CARE](https://care.ucsc.edu/)
75 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-html/anchor.min.js:
--------------------------------------------------------------------------------
1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2 | //
3 | // AnchorJS - v5.0.0 - 2023-01-18
4 | // https://www.bryanbraun.com/anchorjs/
5 | // Copyright (c) 2023 Bryan Braun; Licensed MIT
6 | //
7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
9 | // @license-end
--------------------------------------------------------------------------------
/data-management.qmd:
--------------------------------------------------------------------------------
1 | # GCRG Lab Data Management Plan
2 |
3 | The Global Change Research Group strives for an open science policy that makes our science accessible and reproducible and that allows us to collaborate with our future selves and with our colleagues. To assist in achieving that aim, we use the following practices.
4 |
5 |
6 | ## Key resources
7 | 1. Lab notebook
8 | 1. Shared Google Drive (Global Change Research Group)
9 | 1. GitHub repository
10 | 1. Working location (laptop, scientific workstation, cluster, etc.)
11 | 1. Backup location (Bishop, a PbSci storage server that is backed up offsite. This may change to Rufus, a different storage server, in the future.)
12 |
13 | ## Project organization
14 |
15 | 1. Lab notebooks are maintained each day; tracking progress, daily learnings, what was accomplished, and/or what goal was worked towards. These can be physical notebooks, text files, Evernote, Jupyter notebooks, etc.
16 | 1. Lab notebooks are digitally backed up, regardless of initial format
17 |
18 | 1. Each new project gets a GitHub repository in the [pinskylab organization](https://github.com/pinskylab)
19 | 1. This practice facilitates collaboration, sharing, data traceability, and maintenance of institutional knowledge.
20 | 1. Repos can be public or private
21 | 2. A [CITATION.cff](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files) clarifies how to cite the repo. We apply authorship criteria similarly as for papers (e.g., first author is the lead).
22 | 1. Data processing is accomplished through the use of scripts, not manual manipulation
23 | 1. This helps to verify the reproducibility of our methods
24 | 1. A README.md in each directory (including the top directory)
25 | 1. explains the purpose of each file and sub-directory
26 | 1. includes links to relevant papers and preprints
27 | 1. has contact information for authors and data creators, as necessary
28 | 1. defines data columns, including units, of any data files and basic methods used for data collection
29 | 1. has version numbers of any software or packages needed for running codes or scripts
30 | 1. If the repo is included in a publication, we also archive it with a DOI on, for example, [Zenodo](https://www.zenodo.org) (see [here](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md#archiving-a-git-repo-with-zenodo-for-a-publication) for instructions).
31 | 2. We add a license to each git repo, e.g., MIT or CC BY-NC 4.0, to clarify how the material can be reused. See guidance from [Creative Commons](https://creativecommons.org/share-your-work/cclicenses/), [Github](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository), and [R Packages book](https://r-pkgs.org/license.html#code-you-write).
32 | 3. We write collaborative manuscripts in the GCRG Shared Google Drive
33 | 4. Presentations are typically made in Google Slides in the GCRG Google Drive (Presentations/) allowing lab members easy access to useful graphics
34 | 1. Name the file in the format YYYY-MM-DD_presentername_occasion, eg, 2023-01-07_Pinsky_AmNat
35 | 5. Before matriculation, we ensure all projects, code, data, papers, etc. are available and fully documented
36 |
37 | ## Data
38 | Data used in support of a project is:
39 |
40 | 1. Saved in an appropriate, non-proprietary format with accompanying metadata (e.g., csv rather than Excel)
41 | 1. Raw data is stored in or linked from the GitHub repository associated with the project
42 | 1. Raw data files under the Github file size limit (<100MB) are stored in a data/ directory
43 | 1. Larger files are stored in a data_largefiles/ directory (not tracked by Git by using the .gitignore file) in at least two places
44 | - where the analysis is occurring (e.g., laptop or scientific workstation), and
45 | - either one of (we document this arrangement clearly in the relevant data_largefiles/README.md file of the git repo):
46 | - on [FigShare](https://figshare.com/), linked from the relevant GitHub readme.
47 | - on NCBI for raw sequencing reads. Upload them soon after receiving, possibly with an embargo, with the accession numbers documented in the relevant README.md.
48 | - another public data repository, with a link pointing to the data from the git readme.
49 | - if FigShare, NCBI, or other public data repositories are not appropriate, we can use the UCSC PbSci Bishop data server. Data is stored in bio-globalchange/data_largefiles/ in a subdirectory whose name matches the Git repo name.
50 | 1. If data from an external or public source is being used, it is stored in a data_dl/ directory (not tracked by Git). We clearly and unambiguously describe the data source in the data_dl/README.md file by providing links, version numbers, descriptions for access/download, or other details to ensure reproducibility. If you're worried the data won't be available in the future, follow one of the two previous bullet point approaches.
51 | 3. Metadata is stored in the same directory as the raw data, typically in a README.md file that describes the data in each column, units, coordinate reference system (CRS, for GIS data), and other details needed to understand the file
52 | 4. Processed or cleaned data is stored in a separate directory, e.g., output/ or similar, to differentiate from raw data
53 |
54 |
55 | ## Code
56 | All code used or developed in support of the project is:
57 |
58 | 1. Well commented and complete
59 | 1. Versioned in the project's git repository
60 | 1. Described in the README.md file to explain what each script does, what language was used, what software and package versions were used, etc.
61 | 1. Tested! Can at least one other person (more is better) complete your analysis on a different computer?
62 |
63 | ## Backups
64 | We store our raw data and scripts in at least two locations.
65 |
66 | 1. Most of our work is on Github or Google Drive. Both are backed up monthly to the UCSC PbSci Bishop file server.
67 | 1. Raw data files too large for Github and Drive are stored in two locations (see Data section above)
68 |
69 | ## Hummingbird
70 |
71 | ### Accessing Humminbird
72 |
73 | 1. Your Hummingbird information is your CruzID and your Gold password
74 | ```bash
75 | ssh CRUZID@hb.ucsc.edu
76 | ```
77 | 1. other stuff
78 |
--------------------------------------------------------------------------------
/_book/site_libs/clipboard/clipboard.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * clipboard.js v2.0.11
3 | * https://clipboardjs.com/
4 | *
5 | * Licensed MIT © Zeno Rocha
6 | */
7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1 {
9 | const annEl = window.document.getElementById("quarto-announcement");
10 | if (annEl) {
11 | annEl.remove();
12 |
13 | const annId = annEl.getAttribute("data-announcement-id");
14 | window.localStorage.setItem(`quarto-announce-${annId}`, "true");
15 | }
16 | };
17 |
18 | const announceRegister = () => {
19 | const annEl = window.document.getElementById("quarto-announcement");
20 | if (annEl) {
21 | const annId = annEl.getAttribute("data-announcement-id");
22 | const isDismissed =
23 | window.localStorage.getItem(`quarto-announce-${annId}`) || false;
24 | if (isDismissed) {
25 | announceDismiss();
26 | return;
27 | } else {
28 | annEl.classList.remove("hidden");
29 | }
30 |
31 | const actionEl = annEl.querySelector(".quarto-announcement-action");
32 | if (actionEl) {
33 | actionEl.addEventListener("click", function (e) {
34 | e.preventDefault();
35 | // Hide the bar immediately
36 | announceDismiss();
37 | });
38 | }
39 | }
40 | };
41 |
42 | window.document.addEventListener("DOMContentLoaded", function () {
43 | let init = false;
44 |
45 | announceRegister();
46 |
47 | // Manage the back to top button, if one is present.
48 | let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
49 | const scrollDownBuffer = 5;
50 | const scrollUpBuffer = 35;
51 | const btn = document.getElementById("quarto-back-to-top");
52 | const hideBackToTop = () => {
53 | btn.style.display = "none";
54 | };
55 | const showBackToTop = () => {
56 | btn.style.display = "inline-block";
57 | };
58 | if (btn) {
59 | window.document.addEventListener(
60 | "scroll",
61 | function () {
62 | const currentScrollTop =
63 | window.pageYOffset || document.documentElement.scrollTop;
64 |
65 | // Shows and hides the button 'intelligently' as the user scrolls
66 | if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
67 | hideBackToTop();
68 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
69 | } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
70 | showBackToTop();
71 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
72 | }
73 |
74 | // Show the button at the bottom, hides it at the top
75 | if (currentScrollTop <= 0) {
76 | hideBackToTop();
77 | } else if (
78 | window.innerHeight + currentScrollTop >=
79 | document.body.offsetHeight
80 | ) {
81 | showBackToTop();
82 | }
83 | },
84 | false
85 | );
86 | }
87 |
88 | function throttle(func, wait) {
89 | var timeout;
90 | return function () {
91 | const context = this;
92 | const args = arguments;
93 | const later = function () {
94 | clearTimeout(timeout);
95 | timeout = null;
96 | func.apply(context, args);
97 | };
98 |
99 | if (!timeout) {
100 | timeout = setTimeout(later, wait);
101 | }
102 | };
103 | }
104 |
105 | function headerOffset() {
106 | // Set an offset if there is are fixed top navbar
107 | const headerEl = window.document.querySelector("header.fixed-top");
108 | if (headerEl) {
109 | return headerEl.clientHeight;
110 | } else {
111 | return 0;
112 | }
113 | }
114 |
115 | function footerOffset() {
116 | const footerEl = window.document.querySelector("footer.footer");
117 | if (footerEl) {
118 | return footerEl.clientHeight;
119 | } else {
120 | return 0;
121 | }
122 | }
123 |
124 | function dashboardOffset() {
125 | const dashboardNavEl = window.document.getElementById(
126 | "quarto-dashboard-header"
127 | );
128 | if (dashboardNavEl !== null) {
129 | return dashboardNavEl.clientHeight;
130 | } else {
131 | return 0;
132 | }
133 | }
134 |
135 | function updateDocumentOffsetWithoutAnimation() {
136 | updateDocumentOffset(false);
137 | }
138 |
139 | function updateDocumentOffset(animated) {
140 | // set body offset
141 | const topOffset = headerOffset();
142 | const bodyOffset = topOffset + footerOffset() + dashboardOffset();
143 | const bodyEl = window.document.body;
144 | bodyEl.setAttribute("data-bs-offset", topOffset);
145 | bodyEl.style.paddingTop = topOffset + "px";
146 |
147 | // deal with sidebar offsets
148 | const sidebars = window.document.querySelectorAll(
149 | ".sidebar, .headroom-target"
150 | );
151 | sidebars.forEach((sidebar) => {
152 | if (!animated) {
153 | sidebar.classList.add("notransition");
154 | // Remove the no transition class after the animation has time to complete
155 | setTimeout(function () {
156 | sidebar.classList.remove("notransition");
157 | }, 201);
158 | }
159 |
160 | if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
161 | sidebar.style.top = "0";
162 | sidebar.style.maxHeight = "100vh";
163 | } else {
164 | sidebar.style.top = topOffset + "px";
165 | sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
166 | }
167 | });
168 |
169 | // allow space for footer
170 | const mainContainer = window.document.querySelector(".quarto-container");
171 | if (mainContainer) {
172 | mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
173 | }
174 |
175 | // link offset
176 | let linkStyle = window.document.querySelector("#quarto-target-style");
177 | if (!linkStyle) {
178 | linkStyle = window.document.createElement("style");
179 | linkStyle.setAttribute("id", "quarto-target-style");
180 | window.document.head.appendChild(linkStyle);
181 | }
182 | while (linkStyle.firstChild) {
183 | linkStyle.removeChild(linkStyle.firstChild);
184 | }
185 | if (topOffset > 0) {
186 | linkStyle.appendChild(
187 | window.document.createTextNode(`
188 | section:target::before {
189 | content: "";
190 | display: block;
191 | height: ${topOffset}px;
192 | margin: -${topOffset}px 0 0;
193 | }`)
194 | );
195 | }
196 | if (init) {
197 | window.dispatchEvent(headroomChanged);
198 | }
199 | init = true;
200 | }
201 |
202 | // initialize headroom
203 | var header = window.document.querySelector("#quarto-header");
204 | if (header && window.Headroom) {
205 | const headroom = new window.Headroom(header, {
206 | tolerance: 5,
207 | onPin: function () {
208 | const sidebars = window.document.querySelectorAll(
209 | ".sidebar, .headroom-target"
210 | );
211 | sidebars.forEach((sidebar) => {
212 | sidebar.classList.remove("sidebar-unpinned");
213 | });
214 | updateDocumentOffset();
215 | },
216 | onUnpin: function () {
217 | const sidebars = window.document.querySelectorAll(
218 | ".sidebar, .headroom-target"
219 | );
220 | sidebars.forEach((sidebar) => {
221 | sidebar.classList.add("sidebar-unpinned");
222 | });
223 | updateDocumentOffset();
224 | },
225 | });
226 | headroom.init();
227 |
228 | let frozen = false;
229 | window.quartoToggleHeadroom = function () {
230 | if (frozen) {
231 | headroom.unfreeze();
232 | frozen = false;
233 | } else {
234 | headroom.freeze();
235 | frozen = true;
236 | }
237 | };
238 | }
239 |
240 | window.addEventListener(
241 | "hashchange",
242 | function (e) {
243 | if (
244 | getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
245 | ) {
246 | window.scrollTo(0, window.pageYOffset - headerOffset());
247 | }
248 | },
249 | false
250 | );
251 |
252 | // Observe size changed for the header
253 | const headerEl = window.document.querySelector("header.fixed-top");
254 | if (headerEl && window.ResizeObserver) {
255 | const observer = new window.ResizeObserver(() => {
256 | setTimeout(updateDocumentOffsetWithoutAnimation, 0);
257 | });
258 | observer.observe(headerEl, {
259 | attributes: true,
260 | childList: true,
261 | characterData: true,
262 | });
263 | } else {
264 | window.addEventListener(
265 | "resize",
266 | throttle(updateDocumentOffsetWithoutAnimation, 50)
267 | );
268 | }
269 | setTimeout(updateDocumentOffsetWithoutAnimation, 250);
270 |
271 | // fixup index.html links if we aren't on the filesystem
272 | if (window.location.protocol !== "file:") {
273 | const links = window.document.querySelectorAll("a");
274 | for (let i = 0; i < links.length; i++) {
275 | if (links[i].href) {
276 | links[i].dataset.originalHref = links[i].href;
277 | links[i].href = links[i].href.replace(/\/index\.html/, "/");
278 | }
279 | }
280 |
281 | // Fixup any sharing links that require urls
282 | // Append url to any sharing urls
283 | const sharingLinks = window.document.querySelectorAll(
284 | "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
285 | );
286 | for (let i = 0; i < sharingLinks.length; i++) {
287 | const sharingLink = sharingLinks[i];
288 | const href = sharingLink.getAttribute("href");
289 | if (href) {
290 | sharingLink.setAttribute(
291 | "href",
292 | href.replace("|url|", window.location.href)
293 | );
294 | }
295 | }
296 |
297 | // Scroll the active navigation item into view, if necessary
298 | const navSidebar = window.document.querySelector("nav#quarto-sidebar");
299 | if (navSidebar) {
300 | // Find the active item
301 | const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
302 | if (activeItem) {
303 | // Wait for the scroll height and height to resolve by observing size changes on the
304 | // nav element that is scrollable
305 | const resizeObserver = new ResizeObserver((_entries) => {
306 | // The bottom of the element
307 | const elBottom = activeItem.offsetTop;
308 | const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
309 |
310 | // The element height and scroll height are the same, then we are still loading
311 | if (viewBottom !== navSidebar.scrollHeight) {
312 | // Determine if the item isn't visible and scroll to it
313 | if (elBottom >= viewBottom) {
314 | navSidebar.scrollTop = elBottom;
315 | }
316 |
317 | // stop observing now since we've completed the scroll
318 | resizeObserver.unobserve(navSidebar);
319 | }
320 | });
321 | resizeObserver.observe(navSidebar);
322 | }
323 | }
324 | }
325 | });
326 |
--------------------------------------------------------------------------------
/onboarding.qmd:
--------------------------------------------------------------------------------
1 | Onboarding
2 | ================
3 | Welcome to the Global Change Research Group!
4 |
5 | - [To Do List](#to-do-list)
6 | - [Computing Resources](#computing-resources)
7 | - [Guides and tutorials](#guides-and-tutorials)
8 |
9 | There are a few items to take care of now that you have joined the lab.
10 |
11 | To Do List
12 | ----------
13 |
14 | 1. If you're at UCSC, read the [EEB resource guide](https://sites.google.com/ucsc.edu/eeb/home), especially the section on onboarding.
15 | 1. Read the [GCRG Working Agreement](https://github.com/pinskylab/how_we_work/blob/master/working_agreement.md).
16 | 2. If you're a PhD student, check out Malin's [Notes on a PhD Degree](phd_guide.qmd) (also has some useful postdoc-related resources)
17 | 1. Read the [GCRG Data Management Policy](https://github.com/pinskylab/policies/blob/master/data-management.md).
18 | 1. Get your keys and ID card through UCSC (talk with the EEB Grad Program Coordinator and/or the EEB Assistant Administrator). Add CBB 139 for the GCRG Molecular lab, a key for the CBB analytical labs if you're doing pop gen lab work, and a key for the CBB showers if you want.
19 | 1. Make a [GitHub](https://github.com/) account if you don't have one already.
20 | 1. Ask Roy to help you join our Google Spaces (General, Science Communication, DEIB, Climate Biogeography, Genomics, Random, Lab Meeting, Santa Cruz, Computing & Data, Conferences, Lab Website, Lab Space, and Help Coding) for messaging (a Slack equivalent), our shared google calendar, our [Github Organization](https://github.com/pinskylab), and the [GCRG mailing list (pinsky-lab@googlegroups.com)](https://groups.google.com/forum/#!forum/pinsky-lab) (talk to Roy Roberts).
21 | 1. Connect to the "Global Change Research Group" Shared Google Drive by asking Roy to share it with you.
22 | 1. Add your information to the "Global Change Research Group (GCRG) Members" google doc (in the top level of the Global Change Research Group shared drive)
23 | 1. Send your contact information, photo, and web address to Roy to add to our lab webpage [here](https://globalchange.sites.ucsc.edu/people/). If you don't have webpage, they can help you make a page on our website.
24 | 1. Write an [Independent Development Plan](https://myidp.sciencecareers.org), copy your IDP goals to a new google document in Shared Drive/How_we_work/Group_member_goals/ (see the template in the directory), share it with Malin, and set up a time to discuss it.
25 | 1. If you will be doing lab work, complete the safety training [here](https://sites.google.com/ucsc.edu/eeb/About-Coastal-Campus/environmental-health-safety).
26 | 1. Download and begin to maintain a reference manager. We recommend Zotero, as the free software interfaces well with both Microsoft Word and Google Docs. Download Zotero and browser plugin [here](https://www.zotero.org/download/).
27 | 1. Block out our weekly lab meeting time on your calendar, and when you're ready, sign up for a lab meeting. The easiest way to find the schedule for lab meetings is to look at the GCRG Lab Meeting space under Tasks and the linked google file should pop up.
28 | 1. Sign up for meetings with Malin about every two weeks. The link to his calendar is saved in the GCRG General space under Tasks.
29 | 2. If you're a postdoc, grad student, or staff, talk to Malin if you need an external monitor, harddrive for backups, or external keyboard or trackpad. We can usually provide what you need (funding-dependent).
30 | 1. Read through the relevant guides and tutorials below, depending on your experience.
31 | 2. Join the CBB Coffee Club (2nd floor kitchen) if that's relevant to you.
32 | 1. Spend some time exploring the resources on the GCRG Google Drive and Github Organization. Ask questions about anything that's confusing so that we can make it easier for others in the future!
33 |
34 | Computing Resources
35 | -------------------
36 | There are several computing resources available to serve your research computing needs.
37 |
38 | **Rutgers**
39 |
40 | | owner | name | partition name | number of cores | memory |
41 | |------------------------------|-------------|----------------|-----------------|--------|
42 | | SEBS | annotate2 | - | 112 + 8200 GPU | 1T |
43 | | SEBS | annotate-win| - | 18 | 500G |
44 | | OARC-Pinsky node 1 (hal0181) | amarel | p_mlp195 | 40 | 192G |
45 | | OARC-Pinsky node 2 (hal0186) | amarel | p_mlp195 | 40 | 192G |
46 | | OARC-Ecology node 1 (hal0280)| amarel | p_deenr_1 | 64 | 256G |
47 | | OARC-Ecology node 2 (hal0281)| amarel | p_deenr_1 | 64 | 256G |
48 | | OARC-EOAS node (hal0170) | amarel | p_eoas_1 | 40 | 192G |
49 | | OARC | amarel | main | ~19,000 | ? |
50 | | RDII | caliburn | - | 256 | 768G |
51 |
52 |
53 | **UCSC**
54 |
55 | | owner | name | partition name | number of cores | memory |
56 | |------------------------------|-------------|----------------|-----------------|--------|
57 | | PBSci | [Hummingbird](https://hummingbird.ucsc.edu/) | - | 24-64/node | up to 256GB/node |
58 | | Astrophysics | Lux | - | many | less |
59 | | PBSci | Bishop [archived data] | GlobalChange-bio/ [10TB]| NA | NA |
60 |
61 | *Various lab members have differing levels of experience with each of these servers and can help you figure out what is best for your analysis.*
62 | **Amarel** is a condo system. You only have to wait in line with other GCRG folks for the Pinsky node, you have to wait in line with other Ecology folks for the DEENR node, you have to wait in line with all of Rutgers folks for the other nodes.
63 |
64 | University Affiliated Listservs
65 | -------------------------------
66 | **UCSC**
67 |
68 | | Name | Listserv email | Contact Name| Contact email |
69 | |-------------------------------|-----------------------------------|-------------|----------------------------|
70 | | Global Change Research Group | pinsky-lab@googlegroups.com | Ryan Snow | |
71 | | Inst. for Marine Science | allmarsci@ucsc.edu | | |
72 | | EEB general announcements | eebmemo@ucsc.edu | Stephanie Zakarian | szak@ucsc.edu |
73 | | EEB jobs | eebjobs@ucsc.edu | Stephanie Zakarian | szak@ucsc.edu |
74 | | CBB coffee club | cbbcoffeeclub-group@ucsc.edu | Malin | mpinsky@ucsc.edu |
75 | | [Fisheries Collaborative Program](https://fisheries.ucsc.edu/) | fcp-group@ucsc.edu | Liane Bauer | lybauer@ucsc.edu |
76 |
77 | - Visit [here](https://mailman.marine.rutgers.edu/mailman/listinfo) for the full list of Rutgers Marine-related listservs
78 | - Visit [here](https://email.rutgers.edu/mailman/listinfo/) for a broad list of Rutgers listservs
79 |
80 |
81 | Guides and tutorials
82 | --------------------
83 |
84 | 1. Research practice
85 | - [The Openscapes Lesson Series](https://openscapes.github.io/series/): describes an approach to collaborative, reproducible science and culture within teams that underlies much of our group's approach as well
86 | - [GCRG Cookbook](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md) is a resource of how to's put together by lab members to help you past the occasional obstacle that we all seem to run into.
87 | - [How to maintain a research notebook](https://github.com/pinskylab/pinskylab_methods/blob/master/labmgt/how_to_lab_notebook.md)
88 | 2. Career development and time management
89 | - The NCFDD has very good advice on time management, developmenta, and more. Activate your account through UCSC [here](https://senate.ucsc.edu/committees/cca-committee-on-career-advising/faculty-career-resources/facultydevelopmentdiversity.html), including resources for [graduate students](https://www.ncfdd.org/dissertation-success-members).
90 | - Our internal guide to career exploration through informational interviews [here](https://docs.google.com/document/d/1a9fugAIbOm7FOpVz20j6yqjanqHpD-qDq6aK99iUGzQ/edit?usp=sharing)
91 | 1. [Command line tutorial](https://www.udacity.com/wiki/ud775/command-line-instructions) and [more help with the command line](https://classroom.udacity.com/courses/ud595/lessons/4597278561/concepts/46968695970923) (Udacity)
92 | 1. R
93 | 1. [Installing R and RStudio](https://rstudio-education.github.io/hopr/starting.html)
94 | 1. [Learn R with swirl](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiy_cfso8HhAhXETN8KHWo_CncQFjAAegQIAhAB&url=http%3A%2F%2Fswirlstats.com%2F&usg=AOvVaw3d7sWweo5vI4J_7LZ2Dl0I)
95 | 1. [R For Data Science](https://r4ds.hadley.nz/) (a very useful introduction to R)
96 | 1. Max Czapanskiy's [Data Science for Eco/Evo](https://flukeandfeather.github.io/BIOE215fall23/) from Fall 2023
97 | 1. [Santa Cruz R User Base group (SCRUBs)](https://drive.google.com/drive/folders/0ALYdEjtx2q6CUk9PVA) (need to request permission)
98 | 1. Git and GitHub
99 | 1. [Udacity Git and GitHub tutorial](https://classroom.udacity.com/courses/ud775)
100 | 2. [Happy Git with R tutorial](https://happygitwithr.com) (outside tutorial)
101 | 3. Ted Laderas and Chris Lo [course on git/GitHub](https://hutchdatascience.org/intro_git/#/title-slide)
102 | 4. OpenScapes [GitHub Illustrated series](https://openscapes.org/blog/2022-05-27-github-illustrated-series/)
103 | 5. Software Carpentries [git introduction](https://swcarpentry.github.io/git-novice/aio.html)
104 | 1. Field work
105 | - National Association of Marine Laboratories [Best Practices in Field Safety and Accessibility](https://www.naml.org/resources/reports/Best%20Practices%20in%20Field%20Trip%20Safety%20and%20Accessibility.pdf)
106 | - [Safe fieldwork strategies for at-risk individuals, their supervisors and institutions](https://doi.org/10.1038/s41559-020-01328-5)
107 | 3. Resources for scientific writing
108 | - Our [informal guide to getting ready to publish](https://docs.google.com/document/d/15q_Qw06gNehdCAzu22vJ1iVoOiz6w6kt05WYgOSiCjw/edit?usp=sharing), including a focus on publishing in society-owned and non-profit journals
109 | - [The UCSC Writing Center](https://writingcenter.ucsc.edu/)
110 | - Schimel, J. 2012. Writing science: how to write papers that get cited and proposals that get funded. Oxford University Press, Oxford
111 | - Turbek, S. P., Chock, T. M., Donahue, K., Havrilla, C. A., Oliverio, A. M., Polutchko, S. K., … Vimercati, L. (2016). Scientific Writing Made Easy: A Step-by-Step Guide to Undergraduate Writing in the Biological Sciences. Ecology 101, (October), 417–426. [doi:10.1002/bes2.1258](https://doi.org/10.1002/bes2.1258)
112 | - Gopen, G., & Swan, J. (1990). The Science of Scientific Writing. American Scientist.
113 | - [Lafferty 2021 Writing a scientific paper, step by painful step](https://trophiccascades.forestry.oregonstate.edu/sites/trophic/files/Lafferty_WritingScientificPaper.pdf)
114 | - [Our Guide to publishing a scientific paper](https://docs.google.com/document/d/13vteuDK5kebjaW6GBUpV5ja0cuZhxStb83vnjjMq-Rg/edit?usp=sharing)
115 | - [How to read a scientific paper](https://www.science.org/content/article/how-read-scientific-paper-rev2), Science
116 | - [How to (seriously) read a scientific paper](https://www.science.org/content/article/how-seriously-read-scientific-paper), Science
117 | - [Zotero Reference Manager Tutorial](https://www.youtube.com/watch?v=q6-YOPS1xY4)
118 | - Authorship criteria
119 | - [Ecological Society of America ethics](https://www.esa.org/about/code-of-ethics/)
120 | - [Ecological authorship](https://esajournals.onlinelibrary.wiley.com/doi/abs/10.1890/1540-9295%282006%294%5B435%3AAIEAAA%5D2.0.CO%3B2)
121 | - [Evolution](https://onlinelibrary-wiley-com.proxy.libraries.rutgers.edu/page/journal/15585646/homepage/forauthors.html#authorship)
122 | - [Fisheries](https://fisheries.org/books-journals/writing-tools/authorship-guidelines/)
123 | 1. Data visualization resources
124 | - Tufte books
125 | - William Cleveland, The Elements of Graphing Data
126 | 1. Scientific presentation tips
127 | - http://blog.ted.com/10-tips-for-better-slide-decks/
128 | - How Bad Presentations Happen to Good Causes (booklet in the lab)
129 | - Will Ratcliffe: https://twitter.com/wc_ratcliff/status/949315012472070145
130 | - Clip art
131 | - http://ian.umces.edu/symbols/
132 | - https://thenounproject.com/
133 | - https://www.nature.com/articles/d41586-023-00832-5
134 | - Remember you're telling a story
135 | - Start where your audience is, explain why it matters/they should care
136 | - build suspense, and then resolve it
137 | - Build with simple pieces
138 | - You know much more than your audience. Recognize they can only absorb information so fast.
139 | - Layer in points and pieces as you say them
140 | - Explain all parts of a figure
141 | - Less is more
142 | - Few words, more pictures. Slides uncluttered
143 | - Less talking: say it clearly and move on
144 | - Practice, practice, practice
145 | 3. Networking and collaboration skills
146 | - Resources from the [ESA Early Career Ecologists section](http://esa.org/earlycareer/resources/), including [webinars](https://vimeo.com/esaearlycareerecologist)
147 | - The [Project Biodiversify group](https://projectbiodiversify.org/) is working to make biology/ecology more inclusive.
148 | - Lab notes on power in academia: http://sophiatintori.com/zine.html
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/phd_guide.qmd:
--------------------------------------------------------------------------------
1 | # Some notes for a Ph.D.
2 | Notes written by Malin Pinsky, 2013-2024
3 |
4 | ## Skills to develop
5 | My goal is to help you understand and succeed in our discipline as it is now, while also empowering you with the agency to reshape it in the image of all of us.
6 |
7 | - project design
8 | - data analysis and interpretation
9 | - oral presentation: see Scientific presentation tips (to add)
10 | - grant-writing
11 | - manuscript writing
12 | - collaborating and networking in academia
13 | - teaching
14 | - peer reviewing
15 |
16 | *(see our onboarding guide for resources)*
17 |
18 | ## Expectations/Milestones
19 | - Throughout
20 | - Participate in the community and build your professional network
21 | - attend all seminars, meet most or all speakers, come to lab meetings, work from CBB
22 | - Contribute to the community: clean up after yourself, do maintenance, do chores, etc.
23 | - Reproducibility for collaboration with future self, with others in lab, with others outside lab (see the [Data Management Guide](https://github.com/pinskylab/how_we_work/blob/master/data-management.md))
24 | - Practice any talks and present any posters to the lab, before you take them to a conference
25 | - This is will be substantially more work than a 9-5 job or taking classes as an undergraduate or MS student
26 | - First year
27 | - First meeting topics
28 | - Expectations for me from you
29 | - Expectations for you from me
30 | - Your expectations for the PhD experience
31 | - What you want to learn from the PhD
32 | - Where your are tentatively heading
33 | - First year project?
34 | - If you have fears, concerns, questions, or just want to talk, please come find me. If you’re upset, please tell me.
35 | - Apply to fellowships (fall)
36 | - First year talk (lab meeting or other venue)
37 | - Start and perhaps finish a first year project that is publishable
38 | - Comprehensive exam on the first-year courses
39 | - Read widely across the literature
40 | - Second year
41 | - Finish courses
42 | - First year project written up and potentially submitted
43 | - Read widely and design a dissertation proposal
44 | - Attend a conference, present a talk or poster
45 | - Third year
46 | - Write dissertation proposal and defend it, “Qualifying exam"
47 | - Continue research
48 | - Attend a conference and present
49 | - Fourth year
50 | - Continue research
51 | - Submit papers
52 | - Attend a conference and present
53 | - Fifth year
54 | - Finish research
55 | - Submit remaining papers
56 | - Attend a conference and present
57 | - Apply for postdoc fellowships (fall) and contact potential mentors, or network and do informational interviews for non-academic opportunities
58 | - Defend dissertation!
59 | - At least 6 weeks in advance of defense: last draft of dissertation chapter to Malin. Others already done.
60 | - Defense date is tentative until
61 | - Full dissertation written
62 | - At least 2 chapters submitted for publication
63 | - All chapters comply with our [Data Management Plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md)
64 |
65 | ## 6-Month Check-ins
66 | At the end of the fall and spring, we take a meeting to step back from the details and think about big picture career trajectories. It’s a good chance to go back the goals you wrote for yourself, think about your progress, and think about whether they’re still the right goals for you. Please start a running document of your goals in our Google Drive (how_we_work/Group_member_goals/, make a copy of the template and add your name to the title) and share it with Malin.
67 |
68 | This is your meeting to use as you want, but I often find it useful to loosely structure the meeting like this:
69 |
70 | - First 1/3: Highlights from the semester/last six months:
71 | - What have you done?
72 | - What have you learned?
73 | - What connections have you made?
74 | - Last 2/3: Plans for the next six months:
75 | - What do you want to do?
76 | - What do you want to learn?
77 | - What connections do you want to make?
78 | - How can I support you in that?
79 | - Also let me know if you want me to think about answers to any questions.
80 | - Funding plan during each end-of-year checkin
81 |
82 | ## Training resources
83 | - Academic career development resources through the NCFDD. Activate your account through UCSC [here](https://senate.ucsc.edu/committees/cca-committee-on-career-advising/faculty-career-resources/facultydevelopmentdiversity.html), including resources for graduate students like (https://www.ncfdd.org/dissertation-success-members).
84 | - Leadership
85 | - USFWS National Conservation Training Center
86 | - Heemstra, J. 2025. Labwork to Leadership. Harvard University Press.
87 | - [Making the Right Moves: A Practical Guide to Scientific Management for Postdocs and New Faculty, Second Edition](https://capd.mit.edu/resources/making-the-right-moves-a-practical-guide-to-scientific-management-for-postdocs-and-new-faculty-second-edition/)
88 | - Buckingham and Coffman. 1999. First, Break All the Rules: What the World's Greatest Managers Do Differently. Simon & Schuster.
89 |
90 | - Communication
91 | - [COMPASS](https://www.compassscicomm.org/)
92 | - [TULIP](https://www.labex-tulip.fr/internet6_national_labex_tulip-eng/the-labex/training-and-higher-education) summer school on interdisciplinary ecology
93 | - [SIIECS](https://www.ices.dk/community/groups/Pages/SIIECS.aspx): early career society of ICES
94 | - Michigan State University Kellogg Biological Station
95 | - Jennifer Hoey enjoyed them. Not offered every year?
96 | - Part of CIC (Committee on Institutional Cooperation), so Rutgers students get an "in"
97 | - [Santa Fe Institute's Complex Systems Summer School](https://www.santafe.edu/engage/learn/programs/sfi-complex-systems-summer-school)
98 |
99 | ## Course ideas
100 | - At UCSC
101 | - Stats and applied math
102 | - STATS 206 Applied Bayesian Stats (with David Draper) (can get permission to skip prereqs)
103 | - STATS 203 Introduction to Probability Theory
104 | - STATS 204 Introduction to Statistical Data Analysis (includes some R)
105 | - STATS 206B Intermediate Bayesian Stats
106 | - EART125 - Statistics and Data Analysis in the Geosciences (Matthew Clapham)
107 | - OCEA 267 Applied Environmental Time Series Analysis (Claudie Beaulieu)
108 | - Off campus
109 | - Stats
110 | - https://www.statstree.org/
111 | - Tyre, ecological statistics in R, online, University Nebraska Lincoln
112 | - [Biostats suggestions from Ecology](https://dynamicecology.wordpress.com/2021/07/28/stage-setting-readings-and-videos-to-kick-off-an-intro-biostats-course-here-are-mine-please-share-your-suggestions/)
113 | - Two recommended stats books from economics
114 | - Pindyck, R.S., Rubinfeld, D.L., 1998. Econometric Models and Economic Forecasts, 4th ed. McGraw-Hill New York, NY
115 | - Cameron, A.C., Trivedi, P.K., 2005. Microeconometrics methods and applications. Cambridge University Press, NY
116 | - Coursera
117 | - Brian Caffo, Mathematical biostatistics boot camp 1 and 2
118 | - 7 weeks, taught several times per year
119 | - Recommended by: Columbia Univ PhD student: The teacher and format are very good. But it is pretty elementary; covers what you would learn in a rigorous basic stats course (comment on boot camp 1)
120 | - Roger Peng, Computing for data analysis
121 | - in R, generally taught Sept, 4 weeks
122 | - Recommended by: Tia-Lynn Ashman lab member says excellent, pretty hard, 10-15 hrs per week, covers both data management and stats
123 | - Jeff Leek, Data analysis
124 | - in R, generally taught Oct, 8 weeks
125 | - Recommended by: Brian Caffo read his statistics blog http://simplystatistics.org
126 | - John McGready, Statistical Reasoning
127 | - seems to be not available every time I check. aimed at public health
128 | - Recommended by: Brian Caffo, fantastic course
129 | - Note: Peng and Leek are collaborators, both at Johns Hopkins. They additionally teach the below but Rae Winfree has not found out more on these courses:
130 | - R programming
131 | - Getting and cleaning data
132 |
133 | ## Funding ideas
134 | - Travel funding
135 | - American Society of Naturalists: regional conference funding; workshop funding
136 | - UCSC EEB
137 | - ICRS travel funding
138 | - [Travel funding for ECRs](https://docs.google.com/spreadsheets/d/19ye-FrPi0WDrjSV8V3xi3HDMcw0i1y-QkAVZOyPRR20/edit#gid=0)
139 | - Journal of Marine Science and Engineering: http://www.mdpi.com/journal/jmse/awards
140 | - [Western Association of Marine Labs (WAML)](http://waml.naml.org/members/studentsupport.php), due Oct. 31
141 |
142 | - Research funding
143 | - Internal
144 | - UCSC Committee On Research $2000/year (Malin can apply in ~May). No proposal needed.
145 | - UCSC Committee on Research Large Grants Program: $12000 for two years. Malin can apply. 2 pp application.
146 | - Inst. of Marine Science Student Research & Education Award
147 | - UCSC EEB summer funding
148 | - UCSC Activating Innovative Graduate Research Award (AIGRA)
149 | - [Keeley Coastal Scholars](https://socialsciences.ucsc.edu/support-us/awards/student-awards/keeley-coastal-scholars/index.html): $1000-$4000 for underrepresented undergraduates or grad student
150 | - [Hammett Awards through ENVS](https://envs.ucsc.edu/about/awards/index.html)
151 | - UC Alianza MX Short-Term Research in Mexico: covers living expenses, travel, and other related expenses for up to three months to accomplish specific laboratory, library, or field research at partner institutions in Mexico. Calls often go out in February, due in March.
152 | - Daniel Briggs Memorial Award for summer research or policy work related to coastal sustainability. Due ~ March. $500-$1000.
153 | - [Sooy Fellowship](https://science.ucsc.edu/research-opportunities/rebecca-and-steve-sooy-graduate-fellowship-in-marine-mammals/) for marine mammals
154 | - [Women Divers Hall of Fame Scholarships and Training Grants](http://www.wdhof.org/wdhof-scholarshipDesc.aspx)
155 | - AMNH Lerner Grey
156 | - [Doane Environmental Scholarship](https://www.cfscc.org/scholarships) through the Community Foundation Santa Cruz County
157 | - [Sigma Xi Grants in Aid of Research](https://www.sigmaxi.org/programs/grants-in-aid-of-research/apply)
158 | - [Western Association of Marine Labs (WAML)](http://waml.naml.org/members/studentsupport.php), due Oct. 31
159 | - Explorers Club [Stephenson Explorers Advancement Program](https://www.explorers.org/grants/the-stephenson-explorers-advancement-program/) and [Kensington Conservation Grant](https://www.explorers.org/grants/kensington-explorers-club-grant/)
160 | - American Philosophical Society’s Lewis and Clark Fund for Exploration and Field Research
161 | - Dr. Earl H. Myers and Ethel M. Myers Oceanographic & Marine Biology Trust ($2600 in 2024)
162 | - Washington Biologists Field Club: Mid-Atlantic. https://www.pwrc.usgs.gov/resshow/perry/bios/WBFCHome.htm
163 | - P.E.O. Scholar Award: women w/in 2 years of finishing a PhD
164 | - [Graduate Women in Science National Fellowship Program](https://www.gwis.org/page/fellowship_program)
165 | - Gloria Barron Wilderness Society Scholarship (Wilderness Society), $25000 scholarship for research supporting wilderness conservation.
166 | - Rafe Sagarin Fund: http://www.rafeinnovativeecologyfund.org/
167 | - Society for Study of Evolution: http://www.evolutionsociety.org/content/society-awards-and-prizes/graduate-research-excellence-grants.html
168 | - Rosemary Grant awards, year 3+, up to $3500
169 | - American Genetic Association EECG award (due Dec 15)
170 | - [AFS Steven Berkeley Marine Conservation Fellowship](https://mfs.fisheries.org/?page_id=155): also open to international students
171 | - International Coral Reef Society student fellowship
172 | - [Beneath the Sea Scholarship](https://beneaththesea.us/scholarships/)
173 | - Fellowships (stipend)
174 | - Internal
175 | - Dissertation Year Fellowship
176 | - Pedagogy fellowships through The Learning Center
177 | - [Sooy Fellowship](https://science.ucsc.edu/research-opportunities/rebecca-and-steve-sooy-graduate-fellowship-in-marine-mammals/) for marine mammals
178 | - NSF GRFP
179 | - advice: https://ojs.library.queensu.ca/index.php/IEE/article/view/6349#.WG57HQnKFbg
180 | - NDSEG: read carefully to find the best match BAA category. We have been quite successful with this one.
181 | - DOE Computational Science Graduate Fellowship (4 years)
182 | - HHMI Gilliam Fellowships (apply in 2nd or 3rd year as a advisor-mentee pair, due in early December)
183 | - CA Sea Grant Graduate Fellowships: has a focus on CA
184 | - Smithsonian (post-qualifying): https://fellowships.si.edu/opportunity/big-ten-academic-alliance-smithsonian-fellowship
185 | - [ACM SIGHPC Computational & Data Science Fellowships](https://www.sighpc.org/for-your-career/fellowships)
186 | - EPA STAR
187 | - NOAA Nancy Foster: with a National Marine Sanctuary
188 | - NOAA Margaret Davidson: with a National Estuarine Research Reserve
189 | - NMFS-Sea Grant Fellowship in Population and Ecosystem Dynamics: for more quantitative projects and students
190 | - DOE computational science (includes biomathematics)
191 | - [The Hertz Foundation Graduate Fellowships](https://www.hertzfoundation.org/the-fellowship/)
192 | - [Quad Fellowship](https://www.quadfellowship.org/)
193 | - Paul & Daisy Soros Fellowship for New Americans
194 |
195 | ## Conference ideas
196 | - American Society of Naturalists (January)
197 | - Ecological Society of America (August)
198 | - Evolution (June)
199 | - Species on the Move (every three years or so)
200 | - International Biogeography Society Meeting
201 | - Gordon Conference in Marine Global Change (July)
202 | - Effects of Climate Change on the World's Oceans (ECCWO) (ICES/PICES): next to be in 2027 or 2028
203 | - American Genetics Association
204 | - American Fisheries Society
205 | - Western Society of Naturalists (marine biology, mostly west coast)
206 | - Benthics (marine biology, mostly east coast)
207 | - specialized
208 | - Western Indian Ocean Marine Science Assoc (WIOMSA)
209 | - Asian Pacific Coral Reef Society (APCRS)
210 |
211 | ## Awards
212 | - ASN Jasper Loftus-Hills, <3yrs from PhD, Jan 31
213 | - ESA Early Career Fellow
214 | - ICRS Awards (Feb. 15)
215 |
216 | ## Postdoc funding
217 | - Life Sciences Research Foundation: open to non-US citizens, 3 years, network-building
218 | - NSF
219 | - David H. Smith
220 | - Liber Ero
221 | - Fulbright
222 | - iDiv, CESAB, and NCEAS fellowships
223 | - HIFMB, Germany
224 | - Institutional fellowships
225 | - UT Austin integration biology
226 | - U Michigan
227 | - UC Berkeley
228 | - Harvard sustainability
229 | - UBC Biodiversity Center
230 | - UVM Voss Postdoctoral Fellows
231 | - others...
232 | - Policy
233 | - AAAS Science-Policy Fellowship
234 | - Knauss Marine Policy Fellowship
235 | - https://asntech.github.io/postdoc-funding-schemes/
236 |
237 | ## Jobs
238 | - [ecoevojobs.net](ecoevojobs.net) for academic jobs
239 | - https://sevenseasmedia.org/ocean-jobs/#s=1
240 | - data science
241 | - Insight Data Science Fellowship
242 | - [ECOLOG-L](https://www.esa.org/membership/ecolog/) for ecology
243 | - [evoldir](https://evol.mcmaster.ca/evoldir.html) for evolution
244 | - [ICRS SECC job board](coralreefsecc.org/jobboard,) for coral reef jobs
245 | - Oceanography jobs lists from Dalhousie: https://www.phys.ocean.dal.ca/hotlists/jobs.html
246 | - NOAA
247 | - At least some of the NOAA contract jobs are posted at http://www.oceanassoc.com/Jobs/jobslist.html
248 | - Recently filled jobs are listed here: http://www.oceanassoc.com/Jobs/jobslistrecentlyfilled.html
249 | - get to know NOAA colleagues through the Fisheries Cooperative Program at UCSC (FCP)
250 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-html/popper.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @popperjs/core v2.11.7 - MIT License
3 | */
4 |
5 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})}));
6 |
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Attribution 4.0 International
3 |
4 | =======================================================================
5 |
6 | Creative Commons Corporation ("Creative Commons") is not a law firm and
7 | does not provide legal services or legal advice. Distribution of
8 | Creative Commons public licenses does not create a lawyer-client or
9 | other relationship. Creative Commons makes its licenses and related
10 | information available on an "as-is" basis. Creative Commons gives no
11 | warranties regarding its licenses, any material licensed under their
12 | terms and conditions, or any related information. Creative Commons
13 | disclaims all liability for damages resulting from their use to the
14 | fullest extent possible.
15 |
16 | Using Creative Commons Public Licenses
17 |
18 | Creative Commons public licenses provide a standard set of terms and
19 | conditions that creators and other rights holders may use to share
20 | original works of authorship and other material subject to copyright
21 | and certain other rights specified in the public license below. The
22 | following considerations are for informational purposes only, are not
23 | exhaustive, and do not form part of our licenses.
24 |
25 | Considerations for licensors: Our public licenses are
26 | intended for use by those authorized to give the public
27 | permission to use material in ways otherwise restricted by
28 | copyright and certain other rights. Our licenses are
29 | irrevocable. Licensors should read and understand the terms
30 | and conditions of the license they choose before applying it.
31 | Licensors should also secure all rights necessary before
32 | applying our licenses so that the public can reuse the
33 | material as expected. Licensors should clearly mark any
34 | material not subject to the license. This includes other CC-
35 | licensed material, or material used under an exception or
36 | limitation to copyright. More considerations for licensors:
37 | wiki.creativecommons.org/Considerations_for_licensors
38 |
39 | Considerations for the public: By using one of our public
40 | licenses, a licensor grants the public permission to use the
41 | licensed material under specified terms and conditions. If
42 | the licensor's permission is not necessary for any reason--for
43 | example, because of any applicable exception or limitation to
44 | copyright--then that use is not regulated by the license. Our
45 | licenses grant only permissions under copyright and certain
46 | other rights that a licensor has authority to grant. Use of
47 | the licensed material may still be restricted for other
48 | reasons, including because others have copyright or other
49 | rights in the material. A licensor may make special requests,
50 | such as asking that all changes be marked or described.
51 | Although not required by our licenses, you are encouraged to
52 | respect those requests where reasonable. More_considerations
53 | for the public:
54 | wiki.creativecommons.org/Considerations_for_licensees
55 |
56 | =======================================================================
57 |
58 | Creative Commons Attribution 4.0 International Public License
59 |
60 | By exercising the Licensed Rights (defined below), You accept and agree
61 | to be bound by the terms and conditions of this Creative Commons
62 | Attribution 4.0 International Public License ("Public License"). To the
63 | extent this Public License may be interpreted as a contract, You are
64 | granted the Licensed Rights in consideration of Your acceptance of
65 | these terms and conditions, and the Licensor grants You such rights in
66 | consideration of benefits the Licensor receives from making the
67 | Licensed Material available under these terms and conditions.
68 |
69 |
70 | Section 1 -- Definitions.
71 |
72 | a. Adapted Material means material subject to Copyright and Similar
73 | Rights that is derived from or based upon the Licensed Material
74 | and in which the Licensed Material is translated, altered,
75 | arranged, transformed, or otherwise modified in a manner requiring
76 | permission under the Copyright and Similar Rights held by the
77 | Licensor. For purposes of this Public License, where the Licensed
78 | Material is a musical work, performance, or sound recording,
79 | Adapted Material is always produced where the Licensed Material is
80 | synched in timed relation with a moving image.
81 |
82 | b. Adapter's License means the license You apply to Your Copyright
83 | and Similar Rights in Your contributions to Adapted Material in
84 | accordance with the terms and conditions of this Public License.
85 |
86 | c. Copyright and Similar Rights means copyright and/or similar rights
87 | closely related to copyright including, without limitation,
88 | performance, broadcast, sound recording, and Sui Generis Database
89 | Rights, without regard to how the rights are labeled or
90 | categorized. For purposes of this Public License, the rights
91 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
92 | Rights.
93 |
94 | d. Effective Technological Measures means those measures that, in the
95 | absence of proper authority, may not be circumvented under laws
96 | fulfilling obligations under Article 11 of the WIPO Copyright
97 | Treaty adopted on December 20, 1996, and/or similar international
98 | agreements.
99 |
100 | e. Exceptions and Limitations means fair use, fair dealing, and/or
101 | any other exception or limitation to Copyright and Similar Rights
102 | that applies to Your use of the Licensed Material.
103 |
104 | f. Licensed Material means the artistic or literary work, database,
105 | or other material to which the Licensor applied this Public
106 | License.
107 |
108 | g. Licensed Rights means the rights granted to You subject to the
109 | terms and conditions of this Public License, which are limited to
110 | all Copyright and Similar Rights that apply to Your use of the
111 | Licensed Material and that the Licensor has authority to license.
112 |
113 | h. Licensor means the individual(s) or entity(ies) granting rights
114 | under this Public License.
115 |
116 | i. Share means to provide material to the public by any means or
117 | process that requires permission under the Licensed Rights, such
118 | as reproduction, public display, public performance, distribution,
119 | dissemination, communication, or importation, and to make material
120 | available to the public including in ways that members of the
121 | public may access the material from a place and at a time
122 | individually chosen by them.
123 |
124 | j. Sui Generis Database Rights means rights other than copyright
125 | resulting from Directive 96/9/EC of the European Parliament and of
126 | the Council of 11 March 1996 on the legal protection of databases,
127 | as amended and/or succeeded, as well as other essentially
128 | equivalent rights anywhere in the world.
129 |
130 | k. You means the individual or entity exercising the Licensed Rights
131 | under this Public License. Your has a corresponding meaning.
132 |
133 |
134 | Section 2 -- Scope.
135 |
136 | a. License grant.
137 |
138 | 1. Subject to the terms and conditions of this Public License,
139 | the Licensor hereby grants You a worldwide, royalty-free,
140 | non-sublicensable, non-exclusive, irrevocable license to
141 | exercise the Licensed Rights in the Licensed Material to:
142 |
143 | a. reproduce and Share the Licensed Material, in whole or
144 | in part; and
145 |
146 | b. produce, reproduce, and Share Adapted Material.
147 |
148 | 2. Exceptions and Limitations. For the avoidance of doubt, where
149 | Exceptions and Limitations apply to Your use, this Public
150 | License does not apply, and You do not need to comply with
151 | its terms and conditions.
152 |
153 | 3. Term. The term of this Public License is specified in Section
154 | 6(a).
155 |
156 | 4. Media and formats; technical modifications allowed. The
157 | Licensor authorizes You to exercise the Licensed Rights in
158 | all media and formats whether now known or hereafter created,
159 | and to make technical modifications necessary to do so. The
160 | Licensor waives and/or agrees not to assert any right or
161 | authority to forbid You from making technical modifications
162 | necessary to exercise the Licensed Rights, including
163 | technical modifications necessary to circumvent Effective
164 | Technological Measures. For purposes of this Public License,
165 | simply making modifications authorized by this Section 2(a)
166 | (4) never produces Adapted Material.
167 |
168 | 5. Downstream recipients.
169 |
170 | a. Offer from the Licensor -- Licensed Material. Every
171 | recipient of the Licensed Material automatically
172 | receives an offer from the Licensor to exercise the
173 | Licensed Rights under the terms and conditions of this
174 | Public License.
175 |
176 | b. No downstream restrictions. You may not offer or impose
177 | any additional or different terms or conditions on, or
178 | apply any Effective Technological Measures to, the
179 | Licensed Material if doing so restricts exercise of the
180 | Licensed Rights by any recipient of the Licensed
181 | Material.
182 |
183 | 6. No endorsement. Nothing in this Public License constitutes or
184 | may be construed as permission to assert or imply that You
185 | are, or that Your use of the Licensed Material is, connected
186 | with, or sponsored, endorsed, or granted official status by,
187 | the Licensor or others designated to receive attribution as
188 | provided in Section 3(a)(1)(A)(i).
189 |
190 | b. Other rights.
191 |
192 | 1. Moral rights, such as the right of integrity, are not
193 | licensed under this Public License, nor are publicity,
194 | privacy, and/or other similar personality rights; however, to
195 | the extent possible, the Licensor waives and/or agrees not to
196 | assert any such rights held by the Licensor to the limited
197 | extent necessary to allow You to exercise the Licensed
198 | Rights, but not otherwise.
199 |
200 | 2. Patent and trademark rights are not licensed under this
201 | Public License.
202 |
203 | 3. To the extent possible, the Licensor waives any right to
204 | collect royalties from You for the exercise of the Licensed
205 | Rights, whether directly or through a collecting society
206 | under any voluntary or waivable statutory or compulsory
207 | licensing scheme. In all other cases the Licensor expressly
208 | reserves any right to collect such royalties.
209 |
210 |
211 | Section 3 -- License Conditions.
212 |
213 | Your exercise of the Licensed Rights is expressly made subject to the
214 | following conditions.
215 |
216 | a. Attribution.
217 |
218 | 1. If You Share the Licensed Material (including in modified
219 | form), You must:
220 |
221 | a. retain the following if it is supplied by the Licensor
222 | with the Licensed Material:
223 |
224 | i. identification of the creator(s) of the Licensed
225 | Material and any others designated to receive
226 | attribution, in any reasonable manner requested by
227 | the Licensor (including by pseudonym if
228 | designated);
229 |
230 | ii. a copyright notice;
231 |
232 | iii. a notice that refers to this Public License;
233 |
234 | iv. a notice that refers to the disclaimer of
235 | warranties;
236 |
237 | v. a URI or hyperlink to the Licensed Material to the
238 | extent reasonably practicable;
239 |
240 | b. indicate if You modified the Licensed Material and
241 | retain an indication of any previous modifications; and
242 |
243 | c. indicate the Licensed Material is licensed under this
244 | Public License, and include the text of, or the URI or
245 | hyperlink to, this Public License.
246 |
247 | 2. You may satisfy the conditions in Section 3(a)(1) in any
248 | reasonable manner based on the medium, means, and context in
249 | which You Share the Licensed Material. For example, it may be
250 | reasonable to satisfy the conditions by providing a URI or
251 | hyperlink to a resource that includes the required
252 | information.
253 |
254 | 3. If requested by the Licensor, You must remove any of the
255 | information required by Section 3(a)(1)(A) to the extent
256 | reasonably practicable.
257 |
258 | 4. If You Share Adapted Material You produce, the Adapter's
259 | License You apply must not prevent recipients of the Adapted
260 | Material from complying with this Public License.
261 |
262 |
263 | Section 4 -- Sui Generis Database Rights.
264 |
265 | Where the Licensed Rights include Sui Generis Database Rights that
266 | apply to Your use of the Licensed Material:
267 |
268 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
269 | to extract, reuse, reproduce, and Share all or a substantial
270 | portion of the contents of the database;
271 |
272 | b. if You include all or a substantial portion of the database
273 | contents in a database in which You have Sui Generis Database
274 | Rights, then the database in which You have Sui Generis Database
275 | Rights (but not its individual contents) is Adapted Material; and
276 |
277 | c. You must comply with the conditions in Section 3(a) if You Share
278 | all or a substantial portion of the contents of the database.
279 |
280 | For the avoidance of doubt, this Section 4 supplements and does not
281 | replace Your obligations under this Public License where the Licensed
282 | Rights include other Copyright and Similar Rights.
283 |
284 |
285 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
286 |
287 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
288 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
289 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
290 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
291 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
292 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
293 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
294 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
295 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
296 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
297 |
298 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
299 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
300 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
301 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
302 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
303 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
304 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
305 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
306 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
307 |
308 | c. The disclaimer of warranties and limitation of liability provided
309 | above shall be interpreted in a manner that, to the extent
310 | possible, most closely approximates an absolute disclaimer and
311 | waiver of all liability.
312 |
313 |
314 | Section 6 -- Term and Termination.
315 |
316 | a. This Public License applies for the term of the Copyright and
317 | Similar Rights licensed here. However, if You fail to comply with
318 | this Public License, then Your rights under this Public License
319 | terminate automatically.
320 |
321 | b. Where Your right to use the Licensed Material has terminated under
322 | Section 6(a), it reinstates:
323 |
324 | 1. automatically as of the date the violation is cured, provided
325 | it is cured within 30 days of Your discovery of the
326 | violation; or
327 |
328 | 2. upon express reinstatement by the Licensor.
329 |
330 | For the avoidance of doubt, this Section 6(b) does not affect any
331 | right the Licensor may have to seek remedies for Your violations
332 | of this Public License.
333 |
334 | c. For the avoidance of doubt, the Licensor may also offer the
335 | Licensed Material under separate terms or conditions or stop
336 | distributing the Licensed Material at any time; however, doing so
337 | will not terminate this Public License.
338 |
339 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
340 | License.
341 |
342 |
343 | Section 7 -- Other Terms and Conditions.
344 |
345 | a. The Licensor shall not be bound by any additional or different
346 | terms or conditions communicated by You unless expressly agreed.
347 |
348 | b. Any arrangements, understandings, or agreements regarding the
349 | Licensed Material not stated herein are separate from and
350 | independent of the terms and conditions of this Public License.
351 |
352 |
353 | Section 8 -- Interpretation.
354 |
355 | a. For the avoidance of doubt, this Public License does not, and
356 | shall not be interpreted to, reduce, limit, restrict, or impose
357 | conditions on any use of the Licensed Material that could lawfully
358 | be made without permission under this Public License.
359 |
360 | b. To the extent possible, if any provision of this Public License is
361 | deemed unenforceable, it shall be automatically reformed to the
362 | minimum extent necessary to make it enforceable. If the provision
363 | cannot be reformed, it shall be severed from this Public License
364 | without affecting the enforceability of the remaining terms and
365 | conditions.
366 |
367 | c. No term or condition of this Public License will be waived and no
368 | failure to comply consented to unless expressly agreed to by the
369 | Licensor.
370 |
371 | d. Nothing in this Public License constitutes or may be interpreted
372 | as a limitation upon, or waiver of, any privileges and immunities
373 | that apply to the Licensor or You, including from the legal
374 | processes of any jurisdiction or authority.
375 |
376 |
377 | =======================================================================
378 |
379 | Creative Commons is not a party to its public
380 | licenses. Notwithstanding, Creative Commons may elect to apply one of
381 | its public licenses to material it publishes and in those instances
382 | will be considered the “Licensor.” The text of the Creative Commons
383 | public licenses is dedicated to the public domain under the CC0 Public
384 | Domain Dedication. Except for the limited purpose of indicating that
385 | material is shared under a Creative Commons public license or as
386 | otherwise permitted by the Creative Commons policies published at
387 | creativecommons.org/policies, Creative Commons does not authorize the
388 | use of the trademark "Creative Commons" or any other trademark or logo
389 | of Creative Commons without its prior written consent including,
390 | without limitation, in connection with any unauthorized modifications
391 | to any of its public licenses or any other arrangements,
392 | understandings, or agreements concerning use of licensed material. For
393 | the avoidance of doubt, this paragraph does not form part of the
394 | public licenses.
395 |
396 | Creative Commons may be contacted at creativecommons.org.
397 |
--------------------------------------------------------------------------------
/_book/site_libs/quarto-search/fuse.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
3 | *
4 | * Copyright (c) 2022 Kiro Risk (http://kiro.me)
5 | * All Rights Reserved. Apache Software License 2.0
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | */
9 | var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();
--------------------------------------------------------------------------------
/_book/site_libs/quarto-html/tippy.umd.min.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow=' ',F}));
2 |
3 |
--------------------------------------------------------------------------------
/_book/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Global Change Research Group How We Work
14 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
95 |
96 |
97 |
98 |
159 |
160 |
161 |
170 |
171 |
172 |
173 |
207 |
208 |
209 |
210 | Welcome!
211 | This is the lab manual for the Global Change Research Group at the University of California, Santa Cruz. We study how species adapt to rapidly changing environments to inform global stewardship and train the next generation of scientific leaders. More about our group’s research can be found on our website .
212 | This lab manual resource is intended to provide an overview for lab members and others about how we do our work, and our expectations for our team. It is also a space to document institutional knowledge and for important information about procedures and available resources. Lab protocol and methods can be found in a separate book Pinsky Lab Methods .
213 | This book is based on the Feylab Lab Manual . Because this repo existed proir, the Feylab Lab Manual repo was not forked and instead the structure and format were imitated. If interested in creating a similar please visit the Feylab Lab Manual Repo or see Quick steps to making a copy of the lab manual and publishing it !
214 |
215 | This lab is licensed under a Creative Commons Attribution 4.0 International License.
216 |
217 |
218 |
219 |
220 |
221 |
638 |
639 |
640 |
641 |
642 |
645 |
646 |
647 |
648 |
661 |
662 |
663 |
664 |
665 |
--------------------------------------------------------------------------------