Rdio’s inaugural Hack Day in April was a great success, so we decided to continue the tradition. Rdio’s engineers took last Friday to work on any Rdio project they wanted. This gave engineers the freedom to create any feature they wanted to see in the product, jump into some unexplored code, or create web apps using the Rdio API. We saw cool results — read on for some highlights.
Drag and drop interaction on mobile
Jimmy O’Neil added drag and drop functionality to the iPhone Rdio app, so by long-pressing on a track, you can drag onto a collection or playlist.
Keyboard Controls and Multi-Select
Matt Montag went to work on improving the Rdio web experience in playlist and album views so that users can use keyboard shortcuts to navigate the track lists and select multiple items. He also added a popularity indicator to each track so you can tell which items are getting the most plays.
Sure, you can claim you’re the world’s biggest Radiohead fan, but where’s your proof? Drew Bazan added a section to each artist page that would list all the heaviest Rdio listeners of each artist.
Automated Front End Testing
Rob Ferguson worked with Sikuli Script (front end automation with screen shots) and Python to batch together front-end testing. Instead of writing long scripts to automate the full process, the new method allowed users to drop in tiny scripts directly from the Sikuli IDE and automatically batch them together.
Mix in Related Artists
One feature that didn’t make it into new Rdio was the control to mix in related artists when playing an artist radio station. Raul Agrait remedied this situation with his Hack Day project, adding in this control to the iPhone app.
Commit Music Tracker
Pat Tuckey and Jonathan Klobucar teamed up to create a tracker that shows the most recent code commits to the Rdio code repository, along with the Rdio music that the programmer was listening to when they made the commit. This may help prove once and for all that good code cannot be written while listening to anything but electronic music.
Custom Playlist Artwork
Justin Tulloss added an image upload feature to your playlists so that you can assign your own image to the playlist cover art.
New Releases Discovery and Collection Items with Low Play Counts
Devin Sevilla created two external tools using the Rdio API. The first one suggests new releases that are by artists you have in your collection, and the second shows you items you have in your collection that you’ve only played once, so you can rediscover some old favorites. You can try Devin’s hack for yourself here.
Eric Fikus added a feature to the player that lets you shuffle complete albums. For those of you who like to randomize everything except your albums.
If pretty pictures are your jam, Brett Duncavage created a visualizer on iPhone that analyzes your music and flips through a series of images along with the beat of the music.
Play Top Songs
Gautam Joshi added a play button to artist pages that will play a set of the artist’s most played tracks. Sometimes you want to know “what is best?” rather than “what is new?”
Integrated Build Tests
Matt Crocker created a practical hack: a triple integration between Jenkins (our test running system), Phabricator (our bug tracking and code review tool) and Skype (our internal chat tool). Now when engineers submit code in Phabricator, Jenkins runs the unit tests associated with the code and comments on reviews. Jenkins also congratulates or shames engineers in our group internal Skype chat, using emoticons and image macros for additional effect.