Posts from August 2014

New Google Summer of Code Organizations - Final post

Friday, August 29, 2014

Today marks the final post in our series highlighting new Google Summer of Code organizations for 2014. Organization administrators from BioJavaScript, Julia and GNU Octave discuss their students’ projects below.
BioJavaScript (BioJS) is an open source library and standard for visualization of biological data on the web. BioJS provides widgets (a pre-made piece of code that performs a task needed in lab software) that can be easily reused, combined and extended, following a common architecture and documentation. BioJS is great for labs with few resources to be able to reutilize, find and share existing functionality.

For Google Summer of Code (GSoC) 2014, our students worked on a series of widgets such as a taxonomy viewer that is zoomable at different resolutions and a phylogenetic tree viewer that displays proteins in a tree and branches according to their evolutionary proximity.

By Manuel Corpas, Organization Administrator for BioJS

Julia is a new dynamic programming language aimed primarily at technical computing. It is designed to be both high-level and high-performance, thus replacing the need to have separate languages to achieve these goals. Development on Julia started in 2009 and the project has since become a global collaboration—over 250 collaborators around the world have written close to 20,000 lines of code in the core Julia repository alone.

2014 marks our first time participating in Google Summer of Code and our three students have finished up their highly successful projects:
  • Simon Danisch is working on volumetric, particle and surface visualizations entirely in Julia and OpenGL. He has been blogging about his progress and all his code is available here on GitHub.
  • Mikes Innes is building a Julia environment on top of the excellent Light Table platform. It will support building big projects in small steps by modifying them as they are running. It tightly integrates tools such as the profiler and the upcoming documentation and debugging systems, with the aim of being accessible for novices and powerful for seasoned Julians. His work is available through the LightTable plugin manager as well as on GitHub.
  • Shashi Gowda is working on making use of the recently added real-time interaction support in IJulia notebooks. It will allow users to create widgets including sliders, drop-downs, colorpickers and other input elements in their notebooks and connect them to plots, DataFrames and other output. As part of this work he has also been working on React.jl, an Elm-inspired reactive-programming package for Julia. His code is available on GitHub.

By Keno Fischer, Organization Administrator for Julia

GNU Octave is a high-level interpreted programming language primarily intended for numerical computations. It provides a command-line interface for solving linear and nonlinear problems numerically and for performing other numerical experiments using a language that is mostly compatible with MATLAB.

We are excited to have three GSoC students who worked with us this summer. Their projects include:
  • Improving finite element modeling capabilities through an interface to FEniCS
  • Adding incomplete matrix factorization capabilities
  • Improving the handling of sparse matrices

By Carlos Fernandez, Organization Administrator for GNU Octave

Tips and tricks from a Google Summer of Code veteran

Wednesday, August 27, 2014

Today we have guest writer Victoria Martínez de la Cruz providing her take on how to have a successful Google Summer of Code. Victoria just finished her summer working with OpenStack, an open source tool for building private and public clouds. Read below for some of her great tips on how to conquer the summer as a GSoC student. 
The end of Google Summer of Code (GSoC) is near and I wanted to share with readers my perception of what it takes to participate in GSoC, to work in an open source environment and what to expect after the program.

What it takes
Participating in GSoC will allow you to learn about the latest technologies and to contribute to the open source organization project of your choice. Every project is different, so any previous knowledge you should have and tools you are expected to use depend on the project plans.You don't need to be a hacker, but in my opinion, it really helps to have deep understanding of several computer science concepts.

The learning curve can be high. It really helps to become familiar with the project code—discover where things are located and how they interact to make the application work ahead of time. You also will have to become familiar with the programming style of the community. Every organization has its conventions and it’s important to stick to good practices to guarantee high quality code. Students are required to understand the workflow, including how to submit your code for review, how the review process works and what is required to get it merged. Finally, you have to start working on your specific project— sometimes a bit harder than you might think!

It’s important to be proactive and take initiative. Research things you don't understand and collect as many resources as you can to make your own decisions. It is better to be wrong about something and fix it with the feedback submitted by the reviewers than to waste time poking people to ask their opinion on a subject they may not be so familiar with.

