diff --git a/img/alessandro.png b/img/alessandro.png
new file mode 100644
index 0000000..7aa147c
Binary files /dev/null and b/img/alessandro.png differ
diff --git a/img/fancy_cookiecutter.jpg b/img/fancy_cookiecutter.jpg
new file mode 100644
index 0000000..5ce6342
Binary files /dev/null and b/img/fancy_cookiecutter.jpg differ
diff --git a/img/simplified-pull-request-process.jpeg b/img/simplified-pull-request-process.jpeg
new file mode 100644
index 0000000..1a8a031
Binary files /dev/null and b/img/simplified-pull-request-process.jpeg differ
diff --git a/index.qmd b/index.qmd
index dc84a8a..821187e 100644
--- a/index.qmd
+++ b/index.qmd
@@ -11,7 +11,7 @@ format:
revealjs:
theme: [default, niu-dark.scss]
logo: img/logo_niu_dark.png
- footer: "Collaborative coding and software engineering good practice | 2023-10-23"
+ footer: "Collaborative coding and software engineering good practice (BIIG hackday) | 2024-07-15"
slide-number: c
menu:
numbers: true
@@ -31,7 +31,7 @@ format:
html:
theme: [default, niu-dark.scss]
logo: img/logo_niu_dark.png
- date: "2023-07-05"
+ date: "2024-07-15"
toc: true
code-overflow: scroll
highlight-style: atom-one
@@ -44,25 +44,41 @@ format:
page-layout: full
default-image-extension: png
exercises:
- org-repo: "rse-best-practices-course-2023/rse-best-practices-playground"
+ org-repo: "UCL-bioimage-analysis/rse-best-practices-playground"
---
-## [Neuroinformatics unit](https://neuroinformatics.dev/people.html){preview-link="true"}
+## Alessandro Felder
:::: {.columns}
::: {.column width="50%" style="font-size: 0.5em;"}
-![Photo by SwapnIl Dwivedi on Unsplash](img/swapnil-dwivedi-w46tRF64qNc-unsplash.jpg){height=300 fig-align=center}
+![Photo by Ivo D.](img/alessandro.png){height=500 fig-align=center}
+:::
+
+::: {.column width="50%" .smaller}
+Research Software Engineer at
+
+* Sainsbury Wellcome Center [Neuroinformatics Unit](https://neuroinformatics.dev/people.html)
+* UCL [Advanced Research Computing](https://www.ucl.ac.uk/advanced-research-computing/research-software-engineers-0)
+:::
+::::
+
+## Alessandro Felder
+
+:::: {.columns}
+
+
+::: {.column width="50%" style="font-size: 0.5em;"}
+![Photo by Ivo D.](img/alessandro.png){height=500 fig-align=center}
:::
::: {.column width="50%"}
-We are passionate about writing research software well. Please talk to us about software, we like to help (office 439).
+I am passionate about making "good" research software, biological image analysis and about open, collaborative science.
:::
::::
::: {.notes}
-Tell the students to find us on 4th floor or in Brasserie.
Remark about RSE movement and its importance to research.
:::
@@ -73,9 +89,6 @@ Remark about RSE movement and its importance to research.
## Prerequisites {.smaller}
-[https://neuroinformatics-unit.github.io/software-good-practice-course/](
-[https://neuroinformatics-unit.github.io/software-good-practice-course/])
-
:::: {.columns}
::: {.column width="50%" style="font-size: 0.5em;"}
@@ -84,8 +97,7 @@ Remark about RSE movement and its importance to research.
::: {.column width="50%"}
* a GitHub account
-* followed setup instructions
-* open these slides on your laptop: [https://neuroinformatics.dev/software-good-practice-course/](https://neuroinformatics.dev/software-good-practice-course/)
+* open these slides on your laptop: [https://neuroinformatics.dev/course-software-good-practice/](https://neuroinformatics.dev/course-software-good-practice/)
:::
::::
@@ -159,6 +171,22 @@ pip install my_awesome_package
::::
+## We are in a playground today
+
+:::: {.columns}
+
+::: {.column width="50%" style="font-size: 0.5em;"}
+![Photo by Thierry Lemaitre on Unsplash](img/thierry-lemaitre-DCTz78QCY24-unsplash.jpg){height=500}
+:::
+
+::: {.column width="50%"}
+* some things will come easy to you...
+* ...others not
+* if you find something easy, there are optional exercises...
+* ... or you can help others.
+:::
+
+::::
## Set up your playground
:::: {.columns}
@@ -168,13 +196,11 @@ pip install my_awesome_package
:::
::: {.column width="50%"}
-* fork and clone the repo locally [as described in Exercise 1](https://github.com/rse-best-practices-course-2023/rse-best-practices-playground/issues/1)
+* fork and clone the repo locally [as described in Exercise 1](https://github.com/{{< meta exercises.org-repo >}}/issues/1)
* set up a conda environment for today:
```{.bash}
conda create -n "software-good-practice-course" python=3.11
-```
-```{.bash}
conda activate software-good-practice-course
```
@@ -182,6 +208,7 @@ conda activate software-good-practice-course
::::
+[https://neuroinformatics.dev/course-software-good-practice/](https://neuroinformatics.dev/course-software-good-practice/)
{{< include slides/collaborate.qmd >}}
@@ -207,6 +234,6 @@ conda activate software-good-practice-course
## Retrospective
* Anonymously tell us what you thought [on this ideaboardz](https://ideaboardz.com/for/Collaborative%20coding%20retrospective/5104750)...
-* ... and talk to us anytime!
+* ... and get in touch anytime!
{{< include slides/resources.qmd >}}
\ No newline at end of file
diff --git a/slides/collaborate.qmd b/slides/collaborate.qmd
index 4b13421..87c96d4 100644
--- a/slides/collaborate.qmd
+++ b/slides/collaborate.qmd
@@ -9,7 +9,8 @@
:::
::: {.column width="50%"}
-* benefits from different perspective and division of labour
+* benefits from different perspectives and division of labour
+* avoids re-inventing the wheel
* needs async communication and coordination of tasks
:::
::::
@@ -32,7 +33,7 @@
:::: {.columns}
::: {.column width="50%" style="font-size: 0.5em;"}
-![Photo by Michał Parzuchowski on Unsplash](img/michal-parzuchowski-yqD-v4fidt0-unsplash.jpg){height=400}
+![Graphic by Tuleap](img/simplified-pull-request-process.jpeg)
:::
::: {.column width="50%"}
diff --git a/slides/documentation.qmd b/slides/documentation.qmd
index f494a97..25a2d7f 100644
--- a/slides/documentation.qmd
+++ b/slides/documentation.qmd
@@ -61,4 +61,13 @@ def calculate_fastest_time(time_list):
::: {style="text-align: center; margin-top: 1em"}
[Exercise: write a docstring for a function in `times.py`](https://github.com/{{< meta exercises.org-repo >}}/issues/2)
-:::
\ No newline at end of file
+:::
+
+## Building and deploying docs
+
+``` {.bash}
+pip install -r ./docs/requirements.txt
+sphinx-build docs/source docs/build -b html
+```
+
+You can automate docs [building](https://github.com/neuroinformatics-unit/actions/blob/main/build_sphinx_docs/action.yml) and [deploying](https://github.com/neuroinformatics-unit/actions/blob/main/deploy_sphinx_docs/action.yml). See for example the `movement` [docs action](https://github.com/neuroinformatics-unit/movement/blob/main/.github/workflows/docs_build_and_deploy.yml) and [its API reference](https://movement.neuroinformatics.dev/api_index.html).
\ No newline at end of file
diff --git a/slides/packaging.qmd b/slides/packaging.qmd
index 16c5ba9..abb954b 100644
--- a/slides/packaging.qmd
+++ b/slides/packaging.qmd
@@ -66,6 +66,34 @@ cookiecutter https://github.com/neuroinformatics-unit/python-cookiecutter
:::
::::
+## Automating package creation
+
+:::: {.columns}
+::: {.column width="50%" style="font-size: 0.5em;"}
+![Photo by Luke Loughead on flickr](img/fancy_cookiecutter.jpg){height=400}
+:::
+
+::: {.column width="50%"}
+Use [the ARC cookiecutter template](https://github.com/UCL-ARC/python-tooling?tab=readme-ov-file#using-this-template).
+
+```{.bash code-line-numbers="false"}
+conda create -n "fancy-package-playground"
+conda activate fancy-package-playground
+pip install cookiecutter
+cookiecutter gh:ucl-arc/python-tooling
+```
+:::
+::::
+
+Also comes with [recommendations](https://github-pages.arc.ucl.ac.uk/python-tooling/).
+
+## `pip` knows what to do
+
+If you have this structure, `pip` will know where to put your Python code in your conda environment, so you can re-use it from anywhere.
+
+```
+pip install .
+```
## The Python Package Index (PyPi)
@@ -80,6 +108,8 @@ cookiecutter https://github.com/neuroinformatics-unit/python-cookiecutter
:::
::::
+This structure will also come in handy when you want to distribute your package widely.
+
## Summary
:::: {.columns}
diff --git a/slides/resources.qmd b/slides/resources.qmd
index 5551b8c..d09bd81 100644
--- a/slides/resources.qmd
+++ b/slides/resources.qmd
@@ -29,14 +29,14 @@
## Packaging resources
* [NIU cookiecutter](https://github.com/neuroinformatics-unit/python-cookiecutter)
+* [ARC cookiecutter](https://github.com/UCL-ARC/python-tooling)
* [Python packaging tutorial](https://packaging.python.org/en/latest/tutorials/packaging-projects/)
* [Python wheels walkthrough](https://youtu.be/FpIJ7T1Gpjo?feature=shared&t=1638)
+* [`pyproject.toml` file explained](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/)
## RSE Community
* join the community!
- * Talk to the NIU members about code!
- * [SWC slack `#software-skills`](swc-neuro.slack.com)
* [UCL Research Programming Hub](https://www.ucl.ac.uk/advanced-research-computing/community/ucl-research-programming-hub)
* [Research Software London](https://rslondon.ac.uk/)
* [Research Software Engineering societies](https://society-rse.org/international-rse-organisations/)
@@ -45,4 +45,5 @@
* [The four pillars of RSE](https://ieeexplore.ieee.org/document/8994167)
* [The Software Sustainability Institute](https://www.software.ac.uk/)
-* [The hidden REF – Celebrating all research outputs](https://hidden-ref.org/)
\ No newline at end of file
+* [The hidden REF – Celebrating all research outputs](https://hidden-ref.org/)
+* [Article about RSE careers](https://zenodo.org/records/10073233)
\ No newline at end of file
diff --git a/slides/testing.qmd b/slides/testing.qmd
index 4a641cc..c4d3d31 100644
--- a/slides/testing.qmd
+++ b/slides/testing.qmd
@@ -4,11 +4,14 @@
* to find (current and future) bugs earlier and more quickly (before you publish your results, ideally!)
* to have confidence in your current and future code
+ * important for research[^closed-retractions]
* (to document how you expect your code to behave)
+[^closed-retractions]: [https://doi.org/10.1162/qss_a_00275](https://direct.mit.edu/qss/article/4/4/820/118074/Retracted-articles-use-less-free-and-open-source)
+
## Why should you test your research code?
-> "Second, a 15-year-old bug was found ... (the bug was fixed ... during preparation of this manuscript). The bug essentially reduced the size of the image searched for clusters, underestimating the severity of the multiplicity correction and overestimating significance ."
+> "Second, a 15-year-old bug was found ... (the bug was fixed ... during preparation of this manuscript). The bug essentially reduced the size of the image searched for clusters, underestimating the severity of the multiplicity correction and overestimating significance."
[^cluster-failure]
[^cluster-failure]: [https://www.pnas.org/doi/full/10.1073/pnas.1602413113](https://www.pnas.org/doi/full/10.1073/pnas.1602413113)