Antti, what made you apply for the Finnish Summer Code?I have had the idea of the project in my mind for few years. I don't remember where I heard about the Finnish Summer Code, but because I already had the idea I decided to send an application.Does the concept of Finnish Summer Code excite students in general?It's very exciting - you get to do what you want. The only thing that we laughed about was making our presentations, both in the applying stage and at the end. It requires quite a lot of work. For a normal summer job, you simply get the instructions and you do the work. The difference is rather clear.What kind of advice would you give to a person considering applying for the Finnish Summer Code?The motivation to do a Finnish Summer Code project goes hand in hand with being motivated to do general FOSS development. It is all about personal motivation. For me, it was very relevant that someone was interested in my work. Ubuntu activists Alexander Sack and Rubén Romero got excited about my project and gave me ideas and support. I also had friends who were interested in the project, which was also quite inspiring. When I'd completed my project, it felt good to see all the blog posts about how great it was - how my code just made things work.What has this positive publicity felt like?Of course it feels really good. One of the motivations to do FOSS work is helping others, and it feels great to achieve that goal. It feels good to solve a problem and, by doing so, help a lot of people. The mobile networking assistant is not yet perfect and it needs ongoing maintenance. The database that holds the settings of different operators is mostly taken from the already completed work by the GPRS Easy Connect project. Some changes have been done to update the database, and new changes are coming at a rate of approximately one per week.There has been some uncertainty about who has done what. My part of the whole thing was the settings assistant – the guided clickthrough. The actual PPP connection stack was programmed by other contributors. As I had some extra time, I did the integration for the Network Manager applet, too. The Network Manager User/Interface is one of the challenges of future. We will also add new types of connection devices and types of networking.
The introductory tutorials, held during the first two days of the conference, were fantastic. In the tutorial, I was given an excellent hands-on demo of the interactive Python shell – IPython – and other general Python tools and libraries for scientific computing, such as NumPy and SciPy. In addition, I was fascinated by the diversity of plotting tasks the Matplotlib package can perform, tasks which were traditionally carried out using Matlab.During the conference, I really enjoyed the keynote speech from Alex Martelli, who currently works at Google. His talk addressed the fundamental yet often neglected problems of treating a numeric software package as a 'black box' in the course of scientific and engineering computing. Supported by many vivid real-world examples, he effectively conveyed the message that you must be crystal clear about what you're computing and understand what the 'black boxes' can do and can not do. Otherwise, results may well be far away from being accurate, which can lead to disastrous outcomes, especially in the field of engineering. This is likely due to the fact that the targeted 'black box' is in fact not well-conditioned for the specific tasks or the sets of input data. His talk provided useful input both to users of software packages, but also to their developers. It rightfully prompts the developers to carefully document the behaviors and functionality of their software packages, especially the conditions for using it. In turn, it might help prevent the software being used for other than its intended purposes.In addition, it was also interesting to listen to talks from various developers about how to apply or further develop general Python or SciPy libraries to solve their domain-specific problems. One of such talks was Summarizing Complexity in High Dimensional Spaces. In this talk, Karl Young presented a very useful method that can provide diagnostic summary information for multi-dimensional and multi-spectral medical image data. This method is developed based on the powerful SciPy array computation capabilities. I have implemented methods in R to analyze high-dimensional biological image data sets like time series analysis of microarray data. In addition, I have also implemented algorithms in Matlab to analyze and classify data with a large number of features, such as documents. Inspired by the talk, I'd love to try to employ SciPy to develop analysis tools for large high-dimensional and multivariate data sets that characterize fundamental properties of dynamic and complex biological systems.After the conference concluded, I stayed for the coding sprints. My Summer of Code project was about prototyping a database API using standard components of Pygr – a Python Graph Database Framework. The functionality of the API is to retrieve information from a central biological data warehouse, the core Ensembl database system. At the sprint session, I finally got to meet the main Pygr developers, Dr. Christoper Lee (the project's founder) and Dr. Titus Brown. During the sprint session, both Rachel and I presented and demoed our summer projects to the whole group, and we got some great feedback on our progress to date.After the presentation, Dr. Lee and I further discussed the potential of best re-using existing Pygr components to further simplify my API framework, so as to make it more maintainable and easier to extend. In addition, we debugged the problems I encountered while porting the Ensembl database schema to pygr.Data namespace. For this project, we had decided to model the complex Ensembl database schemas by employing the strong support from the pygr.Data module. More specifically, rather than implementing a complex database schema in a conventional ORM (Object Relational Mapping ) way, this module transforms a schema into a portable Python namespace. In doing so, we hope to provide API developers as well as end-users with a much cleaner and more intuitive interface to access and distribute the relations among Ensembl data objects. Through a joint effort, I finally managed to save and retrieve typical Ensembl database schemas into and from the pygr.Data namespace! Needless to say, these discussions and my entire SciPy experience left me feeling incredibly motivated to continue working on my project.
The conference provided a great opportunity to learn about the various ways Python is used in scientific applications. As a newcomer to this field, I was overwhelmed by the diverse and incredibly active Open Source community. Several of the conference attendees had new and innovative ways to incorporate Python into their work, and I spent the majority of the breaks and lunches learning about the impressive accomplishments of my fellow conference attendees.Even more exciting than the tutorials were the presentations held on the final two days of the conference. While all were interesting and informative, my personal favorite was the NetworkX presentation. NetworkX is tool that analyzes networks by manipulating basic graph and data structures, and performing numerous computations on the analyses. One of the applications of NetworkX is the prediction of disease outbreaks, and since I am a total epidemiology geek, I was fascinated.Furthermore, several members of the Pygr project were on hand that week, which provided an ample opportunity for the project team to discuss the successes of my summer project, review code, and plan for the future. It was wonderful to finally put faces to names, and my Google Summer of Code project was presented to the group. As I am the least skilled member of the Pygr clan, I benefited tremendously from observing my fellow developers demonstrate and explain the most efficient ways to improve and utilize Pygr. I plan to continue working on Pygr despite the conclusion of my project, and the sprint helped me to find tasks to focus on in the future.While SciPy has long been over, the conference had an unexpected impact on me. Once school started back up, as my research advisor assigned me a new bioinformatics computing project, which clearly needs some NumPy love. Luckily, I’ve had just the introduction I need to dive right in!