Back from rstudio::conf(2020)

My talk, Q&A’s, and other conference experiences

Yihui Xie 2020-02-06

Wait a minute. I thought I just wrote the blog post “Back from rstudio::conf 2019” not long ago. A whole year has passed?! I cannot believe it has been so long since I wrote a blog post last time. In this post, I’ll share some experiences as well as the materials of my presentation at the conference.

My talk: One R Markdown document, fourteen demos

TL;DR You can download the R script I used in the talk here: 2020-rstudio-conf-rmarkdown-demo.R. Note that it will try to automatically install the required R packages and download files required for the demos. If you want to run the script by yourself, I suggest you run it in a new directory to avoid cluttering your current working directory. You can find the video of this talk on resources.rstudio.com.

I presented fourteen demos based on the same R Markdown document in my talk. The goal was to show that a relatively simple R Markdown document can generate a large variety of output document formats, some of which can look quite sophisticated.

The idea for this talk originally came from my remote talk for the 2019 RaukR summer school in Sweden, in which I presented a series of R Markdown demos to show the versatility of R Markdown, but I used different R Markdown documents in that talk. BTW, I also met the organizers Marcin Kierczak and Sebastian Dilorenzo at rstudio::conf this time, and we “complained” together about how little kids made it so difficult for their parents to travel. They also brought a T-shirt of the summer school to me all the way from Sweden, to which I was very grateful.

At JSM 2019, I gave another talk on the R Markdown ecosystem, and decided to use the same R Markdown document. I put all output formats in the YAML metadata, and clicked the Knit button 14 times during the talk, which was a little awkward, because I had to look closely at the output formats and think which one would be the next one to present. It was not easy to do this in front of the audience when the time for the talk is short (20 minutes).

This time I decided to automate it as much as possible, so I wouldn’t have to spend time on thinking about which output format to present next. With my experience at rstudio::conf(2018), I wrote an R script to automatically insert the output field into the R Markdown document in RStudio using xfun::rstudio_type(). With a for-loop iterating over all output formats, and a call to readline() at each step of the loop, I managed to present these output formats one by one. All I had to do was to keep pressing Enter, and the audience would see something like this being dynamically “typed” into my RStudio IDE:1

output:
  html_document:
    number_sections: true
    theme: journal
    toc: true

Again, you can find my R script at the beginning of this section. Keep in mind that it has to be executed in the RStudio IDE.

In retrospect, my tone in the talk was perhaps too disparaging on LaTeX, Word, PowerPoint, and LaTeX beamer. Here I want to apologize to whomever felt hurt by my silly comments (sometimes I have no idea what I’m talking about on the podium). I always say I’m tired of beamer slides, but beamer is actually extremely powerful. The only issue is that too many people use more or less the same beamer theme. I’d be equally tired of xaringan slides if I see the same theme over and over again.

Q&A’s on my talk

Due to the time limit, I wasn’t able to answer all questions on sli.do. Now I’ll answer them below, in case the askers are still interested.

Rob’s talk on how R Markdown changed his life

When I first saw the title of Rob’s talk last year, I felt the pressure for my own talk. If someone highly praised R Markdown in a previous talk, what should I talk about so I wouldn’t let the audience down?

I could also talk about how R Markdown changed my own life—it has made me incredibly busy day and night for years, and I could not eat or sleep. Just kidding. It did change my life. For example, it brought me a dream job at RStudio, and to some extent, its simplicity turned me to a minimalist.

You can find materials of Rob’s talk at http://robjhyndman.com/rmd2020. He reviewed the authoring tools that he had used since he was in kindergarten,2 which was a lot of fun because we could hear more and more people in the audience started to recognize those tools as he moved forward in his life path. He told me the night before in the California Academy of Sciences that he was going to show an old Twitter conversation between him and me in his talk, but I had no idea which one it was. Had I not seen his slide the next day, I’d have totally forgotten that tweet from 2012!

On his last slide, he showed a picture of me and thanked me. Of course, I felt touched. The funny fact is that the picture was from my very first talk about R Markdown in Seattle in 2014 (at Fred Hutch). If you search for my name with Google Images, this is the first image you get.

Many thanks to Rob for this very inspiring talk! I’ll think about the “maildown” package.

Book signing

There was a book signing event at the reception on Tuesday evening. It was the first time I had attended such an event. There was also one at rstudio::conf(2019), but somehow I didn’t find the place (apologies to those who might have waited for me there).

Max Held took a picture of the event, which happened to have me on it:

Signing books at rstudio::conf(2020)

Max said it was not a comic conference, yet there were so many people lined up for the books. I felt the same excitement. I really loved the conference, so much that I didn’t even care to go to see the Golden Gate Bridge during my stay in SF, although I had never really seen it.

I was in a hurry to drink my beer (kidding), so I became the first one to finish signing the 100 copies of books. Greg Dubrow was the 100th person coming to my table, and he got the last copy. Behind him was the poor Yue Jiang.

Sitting on my left hand side was JJ, the CEO and founder of RStudio. While I was signing the books, I overheard someone who apparently didn’t know him and asked him “Do you work for RStudio?”

Heh, heh, heh.

The CEO of RStudio

Some people I met

On my plane from Omaha to SFO, my neighbor glanced at my laptop screen and recognized the RStudio IDE. He told me he didn’t know much about R, but his wife was an R user. I didn’t tell him that I was going to rstudio::conf. However, two days later, my colleague said on Slack that someone asked him if there was an RStudio employee based in Omaha and met her husband on the plane. Huh! I didn’t know his wife was also attending this conference! In case any other R users in Omaha are reading this post, here is the link to the Omaha R User Group.

