background-image: url(slides_files/cover.png) background-size: cover ??? --- background-image: url(slides_files/board_alpha_banner.png) background-position: top background-size: contain # Hello, SLC! 👋 .pull-left[ <br><br> <img src="slides_files/avatar.png" height="220px"/> [
@katieontheridge](http://twitter.com/katieontheridge) [
@kmasiello](http://github.com/kmasiello) [
kmasiello.rbind.io](https://kmasiello.rbind.io) ] .column-right[ <br> #We have things in common! We love: 🏔 Mountains <br> 🏞️ Nature <br> ☕ Coffee <br><br> 📍I bet you'll love pins too ] --- background-image: url(slides_files/board_alpha_banner.png) background-position: bottom background-size: contain layout: true --- # What are <img src="slides_files/pins.png" height="90px" style="vertical-align:middle"/> ? > The [pins package](pins.rstudio.com) publishes data, models, and other R objects, making it easy to share them across projects and with your colleagues. -- <br> **On:** RStudio Connect, Github, Dropbox, S3 bucket, Azure blob storage, OneDrive, Sharepoint... **This includes:** data frames, models, .rds objects, JSON, feather files... -- .center[<img src="slides_files/pickle.gif" height=250px>] --- layout: false background-image: url(slides_files/board_alpha_side.png) background-position: left background-size: contain .left-column-impact[ .impactNum[5]<br> .impactText[signs you might want a pin] ] .right-column[ <br><br><br><br> * Do you rely on `read_csv()` to bring in emailed data? 🙋 * Have you lost track of what version is which? *Was it* `dataFINALfinal.csv` *or* `dataFINALv2.csv`? 🤔 * Do you need to reuse the same data or object across multiple projects or with other people? 👈 * Are you redeploying your app every time the supporting data is updated? 😱 * *"Ick — this workflow! There's got to be a better way!"* ] --- background-image: url(slides_files/board_alpha_side.png) background-position: right background-size: contain .right-column-impact[ .impactText[ What makes a .larger[good pin?] ] ] .left-column-wide[ <br><br><br><br><br> * Not *too* big — a few hundred megabytes is plenty (though I've been known to push it 😉) <br> 👉 if it's too big for Excel, it's too big for a pin * Ephemeral data or reference tables that don't merit being in a database * Something that needs to be shared or reused * Something that can be programatically regenerated ] --- background-image: url(slides_files/board_alpha_banner.png) background-position: bottom background-size: contain layout: true --- background-image: url(slides_files/howitworks.png) background-position: 20% 75% background-size: contain # How it works --- # Let's give it a try ```r library(pins) #local board (board1 <- board_local()) # Pin board <pins_board_folder> # Path: '~/Library/Application Support/pins' #write some pins board1 %>% pin_write(mtcars) board1 %>% pin_write(palmerpenguins::penguins, name = "penguins", versioned = TRUE) #what pins do we have? board1 %>% pin_list() # [1] "faithful" "mtcars" "penguins" #read a pin board1 %>% pin_read("mtcars") #list versions board1 %>% pin_versions("penguins") # A tibble: 2 × 3 # version created hash # <chr> <dttm> <chr> # 1 20211207T005403Z-84255 2021-12-06 16:54:00 84255 # 2 20211207T005855Z-84255 2021-12-06 16:58:00 84255 ``` --- #Now you try ```r library(pins) # My content is shared here board <- board_url(c("penguins" = "https://colorado.rstudio.com/rsc/example_pin/")) # Read the data pin_read(board, "penguins") ``` ### 🐧 : preview the pin at https://colorado.rstudio.com/rsc/example_pin/ --- layout: false class: inverse, center, middle # Pins In Real Life -- ## (or, how pins can make you feel like a rockstar 🤩) -- ## .smaller[(or at least supercharge your workflow)] --- background-image: url(slides_files/board_alpha_banner.png) background-position: bottom background-size: contain layout: true --- # Schedule updates to your pin 💪 Updates happen outside of the Shiny process 💪 Dashboard users have fresh data without waiting for the ETL <img src="slides_files/irl-scheduled.png"> --- # Pin model versions 💪 Make models accessible for downstream consumption <img src="slides_files/irl-model.png"> --- # Miscellanea * [Access controls](https://docs.rstudio.com/connect/user/content-settings/#content-access) on RStudio Connect * [Versioning](https://pins.rstudio.com/articles/pins.html#versioning-1) * ModelOps with [`vetiver`](https://vetiver.tidymodels.org/) * [Metadata](https://pins.rstudio.com/articles/pins.html#metadata-1) * pin types: rds, qs, arrow, csv, json * `pin_write()` & `pin_read()` vs [`pin_upload()` & `pin_download()`](https://pins.rstudio.com/articles/pins.html#reading-and-writing-files-1) --- layout: false class: inverse, middle # Thank you! #👉 Let's talk about it! ## What are your thoughts and questions?