April 05, 2013

Committed

I was planning on doing some more work on this before I blogged about it, but as it has been sitting idle for a while let me just post what I've got. It looks something like this:

This is Committed. It's basically a technology exercise inspired by Commit Logs from Last Night.

What does it do ? Well, in short, it analyzes commit logs from public SVN repositories of Sourceforge projects. You can then run full text queries on these commit logs through a web application. The results are shown in a graph as a trend over time, and you can also browse through individual matches.

How was it implemented ? Well, I set this up as an excuse to experiment with Scala and the Play! Framework. Briefly, I'm using Scala's actor system to query Sourceforge and find public SVN repositories. The actors then fetch the commit logs for these repositories, and feed the commit messages (along with some metadata) to a SOLR database. The Play application then takes the queries from the user, runs them against the SOLR database, and displays the results.

So, what was it like ? Scala's Actor system seems really cool. This experiment only uses some of it's very basics, but it provided a useful introduction. It feels like a really nice alternative to more heavy weight messaging middleware and message driven beans. The model is simpler, and the integration into the language removes a lot of the barriers.

Play, to me, is just another alternative to Ruby on Rails, GRails, and others. If you're using Scala then it is probably a natural choice. Other than that I didn't find any special reason to pick it over some of the alternatives.

I was also planning to use Chef and Vagrant to set up a sort of local processing cluster, so that I could experiment a little with how to scale some of these technologies in different ways. I haven't gotten around to doing this yet.

What I am doing right now is taking an online Scala course. It's presented by Martin Odersky, who created the language in the first place. We're only in the second week, but so far I quite like the course, and it does really help you to get into the Scala mindset. So to anyone who's interested in playing with Scala: this course is definitely something to consider following.

That's about it from me. As usual, I shared my project on Sourceforge. So if anyone feels like taking a peek or playing around with it, be my guest. And if you do, be sure to give me your feedback!

No comments: