You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: slides.qmd
+50-64Lines changed: 50 additions & 64 deletions
Original file line number
Diff line number
Diff line change
@@ -16,56 +16,49 @@ date: last-modified
16
16
bibliography: references.bib
17
17
---
18
18
19
-
20
19
# Introduction
21
20
22
21
## Contents
23
22
24
-
- Introduction
25
-
- Approaches to cross-language interoperability
26
-
- Containerisation
27
-
- Cross-language pain points
28
-
- Cross-language priorities
23
+
-Introduction
24
+
-Approaches to cross-language interoperability
25
+
-Containerisation
26
+
-Cross-language pain points
27
+
-Cross-language priorities
29
28
30
29
## Case study for reference
31
30
32
-
:::: columns
33
-
31
+
::::: columns
34
32
::: {.column width="50%"}
35
-
36
33
The Network Planning Tool for Scotland
37
34
38
-
- Development version (branch `dev`): [nptscot.github.io](https://nptscot.github.io/)
39
-
- Stable version (branch `production`): [www.npt.scot](https://www.npt.scot/)
40
-
35
+
- Development version (branch `dev`): [nptscot.github.io](https://nptscot.github.io/)
36
+
- Stable version (branch `production`): [www.npt.scot](https://www.npt.scot/)
41
37
:::
42
38
43
39
::: {.column width="50%"}
44
-
45
40

46
-
47
-
48
41
:::
49
-
50
-
::::
42
+
:::::
51
43
52
44
## NPT stack
53
45
54
-
:::: columns
55
-
::: {.column}
46
+
::::: columns
47
+
::: column
56
48
Backend: R + targets for 'cross-language' data pipeline workflow automation
57
49
58
-
- Relies on Rust crates
59
-
- Experiments with Python
50
+
-Relies on Rust crates
51
+
-Experiments with Python
60
52
61
53
Frontend: JS + MapLibre for visualisation
62
54
63
55
Progressive Web App (PWA)
64
56
:::
65
-
::: {.column}
57
+
58
+
::: column
66
59

67
60
:::
68
-
::::
61
+
:::::
69
62
70
63
## User interface
71
64
@@ -75,64 +68,57 @@ Progressive Web App (PWA)
75
68
76
69
### "Deploying"
77
70
78
-
- Code runs on more than one computer
79
-
- Results are published on a website that is maintained
80
-
- Project is "in production"
81
-
- Users: Hosted on a trusted and well-used website
82
-
- Performance: updates to 'production' planned and documented
83
-
- Money changing hands
84
-
- Expectations
71
+
-Code runs on more than one computer
72
+
-Results are published on a website that is maintained
73
+
-Project is "in production"
74
+
- Users: Hosted on a trusted and well-used website
75
+
- Performance: updates to 'production' planned and documented
76
+
- Money changing hands
77
+
- Expectations
85
78
86
79
## Deploying the NPT
87
80
88
-
TODO: add screenshot of NPT branches?
81
+

89
82
90
83
## Deployment workflow of NPT
91
84
85
+
Based on [workflow.yml file for](https://github.com/nptscot/nptscot.github.io/blob/production/.github/workflows/azure-static-web-apps-wonderful-beach-0edb91e03.yml) GitHub actions.
86
+
87
+

88
+
92
89
## "High impact projects"
93
90
94
-
- Broadly: tangible change results from the work
95
-
- With measurable impact on environmental, social (or economic?) outcomes
96
-
- E.g. Reduction in greenhouse gas emissions
97
-
<!-- (accounting for 'rebound' effects) -->
98
-
- E.g. better diets resulting in more DALYs
99
-
<!-- (disability-adjusted life years) -->
100
-
- Identifiable 'pathway to impact'
101
-
- E.g. New methods -> new evidence -> investment in active travel more effective that it would have been otherwise -> more people cycling -> tangible benefits
91
+
- Broadly: tangible change results from the work
92
+
- With measurable impact on environmental, social (or economic?) outcomes
93
+
- E.g. Reduction in greenhouse gas emissions <!-- (accounting for 'rebound' effects) -->
94
+
- E.g. better diets resulting in more DALYs <!-- (disability-adjusted life years) -->
95
+
- Identifiable 'pathway to impact'
96
+
- E.g. New methods -\> new evidence -\> investment in active travel more effective that it would have been otherwise -\> more people cycling -\> tangible benefits
102
97
103
98
## Technical requirements for impact
104
99
105
-
106
-
- The results are in production product has users
100
+
- Users: The web application has users
101
+
- Scale: covers a large geographic area needs big data inputs
102
+
- Trusted: code review and multiple contributors
103
+
- User-friendly: if it's going to have lots of users
104
+
- Future proof: technology needs to last a long time
105
+
- Community: needed to ensure it lasts
107
106
108
107
## Why cross-language projects?
109
108
110
-
- a
111
-
- b
112
-
- c
109
+
- Specific tool written in a particular language (`odjitter`)
110
+
- Required for 'best of both worlds' (JS for visualisation, R for statistical modelling)
111
+
- Having multiple implementations ensures robustness
112
+
- Aeroplane flight software has 3 implementations
113
+
- Redundancy common in mission-critical applications
113
114
114
-
## ...
115
+
#Approaches to cross-language projects
115
116
116
-
```sh
117
-
quarto install extension grantmcdermott/quarto-revealjs-clean
118
-
```
119
-
120
-
Then replace:
121
-
122
-
```
123
-
format:
124
-
revealjs: default
125
-
```
126
-
127
-
with:
128
-
129
-
```
130
-
format:
131
-
clean-revealjs:
132
-
self-contained: true
133
-
```
117
+
-[x] "Loose coupling" (system calls)
118
+
-[x] "Tight coupling" with low-level code embedded in R/Python/other packages (e.g. `sf`, `rsgeo`, `shapely`)
0 commit comments