Working with a mentor
I want to emphasize how important it is to find a good mentor and to get along with them. It is essential that you share with them both what you feel good about and what is making you nuts! Given that GSoC is a remote program, it is always a good idea to keep your mentor up to speed on what you are doing. Otherwise they cannot track your efforts and they won't notice if you are stuck on something.

Seek to find a good balance—contact your mentor often, but don't expect them to devote all of their time to you. And don’t forget about taking advantage of the developer community. If your mentor cannot reply to your questions for some reason, you can also ask someone else.

What to expect after GSoC
Once you have walked down the GSoC path, you have several options. You can stop contributing to the project you worked on and continue with something else that you like more, you can keep contributing as a volunteer, or you can try to find a full-time job to keep working on it. What you decide to do is up to you, but at the very least you have built a strong background that will be useful in your career.

In short
  • GSoC is an incredible opportunity. You will learn about programming tools and practices used in real world deployments, and you will build the experience and confidence necessary for a future job. It is really worth the effort!
  • Become familiar with the project before the summer starts. If you can get in touch with the project community and contribute with a small fix, it will make it easier for you to apply later to GSoC.
  • Share as much as possible with your mentor. Interact with the community. Get to know them, it's important. Open source projects work because of their communities.
  • Your contributions are as important as other people's. Review other people’s patches and submit feedback. You will not only learn a lot, but they will be more likely to review your patches.

By Victoria Martinez de la Cruz, Google Summer of Code Student, 2014

10th Year of Google Summer of Code draws to a close

Tuesday, August 26, 2014

This has been a big year for Google Summer of Code, our program designed to introduce university students from around the world to open source development. In celebration of our 10th instance of the program we made a lot of changes.

In April, we accepted more students than we ever have before: 1,307 university students from 72 countries. We raised the stipend for them: the successful participants were paid $5,500 over the course of the program. These students wrote code for the largest number of open source organizations we’ve ever had participate: 190. And last but not least, we had 2491 mentors from 78 countries help them out. We are excited to announce that 89.7%* (1172) of the students passed their final evaluations. To see more about how that compares to previous years, check out our statistics from the last nine years of the program.

And we’re not done yet. This October we’ll be hosting a 10-year reunion in San Jose, California. We’ll welcome our alumni (students, mentors, and organization administrators) from all years of the program to meet and exchange ideas.

Now that this year’s program has concluded, students are busy preparing their code samples for all eyes to see. Soon you will be able to go to the program site where organizations will have links to the students’ code repositories.

Thank you to all of the students, mentors and organization administrators that have helped to make this 10th year of the Google Summer of Code a great success!

By Carol Smith, Open Source Programs

* This number could change slightly in the next few weeks

The Sahana Software Foundation annual conference

Thursday, August 21, 2014

Today we have a post from Michael Howden, Google Summer of Code mentor since 2010, contributor to the Sahana Open Source Disaster Management Software and as of June 2014 CEO of the Sahana Software Foundation. Sahana recently held it’s annual conference in Sri Lanka, bringing contributors together from around the globe. 
The Sahana Software Foundation helps organizations and communities prepare for and respond to disasters by providing open source information management tools. There is not much overlap between the people engaged in disaster management activities using our software and the people who contribute code to it, so it’s important to ensure that our contributors see how their code supports our mission of helping organizations and communities. This is especially important while working with students during Google Summer of Code (GSoC)—and is often hard to do over the mailing list or a Hangout—so we wanted to bring them to the Sahara Annual Conference in Sri Lanka. The conference was sponsored by Google,  AidIQ, Virtusa, The University of Colombo School of Computing and LIRNEAsia which made it possible for the following GSoC mentors and students to attend:
  • Arnav Agrawal
  • Fran Boon
  • Ramindu Deshapriya
  • Michael Howden
  • Somay Jain
  • Mayank Jain
  • Dominic König
  • Gaurav Narula
  • Arnav Sharma
  • Hemant Singh 
  • Nuwan Waidyanatha 
