# Tromso in-person team meeting Feb 26 - Mar 1, 2024 This will be an in-person retreat to discuss and work on lesson development and CodeRefinery future plans. :::info - Link to this page: https://hackmd.io/@coderefinery/in-person-retreat-2024 - Link to planning concept board: https://app.conceptboard.com/board/dyrb-ify9-93ac-592s-kr9y - Map with all locations: https://umap.openstreetmap.fr/en/map/cr-in-person-2024_1029155 ::: [toc] ## Bus/transport info - https://hackmd.io/@coderefinery/tromso-meeting-transport ## Meeting room, lunch, campus map - https://hackmd.io/@coderefinery/tromso-meeting-rooms ## Weather forecast and outdoors - Weather forecast: https://yr.no and https://pent.no/ - Map for hiking (but for many routes you need now skis or snow shoes): https://www.norgeskart.no/ ## Participants - Matias - Richard - Bjørn - Stephan - Yonglei - Dhanya - Sabry - Samantha - Radovan Overview for session planning: ``` - Mon pm: SS MJ RD BL - Tue am: SS MJ RD YW BL - Tue pm: DP SS MJ RD YW SR BL - Wed am: DP SS MJ RD YW SR BL - Wed pm: DP SS MJ RD YW SR (SW) BL - Thu am: DP SS MJ RD YW SR SW BL - Thu pm: (DP) SS MJ RD (SR) SW (BL) - Fri am: SW ``` ## Topic leaders Survey: https://docs.google.com/spreadsheets/d/1WHA47Y1LYUYhUhY6YE-tl3p_GYXbN9BM-nQyuG1TF4A/edit?usp=sharing Topic leaders (tentative): - Sabry - Possible workshop formats - Stephan - Possible workshop platforms - Radovan - Git lesson development & Governance possibilities - Bjørn - Modular code development lesson - Richard - Video production & Installation instructions update - Yonglei - Citable lessons - Matias - Possible funding/business models - Samantha - Onboarding improvements - Dhanya - Social media strategy **Leading a topic means ...** **Before the retreat** - You prepare an intro to the topic, getting everyone on the same page what the next x hour will be about - Needed for some topics: prepare possible scenarios/formats etc to enable discussion and avoid "blank page staring" - If topic goal is unclear, ask for help in chat (#CR-retreat, private to participants) **During the retreat** - Present the introduction - Facilitate the discussion on your topic, leading towards the outcome/deliverable (see deliverables in bottom of this: https://app.conceptboard.com/board/dyrb-ify9-93ac-592s-kr9y#item=u_b15df487-3375-4478-bac3-723732e81d31-W5XiFHCi0u-4&zoom=max) - Make sure that "someone" takes notes - prepare at least one summary post for social media (more are also welcome), post it to the social media topic in CR-retreat channel **After the retreat** - You are responsible that the outcome is preserved somewhere and shared with the team ## Program Monday - 13:00 - 17:00 - ==Video production== (possible subtopics: post-WS editing, streaming, "minute videos") - **Topic lead: Richard**, [Material](https://coderefinery.github.io/community-teaching/video-editing/) - Summary post: - We practiced video editing with [ffmpeg-editlist](https://github.com/coderefinery/ffmpeg-editlist): really nice and easy to use! - We brainstormed ideas on how to make the workshop easier to follow ("where are we right now?", "what are we supposed to do right now?") and easier to video-edit afterwards - status bar overlay that shows the breadcrumb including where we are at the lesson - status text overlay that shows whether the workshop is in exercise or lesson etc. - We got overview of OBS settings: the setting files are in [obs-config repo](https://github.com/coderefinery/obs-config). They can be downloaded and imported to the OBS Studio - Social media post: "The #CodeRefinery in-person meeting week has started. In the morning, we talked about git lesson design (how can we make it reflect real work better?), and in the afternoon we shared how we process workshop videos - many of us had never done it before, and it's actually pretty fast and powerful." - Image description: "Photo of whiteboard showing how ffmpeg-editlist works. Left column is a raw video, 25 minutes long. Middle column is a YAML file that defines two outputs. The outputs are defined with the timestamps of the input. The right column is the output of ffmpeg-editlist, which is two separate files, with chapter timestamps converted to be relative to the output file. ffmpeg-editlist makes output text files with the chapter definitions, ready for YouTube and similar. (It can also create description files including titles and descriptions, based on the yaml file. It can also reprocess origial subtitles to cut ones for each segment). - It's open source and scripts ffmpeg. https://github.com/coderefinery/ffmpeg-editlist/" Tuesday - 09:00 - 12:00 - TBD ... - 13:00 - 17:00 - ==Git lesson rewrite== - **Topic lead: Radovan** - Starting point for discussion: https://github.com/coderefinery/git-intro/issues/430 - Session notes: https://hackmd.io/@coderefinery/git-lesson-redesign - ==Workshop format and how it affects lesson development== - **Topic lead: Sabry** - [Notes](https://hackmd.io/rYUPfIkhSAe5ZCiAk3jxfQ) - ==Install instructions updates== - **Topic lead: Richard** - Evening - Dinner (self-organized) - Northern lights hike (depending on weather) > A really good general suggestion by DP: do a video about CR WS benefits -> to be played in other conferences Wednesday - 09:00 - 12:00 - ==Modular code development lesson== - [Presentation](https://cicero.xyz/v3/remark/0.14.0/github.com/blindij/CR_mcd/main/mytalk.md/#1) - **Topic lead: Bjørn** - RD: The lesson is really good as it is now - How to engage the non-python user? Idea; have several streams where one stream is dedicated to a programming language. - The things we show are translateable to different languages. Suggestion; to have tabs with different languages per tab. We need to create a structure for it and the ask for contributions. - What about AI (ChatGPT or GitHub Copilot or similar)? - we need to at least mention it and have a short discussion - tabs for R, Matlab, Julia to be added in the "instructor guide" - also rename "instructor guide" to solution - Suggestion: - Present concepts first eg. with a game - Show a "real-life" example: a jupyter / RStudio with all code in one cell -> use the presented concepts to rearrange it into multiple cells aaand maybe even callable modules - Pose a question that students should pay attention into: "Have we used all the concepts presented in the beginnning?" - Social media post: - > First session of the day was evaluating the "Modular code development" lesson. There were people who liked the lesson as-is, but also some who thought it should be more engaging. We agreed we should add tabs for other languages, but had a hard time of finding a way to make it more engaging, in a way that everyone could follow along. 1/2 #CodeRefinery - > 2/2 What do you all think of the lesson? If you haven't ever seen it before, it gets great feedback for showing the transition form a Jupyter plot to a reusable command line tool, with all the steps in beteween: https://youtu.be/x0FoTBZcn2U?t=3714 #RSEng #CodeRefinery #jupyter #CommandLine #OpenScience - ==Possible workshop platforms== - **Topic lead: Stephan** - [Notes](https://hackmd.io/4O-O_Pr4SaSpmAl8mZZU4g) - 13:00 - 17:00 - ==Citable lessons== - **Topic lead: Yonglei** - [Notes](https://hackmd.io/@yonglei/citable-lesson-coderefinery-2024feb) - ==Social media strategies== - **Topic lead: Dhanya** - [Notes](https://hackmd.io/JNjyr2-9QYylHAjM70SjNg?view) - ==Thoughts about CR as community== - please fill in your thoughts: https://hackmd.io/@coderefinery/Comunity - Evening - 19:30 Group dinner at [Casa Inferno](https://www.casainferno.no/) - Reservation is under "Radovan Bast, group of 10" Thursday - 09:00 - 12:00 - Looking over post-workshop survey - social media post on zulip - Governance, funding and business models - **Topic lead possible funding/business models: Matias** - [Conceptboard](https://app.conceptboard.com/board/r11m-gk4u-a8ne-dqs9-5suf) - > We looked at possible future funding models, in the form of user stories. There were many ideas, for example in-kind teaching co-ops across universities, summer schools, freelance teaching outside of our jobs paid by others (hello @DigitalResearchAcademy). We should make it easy to add CR to proposals [... to scenarios where CR people offer courses to companies and invoice them.??] #CodeRefinery #RSEng #OpenScience - > Random thought: if we made some sort of Patreon(etc) around PhD students/researchers to support #CodeRefinery-like support: extra community, live support, etc, would you pay say 50€/month for a possibility to talk with an expert who can help you with your research software questions? - https://hackmd.io/@coderefinery/finance-plan-ws-summary - **Topic lead governance: Radovan** - Drafty draft to be critically discussed: https://hackmd.io/@coderefinery/governance - 13:00 - 17:00 - Onboarding improvements - [material](https://hackmd.io/@coderefinery/onboarding) - **Topic lead: Samantha** - Governance and business model: solutions - How we make the possibilities happen? - Lesson development work - Evening - Dinner at RB's place: - Svarthammerveien 1 - Ground level, enter from Floyveien - Bus 26 to Gausdalsveien - Northern lights walk (depenzolding on weather) Friday - 09:00 - 12:00 - Doing something useful ## Flights and accommodation - Travel - Fly to Tromsø (TOS) airport - Transport from airport to city is easy (see further up) - Accommodation - Book your own accommodation through your institution - Two options that look not overly expensive: - Comfort Hotel Xpress Tromso - Smarthotel Tromso - Location-wise, any other hotel in the center is fine but some of them are excessively expensive ## Session: video production (rkdarst) Materials * Main lesson: https://coderefinery.github.io/community-teaching/video-editing/ * Demo of releasing videos: https://piped.video/watch?v=_CoBNe-n2Ak Goals * Allow others to help with video processing during workshops * Allow others to use our best practices. Biggest problems: * Workshop video processing happens the same evening as teaching. No one people can't promise this. ## Session: installation instructions (rkdarst) Current state: * Mostly works (but every time needs updates) * There is much there, it's hard to know what to focus on depending on how you want to attend * VSCode and other editors mostly missing. Suggestions * Think about the table on the main page * Make an "editors" section, get an expert in each IDE to contribute * Some ideas in issues: https://github.com/coderefinery/installation/issues * Think about *usability*: get experts in each OS/editor to contribut. Discussion: * It would take ~1 day to go through all these and get set up. * For week 2, how to communicate "you don't have to do this." * Remove "what to do" table on the front page. Move install to-do list to the front page. * Install instructions should say "Week 1: do this [list]. Week 2: optional, [list]" * Can we do everything by docker/container? What if we containerize everything? * . To do: * GitHub account: shorten * Shell and git: * Windows: vscode instead * MacOS: developer tools, or xcode * Linux: install package (use package manager)? * Fresh instaltions no Git * remove "set default branch (move it to lesson)"\ * check if two more windows settings are needed * SSH connection to GitHub: Add "VSCode" tab to install instructions * Remove git-bash from windows * . * Redo/change install verification videos * Post to CR chat/social media and ask "For [operating system x], what's the easiest way to get started with an editor and git. This is for a person new to scientific computing and doesn't have extensive command line experience. Usability is more important than perfection here. They should have git, authentication to clone/push/pull from github, edit files, and commit them." Social media post: Summary from #CodeRefinery team session where we discussed the install instructions in detail: As expected, it became a discussion usability and how to help a broad audience use git - which these days is *not* from pedantically from the command line. We'll have some follow-up posts where you can help us by giving some thoughts. #git #CodeRefinery #RSEng