Sometimes, my job throws me an unexpected and pleasant curve. After spending a few months, travelling the country and teaching the fundamentals of Web Development and Cloud Development, I was asked to join my team in Redmond, where we would spend a couple days building some cool projects.
As is true with most trips I make, I arrived without a plan. Fortunately, I was assigned to a team and some of my teammates had been planning what we would build. Jennifer Marsman has been researching the Big Data capabilities within Azure for months, so she suggested that we build something that will utilize these tools. Tim Benroeck suggested an idea that would integrate social media with TV watching, so we did that.
Tim noticed that many people enjoy watching a live TV event while interacting with others over social media. But that experience is nearly impossible if you record the TV show and watch it the following day - Twitter has moved on and it's difficult to go back into the Twitter stream and find Tweets that are relevant for each point in the show (especially if you want to avoid spoilers).
So we built a system that would save to Azure storage all tweets for a set of hashtags during a given time and capture the time of the tweet, along with other relevant metadata. A user could then play back the show later and immediately start the relevant saved Twitter stream at the same point. Tweets would flow by in simulated real time, so the viewer could read social media reactions to The Bachelor's choices or to the death of someone's favorite Game of Thrones character.
The system used HDInsight STORM technology from Azure to retrieve Tweets containing a given set of Hashtags (e.g., "#GameOfThrones" and "#GoT") and push them into a Hadoop HBASE database, saving all metadata about each tweet, including the time and source. Tweets were imported in real time and in "archive" mode (we queried old tweets) using the TweetInvi API. We then allowed users to start "Playing" the tweets at a given time and displaying them in the same order and with the same delay as they were originally tweeted. Viewers could then start watching last night's show and begin the archived Twitter stream at the time the show originally aired and enjoy the social media experience along with the show.
I spent most of my time working on the user interface - a Windows 10 application built with HTML5 and WinJS. It gave me my first experience writing a Windows 10 app and my first significant experience with WinJS.
Many people from the product teams were on hand to help us.
This was a great learning experience for me personally and for the rest of my team.
We dubbed our creation "TweetDVR". You can view the source code at https://github.com/jennifermarsman/TweetDVR