Author Archives: Open Source Programs Office

Announcing the Google Code-in 2015 winners

Congratulations are in order to all of the participants of Google Code-in (GCI) 2015. This was the largest GCI yet with 980 students from 65 countries completing an impressive 4,776 tasks.


The Winners and Finalists chosen by the 14 open source organizations are listed below. They completed a total of 1,536 tasks and are from 24 countries and six continents!


First is a list of our Grand Prize winners. Each of these 28 students will be treated to a trip to California to visit the Google campus for four days this summer to meet with Google engineers and enjoy some fun in San Francisco.


GRAND PRIZE WINNERS
Name
Organization
Country
Ahmed Sabie
Systers
Canada
Andrew Haberlandt
Wikimedia
United States
Anesu Mafuvadze
SCoRe
United States
Aun-Ali Zaidi
RTEMS
United States
Brayan Alfaro González
SCoRe
Costa Rica
Břetislav Hájek
OpenMRS
Czech Republic
Bror Hultberg
Apertium
Germany
Caroline Gschwend
Metabrainz
United States
Daniyaal Rasheed
Ubuntu
United States
Ethan Ordentlich
RTEMS
United States
Ezequiel Pereira Lopez
Sugar Labs
Uruguay
Hannah Pan
Haiku
United States
Imran Tatriev
KDE
Kazakhstan
Ioannis Kydonis
Wikimedia
Greece
Jason Wong
FOSSASIA
United States
Kinshuk Kashyap
Copyleft Games Group
India
Matthew Allen
Ubuntu
Australia
Ohm Patel
Metabrainz
United States
Piotr Antosz
Sugar Labs
Poland
Russell Greene
KDE
United States
S. Sai Vineet
Apertium
India
Sara Du
Systers
United States
Starbuck Johnson
Copyleft Games Group
United States
Sudhanshu Gautam
Drupal
India
Suryansh Singh
Drupal
India
Victor Tolpegin
Haiku
United States
Yamandú Bermúdez
OpenMRS
Uruguay
Yathannsh Kulshreshtha
FOSSASIA
India


And below are the 42 Finalists. These students will each receive a digital certificate of completion, a sweet Google Code-in t-shirt and hooded sweatshirt.


FINALISTS
Name
Organization
Country
Aashir Shukla
SCoRE
India
Adrián Arroyo Calle
Haiku
Spain
Akshaykumar Kalose
Drupal
United States
Alex Chen
OpenMRS
China
Andrey Cygankov
KDE
Russian Federation
Anshuman Agarwal
FOSSASIA
India
Artur Puzio
KDE
Poland
Austin Jenchi
Copyleft Games Group
United States
Cristian García
Sugar Labs
Uruguay
Daksh Shah
Sugar Labs
India
Divya Prakash Mittal
Metabrainz
India
Ethan Chi
Apertium
United States
Evan McIntire
Ubuntu
United States
Geoffrey Mon
Wikimedia
United States
Girish Rawat
Ubuntu
India
Henry Dang
Systers
United States
Isaac Hutt
Wikimedia
United Kingdom
Ishan Joshi
Systers
Australia
Jaeeun (Jasmine) Park
Sugar Labs
Philippines
Justin Du
Wikimedia
United States
Lee Yang Peng
Apertium
Singapore
Liam Greenlee
RTEMS
United States
Lucas Jones
SCoRE
United Kingdom
Malena Vasquez Currie
Ubuntu
Argentina
Markus Himmel
Haiku
Germany
Matthew Marting
Apertium
United States
Muhammad Yasoob Ullah Khalid
FOSSASIA
Pakistan
Nji Collins
OpenMRS
Cameroon
Nurul Ariessa Norramli
Metabrainz
Malaysia
Petr Martynov
Drupal
Russian Federation
Philip Lindner
SCoRE
Germany
Phillip Llewellyn
Drupal
Jamaica
Phoebe Fletcher
Systers
United Kingdom
Ralph Holmes
RTEMS
United Kingdom
Rishav Kundu
Copyleft Games Group
India
Stanford Lin
KDE
Canada
Stanisław Szcześniak
Metabrainz
Poland
Stephanie Fu
Haiku
United States
Syed Ahmed
OpenMRS
Canada
Tan Gemicioglu
RTEMS
Turkey
Václav Šraier
Copyleft Games Group
Czech Republic
Yago González
FOSSASIA
Spain


