{"id":15890,"date":"2018-02-08T14:56:00","date_gmt":"2018-02-08T22:56:00","guid":{"rendered":"https:\/\/devwww.3cloudsolutions.com\/post\/recap-of-rstudioconf2018-2\/"},"modified":"2024-06-18T08:57:06","modified_gmt":"2024-06-18T15:57:06","slug":"recap-of-rstudioconf2018","status":"publish","type":"post","link":"https:\/\/3cloudsolutions.com\/resources\/recap-of-rstudioconf2018\/","title":{"rendered":"Recap of rstudio::conf(2018)"},"content":{"rendered":"<p><span style=\"background-color: transparent;\">From January 31<sup>st<\/sup>\u00a0<\/span><span style=\"background-color: transparent;\">through February 3<sup>rd<\/sup><\/span><span style=\"background-color: transparent;\">, <\/span><a style=\"background-color: transparent;\" href=\"\/blog\/author\/andy-lathrop\" target=\"_blank\" rel=\"noopener\">Andy Lathrop<\/a><span style=\"background-color: transparent;\"> and I attended rstudio::conf 2018. The conference offered two days of training events and two days of actual conference activities and was a lot of fun. Hosted at the beautiful Manchester Grand Hyatt right on the San Diego harbor, the convention included lots of different talks covering an array of subjects for all skill levels. Couldn&#8217;t attend? Don&#8217;t worry, I&#8217;ll recap the best parts for you.<\/span><\/p>\n<p><!--more--><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" style=\"width: 229px;\" title=\"IMG_0340.jpg\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/IMG_0340.jpg\" alt=\"rstudio::conf 2018\" width=\"229\" \/>\u00a0<img decoding=\"async\" style=\"width: 443px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/rstudio-opener-1.png\" alt=\"rstudio opener.png\" width=\"443\" \/><br \/>\n<span style=\"background-color: transparent;\">Next\u00a0<\/span><span style=\"background-color: transparent;\">year&#8217;s conference will be in Austin, Texas, January 15-18, 2019.<\/span><\/p>\n<h2>About RStudio<\/h2>\n<p>This section is mainly for the non-R readers in our midst. <a href=\"https:\/\/www.rstudio.com\/\">RStudio<\/a>,\u00a0located in Boston, is a tech company founded by <a href=\"https:\/\/github.com\/jjallaire\" target=\"_blank\" rel=\"noopener\">J.J. Allaire<\/a>, an acclaimed software engineer and entrepreneur.\u00a0<a href=\"https:\/\/www.rstudio.com\/products\/rstudio\/#Desktop\" target=\"_blank\" rel=\"noopener\">RStudio Desktop<\/a> is the company&#8217;s flagship product and is the most popular R integrated development environment (IDE) software, used by data scientists and statisticians across the planet. It allows for users to write code, see objects in the coding environment, view plots and tables, and more.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/rstudio.png\" alt=\"About RStudio\" width=\"680\" height=\"458\" \/><span style=\"background-color: transparent;\">At the conference, one talk covered the enhancements to the software in version 1.1.\u00a0<\/span><span style=\"background-color: transparent;\">Highlights included:<\/span><\/p>\n<ul>\n<li><strong>Connections tab:<\/strong> Allows the user to connect to, explore, and view data in a variety of databases.<\/li>\n<li><strong>Terminal tab:<\/strong> Provides shell integration within the IDE so that users can now execute terminal commands without leaving the program.<\/li>\n<li><strong>Object explorer enhancements: <\/strong>Easily\u00a0navigate deeply nested R data structures such as complex lists and S3 objects.<\/li>\n<li><strong>UI enhancements:<\/strong> Two new UI themes are available (a modern, flat theme and a dark theme), as well as\u00a0Retina-quality icons throughout.<\/li>\n<\/ul>\n<p style=\"text-align: right;\">For more information on the 1.1 enhancements, see the <a href=\"https:\/\/blog.rstudio.com\/2017\/10\/09\/rstudio-v1.1-released\/\" target=\"_blank\" rel=\"noopener\">RStudio Blog<\/a>.<\/p>\n<p>In addition to RStudio Desktop, the company also has an array of other products, such as:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.rstudio.com\/products\/rstudio\/#Server\" target=\"_blank\" rel=\"noopener\">RStudio Server<\/a> &#8211; A browser-based IDE useful for centralizing access and computation across an organization.<\/li>\n<li><a href=\"https:\/\/www.rstudio.com\/products\/shiny\/\" target=\"_blank\" rel=\"noopener\">Shiny<\/a> and <a href=\"https:\/\/www.rstudio.com\/products\/shiny-server-pro\/\">Shiny Server Pro<\/a>\u00a0&#8211; Software that\u00a0provides an elegant and powerful web framework for building web applications using R.<\/li>\n<li><a href=\"https:\/\/www.rstudio.com\/products\/connect\/\">RStudio Connect<\/a> &#8211;\u00a0\u00a0A new publishing platform to share Shiny applications, R Markdown reports, <a href=\"https:\/\/www.rplumber.io\/\">plumber<\/a>\u00a0APIs, dashboards, plots, and more in one convenient place.<\/li>\n<\/ul>\n<p style=\"text-align: left;\">Many of RStudio&#8217;s products are open source (AGPL v3), but offer commercial licenses with additional features. Check out <a href=\"https:\/\/www.rstudio.com\/products\/\" target=\"_blank\" rel=\"noopener\">the website<\/a> for more information.<\/p>\n<h2>All Things Shiny<\/h2>\n<p>Many of the sessions at the event centered around <a href=\"https:\/\/www.rstudio.com\/products\/shiny\/\" target=\"_blank\" rel=\"noopener\">Shiny<\/a>, a web application development framework for R. Without any knowledge of HTML or CSS, R programmers can create interactive web pages for analyzing data or showing results. At the conference, there were many sessions around designing amazing Shiny dashboards, using API&#8217;s with the <a href=\"https:\/\/www.rplumber.io\/\">plumber<\/a>\u00a0and Shiny to ingest and return data, and even returning results in real-time of machine learning model training.<\/p>\n<table style=\"margin-left: auto; margin-right: auto;\">\n<tbody>\n<tr>\n<td><img decoding=\"async\" style=\"width: 275px;\" title=\"shiny example.png\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/shiny-example-1.png\" alt=\"mapping\" width=\"275\" \/><\/td>\n<td><img decoding=\"async\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/shiny.png\" alt=\"Shiny\" \/><\/td>\n<td style=\"text-align: center;\"><img decoding=\"async\" style=\"width: 275px;\" title=\"shiny example 2.png\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/shiny-example-2-1.png\" alt=\"machine learning\" width=\"275\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"text-align: left; background-color: transparent;\"><br \/>\nI have used Shiny in the past and I must admit that it makes some really nice web apps. So, I&#8217;m excited to see the versatility in the platform grow!<\/span><\/p>\n<p style=\"text-align: right;\">See the <a href=\"http:\/\/shiny.rstudio.com\/gallery\/\" target=\"_blank\" rel=\"noopener\">Shiny Gallery<\/a> for great examples.<\/p>\n<h2 style=\"text-align: left;\">Keeping it Tidy<\/h2>\n<p style=\"text-align: left;\">Another big theme at the conference was the <a href=\"https:\/\/www.tidyverse.org\/\">tidyverse<\/a>. Originally philosophized by <a href=\"http:\/\/hadley.nz\/\" target=\"_blank\" rel=\"noopener\">Hadley Wickham<\/a>, RStudio&#8217;s Chief Scientist, the tidyverse is a set of packages that\u00a0share an underlying design philosophy, grammar, and data structures.\u00a0Hadley&#8217;s one-sentence definition of tidy is &#8220;Every column is variable, every variable is a column, and every row is an observation.&#8221; This attempts to standardize how R functions and packages are written so that each package can work together harmoniously. It was great to see other developers (outside of RStudio) publishing and sharing packages that follow these design practices. I attended multiple sessions where developers were presenting their work and demonstrating the interoperability with the tidyverse library.<\/p>\n<p style=\"text-align: left;\"><img decoding=\"async\" style=\"width: 200px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/tidyverse-600x693.png\" alt=\"tidyverse\" width=\"200\" \/><\/p>\n<p style=\"text-align: right;\">Visit the <a href=\"https:\/\/www.tidyverse.org\/\">tidyverse website<\/a> to learn more.<span style=\"background-color: transparent;\">\u00a0<\/span><\/p>\n<p style=\"text-align: left;\">Prior to the actual conference beginning, a couple hundred of us attended a training session called &#8220;Extending the tidyverse&#8221;. This session covered some really useful packages for creating a package of your own, testing your packages, and documenting with ease. This really served as a\u00a0nice walkthrough of the end-to-end process of making a tidy-compliant package in R.<\/p>\n<p style=\"text-align: left;\">Some big takeaways:<\/p>\n<ul style=\"text-align: center;\">\n<li style=\"text-align: left;\">The <a href=\"https:\/\/github.com\/r-lib\/usethis\"><em>usethis<\/em><\/a> package and R Project files make life easy when you want to make a package.\n<ul>\n<li style=\"text-align: left;\">This creates all the files necessary for publishing a package such as <em>NAMESPACE<\/em>, <em>DESCRIPTION<\/em>, <em>LICENSE<\/em>, etc. and an .Rproj file for your code.<\/li>\n<li><code>usethis::create_package(\"~\/Documents\/mynewpackage\")<\/code><\/li>\n<\/ul>\n<\/li>\n<li style=\"text-align: left;\">Test your code with <a href=\"http:\/\/testthat.r-lib.org\/\" target=\"_blank\" rel=\"noopener\"><em>testthat<\/em><\/a> to make sure your functions give you what you expect.\n<ul>\n<li style=\"text-align: left;\">Automatically create test files that correspond to each of your functions.<\/li>\n<li style=\"text-align: left;\"><code>usethis::use_test(\"myfunction\")<\/code><\/li>\n<li style=\"text-align: left;\"><code>devtools::test()<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul style=\"text-align: center;\">\n<li style=\"text-align: left;\">The <em><a href=\"http:\/\/purrr.tidyverse.org\/\">purrr<\/a>\u00a0<\/em>package is nice for handling redundant function needs and you can ensure stuff won&#8217;t fail.\n<ul>\n<li style=\"text-align: left;\"><code>purrr::map(input, function)<\/code><\/li>\n<li style=\"text-align: left;\"><code>purrr::safely(function)<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul style=\"text-align: center;\">\n<li style=\"text-align: left;\">We all know documentation is important. With <a href=\"https:\/\/github.com\/klutometis\/roxygen\" target=\"_blank\" rel=\"noopener\"><em>roxygen2<\/em><\/a>, documentation is as easy as using a special comment.\n<ul>\n<li style=\"text-align: left;\"><code>#' My header goes here.<\/code><br \/>\n<code>#'<\/code><br \/>\n<code>#' Some text will go here...<\/code><br \/>\n<code>#'<\/code><br \/>\n<code>#' @param var1 Explanation of var1\u00a0<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align: right;\"><span style=\"display: inline !important; float: none; background-color: transparent; color: #36363e; font-family: 'Open Sans',sans-serif; font-size: 33px; font-style: normal; font-variant: normal; font-weight: 300; letter-spacing: normal; line-height: 40.26px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\"><span style=\"display: inline !important; float: none; background-color: transparent; color: #36363e; font-family: 'Open Sans',sans-serif; font-size: 17px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\">For further reading, check out the <\/span><a style=\"background-attachment: scroll; background-clip: border-box; background-color: transparent; background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; box-sizing: border-box; color: #007dc3; font-family: ' open sans',sans-serif; font-size: 17px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: underline; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\" href=\"http:\/\/r-pkgs.had.co.nz\/\" target=\"_blank\" rel=\"noopener\">R Packages book<\/a><span style=\"display: inline !important; float: none; background-color: transparent; color: #36363e; font-family: 'Open Sans',sans-serif; font-size: 17px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\"> by Hadley Wickham.<\/span><\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"display: inline !important; float: none; background-color: transparent; color: #36363e; font-family: 'Open Sans',sans-serif; font-size: 33px; font-style: normal; font-variant: normal; font-weight: 300; letter-spacing: normal; line-height: 40.26px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\">Deep Learning with R<\/span><\/p>\n<p style=\"text-align: left;\">The keynote on day 2 of the conference was given by J.J. Allaire. He and other developers have created the Keras, Estimator, and Core APIs for R, which open the door for deep learning using TensorFlow. For those of you who are unfamiliar, <a href=\"https:\/\/www.tensorflow.org\/\" target=\"_blank\" rel=\"noopener\">TensorFlow<\/a> is an\u00a0open-source machine learning\/computational framework (initially developed at Google) and <a href=\"https:\/\/keras.io\/\" target=\"_blank\" rel=\"noopener\">Keras<\/a> is a high-level interface into many deep-learning frameworks (including TensorFlow, the <a href=\"https:\/\/docs.microsoft.com\/en-us\/cognitive-toolkit\/\" target=\"_blank\" rel=\"noopener\">Microsoft Cognitive Toolkit<\/a>, and <a href=\"http:\/\/www.deeplearning.net\/software\/theano\/\" target=\"_blank\" rel=\"noopener\">Theano<\/a>). However, Keras was originally written as a Python library. Using the <a href=\"https:\/\/tensorflow.rstudio.com\/\" target=\"_blank\" rel=\"noopener\">R Interface to TensorFlow<\/a> from RStudio, R developers can train complex neural networks and other machine learning models with ease.<\/p>\n<table style=\"margin-left: auto; margin-right: auto;\">\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/RStudio-Logo.png\" alt=\"RStudio-Logo.png\" width=\"392\" height=\"146\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/keras-logo.png\" alt=\"keras-logo.png\" width=\"345\" height=\"114\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/tensorflow-1.png\" alt=\"tensorflow-.png\" width=\"328\" height=\"61\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: left;\"><span style=\"background-color: transparent;\"><br \/>\nYes, you read that correctly &#8212; R &amp; deep learning in the same sentence? No, R is still a single-threaded, memory\/CPU-based language, which typically isn&#8217;t conducive to deep learning. However, R is a great interfacing language that can connect to other environments like a charm. So, this new package simply operates as the liaison between R and TensorFlow. If you don&#8217;t have multiple GPU&#8217;s in your desktop workstation, fear not! The keynote also demonstrated the ease of use by writing the R training script locally and then deploying it out to a cloud platform to use pay-as-you-go GPU&#8217;s for faster training of complex models. Personally, I find this exciting as it opens up R to be more commonly used in large-scale machine learning projects than ever before.<\/span><\/p>\n<p style=\"text-align: right;\">To learn more about the Keras package for R, see the <a href=\"https:\/\/keras.rstudio.com\/\" target=\"_blank\" rel=\"noopener\">RStudio documentation<\/a>.<\/p>\n<h2 style=\"text-align: left;\">It&#8217;s Really All About Stickers<\/h2>\n<p style=\"text-align: left;\">The data science equivalent of collecting Pok\u00e9mon cards is collecting hex stickers. These are the stickerized versions of the\u00a0logos for many of our favorite R packages. These stickers often find their home on the laptops of developers as a pseudo-status symbol in the R community. At the conference, it was almost a competition as to who could find and collect the most hex stickers. Even the RStudio employees were making riddles to hint to their sticker hiding places.<\/p>\n<p style=\"text-align: left;\">I&#8217;d say I ended up with a pretty decent collection:<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/11\/stickers.png\" alt=\"stickers.png\" width=\"680\" height=\"387\" \/><\/p>\n<h2 style=\"text-align: left;\">Resources<\/h2>\n<p style=\"text-align: left;\">Special thanks to <a href=\"https:\/\/github.com\/simecek\" target=\"_blank\" rel=\"noopener\">Petr Simecek<\/a> for curating the rstudio::conf 2018 resources. You can view his GitHub repository for all the links <a href=\"https:\/\/github.com\/simecek\/RStudioConf2018Slides\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p style=\"text-align: left;\">Want to learn more about how BlueGranite can help solve your organization&#8217;s advanced analytics challenges? <a href=\"\/contact-us\" target=\"_blank\" rel=\"noopener\">Contact\u00a0us<\/a> today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A recap of the 2018 RStudio Conference. R package creation, testing, and Shiny development.<\/p>\n","protected":false},"author":21,"featured_media":14475,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[395,260],"tags":[323,319],"class_list":["post-15890","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-science-ai","category-data-ai","tag-data-science","tag-machine-learning-ai","topics-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/comments?post=15890"}],"version-history":[{"count":0,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15890\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media\/14475"}],"wp:attachment":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media?parent=15890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/categories?post=15890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/tags?post=15890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}