From 30463462946cb8f1e513135f729ba8ff6e7f44c5 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Thu, 22 Oct 2026 11:00:19 +0100 Subject: [PATCH 01/10] Add intro to git course as submodule --- .gitmodules | 3 +++ src/Summer-school-Intro-Git | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 src/Summer-school-Intro-Git diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..265efe5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/Summer-school-Intro-Git"] + path = src/Summer-school-Intro-Git + url = git@github.com:Cambridge-ICCS/Summer-school-Intro-Git.git diff --git a/src/Summer-school-Intro-Git b/src/Summer-school-Intro-Git new file mode 160000 index 0000000..bc9e50f --- /dev/null +++ b/src/Summer-school-Intro-Git @@ -0,0 +1 @@ +Subproject commit bc9e50fb6558f6c4ae0edc77b87dc6951950da7c From afae5eb94602a26e7b086a50a45645e95dbb0dfd Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Thu, 22 Oct 2026 11:01:03 +0100 Subject: [PATCH 02/10] Switch to nix flake from docs Overrides the python packages and patches quarto --- flake.nix | 48 +++++++++++++++++++++++++++++++++++++----------- shell.nix | 14 -------------- 2 files changed, 37 insertions(+), 25 deletions(-) delete mode 100644 shell.nix diff --git a/flake.nix b/flake.nix index 13d53ec..b1323de 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,40 @@ { description = "Reproducibility in Scientific Software environment"; - - inputs.flake-utils.url = "github:numtide/flake-utils"; - - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem - (system: - let pkgs = nixpkgs.legacyPackages.${system}; in - { - devShells.default = import ./shell.nix { inherit pkgs; }; - } - ); + inputs = { + nixpkgs.url = "github:Nixos/nixpkgs/nixos-unstable"; + }; + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + myPythonPackages = ps: with ps; [ + pandas + numpy + matplotlib + jupyter + jupyter-cache + ]; + pythonEnv = pkgs.python3.withPackages myPythonPackages; + in + { + devShells.${system}.default = pkgs.mkShell { + packages = [ + ((pkgs.quarto.override { + extraPythonPackages = myPythonPackages; + }).overrideAttrs (oldAttrs: { + # Remove this overrideAttrs patch when fixed. + # See https://github.com/NixOS/nixpkgs/issues/519484#issuecomment-4667477454 + postPatch = (oldAttrs.postPatch or "") + '' + substituteInPlace bin/quarto.js \ + --replace-fail "syntax-highlighting" "highlight-style" + ''; + })) + pythonEnv + ]; + shellHook = '' + echo "Quarto Environment Active (Pure Flake)" + echo "Quickstart: run 'quarto render document.qmd'" + ''; + }; + }; } diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 6fd05cb..0000000 --- a/shell.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs ? import { } }: -pkgs.mkShell { - packages = [ - pkgs.quarto - (pkgs.python3.withPackages (python-pkgs: with python-pkgs; [ - # select Python packages here - pandas - numpy - matplotlib - jupyter - jupyter-cache - ])) - ]; -} From 44a3f1675582800f8d1730b8e882424f9fec0223 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 11:31:25 +0000 Subject: [PATCH 03/10] Add intro to git content from ICCS course --- src/Summer-school-Intro-Git | 2 +- src/custom.scss | 108 +++++++++++++++++++++- src/images/git.png | 1 + src/images/github-mark.svg | 1 + src/images/show_different_file_states.png | 1 + src/slides.qmd | 15 +++ src/version_control.qmd | 8 +- 7 files changed, 128 insertions(+), 8 deletions(-) create mode 120000 src/images/git.png create mode 120000 src/images/github-mark.svg create mode 120000 src/images/show_different_file_states.png diff --git a/src/Summer-school-Intro-Git b/src/Summer-school-Intro-Git index bc9e50f..1a5cba2 160000 --- a/src/Summer-school-Intro-Git +++ b/src/Summer-school-Intro-Git @@ -1 +1 @@ -Subproject commit bc9e50fb6558f6c4ae0edc77b87dc6951950da7c +Subproject commit 1a5cba2778f027d3058aa9563fd35ed46d7774df diff --git a/src/custom.scss b/src/custom.scss index f5dff29..7eb4236 100644 --- a/src/custom.scss +++ b/src/custom.scss @@ -1,9 +1,111 @@ /*-- scss:defaults --*/ -$presentation-font-size-root: 1.5em; -$presentation-line-height: 1.5em; +// FONTS +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&display=swap'); -ul { +$presentation-heading-font: 'Montserrat', sans-serif; + +$accent: #0c4e8a; +/*-- scss:rules --*/ + +// Title and headings styling +#title-slide { + text-align: center; + + .title { + font-family: $presentation-heading-font; + font-weight: 400; + font-size: 2.5em; + color: #0c4e8a; + } + + .subtitle { + color: $accent; + font-style: italic; + } + + .author, + .quarto-title-author-name { + color: $body-color; + font-size: 1.2em; + } + + .quarto-title-authors { + display: flex; + justify-content: center; + flex-direction: row; // Ensure horizontal layout + flex-wrap: wrap; + gap: 2em; // Space between authors + // display: flex; + // flex-direction: row; + // flex-wrap: wrap; + + .quarto-title-author { + padding-left: 0em; + padding-right: 0em; + width: auto; // Allow variable width based on content + max-width: 30%; // Limit width so multiple fit on one row + flex: 0 0 auto; // Don't grow or shrink + } + } + + .institute, + .quarto-title-affiliation, + .quarto-title-author-email { + font-style: italic; + font-size: 80%; + // color: #fffafa; + } + + .date { + font-weight: 400; // Set your desired font weight (100-900) + font-size: 1em; // Optionally adjust the size + color: $body-color; // Use the default text color or set your own + margin-top: 1em; // Add some space above the date + } + + +} + +// Control heading size and weight for non-title slides +.reveal h1:not(#title-slide h1) { + font-size: 2.0em; + font-weight: 600; +} + +.reveal h2:not(#title-slide h2) { + font-size: 1.7em; + font-weight: 550; +} + +.reveal h3:not(#title-slide h3) { + font-size: 1.3em; + font-weight: 500; +} +/*-- Logo --*/ +.reveal .slide-logo { + max-width: unset !important; + max-height: 8% !important; +} + +/*-- vertically center columns (or any container) --*/ +.v-center-container { display: flex; + justify-content: center; align-items: center; + height: 90%; +} + +/*-- Get rid of column margins - quarto revealjs has strange behaviour --*/ +.reveal .columns> { + + .column, + .column:last-child { + + > :not(ul, ol) { + + margin-left: 0em; + margin-right: 0em; + } + } } diff --git a/src/images/git.png b/src/images/git.png new file mode 120000 index 0000000..64bd8c6 --- /dev/null +++ b/src/images/git.png @@ -0,0 +1 @@ +../Summer-school-Intro-Git/slides/images/git.png \ No newline at end of file diff --git a/src/images/github-mark.svg b/src/images/github-mark.svg new file mode 120000 index 0000000..446c27f --- /dev/null +++ b/src/images/github-mark.svg @@ -0,0 +1 @@ +../Summer-school-Intro-Git/slides/images/github-mark.svg \ No newline at end of file diff --git a/src/images/show_different_file_states.png b/src/images/show_different_file_states.png new file mode 120000 index 0000000..087fdd9 --- /dev/null +++ b/src/images/show_different_file_states.png @@ -0,0 +1 @@ +../Summer-school-Intro-Git/slides/images/show_different_file_states.png \ No newline at end of file diff --git a/src/slides.qmd b/src/slides.qmd index adf3e88..3bd0ffc 100644 --- a/src/slides.qmd +++ b/src/slides.qmd @@ -6,6 +6,21 @@ format: revealjs: theme: [dracula, custom.scss] logo: https://iccs.cam.ac.uk/sites/default/files/iccs_ucam_combined_reverse_colour.png + embed-resources: false + + smaller: true + slide-number: false + incremental: false + history: false + chalkboard: false + preview-links: auto + + highlight-style: github + code-overflow: scroll + code-line-numbers: false + +revealjs-plugins: + - attribution authors: - name: Jack Franklin diff --git a/src/version_control.qmd b/src/version_control.qmd index 3904194..a981eca 100644 --- a/src/version_control.qmd +++ b/src/version_control.qmd @@ -1,8 +1,10 @@ # Version Control -## Version Control +{{< include Summer-school-Intro-Git/slides/_version_control.qmd >}} -\ +{{< include Summer-school-Intro-Git/slides/_basics.qmd >}} + +## Using VC - The first thing we should do is move our project into version control (VC) - This way we never lose the original state of the project @@ -11,8 +13,6 @@ ## What to add to VC -\ - - DON'T do this: ```console git add . From 9df21b66f922205ccf8a81828a956cf60a2a791e Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 11:36:31 +0000 Subject: [PATCH 04/10] Move all figures into `images` directory for consistency --- src/dependencies.qmd | 8 +++---- src/documentation.qmd | 2 +- src/fair_principles.qmd | 2 +- src/{img => images}/FAIR_data_principles.png | Bin src/{img => images}/Guix.png | Bin src/{img => images}/RIOT_principles.png | Bin src/{img => images}/acm.png | Bin src/{img => images}/acm_badges.jpg | Bin src/{img => images}/apptainer.svg | 0 src/{img => images}/cat-flower.jpeg | Bin .../docker-logo-ocean-blue.svg | 0 .../es_reproducibility_perception.jpg | Bin .../es_reproducibility_reasons.jpg | Bin .../es_reproducibility_reasons_only.jpg | Bin .../es_reproducibility_solutions.jpg | Bin src/{img => images}/fear.jpeg | Bin src/{img => images}/ftorch-readme.png | Bin .../iccs_hacktoberfest_2026.png | Bin src/{img => images}/nixos-logo.svg | 0 src/{img => images}/podman-logo-source.svg | 0 .../reproducibility_matrix.jpg | Bin src/{img => images}/reprohack-hub.png | Bin src/{img => images}/reprohack_logo.jpg | Bin src/{img => images}/riots.png | Bin src/{img => images}/sc26.png | Bin src/{img => images}/scientists_nightmare.png | Bin src/{img => images}/theturingway-pathway.png | Bin src/{img => images}/turingway.png | Bin src/{img => images}/ukrn.png | Bin src/{img => images}/ukrnlogo.jpeg | Bin src/{img => images}/zenodo.png | Bin src/introduction.qmd | 2 +- src/reproducibility_initiatives.qmd | 20 +++++++++--------- src/slides.qmd | 2 +- 34 files changed, 18 insertions(+), 18 deletions(-) rename src/{img => images}/FAIR_data_principles.png (100%) rename src/{img => images}/Guix.png (100%) rename src/{img => images}/RIOT_principles.png (100%) rename src/{img => images}/acm.png (100%) rename src/{img => images}/acm_badges.jpg (100%) rename src/{img => images}/apptainer.svg (100%) rename src/{img => images}/cat-flower.jpeg (100%) rename src/{img => images}/docker-logo-ocean-blue.svg (100%) rename src/{img => images}/es_reproducibility_perception.jpg (100%) rename src/{img => images}/es_reproducibility_reasons.jpg (100%) rename src/{img => images}/es_reproducibility_reasons_only.jpg (100%) rename src/{img => images}/es_reproducibility_solutions.jpg (100%) rename src/{img => images}/fear.jpeg (100%) rename src/{img => images}/ftorch-readme.png (100%) rename src/{img => images}/iccs_hacktoberfest_2026.png (100%) rename src/{img => images}/nixos-logo.svg (100%) rename src/{img => images}/podman-logo-source.svg (100%) rename src/{img => images}/reproducibility_matrix.jpg (100%) rename src/{img => images}/reprohack-hub.png (100%) rename src/{img => images}/reprohack_logo.jpg (100%) rename src/{img => images}/riots.png (100%) rename src/{img => images}/sc26.png (100%) rename src/{img => images}/scientists_nightmare.png (100%) rename src/{img => images}/theturingway-pathway.png (100%) rename src/{img => images}/turingway.png (100%) rename src/{img => images}/ukrn.png (100%) rename src/{img => images}/ukrnlogo.jpeg (100%) rename src/{img => images}/zenodo.png (100%) diff --git a/src/dependencies.qmd b/src/dependencies.qmd index 48950a5..910a2ca 100644 --- a/src/dependencies.qmd +++ b/src/dependencies.qmd @@ -44,7 +44,7 @@ - Ideally automate the fetching of the data ::: :::{.column width="40%"} -![Example of a zenodo listing. Note how each version of the dataset has a different reference](img/zenodo.png) +![Example of a zenodo listing. Note how each version of the dataset has a different reference](images/zenodo.png) ::: ::: @@ -91,9 +91,9 @@ - Portable and cross-platform ::: :::{.column width="40%"} -![](img/docker-logo-ocean-blue.svg) -![](img/apptainer.svg) -![](img/podman-logo-source.svg) +![](images/docker-logo-ocean-blue.svg) +![](images/apptainer.svg) +![](images/podman-logo-source.svg) ::: ::: diff --git a/src/documentation.qmd b/src/documentation.qmd index 9481a5e..1c2e2fd 100644 --- a/src/documentation.qmd +++ b/src/documentation.qmd @@ -23,7 +23,7 @@ :::: ::::{.column width=50%} -![](img/ftorch-readme.png) +![](images/ftorch-readme.png) :::: ::: diff --git a/src/fair_principles.qmd b/src/fair_principles.qmd index 2f34601..8fb82d3 100644 --- a/src/fair_principles.qmd +++ b/src/fair_principles.qmd @@ -8,7 +8,7 @@ The FAIR principles were first introduced for data, and later adapted for resear FAIR stands for -![](img/FAIR_data_principles.png){width=80%} +![](images/FAIR_data_principles.png){width=80%} [^1]: diff --git a/src/img/FAIR_data_principles.png b/src/images/FAIR_data_principles.png similarity index 100% rename from src/img/FAIR_data_principles.png rename to src/images/FAIR_data_principles.png diff --git a/src/img/Guix.png b/src/images/Guix.png similarity index 100% rename from src/img/Guix.png rename to src/images/Guix.png diff --git a/src/img/RIOT_principles.png b/src/images/RIOT_principles.png similarity index 100% rename from src/img/RIOT_principles.png rename to src/images/RIOT_principles.png diff --git a/src/img/acm.png b/src/images/acm.png similarity index 100% rename from src/img/acm.png rename to src/images/acm.png diff --git a/src/img/acm_badges.jpg b/src/images/acm_badges.jpg similarity index 100% rename from src/img/acm_badges.jpg rename to src/images/acm_badges.jpg diff --git a/src/img/apptainer.svg b/src/images/apptainer.svg similarity index 100% rename from src/img/apptainer.svg rename to src/images/apptainer.svg diff --git a/src/img/cat-flower.jpeg b/src/images/cat-flower.jpeg similarity index 100% rename from src/img/cat-flower.jpeg rename to src/images/cat-flower.jpeg diff --git a/src/img/docker-logo-ocean-blue.svg b/src/images/docker-logo-ocean-blue.svg similarity index 100% rename from src/img/docker-logo-ocean-blue.svg rename to src/images/docker-logo-ocean-blue.svg diff --git a/src/img/es_reproducibility_perception.jpg b/src/images/es_reproducibility_perception.jpg similarity index 100% rename from src/img/es_reproducibility_perception.jpg rename to src/images/es_reproducibility_perception.jpg diff --git a/src/img/es_reproducibility_reasons.jpg b/src/images/es_reproducibility_reasons.jpg similarity index 100% rename from src/img/es_reproducibility_reasons.jpg rename to src/images/es_reproducibility_reasons.jpg diff --git a/src/img/es_reproducibility_reasons_only.jpg b/src/images/es_reproducibility_reasons_only.jpg similarity index 100% rename from src/img/es_reproducibility_reasons_only.jpg rename to src/images/es_reproducibility_reasons_only.jpg diff --git a/src/img/es_reproducibility_solutions.jpg b/src/images/es_reproducibility_solutions.jpg similarity index 100% rename from src/img/es_reproducibility_solutions.jpg rename to src/images/es_reproducibility_solutions.jpg diff --git a/src/img/fear.jpeg b/src/images/fear.jpeg similarity index 100% rename from src/img/fear.jpeg rename to src/images/fear.jpeg diff --git a/src/img/ftorch-readme.png b/src/images/ftorch-readme.png similarity index 100% rename from src/img/ftorch-readme.png rename to src/images/ftorch-readme.png diff --git a/src/img/iccs_hacktoberfest_2026.png b/src/images/iccs_hacktoberfest_2026.png similarity index 100% rename from src/img/iccs_hacktoberfest_2026.png rename to src/images/iccs_hacktoberfest_2026.png diff --git a/src/img/nixos-logo.svg b/src/images/nixos-logo.svg similarity index 100% rename from src/img/nixos-logo.svg rename to src/images/nixos-logo.svg diff --git a/src/img/podman-logo-source.svg b/src/images/podman-logo-source.svg similarity index 100% rename from src/img/podman-logo-source.svg rename to src/images/podman-logo-source.svg diff --git a/src/img/reproducibility_matrix.jpg b/src/images/reproducibility_matrix.jpg similarity index 100% rename from src/img/reproducibility_matrix.jpg rename to src/images/reproducibility_matrix.jpg diff --git a/src/img/reprohack-hub.png b/src/images/reprohack-hub.png similarity index 100% rename from src/img/reprohack-hub.png rename to src/images/reprohack-hub.png diff --git a/src/img/reprohack_logo.jpg b/src/images/reprohack_logo.jpg similarity index 100% rename from src/img/reprohack_logo.jpg rename to src/images/reprohack_logo.jpg diff --git a/src/img/riots.png b/src/images/riots.png similarity index 100% rename from src/img/riots.png rename to src/images/riots.png diff --git a/src/img/sc26.png b/src/images/sc26.png similarity index 100% rename from src/img/sc26.png rename to src/images/sc26.png diff --git a/src/img/scientists_nightmare.png b/src/images/scientists_nightmare.png similarity index 100% rename from src/img/scientists_nightmare.png rename to src/images/scientists_nightmare.png diff --git a/src/img/theturingway-pathway.png b/src/images/theturingway-pathway.png similarity index 100% rename from src/img/theturingway-pathway.png rename to src/images/theturingway-pathway.png diff --git a/src/img/turingway.png b/src/images/turingway.png similarity index 100% rename from src/img/turingway.png rename to src/images/turingway.png diff --git a/src/img/ukrn.png b/src/images/ukrn.png similarity index 100% rename from src/img/ukrn.png rename to src/images/ukrn.png diff --git a/src/img/ukrnlogo.jpeg b/src/images/ukrnlogo.jpeg similarity index 100% rename from src/img/ukrnlogo.jpeg rename to src/images/ukrnlogo.jpeg diff --git a/src/img/zenodo.png b/src/images/zenodo.png similarity index 100% rename from src/img/zenodo.png rename to src/images/zenodo.png diff --git a/src/introduction.qmd b/src/introduction.qmd index 51f76ed..f3916b6 100644 --- a/src/introduction.qmd +++ b/src/introduction.qmd @@ -4,7 +4,7 @@ In scientific research, a result is: -![](/img/reproducibility_matrix.jpg){width=60%, fig-align="center"} +![](/images/reproducibility_matrix.jpg){width=60%, fig-align="center"} :::{.footer} We will use the definitions used in [The Turing Way](https://book.the-turing-way.org/reproducible-research/overview/overview-definitions/) diff --git a/src/reproducibility_initiatives.qmd b/src/reproducibility_initiatives.qmd index 14cf6b7..fa5a68e 100644 --- a/src/reproducibility_initiatives.qmd +++ b/src/reproducibility_initiatives.qmd @@ -16,7 +16,7 @@ thing (internationally). --- -## ![](img/ukrnlogo.jpeg){style="width:1.5cm; vertical-align:bottom;"} UK Reproducibility Network +## ![](images/ukrnlogo.jpeg){style="width:1.5cm; vertical-align:bottom;"} UK Reproducibility Network - Peer-led consortium within the UK, international networks @@ -26,12 +26,12 @@ thing (internationally). - -![](img/ukrn.png){width=80%, fig-align="center"} +![](images/ukrn.png){width=80%, fig-align="center"} --- -## ![](img/riots.png){style="width: 5%"} RIOT Science +## ![](images/riots.png){style="width: 5%"} RIOT Science :::: {.columns} @@ -43,7 +43,7 @@ thing (internationally). ::: ::: {.column style="width: 50%; fig-align: center; "} -![](img/RIOT_principles.png){style="width: 80%; background-color: white;"} +![](images/RIOT_principles.png){style="width: 80%; background-color: white;"} ::: :::: @@ -62,12 +62,12 @@ thing (internationally). - Collaboration ::: :::{.column width=70%} -![](img/theturingway-pathway.png){width=80%, fig-align="center"} +![](images/theturingway-pathway.png){width=80%, fig-align="center"} ::: ::: --- -## ![](img/acm.png){style="width:20%; vertical-align:text-bottom;"} ACM Reproducibility Badges +## ![](images/acm.png){style="width:20%; vertical-align:text-bottom;"} ACM Reproducibility Badges   @@ -80,14 +80,14 @@ thing (internationally). ::: ::: {.column width="50%"} -![](img/acm_badges.jpg){style="width:90%; fig-align:center"} +![](images/acm_badges.jpg){style="width:90%; fig-align:center"} ::: :::: --- -## ![](img/sc26.png){width=10%} SC Reproducibility Initiative +## ![](images/sc26.png){width=10%} SC Reproducibility Initiative   @@ -108,7 +108,7 @@ Performance Computing Networking, Storage, and Analysis --- -## ![](img/reprohack_logo.jpg){width=5%} ReproHack +## ![](images/reprohack_logo.jpg){width=5%} ReproHack - __Challenge__: Reproduce the results of a paper in one day! @@ -129,7 +129,7 @@ course by Owen Petchey) - Events listing - Support through ReproHack Slack -![](img/reprohack-hub.png) +![](images/reprohack-hub.png) --- diff --git a/src/slides.qmd b/src/slides.qmd index 3bd0ffc..8753614 100644 --- a/src/slides.qmd +++ b/src/slides.qmd @@ -95,4 +95,4 @@ Additional benefits: ## ICCS Hacktoberfest 2026 -![](img/iccs_hacktoberfest_2026){width=80%, fig-align="center"} +![](images/iccs_hacktoberfest_2026){width=80%, fig-align="center"} From 16b1a94ef1414d2fb0b1c6bd0ebaefa309c3aebb Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 11:55:36 +0000 Subject: [PATCH 05/10] Add submodules to GH actions --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4300cb2..bde84f5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,6 +17,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + submodules: 'true' - uses: actions/setup-python@v6 with: From 25b29afab1d184dd48c819b2b682693ba1fdc3f1 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 12:10:10 +0000 Subject: [PATCH 06/10] Add branches content --- src/version_control.qmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/version_control.qmd b/src/version_control.qmd index a981eca..d0b83b1 100644 --- a/src/version_control.qmd +++ b/src/version_control.qmd @@ -4,6 +4,10 @@ {{< include Summer-school-Intro-Git/slides/_basics.qmd >}} +# Git branches + +{{< include Summer-school-Intro-Git/slides/_branching.qmd >}} + ## Using VC - The first thing we should do is move our project into version control (VC) From e8159cee8d6b0c6191d2ab654856f8138491df0b Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 12:10:22 +0000 Subject: [PATCH 07/10] Fix logo size --- src/custom.scss | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/custom.scss b/src/custom.scss index 7eb4236..b082f18 100644 --- a/src/custom.scss +++ b/src/custom.scss @@ -82,11 +82,6 @@ $accent: #0c4e8a; font-size: 1.3em; font-weight: 500; } -/*-- Logo --*/ -.reveal .slide-logo { - max-width: unset !important; - max-height: 8% !important; -} /*-- vertically center columns (or any container) --*/ .v-center-container { From 24778e5d69992297a92b5d4488661767d4d52e42 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 12:10:37 +0000 Subject: [PATCH 08/10] Update flake lock --- flake.lock | 49 +++++++++---------------------------------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/flake.lock b/flake.lock index aef794c..946251c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,56 +1,25 @@ { "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, + "nixpkgs": { "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "lastModified": 1792502884, + "narHash": "sha256-IoNisKcGbUjdd45qCqywGMCYmZ5EnkxezvLII0FWwNA=", + "owner": "Nixos", + "repo": "nixpkgs", + "rev": "02c087f3fe673c9e317f206a627cb6b910336dbe", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "Nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nixpkgs": { - "locked": { - "lastModified": 1783915482, - "narHash": "sha256-w9ktuEgDIWGsX58tR3nI5HBGNy1idO8KY4urO3msko0=", - "rev": "6cdc7fc76e8bf7fde9fa43a849fcaaa70e230dee", - "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1033616.6cdc7fc76e8b/nixexprs.tar.xz" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "root": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", From dee2126adfd95dc5220decd19292bfed4a982d92 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Tue, 27 Oct 2026 14:03:55 +0000 Subject: [PATCH 09/10] Add extensions directory to git --- .../quarto-ext/attribution/_extension.yml | 14 ++++ .../quarto-ext/attribution/attribution.css | 19 +++++ .../quarto-ext/attribution/attribution.js | 75 +++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 src/_extensions/quarto-ext/attribution/_extension.yml create mode 100644 src/_extensions/quarto-ext/attribution/attribution.css create mode 100644 src/_extensions/quarto-ext/attribution/attribution.js diff --git a/src/_extensions/quarto-ext/attribution/_extension.yml b/src/_extensions/quarto-ext/attribution/_extension.yml new file mode 100644 index 0000000..2da3ff6 --- /dev/null +++ b/src/_extensions/quarto-ext/attribution/_extension.yml @@ -0,0 +1,14 @@ +title: Attribution +author: Roland Schmehl +version: 0.1.1 +quarto-required: ">=1.2.198" +contributes: + revealjs-plugins: + - name: RevealAttribution + script: + - attribution.js + stylesheet: + - attribution.css + + + diff --git a/src/_extensions/quarto-ext/attribution/attribution.css b/src/_extensions/quarto-ext/attribution/attribution.css new file mode 100644 index 0000000..d601221 --- /dev/null +++ b/src/_extensions/quarto-ext/attribution/attribution.css @@ -0,0 +1,19 @@ +/* Attribution plugin: text along the right edge of the viewport */ +.attribution{ + position: absolute; + top: 50%; + bottom: auto; + left: 50%; + right: auto; + font-size: 0.4em; + pointer-events: none; + text-align: center; + writing-mode: vertical-lr; + transform: translate( -50%, -50% ) scale( 100% ) rotate(-180deg); + text-orientation: sideways; +} + +/* Attribution plugin: activate pointer events for attribution text only */ +.attribution .content{ + pointer-events: auto; +} diff --git a/src/_extensions/quarto-ext/attribution/attribution.js b/src/_extensions/quarto-ext/attribution/attribution.js new file mode 100644 index 0000000..c0fc5b1 --- /dev/null +++ b/src/_extensions/quarto-ext/attribution/attribution.js @@ -0,0 +1,75 @@ +/***************************************************************** +** Author: Roland Schmehl, r.schmehl@tudelft.nl +** +** A plugin for displaying attribution texts sideways along the right +** edge of the viewport. When resizing the viewport or toggling full +** screen mode, the attribution text sticks persistently to the right +** edge of the viewport. +** +** The dynamic scaling of the attribution text via CSS transform +** is adopted from the fullscreen plugin. +** +** Version: 1.0 +** +** License: MIT license (see file LICENSE) +** +******************************************************************/ + +window.RevealAttribution = window.RevealAttribution || { + id: 'RevealAttribution', + init: function(deck) { + initAttribution(deck); + } +}; + +const initAttribution = function(Reveal){ + +var ready = false; +var resize = false; +var scale = 1; + +window.addEventListener( 'ready', function( event ) { + + var content; + + // Remove configured margin of the presentation + var attribution = document.getElementsByClassName("attribution"); + var width = window.innerWidth; + var configuredWidth = Reveal.getConfig().width; + var configuredHeight = Reveal.getConfig().height; + + scale = 1/(1-Reveal.getConfig().margin); + + for (var i = 0; i < attribution.length; i++) { + content = attribution[i].innerHTML; + attribution[i].style.width = configuredWidth + "px"; + attribution[i].style.height = configuredHeight + "px"; + attribution[i].innerHTML = "" + content + ""; + attribution[i].style.transform = 'translate( -50%, -50% ) scale( ' + scale*100 + '% ) rotate(-180deg)'; + } + + // Scale with cover class to mimic backgroundSize cover + resizeCover(); + +}); + +window.addEventListener( 'resize', resizeCover ); + +function resizeCover() { + + // Scale to mimic backgroundSize cover + var attribution = document.getElementsByClassName("attribution"); + var xScale = window.innerWidth / Reveal.getConfig().width; + var yScale = window.innerHeight / Reveal.getConfig().height; + var s = 1; + + if (xScale > yScale) { + // The div fits perfectly in x axis, stretched in y + s = xScale/yScale; + } + for (var i = 0; i < attribution.length; i++) { + attribution[i].style.transform = 'translate( -50%, -50% ) scale( ' + s*scale*100 + '% ) rotate(-180deg)'; + } +} + +}; From 797d1cd55cb779f1fe2c9800038b27ffd8100e76 Mon Sep 17 00:00:00 2001 From: jackdfranklin Date: Thu, 29 Oct 2026 11:51:42 +0000 Subject: [PATCH 10/10] Add slides on atomic commits --- src/version_control.qmd | 49 +++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/src/version_control.qmd b/src/version_control.qmd index d0b83b1..bae422b 100644 --- a/src/version_control.qmd +++ b/src/version_control.qmd @@ -4,16 +4,9 @@ {{< include Summer-school-Intro-Git/slides/_basics.qmd >}} -# Git branches - {{< include Summer-school-Intro-Git/slides/_branching.qmd >}} -## Using VC - -- The first thing we should do is move our project into version control (VC) -- This way we never lose the original state of the project -- We can then try things without worrying about breaking anything! -- This will also benefit any later development, so the sooner the better +# Version Control in practice ## What to add to VC @@ -41,7 +34,45 @@ it will be true. - Use `.gitignore` to automatically ignore any unwanted files - e.g. build outputs -## Aside - testing with worktrees + +## Atomic commits + +- Commits should relate to specific logical changes + - Makes it easier to understand what changed + - Can undo changes + - Easier to locate breaking changes (see `git bisect`) + +## Atomic commits + +\ + +### Bad +``` +$ git log --all --decorate --oneline --graph + * 25b29af Add branches content + * 9df21b6 Move figures +``` + +\ + +### Still bad! +``` +$ git log --all --decorate --oneline --graph + * 25b29af Add branches content and add submodules to GH actions + * 9df21b6 Move figures into `images` directory +``` + +\ + +### Better! +``` +$ git log --all --decorate --oneline --graph + * 25b29af Add branches content + * 16b1a94 Add submodules to GH actions + * 9df21b6 Move all figures into `images` directory +``` + +# Aside - testing with worktrees \