Shiny Contest 2019

“Do you think it’s dangerous to have Busby Berkeley dreams?”  Busby Berkeley Dreams, The Magnetic Fields

This is a blog post I didn’t think I’d be writing, but I won the award for Best Design in the inaugural Shiny Contest, so I’m here to share some more thoughts on the experience.

A month ago (on the 3rd March) I submitted a Shiny app - A Lyrical Analysis of the Magnetic Fields’ album ‘69 Love Songs’ - into the first Shiny Contest run by RStudio. You can find my blog post covering the whole process here. To say I’m amazed to have won an award would be an understatement. Based on all the amazing entries by super-talented developers I can’t believe that the judges, Mine Çetinkaya-Rundel and Joe Cheng, picked out my app for one of the 4 Winners awards.

What have you got to lose?

I think the main purpose of this post is to encourage anyone who reads this to put your work out there! Be it a blog post, a visualisation posted on Twitter, or an entry into a competition. Two weeks out from the competition deadline I still wasn’t sure if I would make a submission. I’ve only been using R on a regular basis for about a year, and didn’t start learning Shiny until the end of last year. I thought there was no way I could compete with more seasoned R/Shiny programmers. Ultimately, having the hard deadline of a competition gave me the motivation I needed to revisit a half-finished piece of analysis, develop further my Shiny skills, and complete an app. I was proud of what I had achieved in just a short amount of time, so I thought where’s the danger in entering the competition? Let’s dream big!

Explore a subject you love

I work on R in my own time outside of my day job. I find analysing data that interests me is one of the best ways to stay motivated and continue learning. Having a topic to explore that I really love helped me to remain focussed and finish the app. It can be frustrating learning a new tool/technique, but by putting it into practice using a subject that you’re passionate about can really help push you over the line. I spent several nights struggling with CSS and HTML to customise the appearance of the app, but I was committed to presenting the app in a certain way and those hours spent trawling Stack Overflow posts feels vindicated by the judges comments:

“You don’t have to be a fan of the Magnetic Fields to appreciate the care and attention to detail that went into each panel!”

And that’s another thing - it doesn’t matter how niche the subject is, hopefully people will still appreciate it.

Go with the flow

When I began learning R in earnest just over a year ago it was with the intention of developing my statistical and predictive modelling skills, but here I am making an interactive web app. There are so many avenues to explore in the world of Data Science that I am sometimes at a loss as to where to go next. However, I’ve learnt to just go with the flow and move on to things that seem a natural progression based on my interests and what I’ve liked from previous learning. For example, after learning some Base R I quickly gravitated towards the tidyverse where I discovered a real love of creating quality graphics with ggplot2. This has led to a wider appreciation of data visualisation in general and it is something I’m conitnually looking to develop. Shiny then seemed like a natural progression into the world of interactive data visualisation. I’m planning to learn some D3 soon as the next step in my data viz journey, but I have returned to my statistical roots this year and have particularly enjoyed the ModernDive approach to statistical inference with the infer package.

My Oscars Acceptance Speech

Before the band kicks in, I’d like to thank the amazing R community as I’m all too aware that I am not working in isolation, despite it feeling like that sometimes. I spoke about it at length in this post, but the #TidyTuesday project has been instrumental in bridging between learning new techniques and actually implementing them in real-life projects, and it has given me the confidence to undertake bigger projects like this one.

There are so many amazing (and free) resources out there and so many talented people building packages to help you achieve your goals. I think I captured all of the packages I used on the Intro page of the app, but I want to also mention the genius package by Josiah Parry which really helped get the ball rolling on this project. Although I didn’t use the package in the end, it did aid immensely in my scraping of the lyrics from genius.com. The genius package can do all the scraping for you (and I will definitely be using it next time), but I decided to soldier on with my own scraping script (whilst lovingly lifting parts of Josiah’s code) so I could get a better understanding of web-scraping with R and the rvest package. Thanks Josiah!

Finally, I’d like to highlight some of my favourite apps from the contest. It’s so inspiring to see so many cool apps and it really motivates me to make more. I’ve just mentioned Tidy Tuesday, but I’m going to do it again (they should really be paying me), as I really loved Neal Grantham’s tidytuesday.rocks app for exploring past Tidy Tuesday submissions. Not going to lie, I checked to see if I was top of any of the listings. Also, I had a lot of fun with the Hex Memory Game by pvictor, although I had to stop myself before becoming addicted (38 seconds is my best!). I feel honoured to be amongst such great work.

Thanks for reading, and if you need me I’ll just be sat here eagerly awaiting my Rstudio swag!