Thank you to all of the students, mentors and organization administrators who made Google Code-in 2015 our biggest and best yet. The organizations were impressed with the quality of work and enthusiasm from the students. We hope the students had fun learning more about open source and will continue to contribute to these communities.


Stay tuned for more blog posts with statistics from GCI 2015, including a breakdown of the top participating schools, countries of students and mentors, as well as wrap-ups from some students and organizations.

By Stephanie Taylor, Open Source Programs

Coming to America: how Google Summer of Code helped change my life

Today we feature a story about Weilin, a Google Summer of Code student turned PhD candidate. The 12th instance of Google Summer of Code is just around the corner! Visit our new program website at http://g.co/gsoc for more information about how you can get involved.

My name is Weilin Xu and I’d like to tell a personal story about my involvement with Google Summer of Code (GSoC) and just how the experience helped change my life.

I first learned of GSoC in 2011 when I was a CS undergraduate in Beijing. The program sounded great, and my first challenge was deciding which of the hundreds of participating open source organizations to apply to. I finally decided on the Nmap Security Scanner, a tool known for network discovery and security auditing. Nmap is even a movie star, but I chose it because of my fascination with networking and the new IPv6 protocol.

My biggest fear was that I might be unqualified to work on such a major project with millions of users. I didn’t have much experience in the open source community, and my English was really bad.

Meeting my GSoC mentor David Fifield (right) in San Francisco, May 2015

I applied anyway and I’m so glad that I did! The Nmap crew accepted my application and I was assigned a talented, friendly and patient mentor named David Fifield. David taught me how to use Git directly rather than just throwing me a tutorial to complete on my own. He believed that he could teach me in minutes online what could take me an hour to learn from an English article on my own. David also helped improve my English during our weekly online meetings and always encouraged me by pointing out how I’d improved. Working on Nmap with David that summer was terrific and gave me the confidence to succeed!

My project was improving Nmap’s IPv6 scanning features--particularly the host discovery system. The current IPv4 Internet’s address space is small enough to scan by brute force, but that is not possible with IPv6. So we researched and implemented other effective discovery methods, such as our targets-ipv6-multicast-slaac and targets-ipv6-multicast-echo scripts which discover link-local hosts within seconds using the IPv6 NDP protocol. Many of these techniques were already known to the networking/security community, but they were new to Nmap and that brought them into wider use. It was great to see the community appreciating these new features, and perhaps we even helped in spreading IPv6 adoption!

The Nmap GSoC experience was an important milestone in my life. It taught me critical development and research skills and it even helped me find a great job. Tsinghua University’s NISL lab offered me a full-time position which typically requires a master’s degree, but they made an exception because of my real-world GSoC experience!

Before GSoC 2011, continuing my graduate studies in the United States was never more than a dream. Study abroad is usually for wealthy Chinese families, not poor ones from rural areas. But David (a graduate student himself) encouraged me to apply and wrote a recommendation letter. I used the GSoC stipend to pay my graduate school application fees as well as testing fees for the GRE and TOEFL. After months of anticipation, I received great news— a full scholarship from the University of Virginia to research and study adversarial machine learning! My parents were very proud, and I moved to the U.S. for this exciting adventure.

I recently had the honor of meeting my mentor David in person, along with Nmap’s founder Fyodor at the “Nmap Secret Lair” in San Francisco. Fyodor took my picture with David that I’ve included in this post.

