Student books Vegas trip with Twitter mood detection app

PHP on Azure prize winner

Common Topics

Ben Waine, a self described "student ninja” who scooped first prize at the PHP Benelux Azure coding contest on May 21, has announced his victory on Twitter in a fittingly dignified and restrained manner:

“Vegas baby yeeeeeeeaaaaaahhhhh!!!! Thanks to the @PHPAzureContest team who gave advice and support. #dpc11”

But before we head to Sin City to celebrate Waine’s win, let’s back up a step or two.

The brief was straightforward: “Build or migrate an application (that application you always wanted to build) using PHP running on Windows Azure. PHP Benelux proposes you work on a social networking or CMS application but you are free to go as wild as you wish.”

Rather charmingly, participants are also reminded that plagiarism is not allowed.

This is no Facebook-Hackathon-style sprint for a finish line. This is a coding endurance race: registration for the contest closed back in February, and coders were asked to keep a blog, tracking their project’s development.

In keeping with PHP’s free-as-in-speech roots, the winning project is also to be released under a creative commons licence “for the benefit of the community”.

Twitter in the mood

Waine’s app allows users to track not just which topics are trending on twitter, but also the mood associated with the trend.

“There is a clear commercial rationale for this product for companies who wish to answer the question “How are we perceived right now?” Answering this question would help companies quickly respond to emerging trends on this fast paced and influential social network,” he explains on his blog.

For example, Waine’s app could allow marketers to spot it very quickly when Twitter hijacks a marketing hashtag, as happened with Vodafone’s #mademesmile campaign last year.

The campaign coincided with news that the company had been given a generous discount on its tax bill and Twitterers quickly used the hashtag to register their displeasure. The phone company was widely criticised for its naivety; left with egg on its face and negative tweets all over its home page.

Waine explains the app “first assembles a training sample of Tweets using the Twitter Search API and then monitors the search terms using the Twitter Streams API”.

Users enter their search term and let the app gather data, which is plotted as positivity over time.

He explains that in the end, he put more work into the guts of the app rather than the user interface, which is somewhat sparse. Clearly the decision paid off: function over form, every time.

Judges were looking for something that exploited the possibilities of the Azure platform as fully as possible. Before the final, Judge Stefan Koopmanschap told us: “Obviously the more aspects of Windows Azure are used by the application, the better it is in the judging. Judges will also look at originality, code quality and other development best practices.”

Built for Azure

Judges were asked to look for four things:

1. Functional: does the application work and is it scalable on Windows Azure.
2. Technical: is the solution a custom development, difficulty, completeness of the technical solution
3. Challenge level: does the solution include other features of the Windows Azure platform like SQL Azure or Windows Azure Storage 4. Creativity and originality

Koopmanschap told us Waine’s application particularly impressed because it was “not just hosted on Azure but it was built for it”:

“What we liked about Ben's app was that he had written an application that used a big variety of Azure services. Additionally, Ben really documented his path towards getting his application to run by blogging on a regular basis. This was the basis for us deciding Ben was to be the winner of the contest,” he told us, in recovery mode after the conference.

Waine has posted a comprehensive account of his application, and the experience of working on Azure here. He notes SQL Azure was “pretty fantastic” as was the MS support for PHP on Azure. But working on such a new platform had its drawbacks, especially in documentation, which was sometimes thin on the ground.

Go, read. It has graphs and stuff.

And there is more to come. Waine plans to rebuild the fulfilment API into a queue-based-architecture. This would speed things up, he says, as well as creating only one point of contact with Twitter, making the app more scalable. ®