# CodeRefinery workshop Gothenburg 27-29 August, 2024 [toc] ## Links - [Workshop page](https://coderefinery.github.io/2024-08-27-gothenburg/) https://coderefinery.github.io/2024-08-27-gothenburg/ - [This document](https://hackmd.io/@coderefinery/2024-aug-gbg-ws-planning) https://hackmd.io/@coderefinery/2024-aug-gbg-ws-planning - [Q&A document]() - [Archive Q&A document]() - [Emails and communication]() :::danger Add missing links! :arrow_up: ::: ## Venue - Room booked at Chalmers 8:00 - 17:00 for Tue 27 Aug - Thu 29 Aug. Seats 26 persons (VR) ## Event webpage - Edited on GitHub https://github.com/coderefinery/2024-08-27-gothenburg (JH) - Published on https://coderefinery.github.io/2024-08-27-gothenburg/ ## Announcing and marketing - See checklist below for suggestion on marketing channels (JH) - contact Joachim Hein for coordination and announcement on NAISS training newsletter (VR) ## Registration - [Microsoft forms @ Chalmers](https://forms.office.com/e/ZpNzj9xStM) (VR) - [X] Check for aggregated data on CR webpages for suggestion multiple choice alternatives (JH, VR) ## Workshop roles - Overview of the roles: https://coderefinery.github.io/manuals/roles-overview/ ### Instructors ([Description](https://coderefinery.github.io/manuals/instructors/)) **Online installation help session Tuesday 20 August, 14:00 - 15:00** - [ ] day 1 - git-intro: BC, JH - [ ] day 1 - git-intro: BC, YW - [ ] day 2 - git-collab: BC, JH - [ ] day 2 - reproducible research: JH/YW, YW/VR - [ ] day 2 - social coding: JH/YW, YW/VR - [ ] day 3 - jupyter: VR, JH/YW - [ ] day 3 - documentation: JH/YW, VR/VR - [ ] day 3 - testing: JH/VR, VR/YR - [ ] day 3 - modular code development: VR, Leon ### Managing collaborative document ([description](https://coderefinery.github.io/manuals/hackmd-helper/#hackmd-manager)) Keep the document organized, check for unanswered questions, and archive notes each day. - [ ] preparation before workshop: - [ ] day 1 - git-intro: ???, ???, ... - [ ] day 1 - git-intro: ???, ???, ... - [ ] day 2 - git-collab: ???, ???, ... - [ ] day 2 - reproducible research: ???, ???, ... - [ ] day 2 - social coding: ???, ???, ... - [ ] day 3 - jupyter: ???, ???, ... - [ ] day 3 - documentation: ???, ???, ... - [ ] day 3 - testing: ???, ???, ... - [ ] day 3 - modular code development: ???, ???, ... ## Workshop organization; roles "behind the scenes" Organiser roles and their responsibilities. This does not mean that a person will do everything that is part of their responsibility, but they will make sure that their responsibilities are followed-up and not forgotten. ### Event director ([description](https://coderefinery.github.io/manuals/director/)) - lead: - backup: :::spoiler Checklist - Before workshop - [ ] Create planning document by copying this template - [ ] Distribute roles using this document - [ ] Ask collaborators/stakeholders to pick roles - [ ] Add all sessions to [CodeRefinery calendar](https://github.com/coderefinery/calendar) separately - [ ] Send calendar invite to all organizers, instructors, expert helpers, with all relevant links - [ ] Decide if certificates will be possible and what is needed for getting a certificate/credits (ask from partner universities) - [ ] Remind co-organizers to register - [ ] Send summary email to all co-organizers will all important links in one place - After the workshop: - [ ] Summarize lessons learned and make it a blog post in [coderefinery.org repo](https://github.com/coderefinery/coderefinery.org) - [ ] Coordinate post-workshop survey eg. in Indico - [ ] Merge new edits from here (no names ofc) to the [Playbook](https://github.com/coderefinery/manuals/blob/master/workshop-playbook.md) - [ ] Port changes from workshop page to [template page](https://github.com/coderefinery/template-workshop-webpage) - [ ] On CR website move from ["upcoming"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/upcoming.md) to ["past"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/past.md) ::: ### Registration coordinator ([description](https://coderefinery.github.io/manuals/registration-coordinator)) - lead: - backup: :::spoiler Checklist - **ca. 2 months before = When workshop details are set:** - [ ] Create [Indico registration page](https://indico.neic.no/category/5/) for the event - [ ] Include event information - [ ] Customise the registration form - [ ] Customise the confirmation email (with outreach and marketing coordinator) - [ ] Add Zoom link if any - [ ] Point to workshop page - [ ] Add collaborative document link if any - [ ] Set up a workshop page from [template page](https://github.com/coderefinery/template-workshop-webpage) - [ ] Add workshop to ["upcoming courses"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/upcoming.md) - Remember to add all the emails to workshop page - [ ] Open the registration - **Every day:** - Check [support email (Freshdesk)](https://coderefinery.zulipchat.com/#narrow/stream/215460-coderefinery/topic/freshdesk.20procedures) for requests/questions - **Every week:** - Check registrations for problems and read notes to organizers - Identify if need to do something – basically, "playing" with the registration data to not forget anybody and not to forget follow-up - Update [stats](https://github.com/coderefinery/workshop-stats) - Update workshop-webpage if new local organisations - **ca. 1 month before:** - [ ] Reach out to participants ([examples from Mar 2023](https://github.com/coderefinery/2023-03-21-workshop/tree/main/content/communication)) - [ ] [Team leaders](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/email-to-team-leads.md) - [ ] [Those who indicated interest in co-organizing and co-teaching](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/email-to-co-org-helpers.md) - [ ] [Communicate about self organising teams](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/exercise-teams-2023-03-09.md) - **Two weeks before** - [ ] [Send general information to all](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/practical-info-2023-03-09.md) - Next steps, onboarding, installation - Those who have a team, please organize your own zoom/video - [ ] [Inform those who want in-person about known LOs](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/local-groups-2023-03-09.md) - [ ] Try to match up learners and helpers who want to be part of a team - **ca. 1 week before** - [ ] Update Ondico auto-reply for last minute registrations - [ ] Send [email with all links](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/links-2023-03-15.md) - **1 day before!** - [ ] Send a [reminder with links](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/links-2023-03-20.md) - **During the workshop** - [ ] Send [daily summaries](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/summary-day1.md) (with exercise coordinator) - [Some of them have also preparation instructions!](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/summary-day2%2Bprep-day3.md) - **After the workshop:** - [ ] Add viewing statistics to [CodeRefinery webpage](https://github.com/coderefinery/coderefinery.org/tree/main/content/about/statistics) - [ ] Use [statistics repo](https://github.com/coderefinery/workshop-stats) (feel free to edit) - [ ] Close registration ::: ### Outreach and marketing coordinator ([description](https://coderefinery.github.io/manuals/workshop-marketing/)) - lead: - backup: :::spoiler Checklist - [ ] Create/update [advertising texts](https://github.com/coderefinery/template-workshop-webpage/tree/main/content/communication) and relevant news on the workshop page - [ ] Newsletter - https://tinyletter.com/coderefinery/archive - draft: https://hackmd.io/@coderefinery/CRnewsletter_1_2023 - [ ] Advertising texts on the workshop page - https://coderefinery.github.io/2023-03-21-workshop/communication/ - https://github.com/coderefinery/2023-03-21-workshop/tree/main/content/communication - [ ] CodeRefinery Twitter - https://coderefinery.zulipchat.com/#narrow/stream/119815-general/topic/tweet-toot-suggestions - [ ] CodeRefinery Mastodon - https://coderefinery.zulipchat.com/#narrow/stream/119815-general/topic/tweet-toot-suggestions - [ ] CodeRefinery LinkedIn - https://www.linkedin.com/events/coderefineryworkshopmarch21-23a7031623728480272384/comments/ - [ ] CHCAA LinkedIn (Aarhus University) - [ ] Partner Twitter, retweet and own tweets - [ ] Aalto Scientific Computing - [ ] Partner newsletters - [ ] Sigma2 - [ ] SNIC/NAISS - [ ] ENCCS - [ ] CSC - [ ] Partner websites training calendars - [ ] CSC - [ ] ENCCS - [ ] UiB - [ ] AU (Aarhus University) - [ ] Partner and other email lists - [ ] Aalto STEM students - [ ] Aalto triton users - [ ] Delta doctoral network - [ ] UiB researcher - [ ] UiB HPC - [ ] NERSC Bergen - [ ] Bjerknes Bergen - [ ] University of Oslo computational biology - [ ] University of Oslo Phd and Postdocs - [ ] University of Oslo Dcince contact (?) - [ ] Research institutes in all countries - [ ] Partner posters - [ ] Aalto (CS,U,NBE,PHYS,VAARE) ::: ### Certificate coordinator **Update link** <https://coderefinery.github.io/2024-08-27-gothenburg/certificates/> - lead: - backup: ASC team (the process can be run by anyone and we are now using a ticketing system to track requests) :::spoiler Checklist - [ ] Make sure that instructions on certificates are disseminated multiple times - [ ] Workshop page, emails ``` - Learner sends materials to scip _at_ aalto.fi. This opens a ticket in Aalto "esupport" system - The person who generates the certificate verifies quickly that the tasks were completed. - We then work with https://github.com/coderefinery/generate-certificates to generate PDF certificates - Certificate is sent to the person and ticket is closed - Aalto specific: - The local version of that repository is at /scratch/rse/generate-certificates/. The commands were slightly modified so that the default working directory is not the home folder - Aalto students can also obtain directly the 1 ECTS credit. See internal process at ASC pages. ``` ::: ## Detailed schedules ### Tuesday #### Git morning Start | Length |Topic | Main teacher| Pair teacher ------|----|----------|-------------| ------- 08:50| **10** | Soft start and icebreaker question|JH| BC 09:00| **15** | Welcome and practical information|JH?| 09:15| **05** | [Intro to day](https://coderefinery.github.io/git-intro/)|BC| JH 09:20| **10** | [Motivation](https://coderefinery.github.io/git-intro/motivation/)|BC| JH 09:30| **30+10** | [Copy and browse an existing project](https://coderefinery.github.io/git-intro/browsing/)|BC| JH -|25->20|Exercise (alone) -||note that to see issues and PR choose another repo, like git-intro 10:00| **15**| Break 10:25| **35**| [Committing changes](https://coderefinery.github.io/git-intro/commits/)|BC| JH -|20|Exercise (alone) 11:00|5| Break 11:05| 40 | [Merging changes and contributing to the project](https://coderefinery.github.io/git-intro/merging/)|BC| JH -||Exercise (alone as preview)20 m -|| Demo: resolving conflict or wait for collab 11:45| 145| Q&A |BC| JH+YW - also? - create new branch (coderefinery/other repo) and open pull requests - look at pull requests - try to merge conflicting - VS code?? - Q/A #### LUNCH 12-13 #### Git afternoon Start| Length |Topic | Main teacher| Co-teacher -----|---------|----------|-------------| ------- 13:00| 5 | Intro talk 13:05| 50 | [Cloning a Git repository and working locally (command line)](https://coderefinery.github.io/git-intro/local-workflow/)|BC|YW -|25 m| Exercise (alone) -|| Students should follow the walk-through 13:55| 5 | Break 14:00| 45 | [Inspecting history](https://coderefinery.github.io/git-intro/archaeology/)|BC|YW -|| Long Demo -|25-->20|Exercise -|| Just mention bisect 14:45| 15 |Break 15:00| 40 | [How to turn your project to a Git repo and share it](https://coderefinery.github.io/git-intro/sharing/)|BC|YW -|25->20|Exercise 15:40| 10 | [Practical advise](https://coderefinery.github.io/git-intro/level/)|BC|YW 15:50| 10| Q&A, feedback, and what will we be doing tomorrow? - Also?? - .gitignore - branch design - what to avoid - feedback and more discussion - preparation for next day ### Wednesday #### Github Start|Actually| Length |Topic | Main teacher| Co-teacher -----|-|---------|----------|-------------| ------- 08:50 |-| 10 |Icebreaker |BC| JH 09:00 |-| 10 |Recap and Intro|BC| JH -|| git avoid 09:10 |-| 15 |[Concepts around collaboration](https://coder-|efinery.github.io/git-collaborative/concepts/) |BC| JH 09:25 |-| 30+20 |[Collaborating within the same repository](https://coderefinery.github.io/git-collabo-|rative/same-repository/) |BC| JH -|-|10|In-|tro -|-|| Add Yonglei -|-|25-->**20**|Exercise -|-||In groups from template. Everyone can both review and pull request. Circle or pair 9:55|10:00-|-| 15| Break 10:10|-|20|~~Demo~~->ex cont'd and Q/A|BC| 10:30|-| 30 | [Practicing code review](https://coderefinery.github.io/git-collaborative/code-review/) |BC| JH -|-|10|Intro -|-|20|Exercise continue after break 11:00|11:05|5| break 11:05|11:20|~~55~~ 30 |[How to contribute changes to repositories that belong to others](https://coderefinery.github.io/git-collaborative/forking-workflow/) |BC| JH -|-|5|Intro and ~~demo~~ -|-|33 longer than 25 min |Exercise -|-||Comments 5 m 11:50|11:55|10|15-30| Wrap-up Q/A interweaved ####