I would like to thank Google very much for organizing this fantastic GSoC program and my mentor David Fifield for being so supportive and patient and helpful. I’d also like to thank Fyodor for all of his help as well. Finally I’d like to thank my twin brother Guanglin Xu for introducing me to GSoC in the first place.

By Weilin Xu, PhD Candidate, University of Virginia

Seesaw: scalable and robust load balancing

Like all good projects, this one started out because we had an itch to scratch…


As a Site Reliability Engineer at Google working on corporate infrastructure, there are a  large number of internally used services that need to be load balanced, both for scalability and reliability. Back in 2012, load balancing was provided by two different platforms and both presented different sets of management and stability challenges. In order to alleviate these issues, we set about looking for a replacement load balancing platform.

After evaluating a number of platforms, including existing open source projects, we were unable to find one that met all of our needs and decided to set about developing a robust and scalable load balancing platform. The requirements were not exactly complex - we needed the ability to handle traffic for unicast and anycast VIPs, perform load balancing with NAT and DSR (also known as DR), and perform adequate health checks against the backends. Above all we wanted a platform that allowed for ease of management, including automated deployment of configuration changes.

One of the two existing platforms was built upon Linux LVS, which provided the necessary load balancing at the network level. This was known to work successfully and we opted to retain this for the new platform. Several design decisions were made early on in the project — the first of these was to use the Go programming language, since it provided an incredibly powerful way to implement concurrency (goroutines and channels), along with easy interprocess communication (net/rpc). The second was to implement a modular multi-process architecture. The third was to simply abort and terminate a process if we ended up in an unknown state, which would ideally allow for failover and/or self-recovery.

After a period of concentrated development effort, we completed and successfully deployed Seesaw v2 as a replacement for both existing platforms. Overall it allowed us to increase service availability and reduce management overhead. We're pleased to be able to make this platform available to the rest of the world and hope that other enterprises are able to benefit from this project. You can find the code at https://github.com/google/seesaw.

By Joel Sing, Google Site Reliability Engineer

Google Code-in 2015: our biggest year yet!


GCI 2015 logo.jpg


The 6th year of Google Code-in (GCI) came to a close today after an exciting seven week run. Currently, mentors from each of the 14 organizations are busy reviewing final work submitted by students. Each organization will pick two Grand Prize winners to receive a trip to Google’s California headquarters this June where they will meet Google engineers, see exciting product demos and enjoy a fun-filled day of adventure in San Francisco.


We would like to congratulate all of the new and returning students who participated in GCI this year. We are thrilled to have our biggest year yet: over the last seven weeks, 979* students from 65 countries completed 4755* tasks in the contest.


And finally, a HUGE thanks goes out to the heart of our program: the GCI mentors and organization administrators. These volunteers spend countless hours creating and reviewing hundreds of tasks and teaching teens about all facets of open source development (community standards, new and exciting technologies, code reviews, version control systems, IRC and everything in between). We could not run this program without you!

* These numbers will increase over the next couple of days as mentors review the final work submitted by students.

Mary Radomile, Open Source Programs

J2ObjC 1.0 Release

We are pleased to announce the 1.0 release of J2ObjC, a Google-authored open-source compiler that lets iPhone/iPad applications use Java code. J2ObjC's goal is to support the sharing of an application's non-UI code (such as data access, or application logic) by writing it once in Java, then building it into the iOS application. This same code can be shared with the Android and web versions of the application (the latter using the GWT compiler), as well as with server-side code. J2ObjC is licensed under the Apache License, Version 2.0.
J2ObjC is not a Java emulator, but instead translates Java to Objective-C classes that extend the iOS Foundation Framework. It supports the Java 8 language and runtime required by client-side application developers. JUnit and Mockito test translation and execution is also supported.  J2ObjC can be used with most build tools, including Xcode and Make, and there are Gradle and Maven plug-ins.
J2ObjC does not translate user interfaces, as world-class apps need to have world-class user interfaces that adhere closely to the different iOS and Android design standards. J2ObjC instead focuses on writing common abstractions once, and verifying them with a common set of unit tests. This ensures that an app's features work the same across platforms, improving customer experiences. Teams developing multi-platform apps still need great engineers for each platform, but with J2ObjC they don't waste time rewriting each others' code.

