Rdio engineering recently embarked on their fourth quarterly Hack Day. This is a great opportunity for the team to cook up some cool product ideas and build something fun directly into the product or outside of it using the Rdio API. We’re really excited to share a few of these great accomplishments. Think you’ve got an awesome idea for next Hack Day as well as the engineering chops to build it? Rdio is hiring!
WEB AND DESKTOP APP
Let’s start with some hacks on the core product set. Rdio is available on your web browser or downloadable as a Windows or Mac application.
Julia Chaves built tracking features so that you receive a free month of Rdio whenever a certain number of friends you’ve invited to join Rdio become subscribers.
OSX Rdio Notifications
Jimmy O'Neill added functionality to the Mac desktop application. When someone shares an item with you, it now shows up in the OSX Mountain Lion notification center.
Jason Norris continued work on his employee directory features from the last Hack Day. An employee info section to profile pages on Rdio was added — and, as a bonus, so was a much desired feature to www.bwaaamp.net so that it can now be installed to your OSX command line.
Heavy Rotation Hatin’
Ryan Nordman added a remove function to Heavy Rotation to eliminate albums you don’t like without unfollowing people. Manually purge certain albums from your Heavy Rotation by clicking an X button on the album art. Special thanks to Bri Hunziker who provided the icon design.
Rdio lets you take your music with you everywhere. Here are some hacks that were done on Rdio’s suite of mobile apps.
Raul Agrait added the ability to search your synced Collection while your phone is in offline mode on the mobile app.
R. Kevin Nelson added an optional setting into the iOS app that, when enabled, shares your location when you play a song by using your phone’s GPS. This data would be used by Rdio’s evil data lords for nefarious purposes — or, it would be aggregated into interesting stats on what’s popular in a specific neighborhood of your city.
Remote Player Push
Brett Duncavage worked on functionality to push the master player to another app — including web, desktop, and mobile — from any device that is logged into your Rdio account. No more running into the other room if you want Rdio to play on your stereo!
Better Android Notification Tray Controls
Taylor Perkins improved the Android notification system so that controls remain visible when the music is paused. Larger notifications are implemented on Android devices that support it.
Some of the team looked inwards and created these hacks to make our engineering team’s day to day lives easier.
Code Review Activity Graphs
Craig Kimerer built a stats dashboard pulling from our code review and bug tracking tool, Phabricator. The dashboard shows stats on who has commented, accepted, and requested changes on patches. It includes a Wall of Shame that features engineers who have not reviewed a patch in the past week.
Leslie Chong improved Rdiobot (our Skype bot) by adding the ability to interact with the Skype bot and query it for information. You can now ask Rdiobot for build status or about a specific test to see whether it has failed in the past or not.
Slow Queries Graph
Matt Erkkila created a reporting graph that shows an automated summary of errors and slow queries for all Rdio’s postgres databases. This helps us quickly determine which database queries need the most improvement.
Some of the engineers delved into Rdio’s data stores and mined the information for some interesting, new insights.
Predictive Taste Profiling
Matt Crocker gathered data together to predict the kind of music people like based on their age, gender, and location. He presented a new onboarding flow that suggests music to users when they first join Rdio by using this data to create a predictive profile.
Rob Ferguson tweaked the Collection radio station to better select songs that were similar in genre or mood. He also created an analysis tool that shows you other users who have similar Collections. Lasty, he implemented a feature that lets you save a recent playthrough of a station on Rdio into a playlist to capture the music you just heard.
Jim Fleming made an influencer graph which shows a user’s influence score with their followers. Users received a higher score if they played music shortly before another person in their network.
Brian Ferrell created a page of stats and graphs which showcases a user’s listening habits over the course of the last year such as your favorite artists and songs as well as the amount you listened to each over the course of the year.
The Rdio API enables you and other clever people to invent great new ways for listeners to discover, collect, share, and play music. These hacks generally don’t require any privileged insider information about the Rdio service. You can get more info about the Rdio API here.
Anthony Taranto and Netta Marshall worked on improvements to show data for Showd.io, their project from the last Hack Day. This web app displays nearby concerts in a grid based on your Collection data.
Eugene Efremov further refined his Discoversong service. It now works on Windows Phone, and integrates with Soundhound through Twitter. Discoversong allows you to quickly add a song from Shazam, Soundhound, and other services to an Rdio playlist. Test it out for yourself here.
Ian Gilman combined Rdio’s Collection data with Last.fm data to show Last.fm tags on albums from your Collection. This allows you to browse your Collection by tags. You can try it here.
Multiple 2D Collections
Scott Merritt created a web app that gives a more detailed view by album that focuses on the playlists which use the album and the album’s listeners. It also features the ability to have multiple Collections and these Collections allow you to use a 2D grid view where you can layout the album art spatially on the grid.
Alex Gaynor and Jimmy Krehl worked together to create a new API method that would output every song play on Rdio in a constant stream. They built in a few filters demonstrating the feature’s usefulness such as displaying the most popular song in the last few minutes, hours, or days.