Thursday, June 4, 2009

Google Summer of Code 2009: Statistics module weekly report

So, here we are up and running! The Statistics project, which I'm really happy to share with Daniel, aims on collecting and displaying statistics data out of Melange.

I've spent my first week mainly on research and on the design of the Javascript layer that will be used for the Stats module, studying and testing libraries that will be of some use (hopefully) generally to the whole Melange project, too. The first thing I've done has been writing some code to get a first chart with Google Visualization API using Google API Playground, then I worked on studying how to use jQueryUI to get an iGoogle style dashboard interface for statistics module, finding this great tutorial from NetTuts, that could lead us to a cool interface. Then I had a meeting with Daniel, who had a great patience on giving me guidance on the Python code he started to write for the module backend, and we discussed on how to join our code, then Daniel set up the bitbucket repository he mentioned in his post.

During that meeting and afterwards, I've found Gviz lib and we agreed with Daniel that it would have lead to a smoother code for the communication between Python and Javascript. That library outputs "ready-to-serve" JSONs to Google Visualizations. Now it's already integrated in the main Melange trunk by Pawel for us to use it.

From that library on, I've got to know Google Visualization Query Language, which I thought it would be very powerful for us to show dynamic charts based on dynamic data. Unfortunately, there are no implementations for Python, so I tried to find something to get similar power in JavaScript. In that way I've found three great projects to query over JSON objects: JSONPath, JSONQuery and jLinq. I really like the functional way in which jLinq works, but I'm going to explore in the next week also the "XPath-like" ways, to have a better view on what's out there on JSON objects querying and what could be better for us to integrate.

Apart from that, I've started threads in the dev list and then put in the wiki some thoughts and contributes about a "medium-term" refactoring of Melange JavaScript layer and a draft proposal for JavaScript code style guidelines.

This week I will explore (or, better, I'm exploring, as I'm posting the report late :)) the JSON querying libraries, write on the wiki the design of the JS layer, and, hopefully, get a first skeleton code out of that design.

No comments:

Post a Comment