# rstudio::conf 2020 Review: Part 3

All talks can be found here: https://resources.rstudio.com/rstudio-conf-2020. I’ve picked 30 talks in total, so will split them into 3 parts with 10 talks each.

Part 1 is here

Part 2 is here

Talk by Lionel about the tension that exists between interactive and programmatic uses of functions with tidyeval. One major point in his talk and other talks from tidyverse team is movement of rlang to lower and lower levels, meaning that if you are using !! and rlang::quo, then you need to learn quite a bit to use them correctly. However, if you are “regular” useR, then you might be able to get by with {{ and .data/.env instead. This reflects the gradual nature of replacing user-facing features of tidyeval with higher and higher abstractions that should make lives of R programmers easier.

With recent MS acquisition of GitHub, they are continuing the “embrace” stage of their strategy. What GitHub Actions allows you to do is to run your builds on multiple platforms at the same time (macOS, Windows and multiple flavors of Linux). Both Circle CI and Travis CI didn’t allow for this flexibility, so you’d include Appveyor to just run your stuff on Windows. With GH Actions you eliminate all of this overhead AND you get multiple concurrent jobs for free (for academic, open source work at least). Sounds too good to be true, right? Well, let’s see in couple of years if it is still as good as it is now.

But regardless of what will happen down the line, usethis already ships with all the machinery you need to setup your package on GH, so you could start using GH actions with just few commands.

The talk is not so much about asynchronous programming as it is about later package that, e.g., shiny uses to do all the reactive stuff we all love about it. So if you are doing something like this (or parallelism, threading, etc.) - definitely take a look at later and this talk.

Entertaining talk about how to create your own S3 class using vctrs package. vctrs provides you with robust framework and a path to follow if you want to have S3 class that has lots of useful properties: coercing, comparison, conversion etc. There are also couple of GH repos where this process is delineated even more clearly, so if you are thinking about creating your own S3 class, give vctrs and this talk a go.

If you are thinking about doing async, parallel or distributed processing in R, then you should use future. In my experience, there is no other package that does as much and as feature-rich. In this talk Henrik mentioned that warnings and messages will now pass through futures and (the moment everyone waited for) you now have ability to have progress bars! And you could do use beepr to add sound! Awesome stuff, as usual.

Fast overview of logger package that actually convinced me to take a much closer look at it. Last time I checked it out, it was pretty bare-bones, but Gergely added bunch of very useful functionality (e.g., tracking all input variables in Shiny app), so could be a good fit for some of the projects.

Main point of the talk: be lazy. Well, not exactly like that, but that’s an important thing to keep in mind when working on a project. Make life of future you as worry-free as possible by structuring your code, improving readability and being more consistent overall.

Nifty package that allows you to share your R session with multiple users interactively. It’s just a beginning for this package, but it already can do quite a few things.

pins package allows to offload handling of remote resources to that package. What that means is that you can “pin” remote dataset and pins will figure out if you already downloaded this package and use local version instead. This concept works other way around since you can share your dataset with others and package will take care of uploading it to the board.

Another relatively obscure, but potentially incredibly useful feature of RStudio - you can create a template for new projects and share it in your organization. If there is information that absolutely every project should have then with this you can make sure that people won’t forget a) what they need to add and b) actually do it.