opensource.google.com

Menu

Get the scoop on the Mentoring Organizations for Google Code-in 2014

Wednesday, November 12, 2014

We are excited to announce the 12 open source projects that will be acting as mentoring organizations for the Google Code-in 2014 contest that starts December 1st. The contest is designed to introduce 13-17 year old pre-university students to open source software development, giving them the opportunity to take the skills they have been learning in the classroom (or on their own) and apply them to a real software project. These open source projects have experienced mentors available —  all have participated in Google Summer of Code in the past with many also participating in previous years of Google Code-in.

GCI-2014-with border.jpg

Before the contest begins, students should read up on the different mentoring organizations participating this year by clicking on the links below.
Apertium - a platform for making rule-based machine translation systems
BRL-CAD - a computer aided solid modeling system
Copyleft Games Group - promotes players’ rights to create, play, modify, and share games
Drupal - a content management platform
FOSSASIA - a non-profit organization supporting developers and makers of the Free and Open Source community in Asia
Haiku - an operating system, fast and simple, inspired by BeOS
KDE -  a powerful graphical desktop environment for Unix-like workstations
Mifos - a non-profit org that brings technology-enabled financial services to the poor
OpenMRS - a medical records system platform for developing countries
Sahana Software Foundation - humanitarian open source disaster management software
Sugar Labs - a learning platform that reinvents how computers are used for primary education
Wikimedia Foundation - MediaWiki and extensions, powering Wikipedia and thousands of collaborative websites

Organizations will provide a list of tasks for students to work on during the contest in the following categories: coding, documentation, user interface, quality assurance, outreach, research, and training. Each task has at least one mentor assigned to it to help students should they have questions.  

The mentoring organizations are all busy working on identifying hundreds of tasks for students to chose from when the contest starts on December 1st. This year there are also beginner tasks available for students which are a great way for students to start working with the organizations and get a more complete understanding of the projects right away.

Starting on Monday, December 1st at 17:00 UTC, students that meet the eligibility requirements can register on the Google Code-in contest site and start claiming tasks and earning prizes.

For important contest information please check out the contest site for Contest Rules, Frequently Asked Questions and Important Dates.  We have a screencast about the contest available to view on our program site where you can also find flyers and other helpful information including the new Getting Started Guide. You can also join our announcement and discussion lists to talk with other students, mentors and organization administrators about the contest.

Students, join in the fun – Google Code-in starts Monday, December 1st!

By Stephanie Taylor, Open Source Programs

GSoC Reunion Recap with Cyrille Artho

Tuesday, November 11, 2014

To celebrate the tenth year of Google Summer of Code (GSoC), we recently welcomed over 500 people who’ve participated over the years to a special Reunion event. We’d like to share a few recaps of the event from the perspectives of students and mentors who joined us from 50 different countries. Today’s summary comes from Cyrille Artho, a five-year GSoC mentor from the Java PathFinder and LyX projects.

920x156xbanner-gsoc2014.png.pagespeed.ic.gdr4t3Igca.png

Having been a mentor for Google Summer of Code for five years, I had always wondered what the annual mentor summit was about. However, because October is usually a very busy time of the year, my schedule had never made it possible for me to join... until this year’s special reunion where both students and mentors from all years of the program were invited.

This year's event was the biggest one ever with a crowd so large that finding someone was not easy. I had never met anyone from the summit in person so it was nice to see Stefano, my fellow LyX project mentor, in the hotel lobby. From there we could proceed straight to registration and the reception, and finally discuss our experiences with GSoC face to face. Up to that point, thousands of kilometers and usually 7 or 8 time zones had always separated me from fellow developers and mentors, as I am located in Japan.
photo 2.JPG

The next day, I chose to stay in the event meeting rooms instead of going to the theme park so I could get some work done while also having a chance to see what other people are working on. It is interesting that Google does not restrict GSoC to “infrastructure-critical" projects, but also includes games. However, games are not necessarily simple software; some games require complex algorithms to keep information from many clients consistent, so some of the software can be just as complex as part of an OS kernel.

The second day ended with a big reception featuring guest speakers at the San Jose Tech Museum where it was interesting to see what can make a project successful in Linus Torvalds' opinion. The code has to fulfill certain quality standards --"good taste", as he called it -- but persistence is just as important as that. Nowadays, with so many projects being available as open source, something that is just released and then updated for a few weeks after that is just a blip on the radar that will no longer be noticed by the community.