At the entrance of the California Academy of Sciences, I ran into Henrik Bengtsson, whom I had never met before (hence I didn’t recognize his face). Henrik has made many valuable contributions to the R community, and is also the unsung hero behind non-Sweave package vignettes in my eyes. If it were not for him, there wouldn’t be thousands of package vignettes on CRAN.

Inside the academy, I met many friends whom I hadn’t seen for a long while, such as Roger Peng, Hilary Parker, Jeff Leek, and Emily Robinson, etc. I didn’t know Jeff started to grow his beard! I forgot to take a picture, otherwise I’d consider adding it to the yolo = TRUE collection in xaringan. Emily was still such a kind, lovely, and inspiring soul.

When I returned to the hotel, I was caught by Theresa Henle in the lobby. She attended our R Markdown workshop, and is a very warm-hearted person. Soon we were joined by Carolina Johnson, Ellis Hughes, Jonathan Carroll, and Joshua Goldberg. Ellis was wearing his Halloween costume—a T-shirt with the default R Markdown example printed on it, which I had previously seen on Twitter, but it was fantastic to see it for real. Jonathan just put together the latest issue of R Weekly, which was still open in my browser because I hadn’t had a chance to read it at that time. We chatted in the lobby for quite a while, and I started to debate to myself whether I should go back to my room to prepare my talk for the next morning, since it was fairly late in the night (past 11:30pm, meaning 1:30am central time for me). I had finished writing that R script, but I hadn’t thought about the most important part of the talk—the jokes. Finally I covered Josh’s mouth to stop him from talking further, and ran off. Sorry, Josh! BTW, last year Josh encouraged me to write a non-technical book, and I definitely still remember it. Still no promises, but I think I’ll get there someday since I’m truly interested in writing such a book.

At the conference reception, I met three Japanese: kazutan (前田和寛), Uryu Shinya, and Kenta Yoshida. Kenta was in my R Markdown workshop. I think I have known kazutan for a number of years, but it was the first time I had met him in person. I feel Japanese are born comics. Even when they are in an English environment, they still demonstrate a sense of humor naturally through their face and gestures. I told them that sometimes I’d thumb through the slides of the Tokyo R User Group, and I felt the content was often deeply technical, which was surprising to me. For this conference, apparently they also had problems with English, just like Hiroaki Yutani did last year.

Ian Lyttle told me at the reception that he discovered a bug in rmarkdown but decided not to bother me and figured it out by himself. In this case, I wouldn’t mind a quick message, since that bug was simple enough to fix. Anyway, it was so very kind of him!

I still had a few emails that I didn’t manage to reply. As a result, I greeted some people with “Hey I’m sorry I haven’t replied your email!” That was what I did to Malcolm Barrett when I met him for the first time in front of his poster. I owe the same email debt to Brooke Anderson, and our Mine Çetinkaya-Rundel and Alison Hill.

I had struggled with an rmarkdown issue related to LaTeX that I was unable to reproduce for a long time. Fortunately, in the week before the conference, Jared Lander reported that he had the same problem, and he would attend the conference, too. Finally I could see the problem on someone’s computer for real. It turned out that we only had to update LaTeX packages in MiKTeX. Thanks, Jared, for letting me use your computer for three hours!!3

Not surprisingly, I met a couple of more conference attendees at the SFO airport on Friday morning. I could easily tell from their conference T-shirts. Actually one woman was right in front of me as we went through the security, and she recognized the “Markdown guy”. On my flight back to Omaha, I saw at least two other attendees on the same plane.

Naras and Literate Programming

I met Naras on the last day of the conference. He told me R Markdown also changed his life, as well as several other interesting things. One particularly interesting thing was that he actually published a paper in JSS in 1999(!) based on literate programming techniques. He deeply appreciated Knuth’s literate programming paradigm, and I absolutely agreed with him that (dynamically) composing a big chunk of code with smaller pieces of chunks was an undervalued idea. I also mentioned the advantages of literate programming in my article “Write An R Package Using Literate Programming Techniques”. I’m sure there are other papers written with this technique, but Naras’s paper is the earliest one to my current knowledge. I haven’t met many true fans of Knuth’s literate programming. Naras and Terry (Therneau) are the only two that I know.

Some frequently asked questions to me

In case anyone else is interested, I’m listing some FAQ’s below according to my experiences at the conference.

Final words

Emil Hvitfeldt has kindly put together a GitHub repo to collect all materials related to this conference. RStudio also has an official repo to do this, but it seems we forgot to promote it: https://github.com/rstudio/rstudio-conf.

I’d like to thank the TAs of our R Markdown workshop for their help over the two days, including Hadrien (who also wrote a useful post on customizing CSS later), Melanie, Adi, and Jiena. I also want to thank my co-instructor Carl, who did most of the work at the workshop and made my (teaching) job much easier. Many thanks to my RStudio colleagues, who have made a lot of effort to make this conference a success. Every time I go to this conference, I feel very much inspired by the attendees. Thank you all for your encouragement and kind words! I’m especially glad to see that people like Leonardo Collado-Torres started to follow Emily’s call to become sponsors. At the same time, I also feel proud that RStudio has become a Public Benefit Corporation.

Lastly, if anyone is going to the useR! conference this year, I’ll be happy to meet you in St. Louis in July! I’ll do a tutorial there, and hopefully also a talk. If things (I mean, kids, of course) go well, I’ll also go to rstudio::conf(2021) in Orlando FL.


  1. If you are curious about how the “typing effect” was implemented in this blog post, view its HTML source and look for the JS code below the <pre> tag. ↩︎

  2. Well, I don’t know if he started using computers in kindergarten, but he did have a cute and handsome picture of himself at that time. ↩︎

  3. It didn’t take me three hours to figure out the solution. I was mainly chatting with passersby as I was updating the packages, and the WiFi was fairly slow. ↩︎