The Sahana Annual Conference consisted of a number of separate events which were being held in parallel with the Indian Ocean Tsunami 10th Anniversary convention (IOTX). This gave the students broad exposure to the Sahana community, users, history, strategy, and of course the code of our open source project.
The main event of the week was the SahanaCamp workshop. These workshops are conducted to help encourage collaboration between coders and disaster management experts. Our students were very impressed to learn about all the places around the world where Sahana was used. It occurred to me that we need to improve our introduction documents so students can have this information before they start work on their projects. One of the highlights of the day for me was having our students give demonstrations of Sahana to people from various disaster management organisations who were attending the SahanaCamp. I was really impressed with their knowledge and professionalism.

There was no way we could get everyone together without cranking out some code— the Common Alerting Protocol (CAP) Code-Fest was a great opportunity for this. A number of CAP experts had been consulted and were also present to work with the Sahana Team. During the day our mentors and students were able to work together to implement new support for sharing alert messages between organizations.

The week wrapped up with our Annual General Meeting, during which we held a number of unconference sessions allowing us to dive into a number of really important areas:
  • Debugging with Eclipse and Firebug. It was a surprise how few of our students knew about using these tools (for example, print statements != debugging), another addition for us to make to our introduction documents.
  • We held a session looking at our GSoC program and how we could improve it. Everyone agreed that face-to-face meetings were valuable and more structured meetings could be useful, especially if they connected students with the end users. We also talked about the value of allowing students to set their own priorities and having ownership over their projects.
The conference allowed our students to see that there is much more to open source than what they saw on their computer screens. But more importantly it gave them a chance to come together, see the bigger picture they are a part of, meet each other face to face, build relationships and make friendships.

“Open source is nothing but a few people with a common goal working together for the betterment of a community by developing software. This I saw in person and this will stick with me for the rest of my life.”
-Arnav Sharma

If you’re interested in finding out more about the conference, please take a look at the blog posts prepared by our students!

By Michael Howden, CEO, Sahana Software Foundation

Melange: the open source software powering Google Summer of Code

Monday, August 18, 2014

Daniel Hans, a long time Melange developer, is today’s guest writer. Below he describes a bit about the open source software that makes Google Summer of Code and Google Code-in possible year after year.
There is no Google Summer of Code (GSoC) without Melange, the open source software both GSoC and Google Code-in (GCI) run on. The first release in 2009 was a real game changer for both program administrators and participants. Can you believe that in the pre-Melange era we once ran the program with almost 1,000 students on just a spreadsheet?

But what exactly is Melange? In short, it is a website front end to the database we use to both present information about GSoC and manage the participation of all the projects, mentors and students involved. Melange is a project that supports open source initiatives. Not surprisingly, it is open source itself and has participated as an organization in GSoC from its infancy.

The project was started in 2008 and developed primarily by a group of volunteers who dedicated a considerable amount of time so that it could be deployed one short year later. In the early days of Melange, the user interface was very simple. It visualized the underlying database layer with minimum graphics. Despite its simplicity and initial shortcomings it was a breakthrough, as a lot of tasks which previously had been completed manually became automated. The program could now continue to grow and scale with each year.  By 2011 the layout was completely redesigned to provide a much better user experience. Since launch, almost 40,000 student proposals have been processed through Melange.

This summer we chose four students to work on Melange as a GSoC project and three successfully passed the midterm evaluation. They have all been working hard on projects that will have a real impact on both GSoC and GCI. At the end of the summer we should be able to resolve several high priority issues requested by our users.

Shikher Somal is improving the general workflow of a student participant. For example, student applicants will be able to rank their proposals in order of their own preferences. They will no longer have to rely on the organizations they applied with and program administrators to decide who gets to work with the student (which often occurs when multiple orgs like the same student).

Denys Butenko from Ukraine is working on CSS improvements to make the user interface more responsive. The new UI will look much cleaner on different screen sizes, especially on mobile devices where so much traffic is coming from these days.

