Entering and Exiting 2018

The year is nearly over and it is the time for reflection and navel-gazing. Idon’t have incredibly profound things to say, but a lot of things happened in2018 and this is as good a time as any to go through it all…

Picking Myself Up

The prospects of my “2017 in review”post were not particularly rosy… I had hit somewhat of a burnout in terms ofprogramming, but was none the less positive and had a great job and a lot ofpositive feedback on patchwork.Further, I had RStudio::conf to look forward to, which would be my first IRLhead-to-head with the R community at large. I had also promised to present afully-fledged tidy approach to network analysis and while bothggraph andtidygraph had already been releasedthere were things I wanted to develop prior to presenting it. All-in-all therewas a great impediment to pick myself up and get on with developing (not arguingthat this is a fail-safe way to deal with burnout by the way).

RStudio::conf(2018L)

My trip to San Diego was amazing. If you ever get to go to an RStudio conferenceI don’t think you will be disappointed (full disclosure and spoiler-alert: I nowwork for RStudio). My suspicion that the R community is as amazing in real lifeas on Twitter was confirmed and it was great to finally get to see all thosepeople I admire and look up to. My talk went fairly well I think — I haven’twatched the recordings as I don’t particularly enjoy watching myself talk,but you can,if you are so inclined. At the conference I got to chat a bit with Jenny Bryan(one of the admire/look-up-to people referenced above) and we discussed what wewere going to talk about in our respective keynotes at useR in Brisbane in thesummer. I half-jokingly said that I might talk about gganimatebecause that would give me the required push to actually begin developing it…

Talk-Driven Development

Around April Dianne Cook was getting pushy with getting at least a talk titlefor my keynote, and at that point I had already imagined a couple of slides ongganimate and thought “to heck-with-it” and responded with the daunting title ofThe Grammar of Animation. At that point I had still not written a single lineof code for gganimate, and knew that tweenrwould need a serious update to support what I had in mind. In addition, I knewI had to develop what ended up as transformrbefore I could begin with gganimate proper. All-in-all my talk title could notbe more stress-inducing…

Thankfully I had a pretty clear vision in my head (which was also why I wantedto talk about it) so the motivation was there to drag me along for the ride.Another great benefit of developing tools for data visualisation in general andanimation in particular, is that it sets Twitter on fire. After getting tweenrand transformr into a shape sufficient to support gganimate, I began to createthe backbone of the package, and once I shared the first animation created withit, it was clear that I was in the pursuit of something that resonated with alot of people.

To my great surprise I was able to get gganimate to a state where it actuallysupported the main grammar I had in mind prior useR, and I could begin to makethe presentation I had in mind:

useR was a great experience, not only because I was able to give the talk I hadhoped for, but also due to the greatness of the organisers and the attendees. Iwas able to get to meet a lot of the members of R Core for the first time andthey were very supportive of my quest to improve the performance of the Rgraphic stack (last slide of my talk), so I had high hopes that this might beachievable within the next 5-10 years (it is no small task). I had beensurprised about the support for my ideas about animations and their relevancewithin the R community, so in general the conference left my invigorated andwith the stamina to complete gganimate.

Intermezzo

I managed to release a couple of packages that do not fit into the narrative I’mtrying to create for this year, but they deserve a mention none the less.

In the beginning of the year I was able to finish ofparticles, a port and extension of thed3-force algorithm developed by Mike Bostock. It can be used for both great funand work and did among other things result in this beautiful pixel-decompositionof Hadley:

While making improvements to tweenr in anticipation of gganimate it became clearthat colour conversion was a main bottleneck and I ended up developingfarver to improve on this. Beyond veryfast colour conversion it also allow a range of different colour distancecalculations to be performed. Some of the discussion that followed thedevelopment of ths package led to Brodie Gaslam improving the colour conversionperformance in base R and while it is not as fast as farver, it is pretty closeand future versions of R will definetly benefit from his great contribution.

I haven’t had much time to make generative art this year, but I did manage tofind time for some infrastructure work that will support my endavours in thisspace in the future. The ambient packageis able to produce all sorts of multidimensional noise in a very performant waydue to the speed of the underlying C++ library. I’m planning to expand on thispackage quite a bit when I get the time as I have lots of cool ideas for how tomanipulate noise in a tidy manner.

How you use colours in data visualisation is extremely important, which is alsowhy the data visualisation community has embraced the viridis colour scale tothe extend that they have. I’ve personally grown tired of the aesthetic though,so when I saw a range of perceptualy uniform palettes developed by Fabio Crameriwas quick to bring it to R with the scicopackage. To my surprise the development of a colour palette packages became mymost contentious contribution this year (that I know of), so I welcome everyonewho is tired of colour palette packages to ignore it alltogether.

transition_hobby_work()

Prior to useR I had began to receives some cryptic questions from Hadley and itwas clear that he was either trolling my or that something was brewing. Duringthe late summer it became clear that it was the latter (thankfully), as RStudiowanted me to work full time on improving the R graphic stack. Working forRStudio on something so aligned with my own interest is beyond what I had hopedfor, so despite my joy in working for the danish tax authorities the switch wasa no-brainer. I wish my former office all the best — they are doing incrediblework – and look forward to seeing some of them at RStudio conf in Austin laterin the month.

Being part of the tidyverse team has so far been a great experience. I’ve beenlucky enough to meet several of them already as part of the differentconferences I attended this year, so working remotely with them doesn’t feelthat strange. It can be intimidating to work with such a talented team, but ifthat is the least of my concerns I’m pretty sure I can manage that.

I look forward to share the performance improvements I’m making with all of youthroughout the coming years, and hopefully I’ll have time to also improve onsome of my packages that has received less attention during the development ofgganimate.

Happy New Year!

Related