↓ Skip to main content

Packrat presentation at useR! 2014

There comes a time in a software toolchain’s lifecycle where the focus shifts from developer productivity and preference to the ability to deploy solutions in production which coexist gracefully in the enterprise. Configuration management and dependency management are two of the first points of friction in this transition, as the free-wheeling methods preferred by developers are at odds with the structured methods and isolation desired by administrators, who serve as gatekeepers to enterprise deployment. R is currently at this very point in the transition, in the midst of transformation from a language and environment used primarily in academic research to its growing place in the enterprise. At useR! 2014 there were a series of presentations on how dependency management can be addressed within the R ecosystem, ranging from “provider” side options (e.g. freezing CRAN and private repositories) to the client side options, where a project maintains its own dependencies as part of its codebase.

In the video above, JJ Allaire and Kevin Ushey give a detailed presentation of Packrat at useR! 2014. Packrat is a client-side solution which allows a project to manage dependencies within its own directory tree. This is a tried and true approach, currently utilized in communities from Ruby to Perl. Packrat allows the developer to isolate projects from each other, even though they may share the same operating system image and physical hardware. This allows two separate projects to use completely different versions of the same library and coexist gracefully, an impossibility without such solutions. Packrat also allows for greater reproducibility, as underlying changes in system libraries will no longer impact the results of a run. Finally, packrat provides deployment portability by bundling all of an R application’s dependencies within the project, thereby freeing the DevOps group from having to build Puppet/Ansible/Chef code which installs R packages as a dependency for deploying a project.

I have adopted this package for all new R projects and have personally experienced greater peace of mind in knowing that in some small part, this approach makes the integration of my projects easier on the enterprise and helps make R a “well behaved” member of the enterprise toolchain. I hope you find similar benefits by using Packrat in your own work!

Rstudio's "Packrat" talk by J.J Allaire and Kevin Ushey
▶ Rstudio's "Packrat" talk by J.J Allaire and Kevin Ushey

Related

Shiny: R made interactive @ useR! 2014

At useR! 2014, one of the most anticipated presentations was Joe Cheng’s Shiny: R made interactive. It was but one of the of a fantastic series of talks by RStudio representatives; check out Winston Chang’s ggvis: Interactive graphics in R for another great talk. Shiny begins with your R code and ends with the customer’s view: an interactive, browser-accessible application. This enables you to place a great deal of power into your users’ hands to customize their view and provides a variety of new and innovative ways to interact with the data, such as by tuning parameters and focusing on sub-populations. Essentially, Shiny functions by allowing you to “wire up” up a reactive application, greatly speeding up the development of a data and analysis based web app.

JJ Allaire, the useR! 2014 interview

·2 mins
JJ Allaire has courageously bet, time and time again, on the cutting edge of technologies. In doing so, he has not only benefited from the fertile rains but has often times himself been the rainmaker. He has, to a great degree, democratized development on the web by bringing the power to create interactive web applications to a wider audience than those select few who had access to both a shell account and Unix knowledge. ColdFusion was a platform by the web and for the web, and its adoption revolutionized programming ‘for the web’ as its own worthy pursuit. This story also resolutely validates the idea that by creating tools for developers at the beginning of a time of revolutionary change in technology, one could not only validate the tools but also help stage the unfolding narrative as one with many participants.

A Conversation with Joe Cheng at useR! 2014

Joe Cheng is a software engineer. Unfortunately the term gets thrown around pretty lightly, so I’d like to make sure that I convey the appropriate amount of gravitas when I refer to him as such. Joe Cheng is a *great* Software Engineer. He has worked for some of the largest technology companies on the planet, building cutting edge tools which empowered the web browser as a full blown platform instead of a historical curiosity. Joe is one of those software engineers who saw a future with the web as a platform for modern software, then worked hard to make it a reality. When the time came to build the next generation of data science IDEs, an IDE targeting the web as a platform, RStudio called Joe.