Using continuous integration, J2ObjC helps product velocity. As each feature is added or bug fix made to the application's shared code, all platforms are automatically rebuilt and tested. And because common features are shared across platforms, a bug found on one platform is fixed once for all platforms.

Several of Google’s iOS applications use J2ObjC for these reasons, including Inbox by Gmail, Google Calendar, Google Docs, Google Sheets, Google Slides and Google My Business. Each team has dedicated iOS designers and engineers, but application logic common to all platforms is written once.

By Tom Ball, Google Engineering

Ringing in the new year with Google Code-in

GCI 2015 logo.jpg
Today marks the halfway point of the Google Code-in 2015 (GCI) contest. 690 teenagers from 63 countries have been busy working with 14 open source organizations completing an impressive 2,370 tasks. The number of students successfully completing tasks has already surpassed the total number for all of the 2014 contest!


Tasks that the students have completed include:
  • writing test suites
  • improving mobile UI
  • designing website landing pages
  • writing documentation and creating videos to help new users
  • working on internationalization efforts
  • fixing and finding bugs in the organizations’ software


Over 2700 students from 98 countries and 1800+ schools have registered for the contest. We look forward to seeing more great work from many of these students over the next few weeks. A big welcome to the students from four countries participating for the first time in GCI: Luxembourg, Moldavia, Mongolia and Uganda!  


The countries with the most students completing tasks so far are:
  • India - 194
  • United States - 170
  • Romania - 46
  • Singapore - 36
  • Canada - 21

There is still plenty of time to get involved with Google Code-in to earn digital certificates and a Google Code-in 2015 t-shirt. New tasks are being added daily to the contest site so if you don’t see something that interests you today, check back again every couple of days. Currently over 2,300 tasks are open for students to choose from.


The last day to register for the contest and claim a task is Sunday, January 24, 2016 with all work being due on Monday January 25, 2016 at 9:00 am PT.


Good luck to all of the students participating this year in Google Code-in!

By Stephanie Taylor, Google Code-in Program Manager

Stay in touch with RememberMe

Occasionally on the open source blog we feature the personal projects of Googlers. Today we hear from Blair Kutzman, whose loss inspired the creation of RememberMe, an open source email reminder tool.


On June 2, 2014 my cousin Jeremy Monnett was killed in a plane crash. He left behind his two sons, Miles and Brooks, and wife Kate.  As much as we look to explain events like these, they unfortunately can happen at any moment and to anybody.
Jeremy.jpg
RememberMe is an open source project I created in memory of Jeremy that helps people keep in touch. The basic premise is simple — at a configurable interval (eg. daily, weekly, monthly, etc) an email arrives in your inbox reminding you to contact someone. The reply-to field on the mail is set so that replying will send your response to your loved one.

The loss of Jeremy reminded me of just how important it is to keep in touch with the people you love the most. I hope that by making this project public, others will create email address for young children, spouses, and journal their daily thoughts and daily activities. This provides a fabulous way both to chronicle their lives, and also share your daily thoughts.

Please check out the project on github and enjoy!

By Blair Kutzman, Google Engineering

MusicBrainz’ Gelato Summit 2015

MusicBrainz is an open music encyclopedia maintained by a global community of users, collects metadata and makes it available to the public. The team just wrapped up their annual summit in Barcelona, sponsored in part by the Google Open Source Programs Office.