The weekend was dedicated to the heart of the event, the "unconference" sessions, which were for me the highlight of the reunion. I was actually surprised that a few free slots were available early on (as I consider the early slots to be the most valuable ones), so I jumped in and proposed a session on testing. It was interesting for me to see that everybody who attended is using some sort of automated testing at some level, but almost nobody is happy with the tools that exist today. Although people see the benefit of testing, creating and maintaining test cases is still a burden and we need higher-level tools that help us with that. Unfortunately, if we move towards test case generation, it is impossible to create a single tool that caters to everyone, so we need tools that can interoperate. Open source is good at that, but the process can still take years or even decades, as we need to solve open research problems and then come up with some standards so we can (in the hopefully not-so-far future) combine partial solutions into a big ensemble.

Other sessions were dedicated to both technical and non-technical topics (for example, how to make our GSoC projects successful), and also included tutorial-like presentations. This helped me understand what some projects (such as crash reporting tools) or groups were about in a way that I would probably not have found when looking for information in the virtual world. I also liked that people could come up with suggestions on session topics in real time, although this sometimes meant that a session that I would have liked to join was canceled just as it was about to begin, or some sessions ended up drawing only a few people while others had more attendees than seats were available in the room.

All in all it was a very intense and enjoyable weekend, and I will try to keep that late October weekend free from now on to increase my chances of attending future summits!

By Cyrille Artho

Utilities for C/C++ Android Developers: fplutil 1.0

Monday, November 10, 2014


(cross-posted with the Android Developers Blog)

Today we're announcing the 1.0 release of fplutil, a set of small libraries and tools by Fun Propulsion Labs at Google* (the FPL in fplutil) that is useful when developing C/C++ applications for Android.

fplutil introduces the following:

  • build_all_android.py, an all-in-one build script that allows you to build (with the Android NDK), install and run native (C/C++) Android apps from the command line. This is ideal for build automation, but is also useful in a developer’s compile/run loop.
  • buildutil performs the configuration, build and archive steps of Android and Linux C/C++ applications using a suite of Python modules. This suite of modules can automate builds in a continuous integration environment. This framework uses legacy tools in the Android Development Toolkit.
  • libfplutil enables C/C++ developers to write traditional applications (like Hello World) using "main()" and "printf()" on Android.
  • android_ndk_perf.py is a desktop tool that enables native (C/C++) developers to measure the CPU utilization of their applications on Android, guiding their optimization efforts.  An example report is shown below:

android_ndk_perf.py example HTML report


You can download the latest open source release from our github page. We invite you to contribute to the project and join our discussion list!

By Stewart Miles, Fun Propulsion Labs at Google*

*Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.

Google Summer of Code wrap up: Ceph

Friday, November 7, 2014

We continue our Google Summer of Code 2014 wrap up series with Ceph, a distributed object store and file system. Patrick McGarry joins us for a review of two summer projects.



With our first year participating in Google Summer of Code (GSoC) in the rearview mirror, we are already looking forward to GSoC 2015. Over the summer, we learned useful lessons on how to engage with a broader audience and gained valuable code and developer insights. We had two GSoC students that were guided by three mentors, but we certainly hope to grow these numbers in the future. Read on for summaries of our developer projects.


Ceph Wireshark Dissector
Student: Kevin Cox
Mentor: Sage Weil


Wireshark, originally known as Ethereal, is a cross-platform, free and open source packet analyzer used for network troubleshooting, protocol development and general analysis. Although past efforts had been made to integrate Ceph protocols into Wireshark, these efforts were outdated and would no longer compile on a modern version of Wireshark.


This summer Kevin Cox was tasked with creating a new dissector that could be maintained easily and extended as both Ceph and Wireshark changed over time. The main points of the proposal were:
  • Create a strong framework from which the dissector can be built so that new message types can be added in the future
  • Develop code that allows the dissector to be accepted into upstream Wireshark
  • Work with the Wireshark team to get the dissector into Wireshark natively
  • Implement as many message types as possible


The code has been included in Wireshark, but it won't land until our next major release. Until then, users should follow the instructions on building and installing from the latest source. For more details, see Kevin’s student report.


Add Erasure Code to the Reliability Model
Student: Veronica Estrada Galiñanes
Mentors: Kyle Bader, Loïc Dachary


One of the compelling features behind Ceph is the built-in data reliability. The default scheme to ensure that your data will still be around in the event of hardware failures is replication.  Ceph takes data, splits it into chunks, and replicates those chunks (3x by default) across physical servers. There are many things that could affect the reliability of your data (writes, disk failures, network interruptions, etc) and Ceph's reliability model was based around the concept of this 3x replication.


“Erasure Coding” has recently been introduced as an alternative approach to data durability for Ceph. Unlike the default replication scheme, data can be stored in several chunks all on different physical servers with error correction information added. When one of those chunks becomes unavailable due to hardware failure, it can be reconstructed. The error correction information is much more efficient to store than literal copies of data; Ceph can often store data with erasure coding using only 1.4x the size of the data instead of 3x as with plain replication.


