├── .Rprofile
├── renv
├── .gitignore
├── settings.dcf
└── activate.R
├── .gitignore
├── icons
├── github.png
├── homepage.png
├── linkedin.png
└── twitter.png
├── speakers
├── zj.jpg
├── karawoo.jpg
├── mayagans.jpg
├── mikepage.jpg
├── seanlopp.png
├── alanfeder.jpg
├── andrewtran.jpg
├── jeroenooms.jpg
├── mattthomas.jpg
├── simoncouch.jpg
├── aaronjacobs.jpg
├── ahmadoudicko.jpg
├── alexcookson.png
├── allisonhorst.png
├── carsonsievert.png
├── deanmarchiori.jpg
├── dorrisscott.jpg
├── emilyriederer.jpg
├── grantfleming.png
├── hadleywickham.jpg
├── irenesteves.jpg
├── jooyoungseo.jpg
├── katehertweck.jpg
├── marcusadams.jpg
├── meganbeckett.jpg
├── michaelchow.jpg
├── nicolekramer.jpg
├── pamelapairo.jpg
├── richardvogg.jpg
├── rivaquiroga.jpg
├── sophiebeiers.jpg
├── vickiboykis.jpg
├── wolframking.jpg
├── barretschloerke.png
├── garrickadenbuie.jpg
├── javierluraschi.jpg
├── johnburnmurdoch.jpg
├── malcolmbarrett.jpg
├── michaelchirico.jpg
├── nealrichardson.jpg
├── nicholaspylypiw.jpg
├── shelmithkariuki.png
├── athanasiamowinckel.png
├── marievendettuoli.jpg
├── ericgunnarcronstrom.jpg
├── lucydagostinomcgowan.png
├── minecetinkayarundel.jpg
├── yaninabellinisaibene.jpg
├── chelseaparlettpelleriti.png
├── daniellesmallsperkins.jpg
├── maxkuhn.md
├── winstonchang.md
├── shirbiishshalom.md
├── vickiboykis.md
├── hadleywickham.md
├── danielleoberdier.md
├── wolframking.md
├── karawoo.md
├── barretschloerke.md
├── lucydagostinomcgowan.md
├── johnburnmurdoch.md
├── michaelchow.md
├── nealrichardson.md
├── zj.md
├── colinrundel.md
├── irenesteves.md
├── simoncouch.md
├── andrewtran.md
├── garrickadenbuie.md
├── alexcookson.md
├── athanasiamowinckel.md
├── daniellesmallsperkins.md
├── javierluraschi.md
├── jeroenooms.md
├── sophiebeiers.md
├── malcolmbarrett.md
├── mayagans.md
├── michaelchirico.md
├── seanlopp.md
├── chelseaparlettpelleriti.md
├── pamelapairo.md
├── richardvogg.md
├── mikepage.md
├── dorrisscott.md
├── nicholaspylypiw.md
├── aaronjacobs.md
├── grantfleming.md
├── alanfeder.md
├── carsonsievert.md
├── nicolekramer.md
├── emilyriederer.md
├── rikagorn.md
├── yaninabellinisaibene.md
├── allisonhorst.md
├── jooyoungseo.md
├── minecetinkayarundel.md
├── mattthomas.md
├── rivaquiroga.md
├── meganbeckett.md
├── ahmadoudicko.md
├── ericgunnarcronstrom.md
├── deanmarchiori.md
├── marievendettuoli.md
├── shelmithkariuki.md
├── johnhelveston.md
├── katehertweck.md
└── marcusadams.md
├── MAIN.R
├── block-times-gmt.yml
├── rstudio-global-2021-program.Rproj
├── session-names.yml
├── _helpers.R
├── export-joined.R
├── README.md
├── talk_times.csv
├── export-times.R
├── prepopulate.R
├── discussion_sessions.csv
├── export-sessions.R
└── renv.lock
/.Rprofile:
--------------------------------------------------------------------------------
1 | source("renv/activate.R")
2 |
--------------------------------------------------------------------------------
/renv/.gitignore:
--------------------------------------------------------------------------------
1 | library/
2 | python/
3 | staging/
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .Rproj.user
2 | .Rhistory
3 | .RData
4 | .Ruserdata
5 | yaml_output
6 | .DS_Store
7 |
--------------------------------------------------------------------------------
/icons/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/icons/github.png
--------------------------------------------------------------------------------
/speakers/zj.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/zj.jpg
--------------------------------------------------------------------------------
/icons/homepage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/icons/homepage.png
--------------------------------------------------------------------------------
/icons/linkedin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/icons/linkedin.png
--------------------------------------------------------------------------------
/icons/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/icons/twitter.png
--------------------------------------------------------------------------------
/speakers/karawoo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/karawoo.jpg
--------------------------------------------------------------------------------
/speakers/mayagans.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/mayagans.jpg
--------------------------------------------------------------------------------
/speakers/mikepage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/mikepage.jpg
--------------------------------------------------------------------------------
/speakers/seanlopp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/seanlopp.png
--------------------------------------------------------------------------------
/speakers/alanfeder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/alanfeder.jpg
--------------------------------------------------------------------------------
/speakers/andrewtran.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/andrewtran.jpg
--------------------------------------------------------------------------------
/speakers/jeroenooms.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/jeroenooms.jpg
--------------------------------------------------------------------------------
/speakers/mattthomas.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/mattthomas.jpg
--------------------------------------------------------------------------------
/speakers/simoncouch.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/simoncouch.jpg
--------------------------------------------------------------------------------
/speakers/aaronjacobs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/aaronjacobs.jpg
--------------------------------------------------------------------------------
/speakers/ahmadoudicko.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/ahmadoudicko.jpg
--------------------------------------------------------------------------------
/speakers/alexcookson.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/alexcookson.png
--------------------------------------------------------------------------------
/speakers/allisonhorst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/allisonhorst.png
--------------------------------------------------------------------------------
/speakers/carsonsievert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/carsonsievert.png
--------------------------------------------------------------------------------
/speakers/deanmarchiori.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/deanmarchiori.jpg
--------------------------------------------------------------------------------
/speakers/dorrisscott.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/dorrisscott.jpg
--------------------------------------------------------------------------------
/speakers/emilyriederer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/emilyriederer.jpg
--------------------------------------------------------------------------------
/speakers/grantfleming.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/grantfleming.png
--------------------------------------------------------------------------------
/speakers/hadleywickham.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/hadleywickham.jpg
--------------------------------------------------------------------------------
/speakers/irenesteves.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/irenesteves.jpg
--------------------------------------------------------------------------------
/speakers/jooyoungseo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/jooyoungseo.jpg
--------------------------------------------------------------------------------
/speakers/katehertweck.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/katehertweck.jpg
--------------------------------------------------------------------------------
/speakers/marcusadams.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/marcusadams.jpg
--------------------------------------------------------------------------------
/speakers/meganbeckett.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/meganbeckett.jpg
--------------------------------------------------------------------------------
/speakers/michaelchow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/michaelchow.jpg
--------------------------------------------------------------------------------
/speakers/nicolekramer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/nicolekramer.jpg
--------------------------------------------------------------------------------
/speakers/pamelapairo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/pamelapairo.jpg
--------------------------------------------------------------------------------
/speakers/richardvogg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/richardvogg.jpg
--------------------------------------------------------------------------------
/speakers/rivaquiroga.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/rivaquiroga.jpg
--------------------------------------------------------------------------------
/speakers/sophiebeiers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/sophiebeiers.jpg
--------------------------------------------------------------------------------
/speakers/vickiboykis.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/vickiboykis.jpg
--------------------------------------------------------------------------------
/speakers/wolframking.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/wolframking.jpg
--------------------------------------------------------------------------------
/speakers/barretschloerke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/barretschloerke.png
--------------------------------------------------------------------------------
/speakers/garrickadenbuie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/garrickadenbuie.jpg
--------------------------------------------------------------------------------
/speakers/javierluraschi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/javierluraschi.jpg
--------------------------------------------------------------------------------
/speakers/johnburnmurdoch.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/johnburnmurdoch.jpg
--------------------------------------------------------------------------------
/speakers/malcolmbarrett.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/malcolmbarrett.jpg
--------------------------------------------------------------------------------
/speakers/michaelchirico.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/michaelchirico.jpg
--------------------------------------------------------------------------------
/speakers/nealrichardson.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/nealrichardson.jpg
--------------------------------------------------------------------------------
/speakers/nicholaspylypiw.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/nicholaspylypiw.jpg
--------------------------------------------------------------------------------
/speakers/shelmithkariuki.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/shelmithkariuki.png
--------------------------------------------------------------------------------
/speakers/athanasiamowinckel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/athanasiamowinckel.png
--------------------------------------------------------------------------------
/speakers/marievendettuoli.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/marievendettuoli.jpg
--------------------------------------------------------------------------------
/speakers/ericgunnarcronstrom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/ericgunnarcronstrom.jpg
--------------------------------------------------------------------------------
/speakers/lucydagostinomcgowan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/lucydagostinomcgowan.png
--------------------------------------------------------------------------------
/speakers/minecetinkayarundel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/minecetinkayarundel.jpg
--------------------------------------------------------------------------------
/speakers/yaninabellinisaibene.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/yaninabellinisaibene.jpg
--------------------------------------------------------------------------------
/speakers/chelseaparlettpelleriti.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/chelseaparlettpelleriti.png
--------------------------------------------------------------------------------
/speakers/daniellesmallsperkins.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rstudio/rstudio-global-2021-program/HEAD/speakers/daniellesmallsperkins.jpg
--------------------------------------------------------------------------------
/MAIN.R:
--------------------------------------------------------------------------------
1 | source("export-times.R", local = new.env())
2 | source("export-sessions.R", local = new.env())
3 | source("export-joined.R", local = new.env())
4 |
--------------------------------------------------------------------------------
/renv/settings.dcf:
--------------------------------------------------------------------------------
1 | external.libraries:
2 | ignored.packages:
3 | package.dependency.fields: Imports, Depends, LinkingTo
4 | snapshot.type: implicit
5 | use.cache: TRUE
6 | vcs.ignore.library: TRUE
7 |
--------------------------------------------------------------------------------
/block-times-gmt.yml:
--------------------------------------------------------------------------------
1 | alfa: 2021-01-21 16:00
2 | bravo: 2021-01-21 18:00
3 | charlie: 2021-01-21 20:00
4 | delta: 2021-01-21 22:00
5 | echo: 2021-01-22 00:00
6 | foxtrot: 2021-01-22 02:00
7 | golf: 2021-01-22 04:00
8 | hotel: 2021-01-22 06:00
9 | india: 2021-01-22 08:00
10 | juliett: 2021-01-22 10:00
11 | kilo: 2021-01-22 12:00
12 | lima: 2021-01-22 14:00
13 |
--------------------------------------------------------------------------------
/rstudio-global-2021-program.Rproj:
--------------------------------------------------------------------------------
1 | Version: 1.0
2 |
3 | RestoreWorkspace: Default
4 | SaveWorkspace: Default
5 | AlwaysSaveHistory: Default
6 |
7 | EnableCodeIndexing: Yes
8 | UseSpacesForTab: Yes
9 | NumSpacesForTab: 2
10 | Encoding: UTF-8
11 |
12 | RnwWeave: Sweave
13 | LaTeX: pdfLaTeX
14 |
15 | AutoAppendNewline: Yes
16 | StripTrailingWhitespace: Yes
17 |
--------------------------------------------------------------------------------
/session-names.yml:
--------------------------------------------------------------------------------
1 | alfa: Keynote
2 | bravo:
3 | A: Learning
4 | B: Language interop
5 | C: Visualisation
6 | charlie: Keynote
7 | delta:
8 | A: Teaching
9 | B: Package dev
10 | C: Modelling
11 | echo: Keynote
12 | foxtrot:
13 | A: Data for good
14 | B: Organisational tooling
15 | C: Programming
16 | golf: Keynote
17 | hotel:
18 | A: Learning
19 | B: Language interop
20 | C: Visualisation
21 | india: Keynote
22 | juliett:
23 | A: Teaching
24 | B: Package dev
25 | C: Modelling
26 | kilo: Keynote
27 | lima:
28 | A: Data for good
29 | B: Organisational tooling
30 | C: Programming
31 |
--------------------------------------------------------------------------------
/_helpers.R:
--------------------------------------------------------------------------------
1 | library(magrittr)
2 |
3 | session_df <- local({
4 | sessionnames <- yaml::read_yaml("session-names.yml")
5 |
6 | mapply(names(sessionnames), sessionnames, FUN = function(nm, e) {
7 | if (is.list(e)) {
8 | tibble::tibble(block = rep_len(nm, length(e)), track = names(e), session = unlist(e))
9 | } else if (is.character(e)) {
10 | tibble::tibble(block = nm, track = NA_character_, session = e)
11 | }
12 | }, USE.NAMES = FALSE, SIMPLIFY = FALSE) %>% dplyr::bind_rows()
13 | })
14 |
15 | intellum_datetime <- . %>%
16 | lubridate::with_tz("America/New_York") %>%
17 | (lubridate::stamp("2008-01-30 14:30", "ymdHM"))
18 |
--------------------------------------------------------------------------------
/speakers/maxkuhn.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 222
3 | url: https://global.rstudio.com/student/page/40625
4 | type: talk
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Max Kuhn
10 | affiliation: RStudio
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # What's new in tidymodels?
20 |
21 | tidymodels is a collection of packages for modeling using a tidy interface. In the last year there have been numerous improvements and extensions. This talk gives an overview of additional tuning methods, new extension packages for models and recipes, and other features.
22 |
23 | # Speaker bio
24 |
25 | Max Kuhn is a human person.
26 |
--------------------------------------------------------------------------------
/export-joined.R:
--------------------------------------------------------------------------------
1 | library(dplyr)
2 | source("_helpers.R", local = TRUE)
3 |
4 | talks <- readr::read_csv("simple_schedule.csv")
5 | discussion <- readr::read_csv("discussion_sessions_normalized.csv") %>%
6 | rename(title_text = title) %>%
7 | rename(abstract_text = description) %>%
8 | mutate(abstract_html = paste0("
",
9 | vapply(abstract_text, htmltools::htmlEscape, character(1)),
10 | "
"
11 | )) %>%
12 | mutate(type = "discussion") %>%
13 | rename(time_gmt = start_time) %>%
14 | left_join(session_df, c("block", "track")) %>%
15 | rename(topic = session) %>%
16 | select(-summary)
17 |
18 | full <- bind_rows(talks, discussion) %>% arrange(block, track, time_gmt)
19 |
20 | readr::write_csv(full, "full_schedule.csv")
21 |
22 | print(processx::run("aws", c(
23 | "s3",
24 | "cp",
25 | rprojroot::find_rstudio_root_file("full_schedule.csv"),
26 | "s3://rstudio-global-2021/schedule.csv"
27 | )))
28 |
--------------------------------------------------------------------------------
/speakers/winstonchang.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 335
3 | url: https://global.rstudio.com/student/page/40644
4 | type: talk
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Winston Chang
10 | affiliation: RStudio
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # Making Shiny apps faster with caching
20 |
21 | Shiny's 1.6 has a new function, `bindCache()`, which makes it easy to dramatically speed up reactive expressions and output rendering functions. This allows many applications to scale up to serve several times more users without an increase in server resources.
22 |
23 | # Speaker bio
24 |
25 | Winston Chang is a software engineer at RStudio. He maintains several R packages, from web-related packages like `shiny`, to lower-level packages like `R6` and `profvis`. Winston has a Ph.D. in psychology from Northwestern University, and is the author of _R Graphics Cookbook_, published by O'Reilly Media.
26 |
--------------------------------------------------------------------------------
/speakers/shirbiishshalom.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 323
3 | url: https://global.rstudio.com/student/page/40640
4 | type: talk
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Shirbi Ish-Shalom
10 | affiliation: Intuit
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # Using R to Up Your Experimentation Game
20 |
21 | Have you ever cut an A/B test short? Maybe because of traffic constraints, your antsy boss, or early successful results. In reality, cutting your test short can be catastrophic, making your business decision no better than a coin flip. Learn some R-driven tips & tricks to get meaningful results quickly with a statistically rigorous methodology called sequential testing, an A/B testing enhancement my team employs at Intuit.
22 |
23 | Key Takeaways.
24 | 1. What is sequential testing and how to use it.
25 | 2. How to learn (and fail!) quickly by taking big metric swings
26 | 3. How I used R to share my learnings & make them useful for anyone (even non-data scientists!) at my company.
27 |
28 | # Speaker bio
29 |
30 | Shirbi Ish-Shalom is a human person.
31 |
--------------------------------------------------------------------------------
/speakers/vickiboykis.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 2
3 | url: https://global.rstudio.com/student/page/40643
4 | type: keynote
5 | track: null
6 | blocks:
7 | - echo
8 | - kilo
9 | name: Vicki Boykis
10 | affiliation: Automattic
11 | links:
12 | homepage: http://vickiboykis.com/
13 | twitter: https://twitter.com/vboykis
14 | github: veekaybee
15 | linkedin: vickiboykis
16 | location: Philadelphia, PA
17 | ---
18 |
19 | # Your public garden
20 |
21 | Vicky will discuss how that as people who can write code and analyze data, we have a lot of input and power over what our digital and work worlds looks like, and therefore can act as agents of change and repair.
22 |
23 | # Speaker bio
24 |
25 | Vicki Boykis is a machine learning engineer at [Automattic](https://automattic.com/), the company behind [Wordpress.com](https://wordpress.com). She works mostly in Python, R, Spark, and SQL, and really enjoys building end-to-end data products. Outside of work she publishes the [Normcore Tech newsletter](https://vicki.substack.com) and blogs at . In her "spare time", she blogs, reads, and [writes terrible joke tweets about data](https://twitter.com/vboykis).
26 |
--------------------------------------------------------------------------------
/speakers/hadleywickham.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 1
3 | url: https://global.rstudio.com/student/page/40521
4 | type: keynote
5 | track: null
6 | blocks:
7 | - alfa
8 | - golf
9 | name: Hadley Wickham
10 | affiliation: RStudio
11 | links:
12 | homepage: http://hadley.nz/
13 | twitter: hadleywickham
14 | github: hadley
15 | linkedin: hadleywickham
16 | location: Houston, TX
17 | ---
18 |
19 | # Maintaining the house the tidyverse built
20 |
21 | Hadley will talk about how the tidyverse has evolved since its creation (just five years ago!). You'll learn about our greatest successes, learn from our biggest failures, and get some hints of what's coming down the pipeline for the future.
22 |
23 | # Speaker bio
24 |
25 | Hadley Wickham is Chief Scientist at RStudio. He's interested in building tools (computational and cognitive) that make data ingest, preparation, manipulation, visualization and analysis easier. He's developed over 30 R packages, for data analysis (ggplot2, dplyr, tidyr), making frustrating parts of R easier to use (lubridate for dates, stringr for strings, httr for accessing web APIs), and for streamlining the R package development (devtools, roxygen2, and testthat).
26 |
--------------------------------------------------------------------------------
/speakers/danielleoberdier.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 185
3 | url: https://global.rstudio.com/student/page/40604
4 | type: lightning
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Danielle Oberdier
10 | affiliation: null
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: null
17 | ---
18 |
19 | # How Content Makes the Data Go 'Round
20 |
21 | What makes a successful data science community thrive across industries? A recent Aflac WorkForces Report showed that professionals who are engaged in a community within their industry are 70% more likely to be satisfied with their work.
22 | I believe anyone can and should create content about data. In this talk, I will direct your attention towards 1) the ways that content creation can lead to heightened data science opportunities 2) how to know which type/s of content mediums (podcasts, blogs, video) are right for you 3) how to leverage social media and networking connections to make your content reach the right audiences. I hope to inspire listeners to create their own content and online brands as resources for fellow R community members.
23 |
24 | # Speaker bio
25 |
26 | Danielle Oberdier is a human person.
27 |
--------------------------------------------------------------------------------
/speakers/wolframking.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 162
3 | url: https://global.rstudio.com/student/page/40645
4 | type: lightning
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Wolfram King
10 | affiliation: R Weekly
11 | links:
12 | homepage: https://rweekly.org
13 | twitter: https://twitter.com/rweekly_org
14 | github: https://github.com/rweekly/rweekly.org
15 | linkedin: null
16 | location: China
17 | ---
18 |
19 | # Lifelong Learning with R Weekly
20 |
21 | R Weekly is a weekly newsletter with many great R blogs post, tutorials, and other formats of resources. https://rweekly.org
22 |
23 | R Weekly wants to keep track of these great things in the R community and make it more accessible to everyone.
24 |
25 | This is a warm and welcoming place. The team welcomes everyone who wants to contribute to the R community.
26 |
27 | In this talk I will cover these 6 topics:
28 |
29 | 1. How to use the R Weekly website
30 | 2. Why I created R Weekly
31 | 3. How to Contribute to R Weekly
32 | 4. How to release a new post
33 | 5. How to join the team
34 | 6. Learning from building the community
35 |
36 | # Speaker bio
37 |
38 | Wolfram King is the founder of the R Weekly project. He is an active member of the R community and has several popular R open-source projects on GitHub.
39 |
--------------------------------------------------------------------------------
/speakers/karawoo.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 286
3 | url: https://global.rstudio.com/student/page/40618
4 | type: talk
5 | track: A
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Kara Woo
10 | affiliation: Sage Bionetworks
11 | links:
12 | homepage: https://karawoo.com/
13 | twitter: https://twitter.com/kara_woo
14 | github: https://github.com/karawoo
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # Always look on the bright side of plots
20 |
21 | Everyone who creates visualizations in R is bound to make mistakes that prevent their plots from looking as they should. Sometimes, these mistakes create beautiful "accidental aRt", though other times they're just plain frustrating. Either way, however, there's something to be learned. This talk will draw on years of watching both the ggplot2 issue tracker and the @accidental__aRt twitter account to highlight some common plot foibles and explain what they can teach us about how ggplot2 works.
22 |
23 | # Speaker bio
24 |
25 | Kara Woo is a principal bioinformatics engineer at Sage Bionetworks. She leads a team of developers building tools and infrastructure for open science. Kara previously worked at Washington State University and at the National Center for Ecological Analysis and Synthesis (NCEAS), where she combined data management with fieldwork in Siberia at Lake Baikal. She has four cats.
26 |
--------------------------------------------------------------------------------
/speakers/barretschloerke.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 312
3 | url: https://global.rstudio.com/student/page/40600
4 | type: talk
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Barret Schloerke
10 | affiliation: RStudio
11 | links:
12 | homepage: http://schloerke.com/
13 | twitter: https://twitter.com/schloerke
14 | github: https://github.com/schloerke
15 | linkedin: https://www.linkedin.com/in/schloerke/
16 | location: United States
17 | ---
18 |
19 | # plumber + future: Async Web APIs
20 |
21 | `plumber` is an R package that allows users to create web APIs by decorating R functions using `roxygen2`-like comments. In the latest release, asynchronous code (using `future` or `promises`) may be inserted at any stage of a `plumber` route execution, enabling parallel processing using multiple workers. In this talk, I will go through how you can set up your own asynchronous `plumber` API to leverage your full computing potential.
22 |
23 | # Speaker bio
24 |
25 | `hello()`! Dr. Barret Schloerke is a Software Engineer on the Shiny team at RStudio. He currently maintains and creates many R packages surrounding the Shiny ecosystem, including `shiny`, `reactlog`, `plumber`, and `learnr`. Dr. Schloerke received his PhD in Statistics from Purdue University under the direction of Dr. Ryan Hafen and Dr. William Cleveland, specializing in Large Data Visualization (using R!).
26 |
--------------------------------------------------------------------------------
/speakers/lucydagostinomcgowan.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 334
3 | url: https://global.rstudio.com/student/page/40620
4 | type: lightning
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Lucy D'Agostino McGowan
10 | affiliation: Wake Forest University
11 | links:
12 | homepage: https://lucymcgowan.com
13 | twitter: https://twitter.com/LucyStats
14 | github: https://github.com/LucyMcGowan
15 | linkedin: null
16 | location: USA
17 | ---
18 |
19 | # Designing Randomized Studies using Shiny
20 |
21 | This talk will walk through building a self-contained randomized study using Shiny and learnr modules. We will discuss building informed consent, the randomization process, demographic surveys, and R-based studies into a single online framework to allow users to seamlessly enroll and participate in randomized studies via a single URL. The talk will include both practical recommendations as well as technical code snippets.
22 |
23 | # Speaker bio
24 |
25 | Lucy D'Agostino McGowan is an assistant professor of statistics at Wake Forest University, where she leads the WFU [Data Science Lab](https://dmds.lucymcgowan.com). Her research focuses on causal inference, human-data interaction, and statistical communication. She can be found on Twitter @LucyStats, podcasting on [Casual Inference](https://casualinfer.libsyn.com), and blogging at [livefreeordichtomize.com](https://livefreeordichtomize.com).
26 |
--------------------------------------------------------------------------------
/speakers/johnburnmurdoch.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 3
3 | url: https://global.rstudio.com/student/page/40615
4 | type: keynote
5 | track: null
6 | blocks:
7 | - charlie
8 | - india
9 | name: John Burn-Murdoch
10 | affiliation: Financial Times
11 | links:
12 | homepage: https://ft.com/jbm
13 | twitter: jburnmurdoch
14 | github: null
15 | linkedin: null
16 | location: London
17 | ---
18 |
19 | # Reporting on and visualising the pandemic
20 |
21 | John will discuss the lessons he's learned reporting on and visualising the pandemic, including the world of difference between making charts for a technical audience and making charts for a mass audience. You'll learn from his experience navigating the highly personal and political context within which people consume and evaluate graphics and data, and how that can help us better design and communicate with visualisations down the pipeline for the future.
22 |
23 | # Speaker bio
24 |
25 | John Burn-Murdoch is the Financial Times’ senior data visualisation journalist, and creator of the FT’s coronavirus trajectory tracker charts. He has been leading the FT’s data-driven coverage of the pandemic, exploring its impacts on health, the economy and wider society. When pandemics are not happening, he also uses data and graphics to tell stories on topics including politics, economics, climate change and sport, and is a visiting lecturer at the London School of Economics.
26 |
--------------------------------------------------------------------------------
/speakers/michaelchow.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 322
3 | url: https://global.rstudio.com/student/page/40629
4 | type: talk
5 | track: B
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Michael Chow
10 | affiliation: On Sabbatical
11 | links:
12 | homepage: http://mchow.com
13 | twitter: https://twitter.com/chowthedog
14 | github: https://github.com/machow
15 | linkedin: https://www.linkedin.com/in/michael-a-chow
16 | location: Philadelphia, PA, United States
17 | ---
18 |
19 | # Bringing the Tidyverse to Python with Siuba
20 |
21 | Last January I left my job to spend a year developing siuba, a python port of dplyr. At its core, this decision was driven by a decade of watching python and R users produce similar analyses, but in very different ways.
22 |
23 | In this talk, I'll discuss 3 ways siuba enables R users to transfer their hard-earned programming knowledge to python: (1) leveraging the power of dplyr syntax, (2) options to generate SQL code, and (3) working with the plotnine plotting library.
24 |
25 | Looking back, I'll consider two critical pieces that have helped me develop siuba: using it to livecode TidyTuesday analyses, and building an interactive tutorial for absolute beginners.
26 |
27 | # Speaker bio
28 |
29 | Michael Chow is a data scientist and learning researcher. He serves as a co-director at Code for Philly. In past lives, he worked on adaptive assessment tools in ed tech, and received a PhD in cognitive psychology from Princeton University.
30 |
--------------------------------------------------------------------------------
/speakers/nealrichardson.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 278
3 | url: https://global.rstudio.com/student/page/40631
4 | type: talk
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Neal Richardson
10 | affiliation: Ursa Computing
11 | links:
12 | homepage: https://enpiar.com/
13 | twitter: https://twitter.com/enpiar
14 | github: https://github.com/nealrichardson
15 | linkedin: https://www.linkedin.com/in/enpiar/
16 | location: United States
17 | ---
18 |
19 | # Bigger Data With Ease Using Apache Arrow
20 |
21 | The Apache Arrow project enables data scientists using R, Python, and other languages to work with large datasets efficiently and with interactive speed. Arrow is so fast at some workflows that it seems to defy reality--or at least the limits of R's capabilities. This talk examines the unique characteristics of the Arrow project that enable it to redefine what is possible in R. The talk also highlights some of the latest developments in the `arrow` R package, including how you can query and manipulate multi-file datasets, and it presents strategies for speeding up workflows by up to 100x.
22 |
23 | # Speaker bio
24 |
25 | Neal Richardson leads the engineering team at Ursa Computing, a startup working to empower data teams and accelerate data science. He is also the maintainer of several R packages, including `arrow`, and is a member of Apache Arrow's project management committee. Previously, he received a Ph.D. in Political Science and worked in survey analytics.
26 |
--------------------------------------------------------------------------------
/speakers/zj.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 114
3 | url: https://global.rstudio.com/student/page/40647
4 | type: lightning
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: ZJ
10 | affiliation: null
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/evalparse
14 | github: https://github.com/xiaodaigh/
15 | linkedin: https://linkedin.com/in/daizj
16 | location: Australia
17 | ---
18 |
19 | # Easy larger-than-RAM data manipulation with {disk.frame}
20 |
21 | Learn how to handle 100GBs of data with ease using {disk.frame} - the larger-than-RAM-data manipulation package.
22 |
23 | R loads data in its entirety into RAM. However, RAM is a precious resource and often do run out. That's why most R user would have run into the "cannot allocate vector of size xxB." error at some point.
24 |
25 | However, the need to handle larger-than-RAM data doesn't go away just because RAM isn't large enough. So many useRs turn to big data tools like Spark for the task. In this talk, I will make the case that {disk.frame} is sufficient and often preferable for manipulating larger-than-RAM data that fit on disk. I will show how you can apply familiar {dplyr}-verbs to manipulate larger-than-RAM data with {disk.frame}.
26 |
27 | # Speaker bio
28 |
29 | ZJ is a machine learning developer based in Melbourne, Australia. He regularly contributes to open source projects. He has more than 10 years of experience in banking before joining the tech sector. In his free time, he enjoys playing Go/Baduk/Weiqi.
30 |
--------------------------------------------------------------------------------
/speakers/colinrundel.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 303
3 | url: https://global.rstudio.com/student/page/40603
4 | type: lightning
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Colin Rundel
10 | affiliation: University of Edinburgh & Duke University
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/rundel
14 | github: https://github.com/rundel
15 | linkedin: null
16 | location: Edinburgh, Scotland
17 | ---
18 |
19 | # parsermd - parsing R Markdown for fun and profit
20 |
21 | `parsermd` is a new R package for parsing and programmatically interacting with R Markdown (Rmd) documents. This package implements a formal grammar for Rmd documents in C++ using Boost's Spirit X3 library and provides additional user facing functions for the resulting abstract syntax tree. In this talk we will provide background on the structure and grammar of Rmd documents as well as discuss the ways in which the parsing of these documents enables a variety of automatable tasks. Specifically, we will focus on demonstrating how these tools can be used to provide automated feedback on student submissions in a statisical programming course.
22 |
23 | # Speaker bio
24 |
25 | Colin Rundel is Lecturer in Statistics and Data Science in the School of Mathematics at the University of Edinburgh and an Assistant Professor of the Practice in the Department of Statistical Science at Duke University. He is a long time user R and RStudio and his research interests include statistical computing, bayesian methods for spatial statistics, with a focus on applications in biology and ecology.
26 |
--------------------------------------------------------------------------------
/speakers/irenesteves.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 273
3 | url: https://global.rstudio.com/student/page/40612
4 | type: talk
5 | track: B
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Irene Steves
10 | affiliation: Riskified
11 | links:
12 | homepage: https://irene.rbind.io/
13 | twitter: https://twitter.com/i_steves
14 | github: https://github.com/isteves
15 | linkedin: null
16 | location: Israel
17 | ---
18 |
19 | # The dynamic duo: SQL & R
20 |
21 | There's a point in every data wranglers' career in which their full dataset can no longer fit into just CSV files, and the journey to database-world begins. I reached this point about two years ago, when I transitioned from ecological research to the world of eCommerce fraud prevention. My calls to read_csv became scarcer as I came to rely more and more on databases. In this talk, I'll demonstrate how I use R and SQL to access database tables, and how I incorporate both into my daily workflow, aided by features in RStudio IDE. I'll also discuss our company’s "riskiconn" package for handling database connections and queries, which includes customizations to simplify day-to-day data querying.
22 |
23 | # Speaker bio
24 |
25 | Irene holds an M.Sc. in Ecology and a B.A. in Integrative Biology, through which she first discovered R and data science. Her interest in data led her to the Arctic Data Center at the University of California Santa Barbara, a summer internship at RStudio, and ultimately to the Research & Data Science department at Riskified, where she now explores the complex patterns of fraud in eCommerce. In her free time, she studies Hebrew through podcasts and dubbed kids' movies.
26 |
--------------------------------------------------------------------------------
/speakers/simoncouch.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 117
3 | url: https://global.rstudio.com/student/page/40641
4 | type: lightning
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Simon Couch
10 | affiliation: Reed College
11 | links:
12 | homepage: https://simonpcouch.com
13 | twitter: https://twitter.com/simonpcouch
14 | github: https://github.com/simonpcouch
15 | linkedin: https://linkedin.com/in/simonpcouch/
16 | location: United States
17 | ---
18 |
19 | # tidymodels/stacks, Or, In Preparation for Pesto: A Grammar for Stacked Ensemble Modeling
20 |
21 | Through a community survey conducted over the summer, the RStudio tidymodels team learned that users felt the #1 priority for future development in the tidymodels package ecosystem should be ensembling, a statistical modeling technique involving the synthesis of multiple learning algorithms to improve predictive performance. This December, we were delighted to announce the initial release of stacks, a package for tidymodels-aligned ensembling. A particularly statistically-involved pesto recipe will help us get a sense for how the package works and how it advances the tidymodels package ecosystem as a whole.
22 |
23 | # Speaker bio
24 |
25 | Simon Couch is an R developer and statistics student at Reed College, where he is entering the final semester of his undergraduate degree. He co-authors and maintains R packages including broom, infer, and stacks, leads trainings and workshops as an RStudio-certified tidyverse trainer, and researches in algorithmic data privacy. He interned on the RStudio tidymodels team in summer 2020, and is currently applying to doctoral programs in statistics.
26 |
--------------------------------------------------------------------------------
/speakers/andrewtran.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 290
3 | url: https://global.rstudio.com/student/page/40598
4 | type: talk
5 | track: A
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Andrew Ba Tran
10 | affiliation: The Washington Post
11 | links:
12 | homepage: https://www.washingtonpost.com/people/andrew-ba-tran/
13 | twitter: https://twitter.com/abtran
14 | github: https://github.com/wpinvestigative
15 | linkedin: https://www.linkedin.com/in/abtran/
16 | location: United States
17 | ---
18 |
19 | # The Opioid Files: Turning big pharmacy data over to the public
20 |
21 | Just because data is public doesn't mean it's accessible. It takes more effort, but designing data distribution so it can be analyzed by people with differing levels of data analysis skills opens up the possibility of more stories that can be told. This talk will go over how The Washington Post used R (and Python) to analyze hundreds of gigs of pain pill distribution data from the Drug Enforcement Administration as part of its investigation into the opioid epidemic. And how making the data public and showing their work enabled other journalists and researchers across the country to drill deeper than the Post could ever do on its own.
22 |
23 | # Speaker bio
24 |
25 | Andrew is a data reporter on the rapid-response investigative team at The Washington Post who has analyzed how covid-19 has disproportionately impacted certain communities, the spread of opioids across the country, and the rise of right-wing violence. He shared in winning the Pulitzer Prize for Investigative Reporting in 2018. He's an advocate for open data and reproducibility [in journalism](https://github.com/wpinvestigative).
26 |
--------------------------------------------------------------------------------
/speakers/garrickadenbuie.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 245
3 | url: https://global.rstudio.com/student/page/40609
4 | type: lightning
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Garrick Aden-Buie
10 | affiliation: RStudio, PBC
11 | links:
12 | homepage: https://www.garrickadenbuie.com
13 | twitter: https://twitter.com/grrrck
14 | github: https://github.com/gadenbuie
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # xaringan Playground: Using xaringan to learn web development
20 |
21 | `xaringan` is a quirky package that extends R Markdown to create beautiful web-based HTML slides. Some of `xaringan`’s quirks come from the JavaScript library it uses, remarkjs, and some of it from the unusual naming scheme `xaringan` uses for its functions. But under this quirky exterior lies a powerful tool for learning and practicing web development, especially when combined with `infinite_moon_reader()` for immediate feedback. In this talk I'll cover some basic web concepts that illustrate how fun and rewarding it can to learn HTML, CSS and JavaScript while building awesome slides in R Markdown.
22 |
23 | # Speaker bio
24 |
25 | Garrick is a Data Science Educator at RStudio who lives in sunny St. Petersburg, Florida. His passion is combining creative coding with programming education, using code to build tools that teach coding to new and advanced R users alike. He's developed a number of open source packages and addins for `xaringan` including `xaringanthemer` for complete, custom slide themes and `xaringanExtra` for a variety of advanced additions to complete `xaringan` slides with live broadcasting, tabbed panels, custom animations, and more.
26 |
--------------------------------------------------------------------------------
/speakers/alexcookson.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 307
3 | url: https://global.rstudio.com/student/page/40596
4 | type: lightning
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Alex Cookson
10 | affiliation: Royal Canadian Mint
11 | links:
12 | homepage: https://www.alexcookson.com/
13 | twitter: https://twitter.com/alexcookson
14 | github: https://github.com/tacookson
15 | linkedin: https://www.linkedin.com/in/alexcookson/
16 | location: Canada
17 | ---
18 |
19 | # The Power of Great Datasets
20 |
21 | There are a few classic datasets, like mtcars, nycflights, or Titanic passengers. They're okay, but they leave something to be desired for folks learning R: they're kind of boring.
22 |
23 | There's a big difference between "Okay Datasets" and "Great Datasets". Great Datasets prompt you to exclaim, "That's so cool!" They get your blood pumping and mind racing with questions you want answered. They give tremendous motivation to answer those questions. And in answering those questions, you'll probably learn some R.
24 |
25 | I want you to curate Great Datasets. You'll contribute to the richness of our community, you'll learn some R yourself, and you'll feel fantastic when someone finds your Great Dataset and exclaims, "That's so cool!"
26 |
27 | # Speaker bio
28 |
29 | Alex Cookson helps the Customer Intelligence team at the Royal Canadian Mint make the most of their data. When he's not working on A/B testing, recommendation engines, or exploratory data analysis at the Mint, he can be found participating in Tidy Tuesday or thinking up cool datasets to explore. And when he's not doing that, he's probably cycling around Toronto or doting on his two cats, Tom Tom and Ruby.
30 |
--------------------------------------------------------------------------------
/speakers/athanasiamowinckel.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 128
3 | url: https://global.rstudio.com/student/page/40599
4 | type: lightning
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Athanasia M. Mowinckel
10 | affiliation: "[Center for Lifespan Changes in Brain and Cognition](https://www.oslobrains.no/)"
11 | links:
12 | homepage: https://drmowinckels.io/
13 | twitter: https://twitter.com/DrMowinckels
14 | github: Athanasiamo
15 | linkedin: https://www.linkedin.com/in/drmowinckels/
16 | location: Oslo, Norway
17 | ---
18 |
19 | # Make a package - Make some friends
20 |
21 | In 2017, I had never exposed my code to anyone other than a select few before, and I was terrified. I had some functions made from a colleagues script that I thought might be useful for others, and dared myself to make a package and push it to github.
22 |
23 | In stead of the dreaded ridiculing of poor code and development, people embraced the package and helped us make it better. Within just a couple of days, pull requests came from others to help us improve the code, implement tests, and improve documentation. I learned so much just by looking through the PRs and seeing how others worked.
24 |
25 | Rather than make me shy off development, the R neuro community's positive feedback has helped me find a new interest and joy in developing tools.
26 |
27 | # Speaker bio
28 |
29 | Athanasia M. Mowinckel is a staff scientist at the Center for Lifespan Changes in Brain and Cognition, at the University of Oslo.
30 | She has a background on cognitive psychology, and uses R for almost everything.
31 | She goes by the nickname "Mo" (closer to 'Mou' than 'Moe'), and is a member of the R-Ladies Global team.
32 |
--------------------------------------------------------------------------------
/speakers/daniellesmallsperkins.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 180
3 | url: https://global.rstudio.com/student/page/40605
4 | type: lightning
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Danielle Smalls-Perkins
10 | affiliation: null
11 | links:
12 | homepage: https://danielle.pizza
13 | twitter: smallperks
14 | github: null
15 | linkedin: null
16 | location: null
17 | ---
18 |
19 | # Your R is My R too: Reflections on creating the Mi-R community
20 |
21 | While the R community has made strides in increasing the representation and participation for women and users from underrepresented regions, there are still members of the R community that have expressed desires for a more inclusive space in addition to these strides. In addition, there are unique challenges that underrepresented R users experience in their respective workspaces or academic environments. In late February of 2020, Danielle Smalls-Perkins and Dorris Scott created Mi-R (Minorities in R) as a result of their various experiences both in and outside the R community. The purpose of this talk is to reflect on the challenges, highlights, and future directions of the first six months since the creation of Mi-R.
22 |
23 | # Speaker bio
24 |
25 | Danielle Smalls-Perkins co-founded MiR Community with the hope that the R community would continue to encourage the inclusion and recognition of contributions made from R users of diverse backgrounds. She loves to use R for understanding and storytelling.
26 | Danielle currently works as a Senior Strategist in Google's Trust and Safety Team. She advocates for model fairness, interpretability, and reducing harmful outcomes of algorithmic decision-making on vulnerable populations.
27 |
28 |
--------------------------------------------------------------------------------
/speakers/javierluraschi.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 112
3 | url: https://global.rstudio.com/student/page/40613
4 | type: talk
5 | track: B
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Javier Luraschi
10 | affiliation: ""
11 | links:
12 | homepage: http://about.me/javierluraschi
13 | twitter: https://twitter.com/javierluraschi
14 | github: https://github.com/javierluraschi
15 | linkedin: https://www.linkedin.com/in/javierluraschi/
16 | location: United States
17 | ---
18 |
19 | # Using pins with Python and JavaScript
20 |
21 | Last year, [pins](https://pins.rstudio.com) got released as a brand new R package to pin, discover and cache remote resources for R users. This package has matured to support many use cases; from caching remote URLs, and easily sharing datasets with other R users, to building automated pipelines.
22 |
23 | However, in order to truly collaborate in multi-disciplinary data-driven teams, one needs to consider how to collaborate beyond R? How can we share resources with designers and machine learning experts who happen to use different programming languages like Python and JavaScript?
24 |
25 | This talk will introduce the [pinsjs](https://pinsjs.github.io/) project, a cross-language community project which has the goal of bringing `pins` to the broader open source community to enable rich workflows across larger data-driven teams.
26 |
27 | # Speaker bio
28 |
29 | Javier is the author of “Mastering Spark with R”, pins, sparklyr, mlflow and torch. He holds a double degree in Math and Software Engineer and decades of industry experience with a focus on data analysis. Javier is currently working on a project of his own; and previously worked in RStudio, Microsoft Research and SAP.
30 |
--------------------------------------------------------------------------------
/speakers/jeroenooms.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 239
3 | url: https://global.rstudio.com/student/page/40614
4 | type: talk
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Jeroen Ooms
10 | affiliation: UC Berkeley
11 | links:
12 | twitter: opencpu
13 | github: jeroen
14 | linkedin: datajeroen
15 | location: Netherlands
16 | ---
17 |
18 | # Monitoring health and impact of open-source projects
19 |
20 | At rOpenSci, we have come to realize that in order to help researchers get the most out of R, we need better tooling to monitor the quality, health, and impact of R packages. This applies both to our internal projects, as well as other packages in the R ecosystem. But what exactly makes a good R package?
21 |
22 | In this talk we discuss various aspects of open-source software that are not always immediately obvious, and that you may want to consider when depending on an R package. We identify several categories of indicators you could look for, ranging from the role in the dependency network, to expectations around maintenance and participation.
23 |
24 | Finally we introduce an ambitious new rOpenSci project called [R-universe](https://r-universe.dev): an open platform, where we will experiment with showing metrics and other background information about packages, that may reveal something about the health and the impact of the project, and also facilitate discovery of other software.
25 |
26 | # Speaker bio
27 |
28 | Jeroen Ooms is a researcher and software developer with the rOpenSci group at UC Berkeley. He has written (too) many CRAN packages, and also maintains the compilers and build infrastructure for R on Windows. In this talk he will finally reveal how to pronounce his name.
29 |
30 |
--------------------------------------------------------------------------------
/speakers/sophiebeiers.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 274
3 | url: https://global.rstudio.com/student/page/40642
4 | type: talk
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Sophie Beiers
10 | affiliation: American Civil Liberties Union
11 | links:
12 | homepage: http://www.sophiebeiers.com
13 | twitter: https://twitter.com/sophiebeiers
14 | github: https://github.com/sophiebeiers
15 | linkedin: https://www.linkedin.com/in/sophiebeiers/
16 | location: United States
17 | ---
18 |
19 | # Trial and Error in Data Viz at the ACLU
20 |
21 | Visualizing data the “right” way requires many considerations — the topic, the quality of your data, your audience, your time frame, and the various channels of (sometimes conflicting) feedback you received. In this presentation, I’ll introduce some reflections on these considerations and ways I’ve incorporated feedback (or not) into my work as Data Journalist at the ACLU. Lastly, I’ll present some of the sillier trials and errors I’ve made that were arguably necessary to my process in creating effective data visualizations using R.
22 |
23 | # Speaker bio
24 |
25 | Sophie Beiers works on the ACLU's Analytics team as a Data Journalist where she analyzes and visualizes data for their lawyers’ legal arguments and for external advocacy pieces. Prior to her time at the ACLU, she received her master’s degree in Quantitative Methods in Social Sciences at Columbia University where she also TA’d at the Lede Program for Data Journalism. Before NYC, she kicked off her career in analytics in San Francisco at the education nonprofit "YouthTruth." Sophie is a Bay Area native but currently lives in Portland, OR and enjoys running, hiking, and making pottery in her free time.
26 |
--------------------------------------------------------------------------------
/speakers/malcolmbarrett.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 279
3 | url: https://global.rstudio.com/student/page/40621
4 | type: talk
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Malcolm Barrett
10 | affiliation: Teladoc Health
11 | links:
12 | homepage: "https://malco.io/"
13 | twitter: "https://twitter.com/malco_barrett"
14 | github: "https://github.com/malcolmbarrett/"
15 | linkedin: "https://www.linkedin.com/in/malcolm-barrett-33b307138/"
16 | location: United States
17 | ---
18 |
19 | # You're Already Ready: Zen and the Art of R Package Development
20 |
21 | R packages make it easier to write robust, reproducible code, and modern tools in R development like usethis make it easy to work with packages. When you write R packages, you also unlock a whole ecosystem of tools that will make it easier to test, document, and share your code. Despite these benefits, many believe package development is too advanced for them or that they have nothing to offer. A fundamental belief in Zen is that you are already complete, that you already have everything you need. I’ll talk about why your project is already an R package, why you’re already an R package developer, and why you already have the skills to walk the path of development.
22 |
23 | # Speaker bio
24 |
25 | Malcolm Barrett is Clinical Research Data Scientist at Teladoc Health, an epidemiologist, and an R developer. He is also an organizer for the Los Angeles R Users Group. Malcolm is the author of several R packages, including ggdag and precisely. Previousy, he was an intern at RStudio and spent two years of service in AmeriCorps. In 2013 and 2014, while serving in AmeriCorps, Malcolm lived in the Zen Center of New York City, where he is still a student.
26 |
--------------------------------------------------------------------------------
/speakers/mayagans.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 148
3 | url: https://global.rstudio.com/student/page/40626
4 | type: talk
5 | track: A
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Maya Gans
10 | affiliation: Atorus Research
11 | links:
12 | homepage: "https://maya.rbind.io"
13 | twitter: "https://twitter.com/Mayacelium"
14 | github: "https://github.com/MayaGans"
15 | linkedin: "https://www.linkedin.com/in/mayagans/"
16 | location: United States
17 | ---
18 |
19 | # Starting an R Book Club: Cooking Up Friendships in Isolation
20 |
21 | Amidst a global pandemic there’s been one consistency in my life: every Tuesday a group of friends meet to discuss Hadley Wickham’s Advanced R. I crowdsourced interest using the R4DS Slack and the results were magical: a group of incredibly curious and generous people motivated to learn and teach one another emerged. The meetings evolved from a group of strangers giving timid presentations to a safe space where we share and improve upon personal applications. The 1 club has grown to 3 regional cohorts, and became a model for discussing other books too. This talk will go over the structure of our meetings in hopes of empowering others to start their own book clubs, showcasing a different way people can create and engage in communities.
22 |
23 | # Speaker bio
24 |
25 | Maya is an R and JavaScript developer mainly focused on data visulaization and user experience. She currently works for Atorus Research where she is a web and Shiny developer. During her time as an intern at RStudio, she created a blocks-based programming language called TidyBlocks and co-authored “JavaScript for Data Science.” Passionate about data science education, Maya has given multiple trainings and workshops.
26 |
--------------------------------------------------------------------------------
/speakers/michaelchirico.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 328
3 | url: https://global.rstudio.com/student/page/40628
4 | type: lightning
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Michael Chirico
10 | affiliation: Google, Inc.
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/michael_chirico
14 | github: https://github.com/michaelchirico/
15 | linkedin: https://www.linkedin.com/in/michael-chirico-9b6b0527/
16 | location: Palo Alto
17 | ---
18 |
19 | # Making .pot-ery with R: Translations in R Packages
20 |
21 | The R community is globally distributed and R itself is available with messages in 14 languages. Adding translations for non-native English-speaking users of your package can ease their experience and empower them to build better things with less frustration (though please note that "object of type 'closure' is not subsettable" is equally inscrutable in all human languages).
22 |
23 | In this talk, I will cover translations in R packages -- how to implement them, why to do so, and how to maintain them. This will summarize and extend learnings based on our experience adding Mandarin translations to data.table and culminating in the potools package.
24 |
25 | # Speaker bio
26 |
27 | Michael Chirico is a data scientist working on compute memory efficiency at Google. Before that he worked at Grab in Singapore and earlier got his PhD in Economics at the University of Pennsylvania.
28 |
29 | He is passionate about making tools to empower others who work with data (most of this energy is directed towards `data.table`) and loves learning languages (at various middling levels of proficiency in Japanese, Spanish, and Mandarin, with goals to learn Cantonese, Hokkien, Vietnamese and Bahasa).
30 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This repository contains files relating to the Program and Schedule for [rstudio::global 2021](https://rstudio.com/conference/). It includes:
2 |
3 | - The "master data" about speakers and talks
4 |
5 | - Scripts for converting that data to YAML for downstream processes to consume
6 |
7 | ## Instructions for speakers
8 |
9 | (These instructions assume you're familiar with Git and GitHub. If you're not, you can simply email your final talk title, abstract, speaker bio, and headshot to joe@rstudio.com with the subject "Program details".)
10 |
11 | 1. Find your Markdown file under the `speakers/` directory.
12 |
13 | 1. Ensure the existing metadata is correct, and fill out any of the `null` links. If your location field is `null`, you can add your country if you like. (Do not add additional fields, they will be ignored.)
14 |
15 | 2. Edit the talk title and abstract. (Markdown is allowed, but please stick to simple formatting.)
16 |
17 | 3. Fill out the speaker bio section with a paragraph (or two).
18 |
19 | 2. **Provide a square headshot** by uploading a .jpg or .png to the `speakers/` directory. The filename must match your Markdown file, except for the file extension. (For example, Sean Lopp has `speakers/seanlopp.md`, so his headshot would need to be `speakers/seanlopp.jpg` or `speakers/seanlopp.png`.)
20 |
21 | 3. Submit your changes as a PR and someone on the program committee will approve ASAP.
22 |
23 | **You don't need to run any of the scripts in this repo**--just edit your Markdown file and provide the headshot.
24 |
25 | You may submit as many changes/PRs as you want, up until the deadline of December 25.
26 |
27 | Thank you again for your participation in rstudio::global 2021!
28 |
--------------------------------------------------------------------------------
/speakers/seanlopp.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 218
3 | url: https://global.rstudio.com/student/page/40638
4 | type: talk
5 | track: B
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Sean Lopp
10 | affiliation: RStudio
11 | links:
12 | homepage: https://loppsided.blog
13 | twitter: lopp_sean
14 | github: slopp
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # R & Python: Going Steady
20 |
21 | While there has been a lot of excitement about the R and Python love story, there are still misconceptions that individuals, teams, or organizations must pick between R or Python. This talk will explain why this false choice exists, debunk the myths that cause teams to be stuck with only one tool, and clarify how data scientists can use both languages to be more effective. We will explore this love story's blossoming relationship by looking at updates to RStudio's packages and products that make it easier to develop and collaborate in R and Python. This talk is for individuals who want to uncover the benefits of multilingual data science, IT professionals who are skeptical their life can get better by supporting more languages, and data science managers interested in enabling their teams instead of forcing their data superheros to be subservient to particular tools.
22 |
23 | # Speaker bio
24 |
25 | Sean Lopp is an engineer, data scientist, and product leader. At RStudio, he helps data science teams uncover better habits and adopt better tools. He has worked with hundreds of organizations in finance, manufacturing, consumer tech, pharma, and healthcare. Sean led the creation of RStudio's Package Manager. Before RStudio Sean worked in NREL's transportation research group. He lives in Colorado and skis and bikes with his family.
26 |
--------------------------------------------------------------------------------
/speakers/chelseaparlettpelleriti.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 193
3 | url: https://global.rstudio.com/student/page/40602
4 | type: lightning
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Chelsea Parlett-Pelleriti
10 | affiliation: Chapman University
11 | links:
12 | homepage: https://cmparlettpelleriti.github.io/
13 | twitter: https://twitter.com/ChelseaParlett
14 | github: https://github.com/cmparlettpelleriti
15 | linkedin: https://www.linkedin.com/in/chelseaparlettpelleriti/
16 | location: null
17 | ---
18 |
19 | # Using Guided Simulation Exercises to Teach Data Science with R
20 |
21 | With more learning occurring virtually or in hybrid mode, hands-on ways to remotely teach DS are invaluable. Guided simulation exercises in R allow learners to explore concepts deeply, on their own time, and with others. They can also experiment with the simulations, try out edge cases, and challenge their assumptions, leading to more fruitful discussions. The comparison between coefficient estimates in regular, LASSO, and RIDGE regression, or how PCA performs when data are related are great examples of concepts where guided simulations can encourage learners to build intuitive knowledge. This talk explores how to use simulation exercises in R to help learners explore DS concepts and provides examples.
22 |
23 | # Speaker bio
24 |
25 | Chelsea Parlett-Pelleriti is a PhD Candidate and full-time instructional faculty teaching Data Science at Chapman University. Her research centers around how we can use statistics and machine learning to improve the way we analyze behavioral (read: psychology) data. In her free time, you can find Chelsea on Twitter making stats memes or #statsTikTok's. She also writes about statistics, machine learning, and using R for various blogs.
26 |
--------------------------------------------------------------------------------
/speakers/pamelapairo.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 251
3 | url: https://global.rstudio.com/student/page/40634
4 | type: lightning
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Pamela E. Pairo
10 | affiliation: null
11 | links:
12 | homepage: https://pamepairo.netlify.app/
13 | twitter: https://twitter.com/PamePairo
14 | github: https://github.com/PamelaPairo
15 | linkedin: https://www.linkedin.com/in/pamela-e-pairo-5a2004202/
16 | location: Argentina
17 | ---
18 |
19 | # An easy and friendly way to build your multilingual website
20 |
21 | Having a personal website is a great way to share our experiences with other people, that also allows us to improve our communication skills and expand our networking groups. Besides, if the website is multilingual, the scope will be extended considerably by facilitating the exchange of ideas. I will give the key steps, some tips, and important considerations to bear in mind when creating a multilingual website using Blogdown, Hugo, and Netlify. Although having a multilingual website demands more effort, R enables us to build a website easily and keep it updated. I aim to help and encourage others to build their website to promote exchange experiences among people from different native languages.
22 |
23 | # Speaker bio
24 |
25 | Pamela E. Pairo is a Ph.D. in Biological Sciences of the University of Buenos Aires, with expertise in community ecology. One of her research lines focuses on analyzing the impact of human activities on the diversity and composition of biological communities with particular interest in arthropods. In addition, she is interested in studying the spatio-temporal patterns of dengue disease in Argentina. She also is a teaching assistant in statistics at the Argentine University of Enterprise (UADE).
26 |
--------------------------------------------------------------------------------
/speakers/richardvogg.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 225
3 | url: https://global.rstudio.com/student/page/40635
4 | type: lightning
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Richard Vogg
10 | affiliation: null
11 | links:
12 | homepage: https://r-vogg-blog.netlify.app/
13 | twitter: https://twitter.com/richard_vogg
14 | github: https://github.com/richardvogg
15 | linkedin: https://www.linkedin.com/in/richard-vogg-185764145/
16 | location: Germany
17 | ---
18 |
19 | # How I became a Data Composer – examples of simulated datasets that bring value to a data-driven company
20 |
21 | How can I get the buy-in from business partners to use more advanced techniques? What can I do to make a data project involving several teams more efficient? And how can I train analysts who do not (yet) have access to sensitive data?
22 | A good data composer is skilled at creating suitable data quickly and efficiently. R has many functions and packages that help with simulating independent variables and composing those in a meaningful way.
23 | In this talk, I will share how I started creating data and how this skill helped me with solving some of the issues described above. Showing a few examples – of small, medium-sized, and large data composition – I want to encourage attendees to simulate data and enrich their data skillset.
24 |
25 | # Speaker bio
26 |
27 | Richard Vogg studied mathematics at TU Kaiserslautern, Germany, where he focused on statistics and obtained a Master’s degree.
28 | He worked as a Senior Business Analyst at Evalueserve in Chile for the last years, analyzing data for a major US bank. At the end of 2020, he moved back to Germany.
29 | Richard is a fan of applied statistics and storytelling with data. Outside of R, he enjoys playing the ukulele, trumpet, and didgeridoo.
30 |
--------------------------------------------------------------------------------
/speakers/mikepage.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 179
3 | url: https://global.rstudio.com/student/page/40624
4 | type: talk
5 | track: A
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Mike Page
10 | affiliation: British Red Cross
11 | links:
12 | homepage: https://www.mikejohnpage.com/
13 | twitter: https://twitter.com/MikeJohnPage
14 | github: https://github.com/mikejohnpage
15 | linkedin: null
16 | location: Switzerland
17 | ---
18 |
19 | # Cognitive speed: How the Tidyverse helped the British Red Cross respond quickly to COVID-19
20 |
21 | We will discuss the importance of cognitive speed, defined here as the rate in which an idea can be translated into code, and why the Tidyverse excels in this domain. We will demonstrate this idea in relation to a suite of tools we were required to rapidly develop at the British Red Cross in order to respond effectively to the COVID-19 pandemic. To do this, we will exhibit how elements of the unifying design principles outlined in the ‘tidyverse design guide - Tidyverse team’ relate to the notion of cognitive speed, giving specific examples for various design considerations. We believe this talk will encourage reflection on better design practices for future R developers, using the design principles of the tidyverse as the guiding beacon.
22 |
23 | # Speaker bio
24 |
25 | Mike Page is a data scientist on the Strategic Insight and Foresight team at the British Red Cross. Here, he helps to develop a suite of open source tools and dashboards including the [Vulnerability Index](https://britishredcrosssociety.github.io/covid-19-vulnerability/) and [Resilience Index](https://britishredcross.shinyapps.io/resilience-index/). Mike is also the author of several R packages including mortyr and newsrivr. In his spare time you can find him rock climbing around the Alps.
26 |
--------------------------------------------------------------------------------
/speakers/dorrisscott.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 180
3 | url: https://global.rstudio.com/student/page/40605
4 | type: lightning
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Dorris Scott
10 | affiliation: Washington University in St. Louis
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: null
17 | ---
18 |
19 | # Your R is My R too: Reflections on creating the Mi-R community
20 |
21 | While the R community has made strides in increasing the representation and participation for women and users from underrepresented regions, there are still members of the R community that have expressed desires for a more inclusive space in addition to these strides. In addition, there are unique challenges that underrepresented R users experience in their respective workspaces or academic environments. In late February of 2020, Danielle Smalls-Perkins and Dorris Scott created Mi-R (Minorities in R) as a result of their various experiences both in and outside the R community. The purpose of this talk is to reflect on the challenges, highlights, and future directions of the first six months since the creation of Mi-R.
22 |
23 | # Speaker bio
24 |
25 | Dorris Scott is the GIS Librarian and Social Science Data Curator at Washington University – St. Louis, where she provides consultation on projects that use geospatial data along with providing training in various GIS software, programming applications of geospatial data, and data management. She also serves as a liaison between Washington University Libraries and social science departments assisting faculty with their data needs such as data management and data curation. Dorris received her PhD in Geography from the University of Georgia, with a specialization in GIS applications for public health.
26 |
--------------------------------------------------------------------------------
/speakers/nicholaspylypiw.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 167
3 | url: https://global.rstudio.com/student/page/40632
4 | type: lightning
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Nicholas Pylypiw
10 | affiliation: Cape Fear Collective
11 | links:
12 | homepage: https://capefearcollective.org
13 | twitter: null
14 | github: https://github.com/NickPyll
15 | linkedin: https://www.linkedin.com/in/nicholaspylypiw/
16 | location: United States
17 | ---
18 |
19 | # Racial Equity Dashboard: Unpacking Systemic Inequity
20 |
21 | At Cape Fear Collective, we’re redefining what a town square looks like in our community, serving as a place where all people, organizations, and ideas can come together to effect real, lasting, and systemic change. By merging cutting edge data science with an emphasis on equity and the lived experience of our most marginalized communities, Cape Fear Collective supports Southeastern North Carolina’s front line organizations in combating poverty, racism, poor health and education outcomes, and socio-economic disparities. This talk is about how we bring that model to life through our [Racial Equity Dashboard](https://cape-fear-collective.shinyapps.io/racial-equity/), from data sourcing, to modeling and, ultimately, action.
22 |
23 | # Speaker bio
24 |
25 | Nick is the Director of Data Science at Cape Fear Collective, a non profit which supports Southeastern North Carolina’s front line organizations in combating poverty, racism, poor health and education outcomes, and socio-economic disparities. Prior to CFC, he honed his data science and consulting skills in the marketing analytics space, transforming the way Fortune 500+ companies (Lowe's Southwest Airlines, P&G, and many others) think about their customer strategy and value proposition. He lives in Raleigh, North Carolina.
26 |
--------------------------------------------------------------------------------
/speakers/aaronjacobs.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 293
3 | url: https://global.rstudio.com/student/page/40593
4 | type: talk
5 | track: C
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Aaron Jacobs
10 | affiliation: Crescendo Technology
11 | links:
12 | homepage: https://unconj.ca
13 | twitter: https://twitter.com/unconj1
14 | github: https://github.com/atheriel
15 | linkedin: null
16 | location: Toronto, Canada
17 | ---
18 |
19 | # Introducing xrprof: A New Way to Profile R
20 |
21 | Tracking down performance issues in R code usually means using R's built-in `Rprof()` profiler or one of the packages built around it. But the changing nature of the R community (towards more deployed applications) makes local profiling workflows frustrating, which is why I have written a new profiler: xrprof.
22 |
23 | xprof is compatible with existing R tools, but unlike them it can be used to profile R code that is already running -- in fact, it is designed to be safe to point at R code running "in production". xrprof also works seamlessly when R is run inside Docker, and can even be run in complex environments like Kubernetes clusters.
24 |
25 | Taking inspiration from the {jointprof} package, xrprof can also show function calls at the C/C++ level alongside those from R. This can be immensely useful for diagnosing problems in packages that make heavy use of compiled code.
26 |
27 | # Speaker bio
28 |
29 | Aaron Jacobs is a Senior Data Scientist on the R&D team at Crescendo, a technology company in the sports betting space with a large internal R ecosystem. Prior to Crescendo he worked in Canadian public policy research. Aaron has a strong interest in the engineering side of data science and the emerging use of R "in production". He is the author of several CRAN and GitHub packages, as well as xrprof -- a new R profiling tool.
30 |
--------------------------------------------------------------------------------
/speakers/grantfleming.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 315
3 | url: https://global.rstudio.com/student/page/40610
4 | type: talk
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Grant Fleming
10 | affiliation: Elder Research Inc.
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/hearthehearsay
14 | github: https://github.com/Gflemin
15 | linkedin: https://www.linkedin.com/in/grant-fleming-a1712a131
16 | location: United States
17 | ---
18 |
19 | # Fairness and Data Science: Failures, Factors, and Futures
20 |
21 | In recent years, numerous highly publicized failures in data science have made evident that biases or issues of fairness in training data can sneak into, and be magnified by, our models, leading to harmful, incorrect predictions being made once the models are deployed into the real world. But what actually constitutes an unfiar or biased model, and how can we diagnose and address these issues within our own work? In this talk, I will present a framework for better understanding how issues of fairness overlap with data science as well as how we can improve our modeling pipelines to make them more interpretable, reproducible, and fair to the groups that they are intended to serve. We will explore this new framework together through an analysis of ProPublica's COMPAS recidivism dataset using the tidymodels, drake, and iml packages.
22 |
23 | # Speaker bio
24 |
25 | Grant Fleming is a Data Scientist at Elder Research, co-author of the Wiley book _Responsible Data Science_ (2021), and contributor to the O'Reilly book _97 Things About Ethics Everyone in Data Science Should Know_. His professional focus is on machine learning for social science applications, model explainability, and building tools for reproducible data science. Previously, Grant was a research contractor for USAID.
26 |
--------------------------------------------------------------------------------
/speakers/alanfeder.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 224
3 | url: https://global.rstudio.com/student/page/40595
4 | type: lightning
5 | track: C
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Alan Feder
10 | affiliation: Invesco
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/AlanFeder
14 | github: https://github.com/AlanFeder
15 | linkedin: https://www.linkedin.com/in/alanfeder/
16 | location: New York City, NY, USA
17 | ---
18 |
19 | # Categorical Embeddings: New Ways to Simplify Complex Data
20 |
21 | When building a predictive model in R, many of the functions (such as `lm()`, `glm()`, `randomForest`, `xgboost`, or neural networks in `keras`) require that all input variables are numeric. If your data has categorical variables, you may have to choose between ignoring some of your data and too many new columns.
22 |
23 | Categorical embeddings are a relative new method, utilizing methods popularized in Natural Language Processing that help models solve this problem and can help you understand more about the categories themselves.
24 |
25 | While there are a number of online tutorials on how to use Keras (usually in Python) to create these embeddings, this talk will use [`embed::step_embed()`](https://embed.tidymodels.org/reference/step_embed.html), an extension of the `recipes` package, to create the embeddings.
26 |
27 | # Speaker bio
28 |
29 | Alan Feder is a Principal Data Scientist at Invesco, where he uses as much R as possible to solve problems and build products throughout the company. Previously, he worked as a data scientist at AIG and an actuary at Swiss Re. He studied statistics and mathematics at Columbia University. He is unreasonably excited to spread the word about categorical embeddings.
30 |
31 | Alan lives in New York City with his wife, Ashira, and two children, Matan and Sarit.
32 |
--------------------------------------------------------------------------------
/speakers/carsonsievert.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 163
3 | url: https://global.rstudio.com/student/page/40601
4 | type: lightning
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Carson Sievert
10 | affiliation: null
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: null
17 | ---
18 |
19 | # Custom theming in Shiny & R Markdown with bslib & thematic
20 |
21 | Custom theming in Shiny and R Markdown often requires writing styling rules in both CSS and R. In particular, styles for HTML content (e.g., `actionButton()`, `tabsetPanel()`, `titlePanel()`, etc) derive from Bootstrap CSS, so customization is traditionally done by overwriting that CSS, which is difficult to do 100% correctly. The `{bslib}` package helps solve this problem by making it easy to customize (any version of) Bootstrap CSS defaults from R. However, this only solves part of the problem since CSS doesn't necessarily effect output(s) rendered by R, such as `plotOutput()`. The thematic package helps solve this problem by providing auto theming of `plotOutput()`s (based on CSS) as well as a simple interface for styling any R graphic for any output format.
22 |
23 | # Speaker bio
24 |
25 | Carson is a software engineer at RStudio working on projects that bridge R with web technologies, such as `{shiny}`, `{bslib}`, `{thematic}`, and `{plotly}`. Before joining RStudio in late 2018, Carson worked as consultant, delivering analytical and scientific software to organizations such as the Library of Congress, NOAA, Sandia National Labs, and plotly. Carson began consulting part-time during his PhD in statistics at Iowa State, where his work on the R package `{plotly}` was recognized by the ASA with the 2017 Chambers Award. His book "Interactive data visualization with R, plotly, and shiny"" is freely available online at https://plotly-r.com.
26 |
--------------------------------------------------------------------------------
/speakers/nicolekramer.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 182
3 | url: https://global.rstudio.com/student/page/40633
4 | type: talk
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Nicole Kramer
10 | affiliation: University of North Carolina at Chapel Hill
11 | links:
12 | homepage: NULL
13 | twitter: https://twitter.com/nekramer27
14 | github: https://github.com/PhanstielLab
15 | linkedin: https://www.linkedin.com/in/nicole-kramer-229183127/
16 | location: United States
17 | ---
18 |
19 | # A New Paradigm for Multifigure, Coordinate-Based Plotting in R
20 |
21 | R is unparalleled in its ability to transform raw data into a wide array of beautiful graphics, all within the same environment. However, when it comes to complex, multi-paneled plots, users rely on 3rd party graphic design software to arrange plots. Here I present the new world of programmatic, coordinate-based multi-figure plotting in R. Employing grid Graphics and drawing from the paradigms of base plotting and ggplot2, I am developing a package that will revolutionize the way plots are laid out in R. Not only will individual plots be aesthetically customizable and tailored for speed, users will also be offered exquisite control over all aspects of page layout, plot placement, and arrangements. Come join me in changing how we plot in R!
22 |
23 | # Speaker bio
24 |
25 | Nicole Kramer is a third year [Bioinformatics and Computational Biology](https://bcb.unc.edu/) graduate student at the University of North Carolina at Chapel Hill. She works in the [lab of Dr. Doug Phanstiel](http://phanstiel-lab.med.unc.edu/), where her and her colleagues use experimental and computational techniques to study human genomics. Prior to grad school, Nicole received her B.S. in Biological Engineering from MIT in 2018. When not doing science, you can find Nicole petting dogs, admiring giraffes, or knitting tiny animals!
26 |
--------------------------------------------------------------------------------
/speakers/emilyriederer.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 125
3 | url: https://global.rstudio.com/student/page/40607
4 | type: talk
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Emily Riederer
10 | affiliation: Capital One
11 | links:
12 | homepage: https://emily.rbind.io/
13 | twitter: https://twitter.com/EmilyRiederer
14 | github: https://github.com/emilyriederer
15 | linkedin: https://www.linkedin.com/in/emilyriederer/
16 | location: United States
17 | ---
18 |
19 | # oRganization: How to make internal R packages part of your team
20 |
21 | Many case studies demonstrate the benefits of organizations developing internal R packages. But how do you move your organization from individual internal packages to a coherent internal ecosystem?
22 |
23 | This talk applies the jobs-to-be-done framework to consider the different roles that internal tools can play, from unblocking IT challenges to democratizing tribal knowledge. Beyond technical functionality, we will explore design principles and practice that make internal packages good teammates and consider how these deviate from open-source standards.
24 |
25 | Finally, we will consider how to exploit the unique challenges and opportunities of developing within an organization to make packages that collaborate well -- both with other packages and their human teammates.
26 |
27 | # Speaker bio
28 |
29 | Emily Riederer is a Senior Analytics Manager at Capital One where she leads a team building innersource data products, tools, and applications in R. Emily is an active member of the R community; she is the developer of the `projmgr` and `convo` R packages, a founding co-organizer of the annual satRday Chicago conference, and frequently writes about R and data science on Twitter and her blog (emily.rbind.io). Most recently, she coauthored the *R Markdown Cookbook* from CRC Press and contributed essays to the forthcoming O'Reilly book *97 Things Data Engineers Should Know*.
30 |
--------------------------------------------------------------------------------
/speakers/rikagorn.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 186
3 | url: https://global.rstudio.com/student/page/40636
4 | type: talk
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Rika
10 | affiliation: Spring Health
11 | links:
12 | homepage: null
13 | twitter: https://twitter.com/RikaGorn
14 | github: null
15 | linkedin: https://www.linkedin.com/in/rika-gorn/
16 | location: United States
17 | ---
18 |
19 | # From Zero to Hero: Best practices for setting up Rstudio Team in the Cloud
20 |
21 | Learn best practices for setting up the entire Rstudio team infrastructure - Server Pro, Connect, Package Manager from the perspective of a data scientist and for a data science audience - especially those who have never worked with servers, AWS, or bash. This talk will also be applicable to data scientists looking to start on an engineering project outside of Rstudio as well.
22 |
23 | I started out as a complete novice, & throughout my learning experience I noticed a distinct lack of resources for non-engineers. This talk will focus on best practices for AWS architecture and cloud formation, key security issues such as SSL and https, server configurations, deployment errors, and most importantly resources that are understandable for data scientists just getting into the data engineering or devops space.
24 |
25 | # Speaker bio
26 |
27 | Rika Gorn is the Manager of Business Intelligence at Spring Health - a mental healthcare tech start-up that provides comprehensive mental healthcare benefits. Previously, she worked on quality assurance for a mobile mental health team at Coordinated Behavioral Care, data analytics at Covenant House International, strategic management and evaluation at TCC Group, and program analysis at the Vera Institute of Justice. Rika received her Bachelors in Political Science from Hunter College and her Masters in Public Administration at the NYU Wagner School of Public Service. Rika is also a proud board member of R-Ladies NYC.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/speakers/yaninabellinisaibene.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 214
3 | url: https://global.rstudio.com/student/page/40646
4 | type: talk
5 | track: A
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Yanina Bellini Saibene
10 | affiliation: INTA - MetaDocencia - R-Ladies
11 | links:
12 | homepage: https://yabellini.netlify.app/
13 | twitter: https://twitter.com/yabellini
14 | github: https://github.com/yabellini
15 | linkedin: https://www.linkedin.com/in/yabellini/
16 | location: Argentina
17 | ---
18 |
19 | # On programming, teaching, and building interactive tutorials with learnr::
20 |
21 | Teaching R is part of my activities as a community organizer, an RStudio Certified Instructor, a conference chair, and a researcher. Since 2019, I use the learnr package to generate interactive tutorials to teach R synchronously and asynchronously. The addition of the Tutorials panel in RStudio IDE and the need for virtual classes made the use of this package even more interesting. In this talk, I will tell you how to generate interactive tutorials, how to add pedagogical tools to them, what other packages you can use with {learnr} and show multilingual examples.
22 |
23 | # Speaker bio
24 |
25 | Yanina Bellini Saibene is a researcher at INTA (National Institute of Agricultural Technology) dedicated to applying data science to the agricultural sector and a professor in several regional specializations about Digital Agriculture and Data Analysis. Yanina is formally trained as a Licenciate in Information System with a Master degree in Data Mining and Knowledge Management. She is an active member of the R Community as an R-Ladies organizer and part of the R-Ladies Global Team. She also is a co-founder and co-chair of LatinR and part of the organizing team of useR!2020 and user!2021 (co-chair).
26 | She also co-founder of MetaDocencia, an open, free, volunteer-lead, not-for-profit educational organization and part of the teams that translate educational and technical material to Spanish.
27 |
--------------------------------------------------------------------------------
/speakers/allisonhorst.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 308
3 | url: https://global.rstudio.com/student/page/40597
4 | type: talk
5 | track: A
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Allison Horst
10 | affiliation: UC Santa Barbara / RStudio
11 | links:
12 | homepage: https://www.allisonhorst.com/
13 | twitter: https://twitter.com/allison_horst
14 | github: https://github.com/allisonhorst
15 | linkedin: https://www.linkedin.com/in/allison-horst-16a885158/
16 | location: United States
17 | ---
18 |
19 | # Art Lessons: One Year as RStudio’s Artist-in-Residence
20 |
21 | Art can be a welcoming bridge for learners and users to engage with and learn tools and skills in R. As RStudio’s first Artist-in-Residence, my goal has been to make the R landscape more welcoming for a broader community of users through engaging, didactic artwork. In this R, art, and heart-filled talk, I’ll share the motivation behind my R artwork and some lessons learned over the past year as Artist-in-Residence, including:
22 |
23 | - Learning to embrace cute *and* credible artwork
24 | - Art to help students engage with, learn and remember R skills
25 | - Art for community building and support
26 |
27 | I hope this talk inspires viewers to use, create and share more artwork, so that together we can make the R landscape feel even brighter.
28 |
29 | # Speaker bio
30 |
31 | Allison is an Assistant Teaching Professor at the Bren School of Environmental Science and Management (UC Santa Barbara), where she teaches environmental data science, math, and statistics courses. She has been an Artist-in-Residence with the National Center for Ecological Analysis and Synthesis (NCEAS) (2018 - 2019) and RStudio (2019 - 2020). Allison's background is in engineering (BS in Chemical Engineering, MS in Mechanical Engineering) and environmental science (PhD Environmental Science and Management). She is a co-founder and member of R-Ladies Santa Barbara, and co-founded and organizes the weekly UCSB TidyTuesday coding club.
32 |
--------------------------------------------------------------------------------
/speakers/jooyoungseo.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 314
3 | url: https://global.rstudio.com/student/page/40617
4 | type: talk
5 | track: C
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: JooYoung Seo
10 | affiliation: The Pennsylvania State University
11 | links:
12 | homepage: "https://jooyoungseo.com"
13 | twitter: "https://twitter.com/seo_jooyoung"
14 | github: "https://github.com/jooyoungseo"
15 | linkedin: "https://www.linkedin.com/in/jooyoungseo"
16 | location: United States
17 | ---
18 |
19 | # Accessible Data Science Beyond Visual Models: Non-Visual Interactions with R and RStudio Packages
20 |
21 | Data science is full of vision-dominant practices, and most data scientists rely heavily on visual models.
22 |
23 | However, data science itself should require insight and computational thinking beyond what is just seen by eyes.
24 |
25 | JooYoung Seo, who is a blind data scientist and who was working for RStudio's accessibility projects over the summer 2020, will talk about his experience with some non-visual techniques to interact with data.
26 |
27 | If you would like to know more about various ways of making data science accessible via R, and new accessibility features introduced in RStudio IDE and Shiny, his demonstration without sight will be thought-provoking.
28 |
29 | # Speaker bio
30 |
31 | JooYoung Seo is a Ph.D candidate in the Learning, Design, and Technology program at the Pennsylvania State University, and internationally certified accessibility professional whose research and development focuses on accessible computing for all. As an RStudio's double-certified data science instructor (i.e., Tidyverse + Shiny), who is blind, he is committed to making data science ecosystem more accessible to people with and without dis/abilities using R. To this end, he has been actively contributing to R open-source projects including `{shiny}`, `{rmarkdown}`, `{bookdown}`, and `{distill}` for accessibility, and interned on the RStudio IDE and Shiny team as an accessibility engineer in summer 2020.
32 |
--------------------------------------------------------------------------------
/speakers/minecetinkayarundel.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 309
3 | url: https://global.rstudio.com/student/page/40630
4 | type: talk
5 | track: A
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Mine Çetinkaya-Rundel
10 | affiliation: RStudio & University of Edinburgh & Duke University
11 | links:
12 | homepage: http://mine-cr.com/
13 | twitter: https://twitter.com/minebocek
14 | github: https://github.com/mine-cetinkaya-rundel
15 | linkedin: https://www.linkedin.com/in/minec/
16 | location: United Kingdom
17 | ---
18 |
19 | # Feedback at scale
20 |
21 | As enrollments in statistics and data science courses grow and as these courses become more computational, educators are faced with an interesting challenge -- providing timely and meaningful feedback, particularly with online delivery of courses. The simplest solution is using assignments that are easier to auto-grade, e.g. multiple-choice questions, simplistic coding exercises, but it is impossible to assess mastery of the entire data science cycle using only these types of exercises. In this talk I will discuss writing effective learnr exercises, providing useful and motivating feedback with gradethis, distributing them at scale online and as an R package, and collecting student data for formative assessment with learnrhash.
22 |
23 | # Speaker bio
24 |
25 | Mine Çetinkaya-Rundel is Professional Educator and Data Scientist at RStudio as well as Senior Lecturer at University of Edinburgh and Associate Professor of the Practice at Duke University. Mine’s work focuses on innovation in statistics and data science pedagogy, with an emphasis on computing, reproducible research, student-centered learning, and open-source education as well as pedagogical approaches for enhancing retention of women and under-represented minorities in STEM. She works on the [OpenIntro](https://www.openintro.org/) project, is also the creator and maintainer of [datasciencebox.org](https://datasciencebox.org/), teaches the popular [Statistics with R](https://www.coursera.org/specializations/statistics) MOOC on Coursera. She has four cats.
26 |
--------------------------------------------------------------------------------
/speakers/mattthomas.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 179
3 | url: https://global.rstudio.com/student/page/40624
4 | type: talk
5 | track: A
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Matt Thomas
10 | affiliation: British Red Cross
11 | links:
12 | homepage: http://matthewgthomas.co.uk
13 | twitter: https://twitter.com/matthewgthomas
14 | github: https://github.com/matthewgthomas
15 | linkedin: https://www.linkedin.com/in/matthewgthomas/
16 | location: United Kingdom
17 | ---
18 |
19 | # Cognitive speed: How the Tidyverse helped the British Red Cross respond quickly to COVID-19
20 |
21 | We will discuss the importance of cognitive speed, defined here as the rate in which an idea can be translated into code, and why the Tidyverse excels in this domain. We will demonstrate this idea in relation to a suite of tools we were required to rapidly develop at the British Red Cross in order to respond effectively to the COVID-19 pandemic. To do this, we will exhibit how elements of the unifying design principles outlined in the ‘tidyverse design guide - Tidyverse team’ relate to the notion of cognitive speed, giving specific examples for various design considerations. We believe this talk will encourage reflection on better design practices for future R developers, using the design principles of the tidyverse as the guiding beacon.
22 |
23 | # Speaker bio
24 |
25 | Dr Matt Thomas is Head of Strategic Insight and Foresight at the British Red Cross. Matt's team aims to help the Red Cross become more anticipatory and proactive by producing insights and tools including the [Vulnerability Index](https://britishredcrosssociety.github.io/covid-19-vulnerability/) and [Resilience Index](https://britishredcross.shinyapps.io/resilience-index/). He holds a PhD in Evolutionary Anthropology and, prior to joining the British Red Cross, was researching topics including reindeer herders in the Arctic, hunter-gatherers in the Philippines, and witches in China. Outside of work, Matt writes a column for [an anthropology magazine](https://www.sapiens.org/column/machinations/) as well as fiction.
26 |
--------------------------------------------------------------------------------
/speakers/rivaquiroga.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 327
3 | url: https://global.rstudio.com/student/page/40637
4 | type: talk
5 | track: A
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Riva Quiroga
10 | affiliation: Programming Historian
11 | links:
12 | homepage: https://rivaquiroga.cl/
13 | twitter: https://twitter.com/rivaquiroga
14 | github: https://github.com/rivaquiroga
15 | linkedin: null
16 | location: Valparaíso, Chile
17 | ---
18 |
19 | # How to do things with words: learning to program in R with a "communicative approach"
20 |
21 | Textbooks for learning a new language always start the same: you learn to say hello, to introduce yourself, and some simple and useful sentences to communicate with others. In language teaching, this is called a “communicative approach”, and is based on the idea that learning a language successfully comes through having to communicate real meaning to real people. This is what I expected to find when I first tried to learn R seven years ago. Sadly, I got stuck in resources that started with definitions of abstract concepts and no real examples of how to say things with data. In this talk I will discuss the benefits of adopting a communicative approach and how to implement it when teaching/learning R, writing documentation, and writing code that will be read by other human beings.
22 |
23 | # Speaker bio
24 |
25 | Riva is a linguist and educator by training. In her day-to-day work she teaches R programming, data visualization, and communication skills. She is also an editor at Programming Historian, an online project that publishes novice-friendly, peer-reviewed tutorials that help humanists learn a wide range of digital tools, techniques and workflows to facilitate research and teaching. She is currently pursuing a PhD in Linguistics, where she uses R to identify and visualize linguistic patterns in political speeches.
26 | Riva is an active member of the Latin American R community, where she likes to organize events, RLadies chapters, and translation projects. She lives with two cats, another human being, and an absurdly high number of plants.
27 |
--------------------------------------------------------------------------------
/speakers/meganbeckett.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 261
3 | url: https://global.rstudio.com/student/page/40627
4 | type: talk
5 | track: A
6 | blocks:
7 | - bravo
8 | - hotel
9 | name: Megan Beckett
10 | affiliation: Exegetic Analytics
11 | links:
12 | homepage: https://meganbeckett.github.io/mbeckett_cv
13 | twitter: https://twitter.com/mbeckett_za
14 | github: https://github.com/MeganBeckett
15 | linkedin: https://www.linkedin.com/in/meganbeckett/
16 | location: South Africa
17 | ---
18 |
19 | # Aesthetically automated figure production
20 |
21 | Automation, reproducibility, data driven. These are not normally concepts one would associate with the traditional publishing industry, where designers normally manually produce every artefact in proprietary software. And, when you have 1000s of figures to produce and update for a single textbook, this becomes an insurmountable task, meaning our textbooks quickly become outdated, especially in our rapidly advancing world.
22 |
23 | With R and the tidyverse in our back pocket, we rose to the challenge to revolutionize this workflow. I will explain how we collaborated with a publishing group to develop a system to aesthetically automate the production of figures for a textbook including translations into several languages.
24 |
25 | I think you’ll find this talk interesting as it shows how we applied tools that are familiar to us, but in an unconventional way to fundamentally transform a conventional process.
26 |
27 | # Speaker bio
28 |
29 | Megan Beckett is a Data Scientist at Exegetic Analytics, where she consults, develops and leads several analytical projects across a wide range of fields and industries. *"Scientifically creative; creatively scientific."* This aptly describes her philosophy and approach in her work and life. Megan helped co-found and organises the Cape Town R-Ladies chapter and is a co-organiser of the satRday events in South Africa. She loves to paint, with her most recent work exploring the [biodiversity of southern Africa](https://mappamundi.netlify.app/portfolio/), and running is her passion, whether on the road or the trail.
30 |
--------------------------------------------------------------------------------
/speakers/ahmadoudicko.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 291
3 | url: https://global.rstudio.com/student/page/40594
4 | type: talk
5 | track: A
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Ahmadou Dicko
10 | affiliation: UNHCR
11 | links:
12 | homepage: https://www.ahmadoudicko.com
13 | twitter: https://twitter.com/dickoah
14 | github: https://github.com/dickoa
15 | linkedin: https://www.linkedin.com/in/ahmadou-dicko-4118175a
16 | location: Senegal
17 | ---
18 |
19 | # Humanitarian Data Science with R
20 |
21 | Humanitarian actors are increasingly using data to drive their decisions. Since the Haiti 2010 earthquake, the volume of data collected and used by humanitarians has been growing exponentially and organizations are now relying on data specialists to turn all this data into life-saving data products.
22 |
23 | These data products are created by teams using proprietary point and click software. The process from the raw data to the final data product involves a lot of clicking, copying and pasting and is usually not reproducible.
24 |
25 | Another approach to humanitarian data science is possible using `R`. In this talk, I will show how to seamlessly develop reproducible, reusable humanitarian data products using the `tidyverse`, `rmarkdown` and some domain-focused `R` packages.
26 |
27 | # Speaker bio
28 |
29 | Ahmadou Dicko is a statistics and data analysis officer at the United Nations High Commissioner for Refugees (UNHCR) where he uses statistics and data science to help safeguard the rights and well-being of refugees in West and Central Africa. He has an extensive experience in the use of statistics and data science in development and humanitarian projects. Ahmadou was the lead of the OCHA Center for Humanitarian Data team for West and Central Africa and has worked with several humanitarian and development organizations such as IFRC, FAO, IAEA, OCHA. Ahmadou is a [Rstudio trainer](https://education.rstudio.com/trainers/) and he is passionate about the R community. He is currently co-organizing the [Dakar R User Group](https://www.meetup.com/DakaR-R-User-Group/) and co-leading the [AfricaR initiative](https://africa-r.org/).
30 |
--------------------------------------------------------------------------------
/speakers/ericgunnarcronstrom.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 246
3 | url: https://global.rstudio.com/student/page/40608
4 | type: talk
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Eric Gunnar Cronstrom
10 | affiliation: Central Michigan University
11 | links:
12 | homepage: null
13 | twitter: null
14 | github: null
15 | linkedin: null
16 | location: United States
17 | ---
18 |
19 | # How we made the switch: a case study on automating a complex report.
20 |
21 | The Center for Charter Schools at Central Michigan University produces annual reports for about 60 schools. The reporting process used to be a cumbersome blend of many technologies. The Center used to use a blend of SQL, Excel, inDesign, and VBScript that would all culminate in a nice looking, branded report for each school. 2 years ago, staff turnover allowed the data team to rethink the process, having had experience in R from graduate work the team at the Center decided to go all in on R Studio and R Markdown for report production a mere 1 month before the reports were due to be published.
22 | This talk will be a case study of how we as an organization adopted RStudio tools to streamline a cumbersome process to fantastic results.
23 |
24 | # Speaker bio
25 |
26 | Eric is responsible for administering a wide range of day to day program functions associated with the performance and accountability of CMU partner schools. He ensures that the data the Center utilizes to evaluate school performance is accurate and stored within a sound data infrastructure. He also leverages his wide range of technical skills to lead the development and production of reports and respond to questions regarding school performance and demographic context.
27 |
28 | Prior to joining the Center, Eric was a database administrator for Central Michigan University Libraries. He has also served as a lecturer at Central Michigan University teaching courses in web design, database design and programming. He earned a master’s degree in information systems management and a bachelor’s degree in computer science from Central Michigan University. He is also pursuing an additional master’s degree in applied statistics at Central Michigan University.
29 |
30 |
31 |
--------------------------------------------------------------------------------
/speakers/deanmarchiori.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 100
3 | url: https://global.rstudio.com/student/page/40606
4 | type: lightning
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Dean Marchiori
10 | affiliation: null
11 | links:
12 | homepage: https://deanmarchiori.github.io
13 | twitter: https://twitter.com/deanmarchiori
14 | github: https://github.com/deanmarchiori
15 | linkedin: https://www.linkedin.com/in/deanmarchiori
16 | location: Australia
17 | ---
18 |
19 | # How reproducible am I? A retrospective on a year of commercial data science projects in R
20 |
21 | Reproducibility is a critical aspect in science to enable trust & communication. In R, many tools exist to bring in the best practices of reproducibility into the hands of data scientists. However, outside of a research setting, how does reproducibility hold up in commercial data science projects? In this talk I take an honest retrospective of my own commercial R projects in the last year. I look at the various types of analyses completed, and which workflows were selected and why. Through this process we can learn how workflow choices may help in the short term but hinder in the long term. More importantly what can be done strike the balance between progress and perfection when doing data science in the wild?
22 |
23 | # Speaker bio
24 |
25 | Dean Marchiori is a Statistician based in Sydney, Australia. He currently works with Endeavour Energy as a Senior Data Scientist modelling bushfire and vegetation risk on the electricity network.
26 | Dean's career started in finance as an equities trader before moving into advanced analytics, where he has worked with some of Australia’s largest organisations. His professional interests are in geospatial analysis, time series modelling and the R programming language.
27 | In 2019, Dean was named one of the top 10 analytics leaders in Australia by IAPA. He is also recognised as an Accredited Statistician with the Statistical Society of Australia. He holds a Bachelor of Science in Mathematics (awarded with University Medal) and a Masters degree in Applied Finance.
28 | Outside of work Dean enjoys bodysurfing, running and spending time with his wife and two boys.
29 |
30 |
--------------------------------------------------------------------------------
/speakers/marievendettuoli.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 254
3 | url: https://global.rstudio.com/student/page/40623
4 | type: lightning
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Marie Vendettuoli
10 | affiliation: Statistical Center for HIV/AIDS Research and Prevention (SCHARP) @ FredHutch
11 | links:
12 | homepage: http://mariev.github.io/studiousmarie/
13 | twitter: null
14 | github: https://github.com/mariev
15 | linkedin: https://www.linkedin.com/in/mvendettuoli
16 | location: Seattle, WA
17 | ---
18 |
19 | # Towards an integrated {verse}: lessons learned developing a library of validated packages
20 |
21 | Developing R packages as a unified {verse} – a set of packages that work well together but with each focusing on individual tasks – is an efficient strategy to structure support for complex workflows. The ongoing challenge becomes managing the growth of related packages in a holistic manner. This is especially problematic in industries with a heavy emphasis on stability, for example if packages need to be validated prior to use in production. In this talk, I will discuss a paradigm for developing and maintaining validated R packages, emphasizing the following areas: (1) strategies for organizing packages to prevent excessive re-work (2) facilitating responsive, iterative development and (3) empathy for developer and user experiences.
22 |
23 | # Speaker bio
24 |
25 | Marie Vendettuoli is a Senior Statistical Programmer at Statistical Center for HIV/AIDS Research and Prevention ([SCHARP](https://www.fredhutch.org/en/research/divisions/vaccine-infectious-disease-division/research/biostatistics-bioinformatics-and-epidemiology/statistical-center-for-hiv-aids-research-and-prevention.html)) @ FredHutch.
26 | She holds a PhD from Iowa State University in Human Computer Interaction and started
27 | developing R packages for use within regulatory frameworks while working as a Data Scientist at
28 | [USDA Center for Veterinary Biologics](https://www.aphis.usda.gov/aphis/ourfocus/animalhealth/veterinary-biologics/sa_about_vb/ct_vb_about). Before discovering R, Marie worked in a [CBER](https://www.fda.gov/about-fda/fda-organization/center-biologics-evaluation-and-research-cber)-regulated laboratory.
29 | Her main interest is developing analytical infrastructure to facilitate scientific analysis
30 | for fellow data scientists working in a regulatory environment.
31 |
--------------------------------------------------------------------------------
/speakers/shelmithkariuki.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 221
3 | url: https://global.rstudio.com/student/page/40639
4 | type: talk
5 | track: A
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Shelmith Kariuki
10 | affiliation: 'Data Analytics Consultant: UN DESA'
11 | links:
12 | homepage: https://shelkariuki.netlify.app/
13 | twitter: https://twitter.com/Shel_Kariuki
14 | github: https://github.com/Shelmith-Kariuki
15 | linkedin: https://www.linkedin.com/in/shelmith-kariuki-44351363/
16 | location: Kenya
17 | ---
18 |
19 | # rKenyaCensus Package
20 |
21 | The rKenyaCensus package contains the results of the 2109 Kenya Population Census. The census exercise was carried out in August 2019, and the results were released in February 2020. Kenya leveraged on technology to capture data during cartographic mapping, enumeration and data transmission, making the 2019 Census the first paperless census to be conducted in Kenya.
22 | The data was published in four different pdf files (Volume 1 - Volume 4) which can be found in the Kenya National Bureau of statistics. The data in its current form was open and accessible, but not usable and so there was need to convert it into a machine readable format. This data can be used by the government, non-governmental organizations and any other entities for data driven policy making and development. During the talk, I will explain the reasons behind development of the package, take you through the steps I took during the process and finally showcase analysis of certain aspects of the data.
23 |
24 | # Speaker bio
25 |
26 | Shelmith Kariuki is a Senior Data Analyst based in Nairobi, Kenya. She is an [RStudio Certified Tidyverse trainer](https://education.rstudio.com/trainers/), currently working as a Data Analytics consultant with UN DESA. She previously worked as a Research Manager at Geopoll, and as a Data Analyst at Busara Center for Behavioral Economics. She also worked as an assistant lecturer in various Kenyan universities, teaching units in Statistics and Actuarial Science. She has extensive experience in data analysis using R. She co-organizes a community of R users in Nairobi [#NairobiR](https://www.linkedin.com/feed/hashtag/nairobir/) and in Africa [#AfricaR](https://twitter.com/AfricaRUsers). One of the missions of her community work is to make sure that there is an increased number of R adopters, in Africa. She is very passionate about training and using data analytics to drive development projects in Africa.
27 |
28 |
29 |
--------------------------------------------------------------------------------
/speakers/johnhelveston.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 134
3 | url: https://global.rstudio.com/student/page/40616
4 | type: lightning
5 | track: B
6 | blocks:
7 | - delta
8 | - juliett
9 | name: John Helveston
10 | affiliation: George Washington University
11 | links:
12 | homepage: http://www.jhelvy.com/
13 | twitter: JohnHelveston
14 | github: jhelvy
15 | linkedin: jhelvy
16 | location: Washington, D.C.
17 | ---
18 |
19 | # Using formr to create R-powered surveys with individualized feedback
20 |
21 | This talk demonstrates how the formr study framework extends the power and flexibility of R to surveys. Using R and RMarkdown code, researchers and teachers can use the formr platform to generate both simple surveys and complex studies with individualized feedback. The platform is built on a web-based application programming interface for R via OpenCPU, enabling complex features such as automated email and text message reminders, adaptive testing, graphical and interactive feedback, and integration with external data sources. In this talk, I introduce some of the formr basics and showcase two examples of how I have used it, including making conjoint surveys with randomized images and timed, randomized quizzes for my students.
22 |
23 | # Speaker bio
24 |
25 | John Paul Helveston is an Assistant Professor in the [Engineering Management and Systems Engineering Department](https://www.emse.seas.gwu.edu/) at the [George Washington University](https://www.gwu.edu/). He studies technological change, with a particular interest in accelerating the transition to environmentally sustainable and energy-saving technologies. His research centers around how consumer preferences, market dynamics, and policy affect the emergence of critical technologies, such as electric vehicles and solar energy. He is an expert on China's rapidly emerging electric vehicle industry as well as the critical relationship between the US and China in developing and mass producing low carbon energy technologies. He applies an interdisciplinary approach to research, with expertise in discrete choice modeling and conjoint analysis as well as interview-based case studies. He has conducted extensive fieldwork in China, collaborating with colleagues at Tsinghua university, Beijing Normal University, and China's State Information Center on past projects. He is a fluent speaker of Mandarin Chinese and also an award-winning swing dancer. John holds a Ph.D. and M.S. in [Engineering and Public Policy](https://www.cmu.edu/epp/) from Carnegie Mellon University and a B.S. in [Engineering Science and Mechanics](http://www.beam.vt.edu/) from Virginia Tech.
26 |
--------------------------------------------------------------------------------
/speakers/katehertweck.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 262
3 | url: https://global.rstudio.com/student/page/40619
4 | type: talk
5 | track: A
6 | blocks:
7 | - delta
8 | - juliett
9 | name: Kate Hertweck
10 | affiliation: Fred Hutchinson Cancer Research Center
11 | links:
12 | homepage: https://katehertweck.com
13 | twitter: https://twitter.com/k8hert
14 | github: https://github.com/k8hertweck
15 | linkedin: https://www.linkedin.com/in/katehertweck/
16 | location: United States
17 | ---
18 |
19 | # Making the jump from learning to applying: R training and documentation for different levels of expertise
20 |
21 | How does someone make the leap from learning R to actively applying R in professional work?
22 | At what point (if ever!) do we get to call ourselves "experts" in R?
23 | This talk explores what differentiates novice, practitioner, and expert R programmers,
24 | and how transitions
25 | between these stages occur.
26 | I'll discuss the type of support required for R users to move from one level of expertise to the next,
27 | and how different types of training and documentation can support R users at each level.
28 | Understanding variable levels of education among R practitioners supports our own professional work,
29 | from collaborative coding to package development,
30 | and helps build a bigger, more inclusive R community.
31 |
32 | # Speaker bio
33 |
34 | Kate Hertweck is a scientist and educator
35 | who endeavors to uphold core values like:
36 | diversity/equity/inclusion,
37 | accessibility of information, and
38 | learning over knowing.
39 | Kate’s graduate training at University of Missouri focused on genomic evolution of plants,
40 | and was followed by a postdoctoral fellowship at the National Evolutionary Synthesis Center (NESCent, Duke University)
41 | where they began working exclusively in computational biology.
42 | Kate then spent four years as an assistant professor teaching
43 | bioinformatics, genomics, plant taxonomy,
44 | and scientific communication.
45 | Kate is currently bioinformatics training manager at Fred Hutchinson Cancer Research Center,
46 | where they lead and implement training and community building to support the data-intensive biomedical research community.
47 | Kate is an instructor and trainer for The Carpentries (serving as a leader in community governance from 2016-2019),
48 | and is an advisor for Metadocencia.
49 | These non-profit groups support best practices in teaching
50 | for data/computational skills and Spanish-speaking educators, respectively.
51 | Kate likes to spend their time enjoying all things science fiction
52 | and knitting sweaters from handspun yarn for their tiny, grumpy, elderly rescue dog, Loki.
53 | Kate uses perceived pronouns,
54 | so any pronoun you think fits also works for them.
55 |
--------------------------------------------------------------------------------
/speakers/marcusadams.md:
--------------------------------------------------------------------------------
1 | ---
2 | talk_id: 187
3 | url: https://global.rstudio.com/student/page/40622
4 | type: talk
5 | track: B
6 | blocks:
7 | - foxtrot
8 | - lima
9 | name: Marcus Adams
10 | affiliation: Merck
11 | links:
12 | homepage: null
13 | twitter: "@mtotheadams"
14 | github: https://github.com/adamsma
15 | linkedin: https://www.linkedin.com/in/marcus-adams-6779852a
16 | location: United States
17 | ---
18 |
19 | # Not The App We Deserve. The App We Need: Putting a GMP Shiny App into Production
20 |
21 | In February 2020, the Digital Proactive Process Analytics (DPPA) group within Merck’s manufacturing division officially launched a Shiny app to automate the creation of Continuous Process Verification (CPV) reports into production. That’s right – the almighty, mysterious, coveted production. From a technical perspective, the app is nothing particularly special (except other than getting LaTeX successfully installed to support the use of R Markdown). Users enter a few parameters and out pops a PDF with a series statistical analyses of a product’s quality testing data. The R blogosphere is filled with examples of similar Shiny apps.
22 |
23 | What mattered was the app was in production, and furthermore it was approved for GMP use. This meant these reports could be submitted to the FDA and other regulatory agencies. This meant the data could be used to support product release decisions. This meant Merck’s engineers were about to save thousands of hours per year in compiling data, generating charts, and calculating summary statistics. This was the app manufacturing sites needed.
24 |
25 | Most of the work in getting this app into production was not implementing the top-level features. Sorry, no discussion of fancy statistical process control methods here. Instead this talk will discuss some of the many things the development team (none of which came from a software development background) needed to learn in order to create a robust, secure, and maintainable production application.
26 |
27 |
28 | # Speaker bio
29 |
30 | Marcus Adams is an Associate Director, Engineering at the biopharmaceutical company Merck. He earned his BEng and MS in Chemical Engineering from the University of Delaware and Villanova University, respectively. His more than decade of experience at Merck spans the bio-pharmaceutical spectrum and includes experience in pre-clinical PK/PD modeling, product commercialization, in-line technology support, procurement, and vaccine distribution technology development. Currently, he works as a part of the Digital Proactive Process Analytics team, leveraging Merck’s Big Data Platform in the development of manufacturing information data models, report automation tools, and integrated-systems analysis applications. His professional interests include effective digital visualization, reproducible research/analysis, and convincing his coworkers of the diverse, flourishing world beyond Microsoft Excel.
31 |
--------------------------------------------------------------------------------
/talk_times.csv:
--------------------------------------------------------------------------------
1 | talk_id,start,duration
2 | 1,2021-01-21T16:00:00Z,1980
3 | 286,2021-01-21T18:00:00Z,1316
4 | 148,2021-01-21T18:21:56Z,426
5 | 308,2021-01-21T19:00:00Z,1172
6 | 261,2021-01-21T19:19:32Z,1126
7 | 322,2021-01-21T18:00:00Z,1157
8 | 218,2021-01-21T18:19:17Z,915
9 | 112,2021-01-21T19:00:00Z,1164
10 | 273,2021-01-21T19:19:24Z,1079
11 | 314,2021-01-21T18:00:00Z,1174
12 | 182,2021-01-21T18:19:34Z,848
13 | 274,2021-01-21T19:00:00Z,960
14 | 167,2021-01-21T19:16:00Z,285
15 | 180,2021-01-21T19:20:45Z,295
16 | 251,2021-01-21T19:25:40Z,300
17 | 328,2021-01-21T19:30:40Z,282
18 | 3,2021-01-21T20:00:00Z,3011
19 | 262,2021-01-21T22:00:00Z,1348
20 | 214,2021-01-21T22:22:28Z,1040
21 | 309,2021-01-21T23:00:00Z,1206
22 | 327,2021-01-21T23:20:06Z,1020
23 | 125,2021-01-21T22:00:00Z,1180
24 | 279,2021-01-21T22:19:40Z,913
25 | 239,2021-01-21T23:00:00Z,1220
26 | 128,2021-01-21T23:20:20Z,305
27 | 134,2021-01-21T23:25:25Z,312
28 | 254,2021-01-21T23:30:37Z,313
29 | 307,2021-01-21T23:35:50Z,302
30 | 222,2021-01-21T22:00:00Z,982
31 | 323,2021-01-21T22:16:22Z,767
32 | 315,2021-01-21T23:00:00Z,1429
33 | 117,2021-01-21T23:23:49Z,254
34 | 193,2021-01-21T23:28:03Z,311
35 | 225,2021-01-21T23:33:14Z,306
36 | 224,2021-01-21T23:38:20Z,283
37 | 2,2021-01-22T00:00:00Z,1454
38 | 290,2021-01-22T02:00:00Z,1125
39 | 221,2021-01-22T02:18:45Z,629
40 | 291,2021-01-22T03:00:00Z,1159
41 | 179,2021-01-22T03:19:19Z,734
42 | 187,2021-01-22T02:00:00Z,1257
43 | 246,2021-01-22T02:20:57Z,763
44 | 186,2021-01-22T03:00:00Z,1054
45 | 100,2021-01-22T03:17:34Z,271
46 | 162,2021-01-22T03:22:05Z,248
47 | 163,2021-01-22T03:26:13Z,304
48 | 185,2021-01-22T03:31:17Z,303
49 | 293,2021-01-22T02:00:00Z,1094
50 | 312,2021-01-22T02:18:14Z,498
51 | 335,2021-01-22T02:26:32Z,312
52 | 278,2021-01-22T03:00:00Z,1195
53 | 114,2021-01-22T03:19:55Z,267
54 | 245,2021-01-22T03:24:22Z,293
55 | 303,2021-01-22T03:29:15Z,314
56 | 334,2021-01-22T03:34:29Z,308
57 | 1,2021-01-22T04:00:00Z,1980
58 | 286,2021-01-22T06:00:00Z,1316
59 | 148,2021-01-22T06:21:56Z,426
60 | 308,2021-01-22T07:00:00Z,1172
61 | 261,2021-01-22T07:19:32Z,1126
62 | 322,2021-01-22T06:00:00Z,1157
63 | 218,2021-01-22T06:19:17Z,915
64 | 112,2021-01-22T07:00:00Z,1164
65 | 273,2021-01-22T07:19:24Z,1079
66 | 314,2021-01-22T06:00:00Z,1174
67 | 182,2021-01-22T06:19:34Z,848
68 | 274,2021-01-22T07:00:00Z,960
69 | 167,2021-01-22T07:16:00Z,285
70 | 180,2021-01-22T07:20:45Z,295
71 | 251,2021-01-22T07:25:40Z,300
72 | 328,2021-01-22T07:30:40Z,282
73 | 3,2021-01-22T08:00:00Z,3011
74 | 262,2021-01-22T10:00:00Z,1348
75 | 214,2021-01-22T10:22:28Z,1040
76 | 309,2021-01-22T11:00:00Z,1206
77 | 327,2021-01-22T11:20:06Z,1020
78 | 125,2021-01-22T10:00:00Z,1180
79 | 279,2021-01-22T10:19:40Z,913
80 | 239,2021-01-22T11:00:00Z,1220
81 | 128,2021-01-22T11:20:20Z,305
82 | 134,2021-01-22T11:25:25Z,312
83 | 254,2021-01-22T11:30:37Z,313
84 | 307,2021-01-22T11:35:50Z,302
85 | 222,2021-01-22T10:00:00Z,982
86 | 323,2021-01-22T10:16:22Z,767
87 | 315,2021-01-22T11:00:00Z,1429
88 | 117,2021-01-22T11:23:49Z,254
89 | 193,2021-01-22T11:28:03Z,311
90 | 225,2021-01-22T11:33:14Z,306
91 | 224,2021-01-22T11:38:20Z,283
92 | 2,2021-01-22T12:00:00Z,1454
93 | 290,2021-01-22T14:00:00Z,1125
94 | 221,2021-01-22T14:18:45Z,629
95 | 291,2021-01-22T15:00:00Z,1159
96 | 179,2021-01-22T15:19:19Z,734
97 | 187,2021-01-22T14:00:00Z,1257
98 | 246,2021-01-22T14:20:57Z,763
99 | 186,2021-01-22T15:00:00Z,1054
100 | 100,2021-01-22T15:17:34Z,271
101 | 162,2021-01-22T15:22:05Z,248
102 | 163,2021-01-22T15:26:13Z,304
103 | 185,2021-01-22T15:31:17Z,303
104 | 293,2021-01-22T14:00:00Z,1094
105 | 312,2021-01-22T14:18:14Z,498
106 | 335,2021-01-22T14:26:32Z,312
107 | 278,2021-01-22T15:00:00Z,1195
108 | 114,2021-01-22T15:19:55Z,267
109 | 245,2021-01-22T15:24:22Z,293
110 | 303,2021-01-22T15:29:15Z,314
111 | 334,2021-01-22T15:34:29Z,308
112 |
--------------------------------------------------------------------------------
/export-times.R:
--------------------------------------------------------------------------------
1 | library(googlesheets4)
2 | library(dplyr)
3 | library(lubridate)
4 |
5 | source("_helpers.R")
6 |
7 | url <- "https://docs.google.com/spreadsheets/d/1M6tEh7LBb0VejHSwfxE-6Fvn7kQJIPYrIyhH9UqCcpk/edit#gid=1179995302"
8 | if (!exists("speaker_program_df")) {
9 | speaker_program_df <- read_sheet(url, sheet = "speaker-program")
10 | }
11 |
12 | url2 <- "https://docs.google.com/spreadsheets/d/19NMt0A9vXzUV5eNhGkUPY3r7dFSsXcgPx4GAnxnU2ds/edit#gid=0"
13 | if (!exists("host_df")) {
14 | host_df <- read_sheet(url2, sheet = "hosts") %>%
15 | rowwise() %>%
16 | mutate(hosts = paste(collapse = " and ", na.omit(c(name, `co-host`)))) %>%
17 | ungroup() %>%
18 | select(block, track, session_topic, hosts)
19 | }
20 |
21 | stopifnot(all(table(speaker_program_df$talk_id) == 2))
22 |
23 | df <- speaker_program_df %>%
24 | mutate(base_time = parse_date_time(`Europe/London`, "m d, H:M p") %>% `year<-`(2021)) %>%
25 | mutate(duration_secs = case_when(
26 | is.na(actual_duration) ~ duration * 60,
27 | TRUE ~ suppressWarnings(period_to_seconds(ms(actual_duration)))
28 | )) %>%
29 | select(talk_id, block, track, name, actual_duration, order, base_time, duration_secs)
30 |
31 | df2 <- df %>% mutate(sub_block = case_when(
32 | is.na(order) ~ NA_integer_,
33 | order < 3 ~ 1L,
34 | order >= 3 ~ 2L
35 | ))
36 |
37 | df3 <- df2 %>%
38 | group_by(block, track, sub_block) %>%
39 | mutate(offset = ifelse(sub_block == 2, 60*60, 0) + cumsum(duration_secs) - duration_secs) %>%
40 | ungroup() %>%
41 | mutate(
42 | precise_start = base_time + seconds(offset),
43 | precise_end = precise_start + duration_secs
44 | )
45 |
46 | df4 <- df3 %>%
47 | select(talk_id, start = precise_start, duration = duration_secs)
48 |
49 | readr::write_csv(df4, "talk_times.csv")
50 |
51 | df5 <- df3 %>%
52 | group_by(block, track, sub_block) %>%
53 | summarise(.groups = "drop", name = paste(name, collapse = ", "), start = min(precise_start), discuss_start = max(precise_end)) %>%
54 | arrange(block, sub_block, track) %>%
55 | mutate(discuss_end = case_when(
56 | is.na(track) ~ lubridate::ceiling_date(discuss_start, unit = "hours") + lubridate::minutes(20),
57 | TRUE ~ lubridate::ceiling_date(discuss_start, unit = "hours")
58 | )) %>%
59 | mutate(discuss_duration = as.double(discuss_end - discuss_start, units = "secs")) %>%
60 | left_join(session_df, by = c("block", "track")) %>%
61 | left_join(host_df, by = c("block", "track")) %>%
62 | mutate(topic = case_when(
63 | is.na(track) ~ paste(sep = "/", "Discussion", session),
64 | TRUE ~ paste(sep = "/", "Discussion", paste("Track", track), session)
65 | )) %>%
66 | mutate(title = case_when(
67 | is.na(track) ~ paste0("Q&A: ", name),
68 | TRUE ~ paste0("Discussion: ", session, " ", sub_block)
69 | )) %>%
70 | mutate(description = case_when(
71 | is.na(track) ~ paste0("Join ", hosts, " for audience Q&A with keynote speaker ", name, "."),
72 | TRUE ~ paste0("Join ", hosts, " for audience Q&A with the preceding speakers in this session.")
73 | )) %>%
74 | mutate(summary = case_when(
75 | is.na(track) ~ paste0("Live audience Q&A with keynote speaker ", name, "."),
76 | TRUE ~ paste0("Live audience Q&A and discussion with session hosts and speakers for the ",
77 | ifelse(sub_block == 1, "first", "second"),
78 | " half of the \"",
79 | session,
80 | "\" session.")
81 | )) %>%
82 | select(topic, block, track, title, summary, description, start_time = discuss_start, duration = discuss_duration)
83 |
84 | readr::write_csv(df5 %>% select(-topic), "discussion_sessions_normalized.csv")
85 |
86 | df6 <- df5 %>%
87 | arrange(start_time) %>%
88 | group_by(topic, title, summary, duration) %>%
89 | summarise(.groups = "drop",
90 | time1 = intellum_datetime(start_time[[1]]),
91 | desc1 = description[[1]],
92 | time2 = intellum_datetime(start_time[[2]]),
93 | desc2 = description[[2]]
94 | ) %>%
95 | arrange(time1)
96 |
97 | readr::write_csv(df6, "discussion_sessions.csv")
98 | # googlesheets4::gs4_create(, sheets = df6)
99 |
--------------------------------------------------------------------------------
/prepopulate.R:
--------------------------------------------------------------------------------
1 | library(dplyr)
2 | library(purrr)
3 | library(yaml)
4 |
5 | slugify <- . %>%
6 | # Remove middle initials
7 | sub(" [A-Z]\\. ", " ", .) %>%
8 | # Remove special characters
9 | gsub("[ '-]+", "", .) %>%
10 | tolower()
11 |
12 | speaker_details_url <- "https://docs.google.com/spreadsheets/d/1PKlltk03RD9jAxMCKnMGOiFaMTpC_j0SYT47OzI3aDk/edit#gid=2077809528"
13 |
14 | speakers <- googlesheets4::read_sheet(speaker_details_url)
15 | speakers <- speakers %>% select(
16 | name = `What's your name?`,
17 | email = `Email Address`,
18 | affiliation = `What's your affiliation?`,
19 | country = `What country do you live in?`,
20 | tz = `What's your time zone?`
21 | ) %>% mutate(.before = 1, slug = slugify(name))
22 |
23 | speakers$country <- speakers$country %>%
24 | gsub("U.S.", "United States", ., fixed = TRUE) %>%
25 | gsub("^USA?$", "United States", .) %>%
26 | gsub("UK", "United Kingdom", ., fixed = TRUE)
27 |
28 | submissions_url <- "https://docs.google.com/spreadsheets/d/1b9Kr--fqvNk-fVse9APvWdSCwHtPx61iHhQPULflEIk/edit#gid=1099129659"
29 | submissions <- googlesheets4::read_sheet(submissions_url) %>%
30 | filter(decision %in% c("accept", "lightning")) %>%
31 | mutate(speaker_slug = slugify(name))
32 |
33 | # Some speakers submitted their proposal by one name, but gave a subtly
34 | # different name when asked for their details. We'll use the latter,
35 | # because it was more recent.
36 | submissions_to_speakers <- c(andrewbatran = "andrewtran",
37 | ericcronstrom = "ericgunnarcronstrom",
38 | meganbeckettandandrewcollier = "meganbeckett",
39 | michaelpage = "mikepage",
40 | rika = "rikagorn"
41 | )
42 | replace_idx <- match(submissions$speaker_slug, names(submissions_to_speakers))
43 | submissions$speaker_slug[which(!is.na(replace_idx))] <- submissions_to_speakers[na.omit(replace_idx)]
44 |
45 | joined <- submissions %>% full_join(speakers, by = c(speaker_slug = "slug"))
46 |
47 | # Make sure all slugs contain only lowercase characters
48 | stopifnot(all(grepl("^[a-z]+$", joined$speaker_slug)))
49 |
50 | # Hack to join mattthomas to mikepage
51 | joined$id[joined$speaker_slug == "mattthomas"] <- joined[joined$speaker_slug == "mikepage", "id"]
52 |
53 | yaml_null <- structure("null", class = "verbatim")
54 |
55 | # == Create speakers/*.md ========
56 |
57 | dir.create("speakers", showWarnings = FALSE)
58 | unlink(list.files("speakers", pattern = "*.md", full.names = TRUE))
59 |
60 | joined %>%
61 | pwalk(function(...) {
62 | s <- tibble(...)
63 | destfile <- file.path("speakers", paste0(s$speaker_slug, ".md"))
64 |
65 | f <- file(destfile, "w+")
66 | on.exit(close(f))
67 |
68 | writeLines("---", f)
69 | speaker_name <- if (!is.na(s$name.y)) s$name.y else s$name.x
70 | data <- list(
71 | talk_id = as.integer(s$id),
72 | type = switch(s$decision,
73 | lightning = "lightning",
74 | accept = "talk",
75 | `NA` = "talk",
76 | stop("Unexpected decision value for ", s$speaker_slug, ": ", s$decision)),
77 | name = speaker_name,
78 | affiliation = s$affiliation,
79 | links = list(
80 | homepage = yaml_null,
81 | twitter = yaml_null,
82 | github = yaml_null,
83 | linkedin = yaml_null
84 | ),
85 | location = s$country
86 | )
87 | data <- lapply(data, function(x) {
88 | if (identical(x, NA_character_)) yaml_null else x
89 | })
90 | yaml::write_yaml(data, f)
91 | writeLines(c("---", ""), f)
92 |
93 | # Talk title/abstract
94 | writeLines(paste0("# ", s$title), f)
95 | writeLines("", f)
96 | writeLines(s$abstract, f)
97 | writeLines("", f)
98 |
99 | # Bio
100 | writeLines(paste0("# Speaker bio"), f)
101 | writeLines("", f)
102 | writeLines(paste0(speaker_name, " is a human person."), f)
103 | })
104 |
105 | # # == Create talks/*.md ========
106 | #
107 | # dir.create("talks", showWarnings = FALSE)
108 | # unlink(list.files("talks", pattern = "*.md", full.names = TRUE))
109 | #
110 | # joined %>%
111 | # pwalk(function(...) {
112 | # s <- tibble(...)
113 | # destfile <- file.path("talks", paste0(s$speaker_slug, ".md"))
114 | #
115 | # f <- file(destfile, "w+")
116 | # on.exit(close(f))
117 | #
118 | # writeLines("---", f)
119 | # yaml::write_yaml(list(
120 | # title = s$title,
121 | # links = list(
122 | # slides = yaml_null,
123 | # code = yaml_null
124 | # )
125 | # ), f)
126 | # writeLines(c("---", ""), f)
127 | # writeLines(paste0(s$name.y, " is a human person."), f)
128 | # })
129 |
--------------------------------------------------------------------------------
/discussion_sessions.csv:
--------------------------------------------------------------------------------
1 | topic,title,summary,duration,time1,desc1,time2,desc2
2 | Discussion/Keynote,Q&A: Hadley Wickham,Live audience Q&A with keynote speaker Hadley Wickham.,2820,2021-01-21 11:33,Join Jenny Bryan for audience Q&A with keynote speaker Hadley Wickham.,2021-01-21 23:33,Join Andrie de Vries for audience Q&A with keynote speaker Hadley Wickham.
3 | Discussion/Track A/Learning,Discussion: Learning 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Learning"" session.",1858,2021-01-21 13:29,Join Jesse Mostipak and Ryan Estrellado for audience Q&A with the preceding speakers in this session.,2021-01-22 01:29,Join Rob Hyndman and Emi Tanaka for audience Q&A with the preceding speakers in this session.
4 | Discussion/Track C/Visualisation,Discussion: Visualisation 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Visualisation"" session.",1578,2021-01-21 13:33,Join Thomas Pedersen and Danielle Navarro for audience Q&A with the preceding speakers in this session.,2021-01-22 01:33,Join Di Cook and Ursula Laa for audience Q&A with the preceding speakers in this session.
5 | Discussion/Track B/Language interop,Discussion: Language interop 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Language interop"" session.",1528,2021-01-21 13:34,Join Amanda Gadrow and Teon Brooks for audience Q&A with the preceding speakers in this session.,2021-01-22 01:34,Join Earo Wang and Stuart Lee for audience Q&A with the preceding speakers in this session.
6 | Discussion/Track C/Visualisation,Discussion: Visualisation 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Visualisation"" session.",1478,2021-01-21 14:35,Join Thomas Pedersen and Danielle Navarro for audience Q&A with the preceding speakers in this session.,2021-01-22 02:35,Join Di Cook and Ursula Laa for audience Q&A with the preceding speakers in this session.
7 | Discussion/Track B/Language interop,Discussion: Language interop 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Language interop"" session.",1357,2021-01-21 14:37,Join Amanda Gadrow and Teon Brooks for audience Q&A with the preceding speakers in this session.,2021-01-22 02:37,Join Earo Wang and Stuart Lee for audience Q&A with the preceding speakers in this session.
8 | Discussion/Track A/Learning,Discussion: Learning 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Learning"" session.",1302,2021-01-21 14:38,Join Jesse Mostipak and Ryan Estrellado for audience Q&A with the preceding speakers in this session.,2021-01-22 02:38,Join Rob Hyndman and Emi Tanaka for audience Q&A with the preceding speakers in this session.
9 | Discussion/Keynote,Q&A: John Burn-Murdoch,Live audience Q&A with keynote speaker John Burn-Murdoch.,1789,2021-01-21 15:50,Join Jenny Bryan for audience Q&A with keynote speaker John Burn-Murdoch.,2021-01-22 03:50,Join Andrie de Vries for audience Q&A with keynote speaker John Burn-Murdoch.
10 | Discussion/Track C/Modelling,Discussion: Modelling 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Modelling"" session.",1851,2021-01-21 17:29,Join Julia Silge and Erin Ledell for audience Q&A with the preceding speakers in this session.,2021-01-22 05:29,Join Hannah Frick and Bruna Wundervald for audience Q&A with the preceding speakers in this session.
11 | Discussion/Track B/Package dev,Discussion: Package dev 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Package dev"" session.",1507,2021-01-21 17:34,Join Rich Iannone and Daniel Sjoberg for audience Q&A with the preceding speakers in this session.,2021-01-22 05:34,Join Colin Fay and Ahmadou Dicko for audience Q&A with the preceding speakers in this session.
12 | Discussion/Track A/Teaching,Discussion: Teaching 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Teaching"" session.",1212,2021-01-21 17:39,Join Desirée De Leon and Hasse Walum for audience Q&A with the preceding speakers in this session.,2021-01-22 05:39,Join Maelle Salmon and Vebashini Naidoo for audience Q&A with the preceding speakers in this session.
13 | Discussion/Track A/Teaching,Discussion: Teaching 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Teaching"" session.",1374,2021-01-21 18:37,Join Desirée De Leon and Hasse Walum for audience Q&A with the preceding speakers in this session.,2021-01-22 06:37,Join Maelle Salmon and Vebashini Naidoo for audience Q&A with the preceding speakers in this session.
14 | Discussion/Track B/Package dev,Discussion: Package dev 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Package dev"" session.",1148,2021-01-21 18:40,Join Rich Iannone and Daniel Sjoberg for audience Q&A with the preceding speakers in this session.,2021-01-22 06:40,Join Colin Fay and Ahmadou Dicko for audience Q&A with the preceding speakers in this session.
15 | Discussion/Track C/Modelling,Discussion: Modelling 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Modelling"" session.",1017,2021-01-21 18:43,Join Julia Silge and Erin Ledell for audience Q&A with the preceding speakers in this session.,2021-01-22 06:43,Join Hannah Frick and Bruna Wundervald for audience Q&A with the preceding speakers in this session.
16 | Discussion/Keynote,Q&A: Vicki Boykis,Live audience Q&A with keynote speaker Vicki Boykis.,3346,2021-01-21 19:24,Join Jenny Bryan for audience Q&A with keynote speaker Vicki Boykis.,2021-01-22 07:24,Join Andrie de Vries for audience Q&A with keynote speaker Vicki Boykis.
17 | Discussion/Track A/Data for good,Discussion: Data for good 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Data for good"" session.",1846,2021-01-21 21:29,Join Tom Mock and Sharla Gelfand for audience Q&A with the preceding speakers in this session.,2021-01-22 09:29,Join Carl Howe and Jeffrey Breen for audience Q&A with the preceding speakers in this session.
18 | Discussion/Track C/Programming,Discussion: Programming 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Programming"" session.",1696,2021-01-21 21:31,Join Nick Strayer and Jasmine Daly for audience Q&A with the preceding speakers in this session.,2021-01-22 09:31,Join Joe Cheng and Susan Vanderplas for audience Q&A with the preceding speakers in this session.
19 | Discussion/Track B/Organisational tooling,Discussion: Organisational tooling 1,"Live audience Q&A and discussion with session hosts and speakers for the first half of the ""Organisational tooling"" session.",1580,2021-01-21 21:33,Join Alex Gold and Elaine McVey for audience Q&A with the preceding speakers in this session.,2021-01-22 09:33,Join Rachael Dempsey and Daniella Mark for audience Q&A with the preceding speakers in this session.
20 | Discussion/Track A/Data for good,Discussion: Data for good 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Data for good"" session.",1707,2021-01-21 22:31,Join Tom Mock and Sharla Gelfand for audience Q&A with the preceding speakers in this session.,2021-01-22 10:31,Join Carl Howe and Jeffrey Breen for audience Q&A with the preceding speakers in this session.
21 | Discussion/Track B/Organisational tooling,Discussion: Organisational tooling 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Organisational tooling"" session.",1420,2021-01-21 22:36,Join Alex Gold and Elaine McVey for audience Q&A with the preceding speakers in this session.,2021-01-22 10:36,Join Rachael Dempsey and Daniella Mark for audience Q&A with the preceding speakers in this session.
22 | Discussion/Track C/Programming,Discussion: Programming 2,"Live audience Q&A and discussion with session hosts and speakers for the second half of the ""Programming"" session.",1223,2021-01-21 22:39,Join Nick Strayer and Jasmine Daly for audience Q&A with the preceding speakers in this session.,2021-01-22 10:39,Join Joe Cheng and Susan Vanderplas for audience Q&A with the preceding speakers in this session.
23 |
--------------------------------------------------------------------------------
/export-sessions.R:
--------------------------------------------------------------------------------
1 | library(magrittr)
2 | library(parsermd)
3 | library(commonmark)
4 | library(yaml)
5 | library(dplyr)
6 | library(htmltools)
7 | library(tidyr)
8 | library(lubridate)
9 |
10 | source("_helpers.R")
11 |
12 | `%||%` <- function(a, b) {
13 | if (is.null(a)) b else a
14 | }
15 |
16 | blocknames <- c("alfa", "bravo", "charlie", "delta", "echo", "foxtrot", "golf",
17 | "hotel", "india", "juliett", "kilo", "lima")
18 | blocktimes <- unlist(read_yaml("block-times-gmt.yml"))
19 |
20 | talk_times <- readr::read_csv("talk_times.csv") %>%
21 | group_by(talk_id) %>%
22 | summarise(.groups = "drop",
23 | time1 = start[[1]], time2 = start[[2]], duration = mean(duration)
24 | )
25 |
26 | sessionnames <- read_yaml("session-names.yml")
27 |
28 | normalize_social <- function(x, url_prefix) {
29 | if (is.null(x)) {
30 | return(NA_character_)
31 | }
32 |
33 | x <- sub("^@", "", x, perl = TRUE)
34 |
35 | if (grepl("^[\\da-zA-Z_]+$", x)) {
36 | paste0(url_prefix, x)
37 | } else if (grepl(url_prefix, x, fixed = TRUE)) {
38 | x
39 | } else if (grepl(sub("www\\.linkedin\\.", "linkedin\\.", url_prefix), x, fixed = TRUE)) {
40 | x
41 | } else {
42 | stop("Unexpected URL: ", x)
43 | }
44 | }
45 |
46 | parse_file <- function(filename) {
47 | message(filename)
48 | rmd <- parse_rmd(filename)
49 | rmd_df <- as_tibble(rmd)
50 |
51 | if (!identical(rmd_df$type[[1]], "rmd_yaml_list")) {
52 | stop("Must begin with a YAML metadata block")
53 | }
54 |
55 | expected_types <- c("rmd_yaml_list", "rmd_heading", "rmd_markdown", "rmd_heading", "rmd_markdown")
56 | if (!identical(rmd_df$type, expected_types)) {
57 | stop("Parsed rmd contained sections [",
58 | paste(rmd_df$type, collapse = ","),
59 | "]; we were expecting [",
60 | paste(expected_types, collapse = ","),
61 | "]")
62 | }
63 |
64 | talk_title <- rmd[[2]]$name %>% markdown_html %>% sub("^", "", .) %>% sub("
\n?$", "", .)
65 | talk_title_text <- rmd[[2]]$name %>% markdown_text %>% sub("\n+$", "", .)
66 | talk_abstract_html <- rmd[[3]] %>% as_document %>% markdown_html
67 | talk_abstract_text <- rmd[[3]] %>% as_document %>% markdown_text
68 |
69 | speaker_bio <- rmd[[5]] %>% as_document %>% markdown_html
70 | if (grepl("is a human person.", speaker_bio)) {
71 | speaker_bio <- ""
72 | }
73 | speaker_bio_text <- rmd[[5]] %>% as_document %>% markdown_text
74 | if (grepl("is a human person.", speaker_bio_text)) {
75 | speaker_bio_text <- ""
76 | }
77 |
78 | speaker <- unclass(rmd[[1]])
79 |
80 | # Sanity check blocks
81 | blocks <- speaker$blocks
82 | stopifnot(length(blocks) == 2)
83 | stopifnot(all(blocks %in% blocknames))
84 | block1_index <- which(blocknames == blocks[[1]])
85 | stopifnot(length(block1_index) == 1)
86 | stopifnot(identical(blocknames[block1_index + 6], blocks[[2]]))
87 |
88 | if (!is.null(speaker$links$homepage)) {
89 | with(httr::parse_url(speaker$links$homepage), {
90 | stopifnot(!is.null(scheme))
91 | stopifnot(!is.null(hostname))
92 | })
93 | }
94 |
95 | speaker$links$homepage <- if (!is.null(speaker$links$homepage)) speaker$links$homepage else NA_character_
96 | speaker$links$twitter <- normalize_social(speaker$links$twitter, "https://twitter.com/")
97 | speaker$links$github <- normalize_social(speaker$links$github, "https://github.com/")
98 | speaker$links$linkedin <- normalize_social(speaker$links$linkedin, "https://www.linkedin.com/in/")
99 |
100 | links <- list(
101 | Homepage = speaker$links$homepage,
102 | Twitter = speaker$links$twitter,
103 | GitHub = speaker$links$github,
104 | LinkedIn = speaker$links$linkedin
105 | )
106 | links <- links[!vapply(links, is.na, logical(1))]
107 |
108 | links_html <- if (length(links) > 0) {
109 | htmltools::p(class = "speaker-links",
110 | mapply(names(links), links, FUN = function(nm, url) {
111 | if (!is.na(url)) {
112 | htmltools::tags$a(href = url,
113 | htmltools::tags$img(
114 | src = paste0("https://rstudio-global-2021.s3.amazonaws.com/icons/", tolower(nm), ".png"),
115 | alt = nm,
116 | style = "border: none; width: 20px; height: 20px;"
117 | )
118 | )
119 | }
120 | }, SIMPLIFY = FALSE, USE.NAMES = FALSE)
121 | ) %>% as.character()
122 | }
123 |
124 | # TODO: Check speaker metadata requirements
125 |
126 | stopifnot(length(speaker_bio) == 1)
127 | stopifnot(length(links_html) <= 1)
128 |
129 | slug <- tools::file_path_sans_ext(basename(filename))
130 |
131 | headshot <- list.files(path = rprojroot::find_rstudio_root_file("speakers"),
132 | pattern = paste0(slug, "\\.(png|jpg)$"))
133 | stopifnot(length(headshot) <= 1)
134 | headshot <- if (length(headshot) == 1) {
135 | paste0("https://rstudio-global-2021.s3.amazonaws.com/speakers/", headshot)
136 | } else {
137 | ""
138 | }
139 |
140 | # Flatten structure so all members are single-element vectors. This will make
141 | # data framing everything easier.
142 | speaker$block_1 <- speaker$blocks[[1]]
143 | speaker$block_2 <- speaker$blocks[[2]]
144 | speaker$blocks <- NULL
145 | speaker <- c(speaker, speaker$links)
146 | speaker$links <- NULL
147 |
148 | speaker <- lapply(speaker, `%||%`, b = "")
149 |
150 | as_tibble(c(
151 | speaker,
152 | summary = speaker_bio,
153 | summary_text = speaker_bio_text,
154 | bio = paste0(speaker_bio, links_html),
155 | headshot = headshot,
156 | speaker_slug = slug,
157 | title = talk_title,
158 | title_text = talk_title_text,
159 | abstract = talk_abstract_html,
160 | abstract_text = talk_abstract_text
161 | ))
162 | }
163 |
164 | speakers <- list.files("speakers", pattern = "*.md", full.names = TRUE) %>%
165 | lapply(parse_file) %>%
166 | bind_rows() %>%
167 | arrange(tolower(name)) %>%
168 | left_join(talk_times, by = "talk_id")
169 |
170 | talk_labels <- c(lightning = "Lightning Talk", talk = "Talk", keynote = "Keynote")
171 |
172 | df <- speakers %>%
173 | # mutate(time1 = blocktimes[block_1], time2 = blocktimes[block_2]) %>%
174 | select(name, affiliation, headshot, summary, bio)
175 |
176 | readr::write_csv(df, "export.csv")
177 | # googlesheets4::gs4_create(, sheets = df)
178 |
179 | df2 <- speakers %>%
180 | left_join(session_df, by = c("block_1" = "block", "track")) %>%
181 | mutate(topic = paste0(talk_labels[type],
182 | ifelse(type != "keynote", paste0("/Track ", track, "/", session), "")
183 | )) %>%
184 | select(
185 | talk_id,
186 | topic,
187 | title,
188 | abstract = abstract_text,
189 | speaker = name,
190 | speaker_summary = summary_text, time1, time2, duration) %>%
191 | mutate(time1 = intellum_datetime(time1), time2 = intellum_datetime(time2)) %>%
192 | group_by(talk_id, topic, title, abstract, time1, time2, duration) %>%
193 | summarise(.groups = "drop",
194 | speaker_info = paste(collapse = "\n",
195 | mapply(speaker, speaker_summary, FUN = function(name, summary) {
196 | paste0("Speaker: ", name, "\n\n", summary)
197 | })
198 | )
199 | ) %>%
200 | mutate(abstract_with_bio = paste(sep = "\n", abstract, speaker_info), .after = "abstract") %>%
201 | select(-speaker_info)
202 |
203 | df2_sorted <- df2[match(unique(speakers$talk_id), df2$talk_id),]
204 | stopifnot(nrow(df2_sorted) == nrow(df2))
205 | df2 <- df2_sorted
206 |
207 | readr::write_csv(df2, "export_sessions.csv")
208 | # googlesheets4::gs4_create(, sheets = df2)
209 |
210 | session_to_speakers <- speakers %>%
211 | select(session = title, name) %>%
212 | group_by(session) %>%
213 | summarise(name = paste(name, collapse = ", "))
214 |
215 | speaker_to_session <- speakers %>%
216 | select(name, session = title)
217 |
218 | # googlesheets4::gs4_create(sheets = list(session_to_speakers = session_to_speakers, speaker_to_session = speaker_to_session))
219 |
220 | # Resize images if necessary
221 | jpeg_files <- list.files("speakers", pattern = "*.jpg", full.names = TRUE)
222 | png_files <- list.files("speakers", pattern = "*.png", full.names = TRUE)
223 |
224 | for (file in c(jpeg_files, png_files)) {
225 | img <- magick::image_read(file)
226 | if (magick::image_info(img)$width != 300) {
227 | message("Resizing ", file)
228 | img <- magick::image_resize(img, magick::geometry_size_pixels(300, preserve_aspect = TRUE))
229 | magick::image_write(img, file)
230 | }
231 | }
232 |
233 | if (TRUE) {
234 |
235 | message("Syncing speaker headshots to S3")
236 | # Upload speaker headshots to S3
237 | print(processx::run("aws", c(
238 | "s3",
239 | "sync",
240 | "--exclude=*.md",
241 | rprojroot::find_rstudio_root_file("speakers"),
242 | "s3://rstudio-global-2021/speakers/"
243 | )))
244 |
245 | }
246 |
247 |
248 | simple_schedule <- speakers %>%
249 | pivot_longer(starts_with("block_"), names_to = "block_num", values_to = "block") %>%
250 | mutate(time = ifelse(block_num == "block_1", format(time1), format(time2)), .after = "time2") %>%
251 | select(talk_id, type, block, track, name, title_text, time, duration, abstract_html = abstract, abstract_text,
252 | bio_html = bio, bio_text = summary_text, url) %>%
253 | # Group by everything but name
254 | group_by(talk_id, type, block, track, title_text, time, duration, abstract_html, abstract_text, url) %>%
255 | summarise(.groups = "drop",
256 | name = paste(name, collapse = "\n"),
257 | bio_html = paste(bio_html, collapse = "\n"),
258 | bio_text = paste(bio_text, collapse = "\n\n")
259 | ) %>%
260 | relocate(name, .before = title_text) %>%
261 | relocate(bio_html, bio_text, .before = url) %>%
262 | arrange(block, track, time) %>%
263 | rename("time_gmt" = time) %>%
264 | left_join(session_df, c("block", "track")) %>%
265 | mutate(session = ifelse(is.na(session), "Keynote", session)) %>%
266 | relocate(session, .after = track) %>%
267 | rename(topic = session)
268 |
269 | googlesheets4::write_sheet(simple_schedule,
270 | "https://docs.google.com/spreadsheets/d/1wYf7w-Elg5vSeZkKjRFeWzShVPXqDXJzy6vrYUyJm0c/edit#gid=0",
271 | "Sheet1")
272 |
273 | readr::write_csv(simple_schedule, "simple_schedule.csv")
274 |
275 | discussion_links <- speakers %>%
276 | select(type, track, name, time1, time2) %>%
277 | mutate(
278 | "First session join time (GMT)" = lubridate::floor_date(time1, unit = "hour") + lubridate::minutes(5),
279 | "Second session join time (GMT)" = lubridate::floor_date(time2, unit = "hour") + lubridate::minutes(5),
280 | "Zoom link" = case_when(
281 | track == "A" ~ "https://us02web.zoom.us/j/85471971782",
282 | track == "B" ~ "https://us02web.zoom.us/j/9205496340",
283 | track == "C" ~ "https://us02web.zoom.us/j/9718702413",
284 | type == "keynote" ~ "https://us02web.zoom.us/j/81544473935",
285 | TRUE ~ NA_character_
286 | )
287 | ) %>%
288 | select(-type, -time1, -time2)
289 | googlesheets4::write_sheet(discussion_links,
290 | "https://docs.google.com/spreadsheets/d/1dJrgRqCkIlKiWxSHkXdbbhIJXllgiYl9qug3HgJC2R8/edit#gid=0",
291 | "Sheet1")
292 |
--------------------------------------------------------------------------------
/renv/activate.R:
--------------------------------------------------------------------------------
1 |
2 | local({
3 |
4 | # the requested version of renv
5 | version <- "0.12.0"
6 |
7 | # the project directory
8 | project <- getwd()
9 |
10 | # avoid recursion
11 | if (!is.na(Sys.getenv("RENV_R_INITIALIZING", unset = NA)))
12 | return(invisible(TRUE))
13 |
14 | # signal that we're loading renv during R startup
15 | Sys.setenv("RENV_R_INITIALIZING" = "true")
16 | on.exit(Sys.unsetenv("RENV_R_INITIALIZING"), add = TRUE)
17 |
18 | # signal that we've consented to use renv
19 | options(renv.consent = TRUE)
20 |
21 | # load the 'utils' package eagerly -- this ensures that renv shims, which
22 | # mask 'utils' packages, will come first on the search path
23 | library(utils, lib.loc = .Library)
24 |
25 | # check to see if renv has already been loaded
26 | if ("renv" %in% loadedNamespaces()) {
27 |
28 | # if renv has already been loaded, and it's the requested version of renv,
29 | # nothing to do
30 | spec <- .getNamespaceInfo(.getNamespace("renv"), "spec")
31 | if (identical(spec[["version"]], version))
32 | return(invisible(TRUE))
33 |
34 | # otherwise, unload and attempt to load the correct version of renv
35 | unloadNamespace("renv")
36 |
37 | }
38 |
39 | # load bootstrap tools
40 | bootstrap <- function(version, library) {
41 |
42 | # read repos (respecting override if set)
43 | repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA)
44 | if (is.na(repos))
45 | repos <- getOption("repos")
46 |
47 | # fix up repos
48 | on.exit(options(repos = repos), add = TRUE)
49 | repos[repos == "@CRAN@"] <- "https://cloud.r-project.org"
50 | options(repos = repos)
51 |
52 | # attempt to download renv
53 | tarball <- tryCatch(renv_bootstrap_download(version), error = identity)
54 | if (inherits(tarball, "error"))
55 | stop("failed to download renv ", version)
56 |
57 | # now attempt to install
58 | status <- tryCatch(renv_bootstrap_install(version, tarball, library), error = identity)
59 | if (inherits(status, "error"))
60 | stop("failed to install renv ", version)
61 |
62 | }
63 |
64 | renv_bootstrap_download_impl <- function(url, destfile) {
65 |
66 | mode <- "wb"
67 |
68 | # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715
69 | fixup <-
70 | Sys.info()[["sysname"]] == "Windows" &&
71 | substring(url, 1L, 5L) == "file:"
72 |
73 | if (fixup)
74 | mode <- "w+b"
75 |
76 | download.file(
77 | url = url,
78 | destfile = destfile,
79 | mode = mode,
80 | quiet = TRUE
81 | )
82 |
83 | }
84 |
85 | renv_bootstrap_download <- function(version) {
86 |
87 | methods <- list(
88 | renv_bootstrap_download_cran_latest,
89 | renv_bootstrap_download_cran_archive,
90 | renv_bootstrap_download_github
91 | )
92 |
93 | for (method in methods) {
94 | path <- tryCatch(method(version), error = identity)
95 | if (is.character(path) && file.exists(path))
96 | return(path)
97 | }
98 |
99 | stop("failed to download renv ", version)
100 |
101 | }
102 |
103 | renv_bootstrap_download_cran_latest <- function(version) {
104 |
105 | # check for renv on CRAN matching this version
106 | db <- as.data.frame(available.packages(), stringsAsFactors = FALSE)
107 |
108 | entry <- db[db$Package %in% "renv" & db$Version %in% version, ]
109 | if (nrow(entry) == 0) {
110 | fmt <- "renv %s is not available from your declared package repositories"
111 | stop(sprintf(fmt, version))
112 | }
113 |
114 | message("* Downloading renv ", version, " from CRAN ... ", appendLF = FALSE)
115 |
116 | info <- tryCatch(
117 | download.packages("renv", destdir = tempdir()),
118 | condition = identity
119 | )
120 |
121 | if (inherits(info, "condition")) {
122 | message("FAILED")
123 | return(FALSE)
124 | }
125 |
126 | message("OK")
127 | info[1, 2]
128 |
129 | }
130 |
131 | renv_bootstrap_download_cran_archive <- function(version) {
132 |
133 | name <- sprintf("renv_%s.tar.gz", version)
134 | repos <- getOption("repos")
135 | urls <- file.path(repos, "src/contrib/Archive/renv", name)
136 | destfile <- file.path(tempdir(), name)
137 |
138 | message("* Downloading renv ", version, " from CRAN archive ... ", appendLF = FALSE)
139 |
140 | for (url in urls) {
141 |
142 | status <- tryCatch(
143 | renv_bootstrap_download_impl(url, destfile),
144 | condition = identity
145 | )
146 |
147 | if (identical(status, 0L)) {
148 | message("OK")
149 | return(destfile)
150 | }
151 |
152 | }
153 |
154 | message("FAILED")
155 | return(FALSE)
156 |
157 | }
158 |
159 | renv_bootstrap_download_github <- function(version) {
160 |
161 | enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE")
162 | if (!identical(enabled, "TRUE"))
163 | return(FALSE)
164 |
165 | # prepare download options
166 | pat <- Sys.getenv("GITHUB_PAT")
167 | if (nzchar(Sys.which("curl")) && nzchar(pat)) {
168 | fmt <- "--location --fail --header \"Authorization: token %s\""
169 | extra <- sprintf(fmt, pat)
170 | saved <- options("download.file.method", "download.file.extra")
171 | options(download.file.method = "curl", download.file.extra = extra)
172 | on.exit(do.call(base::options, saved), add = TRUE)
173 | } else if (nzchar(Sys.which("wget")) && nzchar(pat)) {
174 | fmt <- "--header=\"Authorization: token %s\""
175 | extra <- sprintf(fmt, pat)
176 | saved <- options("download.file.method", "download.file.extra")
177 | options(download.file.method = "wget", download.file.extra = extra)
178 | on.exit(do.call(base::options, saved), add = TRUE)
179 | }
180 |
181 | message("* Downloading renv ", version, " from GitHub ... ", appendLF = FALSE)
182 |
183 | url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version)
184 | name <- sprintf("renv_%s.tar.gz", version)
185 | destfile <- file.path(tempdir(), name)
186 |
187 | status <- tryCatch(
188 | renv_bootstrap_download_impl(url, destfile),
189 | condition = identity
190 | )
191 |
192 | if (!identical(status, 0L)) {
193 | message("FAILED")
194 | return(FALSE)
195 | }
196 |
197 | message("Done!")
198 | return(destfile)
199 |
200 | }
201 |
202 | renv_bootstrap_install <- function(version, tarball, library) {
203 |
204 | # attempt to install it into project library
205 | message("* Installing renv ", version, " ... ", appendLF = FALSE)
206 | dir.create(library, showWarnings = FALSE, recursive = TRUE)
207 |
208 | # invoke using system2 so we can capture and report output
209 | bin <- R.home("bin")
210 | exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R"
211 | r <- file.path(bin, exe)
212 | args <- c("--vanilla", "CMD", "INSTALL", "-l", shQuote(library), shQuote(tarball))
213 | output <- system2(r, args, stdout = TRUE, stderr = TRUE)
214 | message("Done!")
215 |
216 | # check for successful install
217 | status <- attr(output, "status")
218 | if (is.numeric(status) && !identical(status, 0L)) {
219 | header <- "Error installing renv:"
220 | lines <- paste(rep.int("=", nchar(header)), collapse = "")
221 | text <- c(header, lines, output)
222 | writeLines(text, con = stderr())
223 | }
224 |
225 | status
226 |
227 | }
228 |
229 | renv_bootstrap_prefix <- function() {
230 |
231 | # construct version prefix
232 | version <- paste(R.version$major, R.version$minor, sep = ".")
233 | prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-")
234 |
235 | # include SVN revision for development versions of R
236 | # (to avoid sharing platform-specific artefacts with released versions of R)
237 | devel <-
238 | identical(R.version[["status"]], "Under development (unstable)") ||
239 | identical(R.version[["nickname"]], "Unsuffered Consequences")
240 |
241 | if (devel)
242 | prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r")
243 |
244 | # build list of path components
245 | components <- c(prefix, R.version$platform)
246 |
247 | # include prefix if provided by user
248 | prefix <- Sys.getenv("RENV_PATHS_PREFIX")
249 | if (nzchar(prefix))
250 | components <- c(prefix, components)
251 |
252 | # build prefix
253 | paste(components, collapse = "/")
254 |
255 | }
256 |
257 | renv_bootstrap_library_root <- function(project) {
258 |
259 | path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA)
260 | if (!is.na(path))
261 | return(path)
262 |
263 | path <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA)
264 | if (!is.na(path))
265 | return(file.path(path, basename(project)))
266 |
267 | file.path(project, "renv/library")
268 |
269 | }
270 |
271 | renv_bootstrap_validate_version <- function(version) {
272 |
273 | loadedversion <- utils::packageDescription("renv", fields = "Version")
274 | if (version == loadedversion)
275 | return(TRUE)
276 |
277 | # assume four-component versions are from GitHub; three-component
278 | # versions are from CRAN
279 | components <- strsplit(loadedversion, "[.-]")[[1]]
280 | remote <- if (length(components) == 4L)
281 | paste("rstudio/renv", loadedversion, sep = "@")
282 | else
283 | paste("renv", loadedversion, sep = "@")
284 |
285 | fmt <- paste(
286 | "renv %1$s was loaded from project library, but renv %2$s is recorded in lockfile.",
287 | "Use `renv::record(\"%3$s\")` to record this version in the lockfile.",
288 | "Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.",
289 | sep = "\n"
290 | )
291 |
292 | msg <- sprintf(fmt, loadedversion, version, remote)
293 | warning(msg, call. = FALSE)
294 |
295 | FALSE
296 |
297 | }
298 |
299 | renv_bootstrap_load <- function(project, libpath, version) {
300 |
301 | # try to load renv from the project library
302 | if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE))
303 | return(FALSE)
304 |
305 | # warn if the version of renv loaded does not match
306 | renv_bootstrap_validate_version(version)
307 |
308 | # load the project
309 | renv::load(project)
310 |
311 | TRUE
312 |
313 | }
314 |
315 | # construct path to library root
316 | root <- renv_bootstrap_library_root(project)
317 |
318 | # construct library prefix for platform
319 | prefix <- renv_bootstrap_prefix()
320 |
321 | # construct full libpath
322 | libpath <- file.path(root, prefix)
323 |
324 | # attempt to load
325 | if (renv_bootstrap_load(project, libpath, version))
326 | return(TRUE)
327 |
328 | # load failed; attempt to bootstrap
329 | bootstrap(version, libpath)
330 |
331 | # exit early if we're just testing bootstrap
332 | if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA)))
333 | return(TRUE)
334 |
335 | # try again to load
336 | if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) {
337 | message("Successfully installed and loaded renv ", version, ".")
338 | return(renv::load())
339 | }
340 |
341 | # failed to download or load renv; warn the user
342 | msg <- c(
343 | "Failed to find an renv installation: the project will not be loaded.",
344 | "Use `renv::activate()` to re-initialize the project."
345 | )
346 |
347 | warning(paste(msg, collapse = "\n"), call. = FALSE)
348 |
349 | })
350 |
--------------------------------------------------------------------------------
/renv.lock:
--------------------------------------------------------------------------------
1 | {
2 | "R": {
3 | "Version": "4.0.3",
4 | "Repositories": [
5 | {
6 | "Name": "CRAN",
7 | "URL": "https://cloud.r-project.org"
8 | }
9 | ]
10 | },
11 | "Packages": {
12 | "BH": {
13 | "Package": "BH",
14 | "Version": "1.72.0-3",
15 | "Source": "Repository",
16 | "Repository": "CRAN",
17 | "Hash": "8f9ce74c6417d61f0782cbae5fd2b7b0"
18 | },
19 | "R6": {
20 | "Package": "R6",
21 | "Version": "2.4.1",
22 | "Source": "Repository",
23 | "Repository": "CRAN",
24 | "Hash": "292b54f8f4b94669b08f94e5acce6be2"
25 | },
26 | "Rcpp": {
27 | "Package": "Rcpp",
28 | "Version": "1.0.5",
29 | "Source": "Repository",
30 | "Repository": "CRAN",
31 | "Hash": "125dc7a0ed375eb68c0ce533b48d291f"
32 | },
33 | "askpass": {
34 | "Package": "askpass",
35 | "Version": "1.1",
36 | "Source": "Repository",
37 | "Repository": "CRAN",
38 | "Hash": "e8a22846fff485f0be3770c2da758713"
39 | },
40 | "assertthat": {
41 | "Package": "assertthat",
42 | "Version": "0.2.1",
43 | "Source": "Repository",
44 | "Repository": "CRAN",
45 | "Hash": "50c838a310445e954bc13f26f26a6ecf"
46 | },
47 | "backports": {
48 | "Package": "backports",
49 | "Version": "1.1.10",
50 | "Source": "Repository",
51 | "Repository": "CRAN",
52 | "Hash": "05ffd2d4acb51aee70f1de68ad7a6aed"
53 | },
54 | "base64enc": {
55 | "Package": "base64enc",
56 | "Version": "0.1-3",
57 | "Source": "Repository",
58 | "Repository": "CRAN",
59 | "Hash": "543776ae6848fde2f48ff3816d0628bc"
60 | },
61 | "cellranger": {
62 | "Package": "cellranger",
63 | "Version": "1.1.0",
64 | "Source": "Repository",
65 | "Repository": "RSPM",
66 | "Hash": "f61dbaec772ccd2e17705c1e872e9e7c"
67 | },
68 | "checkmate": {
69 | "Package": "checkmate",
70 | "Version": "2.0.0",
71 | "Source": "Repository",
72 | "Repository": "CRAN",
73 | "Hash": "a667800d5f0350371bedeb8b8b950289"
74 | },
75 | "cli": {
76 | "Package": "cli",
77 | "Version": "2.1.0",
78 | "Source": "Repository",
79 | "Repository": "CRAN",
80 | "Hash": "0b316487b21d21f99ebf98abe179b1ea"
81 | },
82 | "clipr": {
83 | "Package": "clipr",
84 | "Version": "0.7.1",
85 | "Source": "Repository",
86 | "Repository": "CRAN",
87 | "Hash": "ebaa97ac99cc2daf04e77eecc7b781d7"
88 | },
89 | "commonmark": {
90 | "Package": "commonmark",
91 | "Version": "1.7",
92 | "Source": "Repository",
93 | "Repository": "CRAN",
94 | "Hash": "0f22be39ec1d141fd03683c06f3a6e67"
95 | },
96 | "cpp11": {
97 | "Package": "cpp11",
98 | "Version": "0.2.3",
99 | "Source": "Repository",
100 | "Repository": "CRAN",
101 | "Hash": "f9df472593124299aef98fba2c96dfd3"
102 | },
103 | "crayon": {
104 | "Package": "crayon",
105 | "Version": "1.3.4",
106 | "Source": "Repository",
107 | "Repository": "CRAN",
108 | "Hash": "0d57bc8e27b7ba9e45dba825ebc0de6b"
109 | },
110 | "curl": {
111 | "Package": "curl",
112 | "Version": "4.3",
113 | "Source": "Repository",
114 | "Repository": "CRAN",
115 | "Hash": "2b7d10581cc730804e9ed178c8374bd6"
116 | },
117 | "digest": {
118 | "Package": "digest",
119 | "Version": "0.6.26",
120 | "Source": "Repository",
121 | "Repository": "CRAN",
122 | "Hash": "312b822306ececbbf7b9731937d9ec55"
123 | },
124 | "dplyr": {
125 | "Package": "dplyr",
126 | "Version": "1.0.2",
127 | "Source": "Repository",
128 | "Repository": "CRAN",
129 | "Hash": "d0509913b27ea898189ee664b6030dc2"
130 | },
131 | "ellipsis": {
132 | "Package": "ellipsis",
133 | "Version": "0.3.1",
134 | "Source": "Repository",
135 | "Repository": "CRAN",
136 | "Hash": "fd2844b3a43ae2d27e70ece2df1b4e2a"
137 | },
138 | "fansi": {
139 | "Package": "fansi",
140 | "Version": "0.4.1",
141 | "Source": "Repository",
142 | "Repository": "CRAN",
143 | "Hash": "7fce217eaaf8016e72065e85c73027b5"
144 | },
145 | "fs": {
146 | "Package": "fs",
147 | "Version": "1.5.0",
148 | "Source": "Repository",
149 | "Repository": "RSPM",
150 | "Hash": "44594a07a42e5f91fac9f93fda6d0109"
151 | },
152 | "gargle": {
153 | "Package": "gargle",
154 | "Version": "0.5.0",
155 | "Source": "Repository",
156 | "Repository": "CRAN",
157 | "Hash": "aaacaf8b0ec3dfe45df9eb6bc040db44"
158 | },
159 | "generics": {
160 | "Package": "generics",
161 | "Version": "0.0.2",
162 | "Source": "Repository",
163 | "Repository": "CRAN",
164 | "Hash": "b8cff1d1391fd1ad8b65877f4c7f2e53"
165 | },
166 | "glue": {
167 | "Package": "glue",
168 | "Version": "1.4.2",
169 | "Source": "Repository",
170 | "Repository": "RSPM",
171 | "Hash": "6efd734b14c6471cfe443345f3e35e29"
172 | },
173 | "googledrive": {
174 | "Package": "googledrive",
175 | "Version": "1.0.1",
176 | "Source": "Repository",
177 | "Repository": "CRAN",
178 | "Hash": "79ba5d18133290a69b7c135dc3dfef1a"
179 | },
180 | "googlesheets4": {
181 | "Package": "googlesheets4",
182 | "Version": "0.2.0",
183 | "Source": "Repository",
184 | "Repository": "CRAN",
185 | "Hash": "36ed3c9b1f0bbcd574d2769b625f80fb"
186 | },
187 | "hms": {
188 | "Package": "hms",
189 | "Version": "0.5.3",
190 | "Source": "Repository",
191 | "Repository": "CRAN",
192 | "Hash": "726671f634529d470545f9fd1a9d1869"
193 | },
194 | "htmltools": {
195 | "Package": "htmltools",
196 | "Version": "0.5.0",
197 | "Source": "Repository",
198 | "Repository": "CRAN",
199 | "Hash": "7d651b7131794fe007b1ad6f21aaa401"
200 | },
201 | "httr": {
202 | "Package": "httr",
203 | "Version": "1.4.2",
204 | "Source": "Repository",
205 | "Repository": "CRAN",
206 | "Hash": "a525aba14184fec243f9eaec62fbed43"
207 | },
208 | "ids": {
209 | "Package": "ids",
210 | "Version": "1.0.1",
211 | "Source": "Repository",
212 | "Repository": "CRAN",
213 | "Hash": "99df65cfef20e525ed38c3d2577f7190"
214 | },
215 | "jsonlite": {
216 | "Package": "jsonlite",
217 | "Version": "1.7.1",
218 | "Source": "Repository",
219 | "Repository": "RSPM",
220 | "Hash": "1ec84e070b88b37ed169f19def40d47c"
221 | },
222 | "lifecycle": {
223 | "Package": "lifecycle",
224 | "Version": "0.2.0",
225 | "Source": "Repository",
226 | "Repository": "CRAN",
227 | "Hash": "361811f31f71f8a617a9a68bf63f1f42"
228 | },
229 | "lubridate": {
230 | "Package": "lubridate",
231 | "Version": "1.7.9.2",
232 | "Source": "Repository",
233 | "Repository": "CRAN",
234 | "Hash": "5b5b02f621d39a499def7923a5aee746"
235 | },
236 | "magick": {
237 | "Package": "magick",
238 | "Version": "2.5.2",
239 | "Source": "Repository",
240 | "Repository": "CRAN",
241 | "Hash": "857faefb4087451c588f37ee3f6f7312"
242 | },
243 | "magrittr": {
244 | "Package": "magrittr",
245 | "Version": "1.5",
246 | "Source": "Repository",
247 | "Repository": "CRAN",
248 | "Hash": "1bb58822a20301cee84a41678e25d9b7"
249 | },
250 | "mime": {
251 | "Package": "mime",
252 | "Version": "0.9",
253 | "Source": "Repository",
254 | "Repository": "CRAN",
255 | "Hash": "e87a35ec73b157552814869f45a63aa3"
256 | },
257 | "openssl": {
258 | "Package": "openssl",
259 | "Version": "1.4.3",
260 | "Source": "Repository",
261 | "Repository": "CRAN",
262 | "Hash": "a399e4773075fc2375b71f45fca186c4"
263 | },
264 | "parsermd": {
265 | "Package": "parsermd",
266 | "Version": "0.0.0.9000",
267 | "Source": "GitHub",
268 | "RemoteType": "github",
269 | "RemoteHost": "api.github.com",
270 | "RemoteUsername": "rundel",
271 | "RemoteRepo": "parsermd",
272 | "RemoteRef": "master",
273 | "RemoteSha": "6a8a895abb661d32dbd592ac4522d2a543226e3f",
274 | "Hash": "8859dc90c222a70fc8378d7558a47d32"
275 | },
276 | "pillar": {
277 | "Package": "pillar",
278 | "Version": "1.4.6",
279 | "Source": "Repository",
280 | "Repository": "CRAN",
281 | "Hash": "bdf26e55ccb7df3e49a490150277f002"
282 | },
283 | "pkgconfig": {
284 | "Package": "pkgconfig",
285 | "Version": "2.0.3",
286 | "Source": "Repository",
287 | "Repository": "CRAN",
288 | "Hash": "01f28d4278f15c76cddbea05899c5d6f"
289 | },
290 | "processx": {
291 | "Package": "processx",
292 | "Version": "3.4.5",
293 | "Source": "Repository",
294 | "Repository": "CRAN",
295 | "Hash": "22aab6098cb14edd0a5973a8438b569b"
296 | },
297 | "ps": {
298 | "Package": "ps",
299 | "Version": "1.5.0",
300 | "Source": "Repository",
301 | "Repository": "CRAN",
302 | "Hash": "ebaed51a03411fd5cfc1e12d9079b353"
303 | },
304 | "purrr": {
305 | "Package": "purrr",
306 | "Version": "0.3.4",
307 | "Source": "Repository",
308 | "Repository": "CRAN",
309 | "Hash": "97def703420c8ab10d8f0e6c72101e02"
310 | },
311 | "readr": {
312 | "Package": "readr",
313 | "Version": "1.4.0",
314 | "Source": "Repository",
315 | "Repository": "CRAN",
316 | "Hash": "2639976851f71f330264a9c9c3d43a61"
317 | },
318 | "rematch": {
319 | "Package": "rematch",
320 | "Version": "1.0.1",
321 | "Source": "Repository",
322 | "Repository": "CRAN",
323 | "Hash": "c66b930d20bb6d858cd18e1cebcfae5c"
324 | },
325 | "rematch2": {
326 | "Package": "rematch2",
327 | "Version": "2.1.2",
328 | "Source": "Repository",
329 | "Repository": "CRAN",
330 | "Hash": "76c9e04c712a05848ae7a23d2f170a40"
331 | },
332 | "renv": {
333 | "Package": "renv",
334 | "Version": "0.12.0",
335 | "Source": "Repository",
336 | "Repository": "CRAN",
337 | "Hash": "7340c71f46a0fd16506cfa804e224e44"
338 | },
339 | "rlang": {
340 | "Package": "rlang",
341 | "Version": "0.4.10",
342 | "Source": "Repository",
343 | "Repository": "CRAN",
344 | "Hash": "599df23c40a4fce9c7b4764f28c37857"
345 | },
346 | "rprojroot": {
347 | "Package": "rprojroot",
348 | "Version": "2.0.2",
349 | "Source": "Repository",
350 | "Repository": "CRAN",
351 | "Hash": "249d8cd1e74a8f6a26194a91b47f21d1"
352 | },
353 | "sys": {
354 | "Package": "sys",
355 | "Version": "3.4",
356 | "Source": "Repository",
357 | "Repository": "CRAN",
358 | "Hash": "b227d13e29222b4574486cfcbde077fa"
359 | },
360 | "tibble": {
361 | "Package": "tibble",
362 | "Version": "3.0.4",
363 | "Source": "Repository",
364 | "Repository": "CRAN",
365 | "Hash": "71dffd8544691c520dd8e41ed2d7e070"
366 | },
367 | "tidyr": {
368 | "Package": "tidyr",
369 | "Version": "1.1.2",
370 | "Source": "Repository",
371 | "Repository": "CRAN",
372 | "Hash": "c40b2d5824d829190f4b825f4496dfae"
373 | },
374 | "tidyselect": {
375 | "Package": "tidyselect",
376 | "Version": "1.1.0",
377 | "Source": "Repository",
378 | "Repository": "CRAN",
379 | "Hash": "6ea435c354e8448819627cf686f66e0a"
380 | },
381 | "utf8": {
382 | "Package": "utf8",
383 | "Version": "1.1.4",
384 | "Source": "Repository",
385 | "Repository": "CRAN",
386 | "Hash": "4a5081acfb7b81a572e4384a7aaf2af1"
387 | },
388 | "uuid": {
389 | "Package": "uuid",
390 | "Version": "0.1-4",
391 | "Source": "Repository",
392 | "Repository": "CRAN",
393 | "Hash": "e4169eb989a5d03ccb6b628cad1b1b50"
394 | },
395 | "vctrs": {
396 | "Package": "vctrs",
397 | "Version": "0.3.4",
398 | "Source": "Repository",
399 | "Repository": "RSPM",
400 | "Hash": "0bc90078aeee42f2520b1d0a33bd6758"
401 | },
402 | "withr": {
403 | "Package": "withr",
404 | "Version": "2.3.0",
405 | "Source": "Repository",
406 | "Repository": "CRAN",
407 | "Hash": "7307d79f58d1885b38c4f4f1a8cb19dd"
408 | },
409 | "yaml": {
410 | "Package": "yaml",
411 | "Version": "2.2.1",
412 | "Source": "Repository",
413 | "Repository": "CRAN",
414 | "Hash": "2826c5d9efb0a88f657c7a679c7106db"
415 | }
416 | }
417 | }
418 |
--------------------------------------------------------------------------------