HackPrinceton & HackUMass: Anti-Cyber-Bullying, Computer Vision on Skittles, and Improving Our APIs

April 17, 2015

This past weekend, we were proud to be sponsors at both HackPrinceton and HackUMass! It’s always fulfilling to get out of the office to help hackers on their projects. We had a great time and were really excited to meet all the different teams who wanted to use indico and machine learning. Take a look at the winners of our Best Use of Machine Learning prize!
HackPrincetonProject Aristotle
Inspired by Monica Lewinsky’s TED Talk, The Price of Shame, Project Aristotle was created by hackers from the University of Waterloo and Mount Holyoke College with the goal of combating cyber-bullying. Project Aristotle uses the Twitter API and indico’s Sentiment Analysis API to pull tweets that are extremely negative. Then, those tweets are retweeted and collected in an ongoing stream on the Project Aristotle website to promote positive responses.HackPrinceton Winners - Project Aristotle

Project Aristotle, the winners of our Best Use of Machine Learning prize at HackPrinceton

HackUMassProject Riemann: Calculate the Rainbow
Project Riemann is a computer vision app that can calculate the number of Skittles inside of a glass jar, inspired by an age-old tradition at team member Matthew Hinsley’s internship. The team used OpenCV and Numpy to build their hack.
These projects didn’t win, but we still thought they were awesome!
Deal Mining

We also ran into a few unexpected setbacks over the weekend. Between 1 and 10 A.M., both the V1 and V2 versions of our Sentiment and Political Analysis APIs intermittently went down. Our team members worked hard to get them up and running again, and we’ve spent the last few days investigating and fixing what went wrong to make sure it doesn’t happen again.
It turns out that the APIs didn’t actually “error out,” but instead hung infinitely on an illegal input that broke a portion of our code.
Here’s what we’re doing about it:

  1. We’ve fixed that portion of the code so that it returns an error instead of hanging.
  2. We’re going to limit the request size to 10MB to prevent call lag caused by a series of giant requests. In any case, there’s no reason anyone would need to make requests that large to our API.
  3. We’re going to log all illegal input so that if any input does crash our API in the future, we’ll be able to reproduce the error and patch our API so it never happens again.
  4. We’re going to improve our API restart mechanism. Our APIs currently restart themselves if they error out, but we’re looking into options for recognizing unnaturally long hangs so they’ll automatically restart in those situations too.

We’re so sorry if you ran into any difficulties when trying to use our APIs. Thanks for alerting us to this issue!