Veronica Estrada Galiñanes’ GSoC project was to model the impact that different replication schemes have on data durability in distributed systems. Veronica provided a thorough analysis starting with the existing system reliability. She then modeled several different approaches, including erasure coding and locally repairable codes. Although the analysis was focused on Ceph, it could be applied to any other object-based storage system.


This work provided a great methodology to analyze and confirm the redundancy and overall reliability of data within a Ceph system across a wide array of replication schemes. For the full student report, read Veronica's final report.


As we worked with the students, mentors, and other organization admins within the Google Summer of Code, we realized that students often have a different perspective of the world. This fresh perspective can offer insights and renewed enthusiasm that would otherwise be difficult to achieve. We found our experience with the program to be rewarding both in a tangible sense (code/developers) and, perhaps more importantly, in the intangible of new ideas and experience that will help broaden our ecosystem in the future. We hope to participate again next year!


By Patrick McGarry, Ceph Organization Administrator

GSoC Reunion Recap with Abhishek Das

Wednesday, November 5, 2014

To celebrate the tenth year of Google Summer of Code (GSoC), we recently welcomed over 500 people who’ve participated over the years to a special Reunion event. We’d like to share a few recaps of the event from the perspectives of students and mentors who joined us from 50 different countries. Today’s summary comes from Abhishek Das, a student participant in GSoC 2013 and 2014.



In celebration of the 10th anniversary of Google's prestigious Summer of Code program, they organized a reunion for mentors and students from the past 10 iterations of Summer of Code in San Jose, California from October 23-26. I attended the event as a student and a representative of the OWASP foundation.


I traveled from New Delhi, India and arrived in San Jose early morning on the 23rd and checked in at my hotel. I knew I'd be staying in the heart of Silicon Valley but was nonetheless pleasantly surprised to see the Adobe headquarters from my room! The evening was spent registering for the event and socializing with other developers who had flown in from all over the world. It was a delightful experience to randomly bump into developers and get to know about their organizations and open source projects.


The next day was a fun outing to the Great America theme park. Google had bought out the park for the whole day just for the summit attendees! That evening, a GSoC celebration event was held at the San Jose Tech Museum of Innovation. It was a wonderful (semi-)formal get together, full of geek speak and inspiring talks. Among the speakers were Chris DiBona, Alfred Spector, Peter Norvig, Dirk Hohndel and Linus Torvalds! Mr. DiBona talked about how he came up with the idea of Summer of Code and the immense impact it has had over the past 10 years as it continues to grow. Mr. Norvig's short inspiring talk mentioned how a bad craftsman blames his tools and how a good one wouldn't differentiate between the two. Hohndel emphasized the need and importance of valuing criticism. And Torvalds implored budding developers to develop good taste and to know what to keep and more importantly, what to throw away. Selfies with the guests followed alongside lavish drinks and buffet. 


The unconference sessions started Saturday morning. I loved the idea of having spontaneous sessions with lots of free interaction rather than the rigidity that is usually associated with conferences. Some sessions were run by Googlers but most were run by attendees. The first one I attended was by Grant Grundler (Googler) on Chrome OS. He talked about the future of Chrome OS and Android, the development cycle of a hardware-based product such as a Chromebook, the support model of Chrome OS and ended with a Q&A.

Next up was one on data visualization libraries. People talked about the libraries they were using and the applications they'd built using them. Others asked questions and lots of new ideas came up.

Among other sessions I attended were ones on Processing, bioinformatics (scope, ongoing work and future), artificial intelligence (again a brainstorming and ideation meetup), big data, robotics and Google Cardboard! There were also several lightning talks going on at the same time in the Ballroom where organization representatives introduced their projects in under 3 minutes. It’s always fun to listen to these quick talks and get familiar with their work.

Sunday morning began with the much awaited trip to the Googleplex.


Sessions continued till the afternoon after which we had to bid farewell. Carol Smith conducted the feedback session and delivered the closing address.

It was an absolutely awesome event. The feeling of getting to meet FOSS superstars in person, people who I'd been following on GitHub or Twitter for a while, was inexplicable. The idea of having a sticker exchange as well as a chocolate room was perfect. And most importantly, the organisers got all the basic things spot on: get open source developers from different backgrounds in one place and make it as comfortable as possible for them to interact and have productive discussions with each other (no shuttling between the conference venue and accommodation, free and fast WiFi, awesome food and drinks, a formal celebratory dinner, schwag, and so on). A big shout out to Carol, Chris, Stephanie, and the entire Google Open Source Programs team for an amazing event!


By Abhishek Das

.