# 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
####