Our third participant, Piyush Bansal, is helping to make the Melange developer’s life a bit easier. Piyush successfully completed his first GSoC project in 2013 and has since become an important part of our community since then. This summer he is working on a continuous integration system. His changes are not directly visible to end users but are crucial to our daily workflow. We recently pushed to production a first release for which the developer did not need to run all the tests manually as a part of the deployment process. The buildbot did the job for him.

The summer has been going great and we are really excited about all the work so far. We have already integrated some parts of the students’ projects into the master branch. Is there any better evidence that a GSoC student can make an actual impact? And we are always happy to welcome new contributors. If you would like to make Melange even better, please start by reading the getting started guide. Feel free to get in touch with us on our mailing list.

By Daniel Hans, Google, Melange Developer

Google Summer of Code new organizations - Part Seven

Friday, August 15, 2014

We have two additional Google Summer of Code organizations to spotlight this week, TEAMMATES and Tatoeba.  Both are new to the program in 2014. Read below for details about the exciting projects their students have taken on this summer.
TEAMMATES is an online feedback management tool for education. It is a not-for-profit project based at the National University of Singapore and funded by education grants. While TEAMMATES-the-service is offered as a free SaaS to the public, TEAMMATES-the-project is primarily a student project that aims to train students in building non-trivial software systems. Currently TEAMMATES contains the work of over 100 students and is used by both teachers and students from over 100 universities.TEAMMATES is a JavaEE application running on Google App Engine.

In GSoC 2014, we have 4 students—Gu Junchao, Low WeiLin, Thyagesh Manikandan, and Xie Kai are each adding new major features to TEAMMATES. 
  • Junchao is adding fine-grain access control to enable variable access levels to different instructors for the same course. 
  • WeiLin is adding the ability to see statistics for responses collected in feedback sessions
  • Thyagesh is adding the function for students to create user profiles within TEAMMATES
  • Xie Kai working on a feature for instructors to comment on students, teams, and feedback responses submitted
By Damith Rajapakse, Organization administrator for TEAMMATES


Tatoeba is a platform that aims to build a large database of sentences and their translations into as many languages as possible. The initial idea was to have a tool in which you could search certain words, and it would return example sentences containing these words with their translations in the desired languages. The name Tatoeba resulted from this concept, because "tatoeba" means "for example" in Japanese. 

Anyone can contribute to add new sentences and translations. The data collected is redistributed under the CC-BY license.

Our organization is mentoring 4 GSoC students this year:
  • Jake, working on an export to Anki deck. The application will take an Anki deck from the user, compare it against Tatoeba's database, and generate a new deck with sentences where the user will know one new word
  • Pallav, working on administrative scripts. The project's main aim is to create scripts that simplify the task of setting up a development/production environment for Tatoeba, along a few supporting scripts that can perform backup, restore, export, import, etc
  • Saeb, working on a Python rewrite of Tatoeba. We hope that the resulting prototype will be the foundation for the next and better version of Tatoeba, with awesome new feature
  • Harsh, working on a mass import system for open texts. This will be a boost for the database because the system will not import just any sentence. It will have to evaluate what is a good sentence to meet the Tatoeba community's need for high quality.
By Trang Ho, Organization Administrator for Tatoeba

My Google Summer of Code journey: From student, to mentor, to organization administrator

Wednesday, August 13, 2014

Today’s post comes from guest blogger Ana Cutillas — a dedicated Google Summer of Code student, mentor, and now organization administrator for Systers, a forum for women involved in the technical aspects of computing. The email list has over 4,000 members from at least 54 countries around the world. Ana is passionate about all things open source and shares a bit of her story below. 
A few years ago, a friend told me about a cool open source program called Google Summer of Code (GSoC). I was reluctant to get involved — I had no idea where to start! But when the organizations for GSoC 2012 were made public, I felt ready. I skimmed through the list and one of them caught my eye. Systers. Funny name. I read more about them: an international electronic mailing list for technical women in computing. Awesome! I decided to apply and before I knew it, I was a full time student, full-time worker, an Ultimate Frisbee player and applying to become a GSoC participant. Needless to say, I was quite busy.

