diff --git a/conf.py b/conf.py index 57742966..3b10b300 100644 --- a/conf.py +++ b/conf.py @@ -58,7 +58,7 @@ # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. html_show_copyright = True -copyright = "2025, OceanHackWeek" +copyright = "2026, OceanHackWeek" # -- HTML Config ------------------------------------------------- diff --git a/ohw26/applicants.md b/ohw26/applicants.md index 051f56d9..1ca05341 100644 --- a/ohw26/applicants.md +++ b/ohw26/applicants.md @@ -87,7 +87,7 @@ We also encourage participants to explore more advanced topics before the hackwe ### Q: I don't know the first thing about version revision/control systems. Can I still apply? -During the hackweek we will use Git and GitHub but you are not expected to be an expert on it. In previous years we have offered refresher in the week prior to the actual OHW event. The organizing committee is deciding whether we can offer this in OHW24. You are welcome to check back here for this info, but we want to emphasize that nothing is better than trying it yourself first -- we recommend the [Software Carpentry lessons](https://swcarpentry.github.io/git-novice/) for learning git basic. +During the hackweek we will use Git and GitHub but you are not expected to be an expert on it. Check the [schedule](schedule.md) for any Git and GitHub sessions during the week. We want to emphasize that nothing is better than trying it yourself first -- we recommend the [Software Carpentry lessons](https://swcarpentry.github.io/git-novice/) for learning git basics. Note that we will require you to create a [GitHub account](https://github.com/) before completing the application. diff --git a/ohw26/index.md b/ohw26/index.md index 929b85ae..da638d59 100644 --- a/ohw26/index.md +++ b/ohw26/index.md @@ -27,12 +27,10 @@ The schedule The OceanHackWeek program consists of hands-on tutorials, visual presentations, and collaborative hack projects throughout a 5-day period. - ```{image} ../assets/images/ohw_hacking/ohw23-group-pic.jpeg :alt: OHW23 group picture @@ -172,8 +170,10 @@ The events will be all-day workshops (approximately 9am - 5pm). Join us for five schedule Organizers - - - - +Logistics +tutorials-index/index +Tutorials Getting Started +Projects +Information for Applicants +OHW Fellows <../about/fellows.md> ``` diff --git a/ohw26/logistics/faq.md b/ohw26/logistics/faq.md new file mode 100644 index 00000000..c60413ad --- /dev/null +++ b/ohw26/logistics/faq.md @@ -0,0 +1,86 @@ +# Compute FAQ + +Quick answers for getting onto the hub at OHW26. For the full walkthrough with screenshots, see the [JupyterHub preparation page](../../resources/prep/jupyterhub.md). + +## What are we using for compute? + +[CryoCloud](https://book.cryointhecloud.com/) — a community JupyterHub, run on [2i2c](https://2i2c.org) infrastructure, where we can set up pre-configured compute environments for the tutorials. We use it for tutorials and for project work. + +The hub is at [https://hub.cryointhecloud.com](https://hub.cryointhecloud.com). + +## What do I need to do before I log in? + +Two things, both on GitHub: + +1. **Accept the invitation** to the [OceanHackWeek GitHub organization](https://github.com/oceanhackweek), so that you show up in [`ohw26-participants`](https://github.com/orgs/oceanhackweek/teams/ohw26-participants). +2. **Make your organization membership public.** Find yourself on the team page above, open your profile within the organization (a URL like `https://github.com/orgs/oceanhackweek/people/YOUR-USERNAME`), and check that **Membership** reads `public` rather than `private`. + +CryoCloud works out what you can access from your GitHub team membership, so it can't see you if your membership is private. + +## What happens the first time I log in? + +GitHub will ask you to **authorize `nasa-cryo-prod`** (the CryoCloud deployment, run by 2i2c) to read your organization and team membership. + +```{admonition} Grant access to the oceanhackweek organization +:class: important + +On the authorization screen, make sure **`oceanhackweek`** is granted — if it shows an `✕` with a **Grant** button next to it, click **Grant** before you authorize. +``` + +## Which environment and how much RAM should I pick? + +You choose both on the **Server Options** page, every time you start a server: + +- **Environment** — the **OceanHackWeek Python Image** for the tutorials and most project work. If you're working in R, pick the **Py-Rocket** R image instead. +- **Resource Allocation** — **8 GB of RAM** should be enough for the tutorials. Pick the smallest allocation that does the job; the compute is shared and donated. + +## Why is it taking so long to start? + +Starting a new node and pulling our environment can take several minutes, especially when everyone logs in at once at the beginning of a tutorial. Be patient rather than reloading repeatedly. + +## How do I get the tutorials? + +Use the nbgitpuller link for the profile you're running: + +::::{tab-set} + +:::{tab-item} Python + +[Pull the tutorials into JupyterLab](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW26) + +::: + +:::{tab-item} R + +[Pull the tutorials into RStudio](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW26) + +::: + +:::: + +Clicking the link again later will pull in any updates and merge them with your own changes. See the [extended discussion](../../resources/prep/jupyterhub.md#how-do-i-get-the-tutorial-repository) for the details, and for the `git`-based alternative. + +## What should I do when I'm finished for the day? + +**Please shut down your server.** Go to `File > Hub Control Panel` (or straight to [https://hub.cryointhecloud.com/hub/home](https://hub.cryointhecloud.com/hub/home) if you've closed the tab), then click **Stop My Server**. + +`File > Log Out` does *not* shut the server down. + +```{admonition} You will not lose your work +:class: important + +Stopping your server does **not** delete any of your files. It just releases the compute, like turning off your desktop at the end of the day. +``` + +## Can I keep using CryoCloud after OceanHackWeek? + +Yes. Go through CryoCloud's own [getting started instructions](https://book.cryointhecloud.com/getting-started/), including the survey. You'll be invited to their Slack channel, which is how the hub admins and users stay in touch. + +Two notes on that form: + +- **Award number** — if you don't have a grant number, enter `OceanHackWeek`. It doesn't bill any grant; it's used for tracking and for justifying their compute credits. +- **Institution** — the list is a bit US-centric at the moment. If one of the options is a reasonable match but there's a better term for your situation, put that down under *Other*, so the form can be improved. + +## Something's broken and this page didn't help + +Ask in the `#ohw26_helpdesk` Slack channel. See the [Getting Help page](getting_help.md) for the other help groups. diff --git a/ohw26/logistics/getting_help.md b/ohw26/logistics/getting_help.md index e10194af..21d14de6 100644 --- a/ohw26/logistics/getting_help.md +++ b/ohw26/logistics/getting_help.md @@ -1,8 +1,8 @@ # Getting Help -We know how overwhelming all of this information can be. Here is some for asking questions and figuring out where to turn for help. +We know how overwhelming all of this information can be. Here is some guidance on asking questions and figuring out where to turn for help. -You can ask anything on the Slack `#ohw25_general` channel, any time. Organizers and helpers are monitoring this channel, and some of your fellow hackweek participants may be able to help you! Also, feel free to send a direct message on Slack to any of the organizers or helpers. +You can ask anything on the Slack `#ohw26_general` channel, any time. Organizers and helpers are monitoring this channel, and some of your fellow hackweek participants may be able to help you! Also, feel free to send a direct message on Slack to any of the organizers or helpers. ## Online Resources @@ -11,28 +11,17 @@ We provide a number of resources to help get you started on our [Resources page] ## Helpdesk -We've set up the `#ohw25_helpdesk` Slack channel to ask technical questions (or other types of questions, if you'd like). +We've set up the `#ohw26_helpdesk` Slack channel to ask technical questions (or other types of questions, if you'd like). -We will set up some helpdesk Slack user group that you can use to tag your question as, say, about Python. We'll list and describe those groups here. If you know the rough category of help that you may need, please tag one of the helpdesk user groups to get their attention. All help usergroups can be found by typing `@help-` and Slack will prompt with options. +We will set up some helpdesk Slack user group that you can use to tag your question as, say, about Python. We'll list and describe those groups here. You are also welcome to direct message the helpers if you don't feel comfortable asking questions publicly. -### Slack help groups - -- `@help-infrastructure` - For issues regarding the JupyterHub, Slack, Github, and Zoom. -- `@help-projects` - For help with managing projects, for instance asking how to set up a new repo, or organize meetings. -- `@help-python` - Questions about Python programming. -- `@help-r` - Questions about R programming. -- `@help-ml` - Questions about machine learning. -- `@help-git` - Questions about git. -- `@help-tutorials` - For help with tutorial logistics, like cloning the notebooks. -- `@help-website` - If there are any issues with the website tag us to take a look. - ## During tutorials Tune in on Slack for continuous Q&A! -- Ask questions on Slack! Use the `#ohw25_tutorials` channel to ask questions or check out answers to questions others have posed. We will use this same channel every day. Several of us will be monitoring this channel and addressing your questions throughout the tutorials +- Ask questions on Slack! Use the `#ohw26_general` channel to ask questions or check out answers to questions others have posed. We will use this same channel every day. Several of us will be monitoring this channel and addressing your questions throughout the tutorials - **Vote up** questions from others to help the moderators prioritize which questions to ask the speaker during tutorials. - Tutorial moderators will mark questions that are best answered by the instructor and ask helpers (and anyone else!) to answer the rest in real time. Then when the instructor ask if there are questions the moderators will read those reserved for the instructor. - Zoom Chat will **not** be available. Ask on Slack! @@ -40,7 +29,7 @@ Tune in on Slack for continuous Q&A! ## Projects -See the [Hacking at OHW25 page](../projects/index.md) for more information. Feel free to post a question on the `#ohw25_project` channel, too. +See the [Hacking at OHW26 page](../projects/index.md) for more information. Feel free to post a question on the `#ohw26_project` channel, too. ## Reporting a Code of Conduct violation diff --git a/ohw26/logistics/index.md b/ohw26/logistics/index.md index e3069f8d..6a5d3608 100644 --- a/ohw26/logistics/index.md +++ b/ohw26/logistics/index.md @@ -1,10 +1,10 @@ # Logistics Overview -OHW25 will be in person in Seattle, Washington at the University of Washington. We are committed to providing an engaging and full experience for everyone and will strive to facilitate cross communication and collaboration across all participants. +OHW26 will be in person at the [Bamfield Marine Sciences Centre](https://bamfieldmsc.com) on the West Coast of Vancouver Island, British Columbia, Canada. We are committed to providing an engaging and full experience for everyone and will strive to facilitate cross communication and collaboration across all participants. ## Time -OceanHackWeek 2025 will take place August 18-22. The in-person participants will be engaged in OceanHackWeek throughout the day. +OceanHackWeek 2026 will take place August 24-28. The participants will be engaged in OceanHackWeek throughout the day. **Detailed schedule is available on the [Schedule page](../schedule.md).** @@ -15,18 +15,18 @@ We will use the [OceanHackWeek Slack workspace](http://oceanhackweek.slack.com/) [Go directly from a channel or direct message chat into a voice or video chat](https://slack.com/help/articles/216771908-Make-calls-in-Slack), with screen-sharing capability. This will be particularly useful during hack project time. -## OHW JupyterHub ("The Hub") and GitHub +## JupyterHub ("The Hub") and GitHub -- OHW JupyterHub ("The Hub"): [https://workshop.nmfs-openscapes.2i2c.cloud](https://workshop.nmfs-openscapes.2i2c.cloud) -- OHW GitHub organization: [https://github.com/oceanhackweek](https://github.com/oceanhackweek) +For tutorials and project work we use [CryoCloud](https://book.cryointhecloud.com/), a community JupyterHub where we set up pre-configured compute environments. -## Tutorials broadcasting +- The Hub: [https://hub.cryointhecloud.com](https://hub.cryointhecloud.com) +- OHW GitHub organization: [https://github.com/oceanhackweek](https://github.com/oceanhackweek) -We will use Zoom to broadcast all tutorials. The Zoom link will be distributed via Slack. +You need to be in the [`ohw26-participants`](https://github.com/orgs/oceanhackweek/teams/ohw26-participants) team **with your organization membership set to public** before you can log in. See the [FAQ](faq.md) for the short version, or the [JupyterHub preparation page](../../resources/prep/jupyterhub.md) for the full walkthrough with screenshots. ## Hack projects -See the [Hacking at OHW25 page](../projects/index.md) for more information. +See the [Hacking at OHW26 page](../projects/index.md) for more information. ## Getting Help @@ -35,7 +35,7 @@ See the [Getting Help page](getting_help.md) for guidance and links to have your ```{toctree} :hidden: -Overview <./overview> +FAQ Getting Help ``` diff --git a/ohw26/projects/index.md b/ohw26/projects/index.md index 1c127110..53f67b1f 100644 --- a/ohw26/projects/index.md +++ b/ohw26/projects/index.md @@ -1,8 +1,8 @@ -# Hacking at OHW25 +# Hacking at OHW26 ## How will the projects be conducted? -We encourage project ideas from participants! Feel free to discuss existing or new project ideas **#ohw25_project** Slack channel prior to the event. Once ideas begin to gel and collaborative groups begin to form, the group can start getting into the weeds using a Jamboard or a combination of sticky notes and whiteboards. Later, each group needs to create a project Slack channel that starts with `ohw25_proj_` (say, `ohw25_proj_upwelling`), and create a Github repository (follow [these instructions](https://oceanhackweek.org/resources/prep/git.html#create-a-project-repository)). For the repository, please create a `README.md` file following [this README template](https://github.com/oceanhackweek/ohwyy_proj_template). +We encourage project ideas from participants! Feel free to discuss existing or new project ideas **#ohw26_project** Slack channel prior to the event. Once ideas begin to gel and collaborative groups begin to form, the group can start getting into the weeds using a Jamboard or a combination of sticky notes and whiteboards. Later, each group needs to create a project Slack channel that starts with `ohw26_proj_` (say, `ohw26_proj_upwelling`), and create a Github repository (follow [these instructions](https://oceanhackweek.org/resources/prep/git.html#create-a-project-repository)). For the repository, please create a `README.md` file following [this README template](https://github.com/oceanhackweek/ohwyy_proj_template). @@ -10,7 +10,7 @@ We've scheduled part of Day 1 for project ideation and the morning of Day 2 for Please look over the information below for guidance about projects, how to get started and the motivations for working on projects. -## OHW25 projects list +## OHW26 projects list Check out the [projects that formed this year!](projects_thisyear.md) diff --git a/ohw26/projects/projects_thisyear.md b/ohw26/projects/projects_thisyear.md index c6005bbd..23c88c3b 100644 --- a/ohw26/projects/projects_thisyear.md +++ b/ohw26/projects/projects_thisyear.md @@ -1,54 +1,7 @@ -# OHW25 Projects List - -Projects from OceanHackWeek 2025. - -### 1. BluRaspberry: Optimal Unmanned underwater vehicles (UUVs) Path Planning - -- Project members: Erin Linebarger, Joyce Cai, Kayla Mitchell, Christian Sarason (mentor) -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_BluRaspberry](https://github.com/oceanhackweek/ohw25_proj_BluRaspberry) -- [Presentation recording](https://www.youtube.com/watch?v=a0UlJTmM2-U) - - -### 2. FisHy PACE: Predicting fish distributions from phytoplankton using hyperspectral satellite data - -- Project members: Max Titcomb, Isidora Rojas, Alberto Rivera, Israt Jahan Mili, Sam Alaimo, Jon Peake (mentor) -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_fishpace](https://github.com/oceanhackweek/ohw25_proj_fishpace) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=3573) -- [Final Presentation slides](https://docs.google.com/presentation/d/1oRBbjYOHBqAwBdsVWctXN-ScwihK1mItiyZXgEEFPC4/edit?slide=id.p#slide=id.p) - -### 3. RiptideRemix: Audio classificaiton and audio-synthesis of acoustic soundsources - -- Project members: Kasey Castello, Mattie Toll, Oluwatofunmi Adeboye, Isabelle Brandicourt, Derya Gumustel, Dwight Owens (mentor) -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_RiptideRemix](https://github.com/oceanhackweek/ohw25_proj_RiptideRemix) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=1690) - -### 4. Data Dashboard powered by LLM - -- Project members: Liangtong Wei, Finn Wimberly, Ava Wessel, Aidan Lewis, Dinal Meecle, Boris Shapkin (mentor) -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_datadashboard_llm](https://github.com/oceanhackweek/ohw25_proj_datadashboard_llm) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=4314) - -### 5. Mind the CHL Gap - -- Project members: Bruna Cândido, Trina Xavier, Lilac Hong, Eli Holmes (mentor) -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_gap](https://github.com/oceanhackweek/ohw25_proj_gap) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=5480) -- [Presentation](https://gamma.app/docs/Daily-Gap-Filled-Chlorophyll-a-Datasets-Using-Deep-Neural-Network-ozsc5xmxri96od1) - -### 5. ArBu: Argo float and buoy data to visualize biogeochemical signals during hurricanes - -- Project members: -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_ArBu](https://github.com/oceanhackweek/ohw25_proj_ArBu) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=2602) -- [Presentation]() - -### 6. AI Assisted Next Day Predictive Modeling for Zooplankton - -- Project members: Syed Usama Imtiaz, Dafrosa Kataraihya, Ismat Jahan; Fellows: Dwight Owens, Dr. Rui Jin -- GitHub repository: [https://github.com/oceanhackweek/ohw25_proj_zooplankton](https://github.com/oceanhackweek/ohw25_proj_zooplankton) -- [Presentation recording](https://youtu.be/a0UlJTmM2-U?feature=shared&t=832) -- [Presentation]() - +# OHW26 Projects List +Projects from OceanHackWeek 2026. +Project teams form during the first days of the hackweek, so this page fills in as the week goes on. Each project will be listed here with its members, its repository under the [`oceanhackweek` GitHub organization](https://github.com/oceanhackweek), and a link to its final presentation. +For a sense of what hack projects look like in practice, see the [OHW25 projects list](../../ohw25/projects/projects_thisyear.md). diff --git a/ohw26/tutorials-index/index.md b/ohw26/tutorials-index/index.md index 289ee8c5..4b29952e 100644 --- a/ohw26/tutorials-index/index.md +++ b/ohw26/tutorials-index/index.md @@ -9,42 +9,17 @@ We are pleased to present a number of tutorials during the week. These tutorial ## Main tutorials - +Days, times, titles and presenters for this year's tutorials, lectures and discussions are all on the **[schedule page](../schedule.md)**, which is kept up to date through the week. -The following tutorials will be presented live during the **US sessions**, and will be recorded for later review. +Tutorial materials live in the `OHW26` branch of the tutorials repository, [`oceanhackweek/ohw-tutorials`](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW26), organized into a directory per day. To get them onto the Hub, use the nbgitpuller link on the [Tutorials Getting Started page](../tutorials_getting_started.md). -### Monday, August 18th -[Christian Sarason](https://apl.uw.edu/people/profile.php?last_name=Sarason&first_name=Christian) - [**Fight the dreaded 'It works for me' demon with conda package management and jupyter notebooks:**](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW25/00-Mon#packagesjupyterlabhub) This tutorial will describe some of the pros, cons and pitfalls of package management and take quick tour of Pixi and JupyterHub using an example project. - -[Derya Gumustel](https://www.linkedin.com/in/derya-gumustel), [Rui Jin](https://ruijinsz.github.io/), [Bruna Strack Candido](https://at.linkedin.com/in/brunascandido)- [**Git&GitHub Primer**](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW25/00-Mon#git--github-primer) - -### Tuesday, August 19th -[Filipe Fernandes](https://github.com/ocefpaf) - [**Data Access in Python:**](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW25/01-Tue#data-access-in-python) In this tutorial, participants will use Python to find and access ocean data via a range of protocols including ERDDAP, OPeNDAP and WMS. - -[Finn Wimberly](https://www.whoi.edu/research-associate-ii-finn-wimberly/) - [**Xarray Tutorial**](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW25/01-Tue#xarray) - -### Wednesday, August 28th -[Boris Shapkin](https://de.linkedin.com/in/boris-shapkin) - [**Using LLMs and AI Agents with Climate and Ocean Data**]() - -[Kristen Thyng](https://www.linkedin.com/in/kristen-thyng) - [**Visualization**]() - -[Joe Hamman](https://joehamman.com/about/) - **Advanced xarray and icechunk with ICESat2 data** (optional with [ICESat-2 Hackweek](https://2025.hackweek.io/)) - -### Thursday, August 29th -[Valentina Staneva](https://valentina-s.github.io/) - [**Reproducible Workflows**]() - - -## Lectures and Discussions - -Finally, each year we offer brief sessions on non-coding aspects of computational oceanography; this year we are pleased to offer the following. - -- OHW Fellows - **Science Talks** -- [Hafeez Oladejo](https://www.linkedin.com/in/hafeez-oladejo-a55b06167) - **AI Assisted Programming Discussion** following a tutorial on LLMs. -- [Alex Kerney](https://github.com/abkfenris) - [**Stresses in the geosciences**](https://github.com/oceanhackweek/ohw-tutorials/tree/OHW25/02-Wed/README.md), an open discussion about mental health in the geosciences. +Tutorials are recorded for later review. +## Past years +For a sense of the range of tutorials OceanHackWeek covers, browse previous years: +- [OHW25 tutorials](../../ohw25/tutorials-index/index.md) +- [OHW24 tutorials](../../ohw24/tutorials-index/index.md) +- [OHW23 tutorials](../../ohw23/tutorials-index/index.md) +- [OHW22 tutorials](../../ohw22/tutorials-index/index.md) diff --git a/ohw26/tutorials_getting_started.md b/ohw26/tutorials_getting_started.md index 02638e1b..2c9c0a70 100644 --- a/ohw26/tutorials_getting_started.md +++ b/ohw26/tutorials_getting_started.md @@ -2,11 +2,11 @@ ## Introduction -Tutorials will be run live on the [Openscapes JupyterHub ("The Hub"), https://workshop.nmfs-openscapes.2i2c.cloud](https://workshop.nmfs-openscapes.2i2c.cloud) in your browser either as Jupyter notebooks or as scripts and notebooks in RStudio. The instructor and all participants can be running their own copies of the tutorial in their Hub account, with files cloned from the OHW source in GitHub. +Tutorials will be run live on [CryoCloud ("The Hub"), https://hub.cryointhecloud.com](https://hub.cryointhecloud.com) in your browser either as Jupyter notebooks or as scripts and notebooks in RStudio. The instructor and all participants can be running their own copies of the tutorial in their Hub account, with files cloned from the OHW source in GitHub. Below are instructions for getting the tutorials started on the the Hub in your browser, and updating the tutorials files with the latest version from the GitHub tutorials repository, [https://github.com/oceanhackweek/ohw-tutorials](https://github.com/oceanhackweek/ohw-tutorials). -The schedule of tutorials is available [here](../../ohw25/schedule.md), and links to tutorial materials and some background resources will be available there as well. +The schedule of tutorials is available [here](./schedule.md), and links to tutorial materials and some background resources will be available there as well. ## How do I get the tutorial repository into the Hub? @@ -20,13 +20,13 @@ The nbgitpuller link is magical, but it can't detect which profile you are curre :::{tab-item} Python -[Pull tutorial repo for the Python profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW25) +[Pull tutorial repo for the Python profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW26) ::: :::{tab-item} R -[Pull tutorial repo for the R profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW24) +[Pull tutorial repo for the R profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW26) ::: diff --git a/resources/img/ohw26-cryocloud-authorize-2i2c.png b/resources/img/ohw26-cryocloud-authorize-2i2c.png new file mode 100644 index 00000000..e66bd22d Binary files /dev/null and b/resources/img/ohw26-cryocloud-authorize-2i2c.png differ diff --git a/resources/img/ohw26-cryocloud-github-visibility.png b/resources/img/ohw26-cryocloud-github-visibility.png new file mode 100644 index 00000000..cd2fed8a Binary files /dev/null and b/resources/img/ohw26-cryocloud-github-visibility.png differ diff --git a/resources/img/ohw26-cryocloud-hub-control-panel.png b/resources/img/ohw26-cryocloud-hub-control-panel.png new file mode 100644 index 00000000..5f9cd92c Binary files /dev/null and b/resources/img/ohw26-cryocloud-hub-control-panel.png differ diff --git a/resources/img/ohw26-cryocloud-server-options.png b/resources/img/ohw26-cryocloud-server-options.png new file mode 100644 index 00000000..60548cff Binary files /dev/null and b/resources/img/ohw26-cryocloud-server-options.png differ diff --git a/resources/img/ohw26-cryocloud-server-starting.png b/resources/img/ohw26-cryocloud-server-starting.png new file mode 100644 index 00000000..2b9de2ef Binary files /dev/null and b/resources/img/ohw26-cryocloud-server-starting.png differ diff --git a/resources/img/ohw26-cryocloud-stop-server.png b/resources/img/ohw26-cryocloud-stop-server.png new file mode 100644 index 00000000..576a6721 Binary files /dev/null and b/resources/img/ohw26-cryocloud-stop-server.png differ diff --git a/resources/index.md b/resources/index.md index 2729d220..50452626 100644 --- a/resources/index.md +++ b/resources/index.md @@ -4,13 +4,13 @@ **This page should be rewritten entirely!** ```--> -To make sure that OHW24 will be a welcoming environment for everyone, please read our [Code of Conduct](/about/code-of-conduct.md) carefully as part of your preparation. We expect all participants to adhere to the Code of Conduct in all interactions throughout the hackweek. +To make sure that OceanHackWeek will be a welcoming environment for everyone, please read our [Code of Conduct](/about/code-of-conduct.md) carefully as part of your preparation. We expect all participants to adhere to the Code of Conduct in all interactions throughout the hackweek. ## Preparation A variety of content can be found under the [Preparation](prep/index.md) page, with resources provided on Git, GitHub, JupyterHub, Conda, Python and R. -We will use a [JupyterHub](https://jupyter.org/hub)-based online environment for all OceanHackWeek computational activities, including tutorials; this environment supports both Python and R. You will need a robust internet connection and a capable laptop or desktop computer. +We will use a [JupyterHub](https://jupyter.org/hub)-based online environment for all OceanHackWeek computational activities, including tutorials, with pre-configured images for both Python and R. For OHW26 that hub is [CryoCloud](https://book.cryointhecloud.com/) -- see the [JupyterHub preparation page](prep/jupyterhub.md) for how to get on it. You will need a robust internet connection and a capable laptop or desktop computer. We will use Slack, Zoom and GitHub as our primary communication and content delivery platforms. The week before OceanHackWeek you will receive via email an invitation to join the OceanHackWeek GitHub organization, [https://github.com/oceanhackweek/](https://github.com/oceanhackweek/) if you have not received it already, along with an invitation to join our Slack organization. diff --git a/resources/organizing/helpers.md b/resources/organizing/helpers.md index 3d804773..5b66ba86 100644 --- a/resources/organizing/helpers.md +++ b/resources/organizing/helpers.md @@ -16,5 +16,5 @@ - Make sure to follow Code of Conduct when interacting on Slack - Help answer questions if you can - Upvote (add `+1` emoji) questions you think are important -- If questions pop up in other channels unrelated to the tutorials, please answer if you can or ping [the appropriate team](../logistics/getting_help.md#slack-help-groups) -- If there are answers at the end of the tutorial that did not get answered, please ping [the appropriate team](../logistics/getting_help.md#slack-help-groups) +- If questions pop up in other channels unrelated to the tutorials, please answer if you can or ping someone who can +- If there are questions at the end of the tutorial that did not get answered, please ping someone who can help diff --git a/resources/prep/conda.md b/resources/prep/conda.md index 1a624c7c..2aaf967a 100644 --- a/resources/prep/conda.md +++ b/resources/prep/conda.md @@ -2,7 +2,7 @@ _or: How I Learned to Stop Worrying and Manage Python and R_ -The JupyterHub is pre-configured with customized environments for both Python and R packages that are designed to be able to run all the tutorial notebooks, and support a broad range of oceanographic applications. +The JupyterHub offers pre-configured environments -- for Python and for R -- that are designed to be able to run all the tutorial notebooks, and support a broad range of oceanographic applications. This environment is created and managed using the open-source [**Conda** package and environment management system](https://docs.conda.io) for installing multiple versions of software packages together with their dependencies, and convenient switching between environments. @@ -19,41 +19,9 @@ The JupyterHub has both a pre-configured base environment, and environments that ### JupyterHub base environment -The Conda environment for the base JupyterHub environments are defined in [oceanhackweek/jupyter-image](https://github.com/oceanhackweek/jupyter-image/). These image contains hopefully everything you will need for the tutorials and for general exploration. - -The `environment.yml` files ([Python](https://github.com/oceanhackweek/jupyter-image/blob/main/py-base/environment.yml), [R](https://github.com/oceanhackweek/jupyter-image/blob/main/r/environment.yml)) captures the current state of the OceanHackWeek environment. You can explore these files to see what packages we have selected to come in the base environment. - -```yaml -# environment.yml -name: OHW -channels: - - conda-forge -dependencies: - - python=3.9 - - pangeo-notebook=2021.07.24 - - argopy - - bokeh - - bottleneck - - cartopy - - cdsapi - - cf-units - - cf_xarray - - cmip6_preprocessing - - cmocean - - colorcet - - compilers - - compliance-checker - - conda-lock -# ... oh so many more packages that we are not going to include them all here -``` - -It also contains a lot of supporting infrastructure for running each individual's JupyterLab server (for instance `compilers` and `conda-lock` in just that small subset), so we suggest building up an environment from scratch, rather than by trimming down the base environment. - -The exact state of the Conda environments are captured in `conda-linux-64.lock` in the same directories that includes the exact versions of all the packages, not just the ones we selected. - -There are also a handful of dependencies that are installed directly in the `Dockerfiles` that are also in the same directories. - -The full environments are captured as [Docker images](https://github.com/orgs/oceanhackweek/packages?repo_name=jupyter-image) that can be pulled and run locally. +You pick the base environment when you start your server, from the **Environment** dropdown on CryoCloud's Server Options page -- see [How do I access the shared cloud environment?](jupyterhub.md#how-do-i-access-the-shared-cloud-environment) for a walkthrough. The OceanHackWeek image contains hopefully everything you will need for the tutorials and for general exploration. + +The base environment also contains a lot of supporting infrastructure for running each individual's JupyterLab server, so if you need something different we suggest building up your own environment from scratch, rather than by trimming down the base environment. ### Temporary packages @@ -62,7 +30,7 @@ You can temporarily add packages to your hub, via Jupyter cell magic, `%pip inst :::{admonition} pip install trouble :class: danger -For those who know their way around Jupyter, you may be tempted to `!pip install `. This can leave your environment in an inconsistent state, which may prevent your server from starting (and will require some heavy duty assistance from `@help-infrastructure` to debug). More information is [available here.](https://pilot.2i2c.org/admin/howto/environment/#temporarily-install-packages-for-a-session) +For those who know their way around Jupyter, you may be tempted to `!pip install `. This can leave your environment in an inconsistent state, which may prevent your server from starting (and will require some heavy duty assistance in the `#ohw26_helpdesk` Slack channel to debug). More information is [available here.](https://docs.2i2c.org/user/get-started/) ::: @@ -95,14 +63,14 @@ The [package](https://github.com/Anaconda-Platform/nb_conda_kernels) that detect ## Conda on your own computer -Conda may be used on your computer as well as the Hub. If you wish to install the same environment as the hub is running, after you install Conda, you can download the [`environment.yml`](https://raw.githubusercontent.com/oceanhackweek/ohw-tutorials/d51c880111305d7e345d98b7d8ccc031cbf0087e/environment.yml) that we use, then `conda env create -n --file environment.yml` +Conda may be used on your computer as well as the Hub, and we encourage you to practice with it locally so that you can keep working after the event. If a tutorial ships an `environment.yml` alongside its notebooks in [`oceanhackweek/ohw-tutorials`](https://github.com/oceanhackweek/ohw-tutorials), you can recreate that environment locally with `conda env create -n --file environment.yml`. ### Installing Conda There are a few different ways to install conda: - The [Anaconda Individual Edition](https://www.anaconda.com/products/individual) which comes with a large pre-packaged environment, and a snazzy management interface to help explore what packages are available and what environments you have installed. -- [Miniconda](https://docs.conda.io/en/latest/miniconda.html) is a stripped down version with just the installer, which is really for kick starting other environments. We're using a Miniconda Docker image. +- [Miniconda](https://docs.conda.io/en/latest/miniconda.html) is a stripped down version with just the installer, which is really for kick starting other environments. - There is also [Mamba](https://mamba.readthedocs.io/en/latest/index.html) which is a newer take on Conda that tends to be faster, but isn't currently compatible with our trick to allow you to set up your own Conda environments ([nb_conda_kernels](https://github.com/Anaconda-Platform/nb_conda_kernels)). We recommend the use of Miniconda. diff --git a/resources/prep/github.md b/resources/prep/github.md index afcdb44e..70d5a142 100644 --- a/resources/prep/github.md +++ b/resources/prep/github.md @@ -25,7 +25,7 @@ GitHub organizations are a convenient way for teams to get all content relevant We have created a GitHub organization called oceanhackweek at [https://github.com/oceanhackweek](https://github.com/oceanhackweek). For security purposes you can only join the organization by invitation. You should already have received the invitation to GitHub. If you didn't: -1. Once you have a GitHub ID, in the `#ohw23_helpdesk` Slack channel ask for help and include `@help-infrastructure` in your message so that folks who have the ability to make changes are notified. +1. Once you have a GitHub ID, ask for help in the `#ohw26_helpdesk` Slack channel so that folks who have the ability to make changes are notified. 2. We will then send you an invitation which should generate an email notification to the email you provided when you signed up for GitHub 3. Follow the links in the email to accept the invitation diff --git a/resources/prep/jupyterhub.md b/resources/prep/jupyterhub.md index ca81c562..cd350440 100644 --- a/resources/prep/jupyterhub.md +++ b/resources/prep/jupyterhub.md @@ -14,33 +14,59 @@ We will use the [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) softw ## Why are we using a shared cloud computing environment? -Teaching software to a diverse group of participants, each with different computers and operating systems, can be challenging. There are specific ways to configure our software for the tutorials to be successful, so it takes time to get everyone set up consistently. Our solution to this is to give everyone access to a cloud computing environment that is pre-configured for the specific software we will deploy. This cloud computing instance can be accessed from any web browser, which eliminates the need for configuring each person's individual computer. For this hackweek we have created virtual computing instances that can be deployed on demand in a parallel computing environment. We use JupyterHub as a way to give a Jupyter Notebook server ([JupyterLab](https://jupyterlab.readthedocs.io/en/stable/)) to each person in a group. [These (slightly old) slides](https://www.slideshare.net/willingc/jupyterhub-a-thing-explainer-overview?from_action=save) give a nice overview of what JupyterHub is all about. JupyterHub enables us to quickly begin working with code without spending time to get the necessary libraries and dependencies set up on everyone's individual computers. +Teaching software to a diverse group of participants, each with different computers and operating systems, can be challenging. There are specific ways to configure our software for the tutorials to be successful, so it takes time to get everyone set up consistently. Our solution to this is to give everyone access to a cloud computing environment that is pre-configured for the specific software we will deploy. This cloud computing instance can be accessed from any web browser, which eliminates the need for configuring each person's individual computer. We use JupyterHub as a way to give a Jupyter Notebook server ([JupyterLab](https://jupyterlab.readthedocs.io/en/stable/)) to each person in a group. [These (slightly old) slides](https://www.slideshare.net/willingc/jupyterhub-a-thing-explainer-overview?from_action=save) give a nice overview of what JupyterHub is all about. JupyterHub enables us to quickly begin working with code without spending time to get the necessary libraries and dependencies set up on everyone's individual computers. -We encourage you to use our shared JupyterHub resources for running all the tutorials and for your projects. We also hope you will practice installing Python libraries locally on your laptop so that you can continue working after leaving our event. +For OceanHackWeek we use [**CryoCloud**](https://book.cryointhecloud.com/), a community JupyterHub run on [2i2c](https://2i2c.org) infrastructure, where we can set up pre-configured compute environments for the tutorials. CryoCloud serves a broad cryosphere and ocean science community, and OceanHackWeek is one of the groups it hosts. + +We encourage you to use CryoCloud for running all the tutorials and for your projects. We also hope you will practice installing Python libraries locally on your laptop so that you can continue working after leaving our event. + +## Before you can log in: your GitHub membership + +CryoCloud decides what you can access from your GitHub organization and team membership, so two things need to be true before your first login: + +1. You have **accepted the invitation** to the [OceanHackWeek GitHub organization](https://github.com/oceanhackweek). +2. Your organization membership is **public**, so that you show up in the participants team for the current event (for OHW26, [`ohw26-participants`](https://github.com/orgs/oceanhackweek/teams/ohw26-participants)). + +To check the second one, find yourself on the team page above and open your own profile within the organization (a URL like `https://github.com/orgs/oceanhackweek/people/YOUR-USERNAME`). **Membership** should read `public`: + +![GitHub organization membership set to public](../img/ohw26-cryocloud-github-visibility.png) + +If it reads `private`, use the dropdown next to it to switch it to public. ## How do I access the shared cloud environment? -Access to our shared cloud environment by clicking on [https://nmfs-openscapes.2i2c.cloud](https://nmfs-openscapes.2i2c.cloud) +Go to [https://hub.cryointhecloud.com](https://hub.cryointhecloud.com) and sign in with GitHub. -![hub-opening](../img/ohw21-jupyterhub-opening.png) +The first time you log in, GitHub will ask you to authorize `nasa-cryo-prod` (the CryoCloud deployment, run by 2i2c) to read your organization and team membership: -You can now click on the "Log in to continue" button, then on the next screen click on "Sign in with GitHub" to grant JupyterHub the required permissions. In the next window, enter your GitHub username (or email address) and password. +![Authorize nasa-cryo-prod by 2i2c](../img/ohw26-cryocloud-authorize-2i2c.png) -Next, you will need to select the environment (server) you want to launch: Python or R +```{admonition} Grant access to the oceanhackweek organization +:class: important + +On this screen, make sure **`oceanhackweek`** is granted — if it shows an `✕` with a **Grant** button next to it, click **Grant** before authorizing. CryoCloud cannot see your OceanHackWeek team membership otherwise, and your server won't have the OceanHackWeek environment available. +``` -![hub select Python or R](../img/ohw23-jupyterhub-select-Python-or-R.png) +Next you will land on the **Server Options** page, where you choose an **Environment** (the image, i.e. the set of installed software) and a **Resource Allocation** (how much RAM and CPU): -After making your selection, you will see something like this while the JupyterHub server environment is loading: +![CryoCloud Server Options: Environment and Resource Allocation](../img/ohw26-cryocloud-server-options.png) -![hub-loading](../img/ohw21-jupyterhub-loading.png) +- **Environment** — choose the **OceanHackWeek Python Image** for the tutorials and for most project work. If you are working in R, choose the **Py-Rocket** R image instead. +- **Resource Allocation** — **8 GB of RAM** should be plenty for the tutorials. Pick the smallest allocation that does the job; the compute is shared and donated. -It will take a bit of time for this to load - be patient! Once things are spun up, **if you selected Python** you will see your very own cloud instance of a [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) graphical user interface: +You make this choice on every startup, so you can come back and pick something different later. -![JupyterLab](../img/ohw23-jupyterhub-Python-jupyterlab.png) +Then click **Start**. You will see a progress bar and an event log while your server spins up: -**If you selected R,** you will see your very own cloud instance of [RStudio](https://posit.co/products/open-source/rstudio/): +![Server starting up, pulling the OceanHackWeek image](../img/ohw26-cryocloud-server-starting.png) + +```{admonition} Startup can take several minutes +:class: note + +Starting a new node and pulling our environment takes a while — especially if everyone is logging in at once, such as at the beginning of a tutorial. Be patient, and don't reload repeatedly. +``` -![RStudio](../img/ohw23-jupyterhub-R-RStudio.png) +Once things are spun up, you will be dropped into your very own cloud instance of the [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) interface (or [RStudio](https://posit.co/products/open-source/rstudio/), if you started the Py-Rocket R image). ## How do I get the tutorial repository? @@ -54,13 +80,13 @@ The nbgitpuller link is magical, but it can't detect which profile you are curre :::{tab-item} Python -[Pull tutorial repo for the Python profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW25) +[Pull tutorial repo for the Python profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW26) ::: :::{tab-item} R -[Pull tutorial repo for the R profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW25) +[Pull tutorial repo for the R profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW26) ::: @@ -112,22 +138,22 @@ After issuing the `git clone` command you should see something like this (again, ## End your Hub session every day. Will I lose all of my work? -**When you are finished working for the day or for an extended period of time, it is important to explicitly shutdown your JupyterHub session,** -to reduce the load on our cloud infrastructure and overall costs. +**When you are finished working for the day or for an extended period of time, it is important to explicitly shutdown your JupyterHub session,** +to reduce the load on our cloud infrastructure and overall costs. **To shutdown your server:** If you are **using JupyterLab**, you access the control via `File > Hub Control Panel` menu item: -![hub shut down step 1](../img/ohw21-shutdownhub-step1.png) +![File menu with Hub Control Panel highlighted](../img/ohw26-cryocloud-hub-control-panel.png) -Then you can shut down your server from your hub control panel (which you can also access directly from [https://workshop.nmfs-openscapes.2i2c.cloud/hub/home](https://workshop.nmfs-openscapes.2i2c.cloud/hub/home)): +Then click **Stop My Server** in your hub control panel (which you can also reach directly at [https://hub.cryointhecloud.com/hub/home](https://hub.cryointhecloud.com/hub/home)): -![hub shut down step 2](../img/ohw21-shutdownhub-step2.png) +![Hub control panel with Stop My Server button](../img/ohw26-cryocloud-stop-server.png) Note that the menu item `File > Log Out` doesn't actually shut down the server, so please follow these steps instead. -If you are **using RStudio**, the `Log out` and `Quit session` entries under the `File` menu won't do much! Shut down your server from your hub control panel [https://workshop.nmfs-openscapes.2i2c.cloud/hub/home](https://workshop.nmfs-openscapes.2i2c.cloud/hub/home)), as described above. +If you are **using RStudio**, the `Log out` and `Quit session` entries under the `File` menu won't do much! Shut down your server from your hub control panel, [https://hub.cryointhecloud.com/hub/home](https://hub.cryointhecloud.com/hub/home), as described above. ```{admonition} Note :class: important @@ -137,39 +163,19 @@ cause any of your work to be lost or deleted. It simply shuts down some resource It would be equivalent to turning off your desktop computer at the end of the day. ``` -## How do I do distributed computation? +## Using CryoCloud after OceanHackWeek -[Dask](https://dask.org/) is available on the JupyterHub for distributed compute. +Access granted for the event is tied to the event. If you would like to keep using CryoCloud afterwards, go through CryoCloud's own [getting started instructions](https://book.cryointhecloud.com/getting-started/), including the survey. You'll then be invited to their Slack channel, which is how the hub admins and users stay in touch. -To start up a Dask cluster, call +Two notes on filling out that form: -``` python -from dask.distributed import Client -from dask_gateway import GatewayCluster - -cluster = GatewayCluster() -client = Client(cluster) - -# xarray becomes even more awesome -``` - -And then either call `cluster` on it's own line in a cell and use the UI, or `cluster.scale(NUMBER_OF_WORKERS_TO_SCALE_TO)`. - -```{admonition} Note - -Just as it can take a few minutes for JupyterHub to start up your server, it can also take a few minutes before Dask workers become available. - -We are working on making Dask (and server) scaling faster, but no promises of faster scaling at this point. -``` - -Similar to your server, please shutdown your Dask clusters when you are done. - -``` python -cluster.shutdown() # or cluster.close() -``` +- **Award number** — if you don't have a grant number to enter, put down `OceanHackWeek`. It doesn't bill any grant; it's used for tracking and for justifying their compute credits. +- **Institution** — the list is a bit US-centric at the moment. If one of the options is a reasonable match but there's a better term for your situation, please put that down under *Other*, so that the form can be improved. ## References and Resources +- [CryoCloud JupyterBook](https://book.cryointhecloud.com/) — the hub's own documentation, including tutorials on working in the cloud. +- [2i2c user documentation](https://docs.2i2c.org/user/get-started/) — general guidance for 2i2c-managed hubs like CryoCloud. - [Why Jupyter is data scientists’ computational notebook of choice. An improved architecture and enthusiastic user base are driving uptake of the open-source web tool (Nature, 2018-10)](https://www.nature.com/articles/d41586-018-07196-1) - [Teaching and Learning with Jupyter](https://jupyter4edu.github.io/jupyter-edu-book/), an online open book. - OceanHackWeek 2020 pre-hackweek tutorial "Jupyter and Scientific Python basics: numpy, pandas, matplotlib": [Jupyter notebooks](https://github.com/oceanhackweek/ohw-preweek/tree/master/data-analysis-modules) — [tutorial video](https://youtu.be/CTUAgpvfze0). diff --git a/resources/tutorials/getting_started.md b/resources/tutorials/getting_started.md index 39e0077b..904b6431 100644 --- a/resources/tutorials/getting_started.md +++ b/resources/tutorials/getting_started.md @@ -2,11 +2,11 @@ ## Introduction -Tutorials will be run live on the [Openscapes JupyterHub ("The Hub"), https://workshop.nmfs-openscapes.2i2c.cloud](https://workshop.nmfs-openscapes.2i2c.cloud) in your browser either as Jupyter notebooks or as scripts and notebooks in RStudio. The instructor and all participants can be running their own copies of the tutorial in their Hub account, with files cloned from the OHW source in GitHub. +Tutorials will be run live on [CryoCloud ("The Hub"), https://hub.cryointhecloud.com](https://hub.cryointhecloud.com) in your browser either as Jupyter notebooks or as scripts and notebooks in RStudio. The instructor and all participants can be running their own copies of the tutorial in their Hub account, with files cloned from the OHW source in GitHub. Below are instructions for getting the tutorials started on the the Hub in your browser, and updating the tutorials files with the latest version from the GitHub tutorials repository, [https://github.com/oceanhackweek/ohw-tutorials](https://github.com/oceanhackweek/ohw-tutorials). -The schedule of tutorials is available [here](../../ohw25/schedule.md), and links to tutorial materials and some background resources will be available there as well. +The schedule of tutorials is available [here](../../ohw26/schedule.md), and links to tutorial materials and some background resources will be available there as well. ## How do I get the tutorial repository into the Hub? @@ -20,13 +20,13 @@ The nbgitpuller link is magical, but it can't detect which profile you are curre :::{tab-item} Python -[Pull tutorial repo for the Python profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW25) +[Pull tutorial repo for the Python profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=lab%2Ftree%2Fohw-tutorials%2F&branch=OHW26) ::: :::{tab-item} R -[Pull tutorial repo for the R profile](https://workshop.nmfs-openscapes.2i2c.cloud/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW25) +[Pull tutorial repo for the R profile](https://hub.cryointhecloud.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Foceanhackweek%2Fohw-tutorials&urlpath=rstudio%2F&branch=OHW26) :::