Adaptly Hackathon
By Sean Shillo, VP of Engineering
The Adaptly office was almost completely empty on December 23, 2011 with the exception of the developer team, a strong aroma of highland scotch in the air, and the excitement surrounding our first ever hackfest. The purpose of this friendly hackathon was to let our developer’s skills and creativity run loose with the guidelines of building something related to both social media and advertising.
Our goal was to evaluate the number of public fans of a current page on Facebook and then rank them by their level of influence. A fan’s influence is measured by his ability to affect other users. Thus, not all fans of a page are created equal, and given equal prices for fans, certain demographics are preferred over others for long term engagement with a page, brand, etc.
Due to time constraints the Klout score was chosen as the best way to measure a person’s social influence. The biggest challenge with using Klout is the API is searchable by Twitter handle and not Facebook user.
Our first approach to linking the Twitter users to Facebook users was to assess the information of all of the active people on a Facebook page. Based on each person’s name, username and location, we were able to use the Twitter search API to match up these fields and make the connection. This method seemed efficient until the rate limiting started. Undeterred, we resorted to Google and issued a search of a person’s name constrained to the Twitter domain. A little regex magic produced a list of possible Twitter usernames, providing us with the relevant information needed to connect the Twitter and Facebook accounts.
There are certainly many concerns and questions with the approaches used and assumptions made here. The main deal breaker assumption is that the fan subset found will have a valid representation of the whole set. There is also the reliance of the Klout metric.
In the end it was felt that with assumptions holding, the project would give the ability to chose a certain demographic of fans against another all others things being equal. It should be noted that all information gathered was public. Next up on the hackfest list:
Backend language shootout - Scala, Clojure, Ruby, Go, Python, there can only be one
Big Data Madness (AKA how do I crash postgres) - HBase, Mongo, Cassandra, or Riak
Hadoop Shadoop - To insert or to log and parse
Tools Used:
Heroku
Postgres
Ruby on Rails 3.1
Relevant Gems: koala, klout-rb, resque, geocoder, twitter, mechanize