For the application, Systers required that you install their environment in your machine and fix a bug for them. It wasn't easy. I had so many questions! Thankfully I had already joined the Systers' developers mailing list and I decided to ask them. At the beginning, mentors-to-be answered my questions but eventually new potential students joined the list and I knew the answers to some of their questions. It felt great to be able to help people already.

I finished my application before the deadline and I got feedback from Systers that helped me make it better. They told me that GSoC wasn’t compatible with having a full time job (they were right, it definitely isn't). They suggested I should either volunteer my time and have someone mentor me outside of the program, or leave my job and apply to be an official GSoC student. I didn't have to give it much thought—I left the job I didn't like for the possibility of an awesome summer.

Throughout the application process, I became friends with another student that wanted to work with Systers too. The night of the accepted students announcement, we were both so nervous. I remember walking back home from my Ultimate Frisbee practice when she told me she had gotten the email. I had a rush of mixed emotions, I was so happy for her but worried about where mine was. Maybe I hadn't made it? After several of the longest minutes of my life, there it was! I made it!
Systers set me up with two mentors. During the community bonding period we went through my summer schedule until we were all happy with it. The coding period started and I dived head first into my project. I spent my summer working in Python, and learning about open source project etiquette and culture. When I didn't know where to find the files I needed to do something, I could ask my senior mentor and she just knew. I feel very fortunate to have worked with her and I still turn to her for career advice.

A few months after GSoC ended, I got  an email from our administrator to the mailing list saying that Systers was going to try to participate in GSoC again that year (in 2013). I immediately wrote her back and told her that I would like to be a mentor. I was really nervous about being a mentor, a lot more than I was when I was a student. As a student you’re just expected to get your work done, ask questions and slowly become part of the community. However, as a mentor, I was expected to be a role model. I had such an amazing experience with my mentor and I really wanted to provide the same experience to my student.

All my worries went away as soon as I met my student.  As far as students go, I hit the jackpot! She was extremely smart, really organized, got her work done on time and was absolutely fantastic to work with.

Later in the year I was chosen to go to the mentor summit at the Google campus in California. There, I got to meet some of the people that had mentored me when I was a student. The summit has truly been one of the best experiences of my life. It was so cool to be surrounded by tons of exceptionally smart people who were also really passionate about open source.

Shortly after the summit, our administrator asked me if I wanted to help out as an org admin as well as be a mentor for 2014 GSoC. I didn’t have to think about it, I happily accepted. I’m happy to report our organization has grown a lot in a year. We’ve gone from six to 14 students and we’ve been able to recruit about four mentors per student.  And what a ride I’ve been on. I’m excited to continue my work with Systers and can’t wait to see what’s next for Google Summer of Code.

By Ana Cutillas, Google Summer of Code Student, Mentor, and Organization Administrator for Systers

Google Summer of Code new organizations - Part Six

Friday, August 8, 2014

We have two great new Google Summer of Code organizations to spotlight this week, The Institute of Artificial Intelligence and Frenetic.  It’s hard to believe that the summer has almost come to an end! The coding period for GSoC ends on Monday, August 18. 
The Institute of Artificial Intelligence at the University of Bremen in Germany investigates methods for cognition-enabled robot control. The research is at the intersection of robotics and Artificial Intelligence (AI) and includes methods for intelligent perception, dexterous object manipulation, plan-based robot control, and knowledge representation for robots.

Robots performing complex tasks in open domains, such as assisting humans in a household or collaboratively assembling products in a factory, need to have cognitive capabilities for interpreting their sensor data, understanding scenes, selecting and parameterizing their actions, recognizing and handling failures and interacting with humans.

In our first year in Google Summer of Code (GSoC), we have students working on three distinct projects from our core research competences:

  • Mihai Baltac is working on the development of situation-specific simulation environments in the Gazebo robot simulator. On the basis of an existing plan library in the CRAM system, he will also develop robot plans that enable robotic agents to operate in this environment in a knowledge-supported, robust fashion.
  • Andrei-Mihai Nicolae is improving the visualization of the belief state and the intentions of the cognitive agent. He’s further developing the Bullet physics engine based reasoning system of CRAM.
  • Razvan-Andrei Stoica is extending the geometric reasoning capabilities of the KnowRob CAD reasoning system. He will introduce new attributes that can be extracted from physical properties of a known object model, and will work on further refining the current algorithms.

By Jan Winkler, Institute for Artificial Intelligence 


Frenetic is an open source software-defined networking controller platform. With Frenetic, a programmer can describe the intended behavior of the network in a high-level language, and the compiler and run-time system generates the low-level code that executes on network devices.

Software-defined networking (SDN) is an emerging network architecture in which a logically-centralized controller manages the behavior of a collection of programmable switches, such as OpenFlow switches. SDN can simplify many network algorithms, and it also makes it easy to extend the network with new functionality. Most SDN controller platforms provide low-level programming interfaces that closely mirror the capabilities of the underlying hardware.

Frenetic is unique in that it provides a high-level and declarative programming interface that abstracts away from the details of the hardware and allows programmers to focus on the essential features of network applications.

We are very excited to have a Google Summer of Code student this year. He is working hard designing and implementing support for versions 1.3 and 1.4 of the OpenFlow protocol.

By Marco Canini, Frenetic Organization Administrator

Google Summer of Code new organizations - Part Five

Friday, August 1, 2014

We have two additional Google Summer of Code organizations to spotlight this week, LabLua and Code Combat.  Both are new to the program in 2014. Read below for more information about the exciting projects their students have taken on this summer.
LabLua is a lab at PUC-Rio dedicated to research on programming languages with an emphasis on the Lua language. Lua is a powerful, fast, lightweight, embeddable scripting language that has been used in many industrial applications, and on many embedded systems and games.

It is our first year in Google Summer of Code (GSoC). We had eight mentors create a pool of 15 projects to help students to submit proposals. We received a total of 20 proposals, from which four have been accepted. We are quite an international group — two of the accepted students are from Brazil, one is from Romania and one is from India.

The projects our students are currently working on include:
  • Adding flow typing and evolution of table types to typed Lua
  • Adding multi-CPU support to VLC
  • Creating a library to help 'memory leak' detection in Lua
  • Porting Gameduino demos to the programming language Céu (another language currently under development at our lab)
By Ana Lúcia de Moura and Francisco Sant'Anna, Researchers at LabLua

CodeCombat is a game that teaches people to code. It runs completely in HTML5 and supports playing in JavaScript, Coffeescript, Python, Lua, Clojure, Io, and more to come. Since open sourcing the site in January, we've been very happy with the huge response from people who provide code improvements, experimental game levels and extensive translations to the site. Almost every aspect of the game is available for contributors to work on, and GSoC has been terrific in bringing not only attention to our project but also many dedicated volunteers as well.

Alexandru Caciulescu is building new game levels throughout the summer. His campaign focuses on teaching intermediate-to-advanced concepts and algorithms, such as sorting, recursion and data structures. He has already built the Gold Rush level which requires efficient pathfinding, and which we based our own Greed Tournament level on.

Jayant Jain is working on improving our level editor. Building new levels is currently quite hard, arguably the most difficult thing for any contributor to do. Jayant is running UX tests and working with Alexandru and other level builders to remove pain points, fix bugs, add key features and create helpful documentation.

Dominik Kundel is doing a series of projects on the game interface which will improve gameplay in general and mobile gameplay in particular. Projects include auto-complete, separation of coding and game views and interfaces for manipulating code easily on mobile.

Ruben Vereecken is building the site's achievement system from top to bottom. It uses an experimental, highly decoupled and flexible foundation that is largely independent from the client logic. He's also digging into several other parts of the site, such as the testing systems and making server-side improvements.

By Scott Erikson, Organization Administrator for Code Combat