From October 30th through November 1st, the MusicBrainz Summit 15 took place in Barcelona, Spain. All of the MetaBrainz employees were there in addition to a handful of contributors from our community — two lead developers of BookBrainz, a long-time volunteer developer on MusicBrainz and the lead of AcousticBrainz. Between us, we represented seven countries and nine languages.
Talking around the table.

We managed to cover a lot of ground on serious topics including how to avoid data/MBID loss, how to version data, dealing with record labels, unresolved style issues and integrating the various Brainz projects a bit better. The official notes for the summit are stored in a public Google Docs document. Feel free to read through and contribute your own comments.

Our group has discussed releasing the translations of MusicBrainz for years — but this time we actually did it! It is now available in English, German, Dutch and French. At some point in the not-too-distant future we will also enable the translation of all of our documentation.

We also used this time together to talk about how and why MBIDs get lost and what we can do to prevent this. As part of this discussion, we decided to make more edits “autoedits” for all users. The goal is to have shorter queue of open edits (although there has been a significant drop in open edits since mid November) but also to avoid losing MBIDs once they have been generated. More in depth discussion of our reasoning and some of the community’s response can be seen in the server release blog post and its comments.

Most of our time was productive, but you cannot visit a city like Barcelona and not enjoy the surroundings. In addition to the more obvious local sights, we were introduced to an amazing gelato place within walking distance from our summit. It’s definitely worth a visit! A MusicBrainz summit would not be complete without copious amounts of chocolate. A huge thank you to our attendees for supplying Ritter Sport direct from the factory!

Finally, a big thank you to Google and Spotify for helping to fund this meeting. It would have been a lot harder to bring all these people together from around the world without their (continued, no less!) support. Here’s to 2016 and summit 16.

By Frederik “Freso” Sandberg, MetaBrainz Community Manager

Raising Sweet C++ Cane for Well-Dressed Animals

To celebrate the holiday season at Fun Propulsion Labs, we're trading our sushi mats and baking pans for candy canes and snowballs. Please join us for a special holiday-themed version of Pie Noon and Zooshi! Zooshi and Pie Noon are open source, cross-platform games built from a suite of libraries that eager C++ developers can use to build their own projects.

You can download and run Zooshi's Santa mode on Google Play and find the latest open source release on our GitHub page. The holiday version of Pie Noon is available on Google Play as Snowdown in Santa Tracker and on our GitHub page. Happy Holidays!

By Stewart Miles, Fun Propulsion Labs*

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

Google Code-in: may the source be with you

For the sixth year running, starting today, teens from around the world will have the chance to learn and develop new CS skills by competing in Google Code-in (GCI). By working on real software projects—with help from mentors along the way—students just starting out with Computer Science can begin to investigate and discover the countless opportunities at their fingertips through code.


During the seven weeks of Google Code-in, pre-university students (ages 13-17) can browse hundreds of tasks created by 14 open source organizations. Students then get to choose the tasks they find most intriguing. A wide variety of skills and interests are required to make any software project work, so the tasks in Google Code-in are designed to reflect that diversity. Students can choose to work on projects across documentation, coding, training, research, quality assurance, user interface and outreach tasks.


The 14 organizations students can work with during the contest encompass many fields: health care for developing countries, learning activities for elementary students, desktop and portable computing, the encouragement of young women in computer science, game development, to operating systems used in satellites and robots.

Each task has at least one mentor assigned to it - not only to review the student’s work, but to help answer questions along the way. Each organization also offers beginner tasks that give students who are newer to open source development an easy and clear place to get started. Another goal of the contest is to encourage students to find a coding community that they enjoy working with and hopefully become an active contributor for years to come.
Contest open screenshot.png
Over the last 5 years, over 2,200 students from 87 countries have successfully completed tasks by participating in Google Code-in. To celebrate CS Ed Week this year, please help us introduce even more young minds to open source software development through Google Code-in. To learn more about Google Code-in— including rules and FAQs—please visit the site and the Getting Started Guide.

By Stephanie Taylor, Open Source Programs