Skip to content

Commit

Permalink
Resolve issues raised by TK
Browse files Browse the repository at this point in the history
  • Loading branch information
robmoss committed May 21, 2024
1 parent 488b725 commit 39fa954
Showing 1 changed file with 21 additions and 21 deletions.
42 changes: 21 additions & 21 deletions docs/community/meetings/2024-05-09.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 9 May 2024

## Presentation by T.K. Le
## Presentation by TK Le

In this meeting [T.K. Le](https://github.com/thaopletk) gave a presentation about a series of COVID-19 modelling projects and how their experiences were impacted by the choice of programming languages, model structure, editors, tools, etc.
In this meeting [TK Le](https://github.com/thaopletk) gave a presentation about a series of COVID-19 modelling projects and how their experiences were impacted by the choice of programming languages, model structure, editors, tools, etc.

Attendance: 4 in person, 4 online.

Expand All @@ -16,7 +16,7 @@ Attendance: 4 in person, 4 online.
## Three projects, four models

This work began in 2022, and was based on code that was originally written by [Eamon](https://github.com/EamonConway) and Camelia.
T.K. adapted the code to run new scenarios across three separate modelling projects:
TK adapted the code to run new scenarios across three separate modelling projects:

1. [Modelling the impact of hybrid immunity on futute COVID-19 waves](https://doi.org/10.1186/s12879-024-09282-4);
2. [Cost-effective boosting allocations in the post-Omicron era of COVID-19 management](https://doi.org/10.1101/2023.11.14.23298536); and
Expand All @@ -26,13 +26,13 @@ The workflow was divided into a series of distinct models:

1. An immunological model written in R and [greta](https://greta-stats.org/);

2. An agent-based model of population transmission written in C++ and R;
2. An agent-based model of population transmission written in C++ (post-processing written in R);

3. A clinical pathways model implemented in Matlab; and
3. A clinical pathways model implemented in MATLAB; and

4. A cost-effectiveness model implemented in R.

T.K.'s primary activities involved implementing different vaccine schedules in the transmission model, and data visualisation of outputs from the transmission model and the clinical pathways, all of which they implemented in Python.
TK's primary activities involved implementing different vaccine schedules in the transmission model, and data visualisation of outputs from the transmission model and the clinical pathways, all of which they implemented in Python.

## The multi-model structure

Expand All @@ -48,7 +48,7 @@ And there were related issues, such as being able to successfully install [greta

> Nick Tierney: I know that greta can be difficult to install, and I can help people with this.
T.K. also noted that they found some minor inconsistencies between the models, such as whether a date was used to identify the start or end of its 24-hour interval.
TK also noted that they found some minor inconsistencies between the models, such as whether a date was used to identify the start or end of its 24-hour interval.

## Tools and platforms

Expand All @@ -57,23 +57,23 @@ T.K. also noted that they found some minor inconsistencies between the models,
Personal preferences can play a major role in deciding which tools are best for a project.

The various models were hosted in repositories on [Bitbucket](https://bitbucket.org/), [GitHub](https://github.com/), and the University of Melbourne's [GitLab instance](https://gitlab.unimelb.edu.au/).
T.K. noted that the only discernible differences between these platforms was how they handled authorisation and authentication.
TK noted that the only discernible differences between these platforms was how they handled authorisation and authentication.

T.K. also explored several different editors, some which were language-specific:
TK also explored several different editors, some which were language-specific:

- VS Code was the easiest for looking at, and searching through, the code;
- RStudio was the worst; and
- Matlab was somewhat hard to use, but T.K. acknowledged they were also the least familiar with this language.
- Matlab was somewhat hard to use, but TK acknowledged they were also the least familiar with this language.
They also experienced issues running Matlab on high-performance computing platforms.

T.K. noted they had previous experience with Eclipse (an IDE for Java) and Visual Studio (which felt very "heavy").
TK noted they had previous experience with Eclipse (an IDE for Java) and Visual Studio (which felt very "heavy").

**Question:** what were your favourite things in VS Code, and what made RStudio the worst?

It was easiest to open a project in VS Code, RStudio would always open up an entire project or previous workspace, rather than just opening a single file.
RStudio also kept asking to update itself.

T.K.  also strongly disliked the RStudio font, which was another source of friction.
TK also strongly disliked the RStudio font, which was another source of friction.
They tried installing an RStudio extension for VS Code, but weren't sure how well it worked.

> Nick Tierney: R history is really annoying, but you can turn it off.
Expand All @@ -89,21 +89,21 @@ They tried installing an RStudio extension for VS Code, but weren't sure how wel

Task management is hard, and switching to a new system during a project is extremely difficult.

T.K. reported trying to use Gitlab issues to plan out what to do and how to do it, but found they weren't a good fit with their workflow.
TK reported trying to use Gitlab issues to plan out what to do and how to do it, but found they weren't a good fit with their workflow.
They then trialled [Trello boards](https://trello.com/) for different versions, but stopped using them due to a lack of time to manage the boards.
In review:

- T.K. uses [TickTick](https://www.ticktick.com/) for personal stuff, but it's ugly!
- TK uses [todoist](https://todoist.com/) for personal stuff (and likes it), and uses [TickTick](https://www.ticktick.com/) for work tasks — but it's ugly!
- Trello was their favourite so far, but plotting out an entire roadmap wasn't useful — there were major changes in the plan during the project, and **it was hard to make time** to update the roadmap.
- They are currently using TickTick and **paper-based notes**, but are always on the lookout for a better task manager.
- One advantage of online systems are they you can easily paste hyperlinks, emails, pictures, etc.
- One advantage of online systems is that you can easily paste hyperlinks, emails, pictures, etc.

> Rob Moss: we know that behaviour changes are hard to achieve, so it's not surprising that a large change was challenging to maintain — ideally we would make small, incremental changes, but this isn't always possible or useful.
> Eamon Conway: I like the general idea of using task-tracking software, but I've settled on only using paper.
> It's always with me, it's always at home, and it's physically under my keyboard!
> Ruarai Tobin: I use notion for a single large Markdown file, you can paste screenshots.
> Ruarai Tobin: I use [Notion](https://www.notion.so/) with a single large Markdown file, you can paste screenshots.
## Repository structure

Expand All @@ -128,7 +128,7 @@ However, this was also a little misleading:

**Question:** is there an automated pipeline?

T.K. replied that the user had to run the code in each of the numbered folders in the correct (ascending) order, and that they wanted to make improvements for automating the dependent jobs on Spartan.
TK replied that the user had to run the code in each of the numbered folders in the correct (ascending) order, and that they wanted to make improvements for automating the dependent jobs on Spartan.

> Eamon Conway: if you do ever automate it, we should share it with people (e.g., [this community](../README.md)) because people may be able to learn from it when they want to use Spartan.
> I know how to use slurm for job management and can help you automate it.
Expand Down Expand Up @@ -159,7 +159,7 @@ For example, sometimes Matlab just wouldn't load, there were intermittent failur

Activities that would have been nice to do, but were not undertaken, included:

- Testing (T.K. did not have time);
- Testing (TK did not have time);
- Code review (nobody else had time); and
- Documentation — some was added afterwards, to accompany papers;

Expand All @@ -173,7 +173,7 @@ Activities that would have been nice to do, but were not undertaken, included:

This can be challenging even with all of the tools and infrastructure in place.

**Question:** were all of the projects wrapped up into one central things?
**Question:** were all of the projects wrapped up into one central thing?

No, they're all separate.
The first project was provided as a zip file attached to the paper.
Expand All @@ -182,8 +182,8 @@ The final project is ongoing and remains confidential, it is stored in a private

**Question:** did the latest project build on the previous ones?

Yes, and this lead to managing current and older versions of the code.
For example, T.K. found a bug that caused a minor discrepancy between times reported in two different models (see [The multi-model structure](#the-multi-model-structure)) but it wasn't possible to update the older code and regenerate the associated outputs.
Yes, and this led to managing current and older versions of the code.
For example, TK found a bug that caused a minor discrepancy between times reported in two different models (see [The multi-model structure](#the-multi-model-structure)) but it wasn't possible to update the older code and regenerate the associated outputs.

**Question:** should we use git (and GitHub) only for publication, or during the work itself?

Expand Down

0 comments on commit 39fa954

Please sign in to comment.