Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Google Open Source Blog
Syndicate content
News about Google's Open Source projects and programs.
Updated: 2 hours 14 min ago

Flowing into your games: LiquidFun 1.1

Thu, 07/17/2014 - 18:00
We are thrilled to announce the 1.1 release of LiquidFun, an open-source 2D physics engine. It adds particle simulation to Erin Catto’s popular Box2D engine, and can be used as a drop-in replacement for Box2D. If your program is written in C++, Java, or JavaScript, you can easily use LiquidFun.

Today’s release adds some exciting new features to LiquidFun. Some highlights:

  • LiquidFun now runs in your browser! Using Emscripten, we’ve translated LiquidFun into JavaScript. You can see LiquidFun’s Testbed application, rewritten in JavaScript, running on our landing page.
  • We’ve added iOS support for LiquidFun’s internal Testbed and EyeCandy applications. Earlier versions of LiquidFun could be made to run on iOS, but iOS is now officially supported.
  • We’ve optimized LiquidFun's particle simulation. In particular, we’ve written NEON (a.k.a., Advanced SIMD) code to improve performance on ARM processors.
  • We’ve stabilized the simulation, fixed bugs, and added some cool new functions, including one that automatically splits a particle group into multiple, disjoint particle groups. 
  • We’ve clarified and improved the documentation, thanks to questions from the LiquidFun community.

LiquidFun Games

The 1.1 release also includes two physics-based, open-source games from Google, currently available in the US Play Store.

VoltAir, written in C++, is a fast platformer based on a compelling physics system, plenty of speed and motion, and interesting puzzles. If you’re a native developer, VoltAir’s source code is a great example of how to use LiquidFun.

The second game, LiquidFun Paint, lets you create art that moves, shakes, and delights. It is written in Java, and uses LiquidFun via SWIG bindings. If you’re a Java programmer, you may want to peruse the source code of LiquidFun Paint.

Several other games also have incorporated LiquidFun since its initial 0.9 release last December. One such game is the beautiful Battle of the SeaSons, written by three students from the technology university ETH Zurich.

AdoptionOur March 2014 release of LiquidFun 1.0 has already been integrated into several game development toolkits.
  • LiquidFun is also now a built-in component of the Lobster game programming language. 
Inside LiquidFunIf you’d like to learn even more about how the LiquidFun particle simulation works, you may enjoy our new presentation describing the tech and algorithms, Inside LiquidFun.

By Jason Sanmiya, Fun Propulsion Labs at Google*

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

Categories: Open Source

Hot weather, cool code: July Unix User's Group meeting

Tue, 07/15/2014 - 20:30
Unigroup is the oldest and largest Unix User's Group (Unix/Linux/BSD) serving the Greater New York City Regional Area. It has been serving the NYC Unix/BSD Community for over 30 years, and the NYC Linux Community for over 20 years.

Unigroup organizes monthly meetings, each of which contains a main presentation on a wide variety of topics. In this month's event, happening on Thursday, July 17th, 2014, I will present the FreeBSD Test Suite and its backing testing framework, Kyua, both of which are supported by the Google Open Source Programs Office.

Today's blog post features the key concepts behind the FreeBSD Test Suite and what you can expect from Thursday’s meeting. If you are attending, please do not forget to RSVP by July 17th!

The FreeBSD Test Suite
FreeBSD is a Unix-like, free, general purpose operating system with a large codebase — over 5 million lines according to Ohloh. In order to easily ascertain the quality of the system and to ensure that such quality does not regress over time, the foundations of a test suite and a collection of tests were needed.

With funding from a Google Summer of Code project in 2007, I got involved in writing a test suite framework for NetBSD known as ATF, parts of which were rewritten under the Kyua project name starting in 2010. Both ATF and Kyua have always been standalone components able to work on any Unix-like operating system. Until recently, NetBSD was the major consumer of these testing tools, but in 2013 they spilled into FreeBSD to equip the system with its own test suite.

The goals of the FreeBSD Test Suite are to assist developers in modifying the system, to assist end users in validating that the system works according to documented expectations, and to assist the release engineering team in vetting new releases and to put the shiny-new Kyua framework to use in a production-quality project.

Currently, the FreeBSD Test Suite is part of both FreeBSD 11.0-CURRENT (the development branch) and of stable/10 (the stable branch that will yield 10.1-RELEASE). The test suite currently holds about 570 test cases — a pretty small number considering its scope, but decent enough given that the test suite foundations are still under active development.

Kyua: the test suite glue
Kyua is a runtime engine for test suites, mostly engineered towards testing operating systems. In general terms, a test suite defines the layout of its test programs and its test cases using a declarative language that Kyua is in charge of. Based on this definition, Kyua allows to execute the tests in a controlled environment and to generate user-friendly and machine-parseable reports of the results. Continuous integration facilities are left to better-suited third-party systems such as Jenkins.

Kyua is able to run test programs implemented in a variety of languages with support for various different testing libraries. In particular, Kyua can run ATF-based test programs (written in either C, C++ or POSIX shell), legacy test programs (those that just exit with 0 or 1 depending on the test's success), and TAP-compliant test programs. It should be possible, and is in fact planned, to support other backends like GoogleTest.

The upcoming talk
In Thursday’s meeting, I will be presenting all of the above and much, much more.

The session will start with a bit of history about my involvement with the BSDs. I’ll talk about the goals of the FreeBSD Test Suite while comparing those with its NetBSD counterpart, presenting the Kyua project, outlining the current state of the test suite, showcasing Jenkins and possibly performing some live demonstrations. Expect code samples.

If you happen to be in the New York City area on the 17th, RSVP and join us for the session!

By Julio Merino, Google Site Reliability Engineering

Categories: Open Source

Google Summer of Code new organizations - Part three

Fri, 07/11/2014 - 18:00
Below is the third post in our summer series of new Google Summer of Code (GSoC) organizations for 2014. We are pleased to welcome both MOTECH and Checkstyle to the GSoC family—please read more about their organizations below.
The MOTECH project, an initiative of Grameen Foundation, is an open source software platform for building mobile health solutions that improve health outcomes for the world's poor through access to relevant health information.

Features of typical MOTECH-based applications include:

  • distributing information to patients via voice or SMS
  • collecting data from patients or care providers
  • alerting care providers of the status of their patients
  • facilitating communication between patients, care providers, and/or health administrators

Notable deployments include the Mobile Midwife program in Ghana, which provides pregnant women and their families vital information about how to have healthy pregnancies, and the Ananya project in Bihar, India, which aims to improve outcomes in maternal/child health as well as TB treatment adherence.

This is our first summer participating in Google Summer of Code and we couldn’t be more excited to be a part of this fantastic program! We were fortunate to accept two very promising students to join our team: Tuan Trang and Mimansha Bhargav. Tuan will be working on a project to get MOTECH running in the cloud, using Google Compute Engine and Docker containers. His efforts will provide a much easier deployment and hosting path for our partner organizations who don't employ full-time technical operational staff (i.e. most of them). Mimansha will be improving our integration with CommCareHQ, an important data collection and health worker administration system used widely for health projects. With the completion of his project, MOTECH will support multiple versions of CommCare forms, be able to connect to multiple CommCare servers/domains, and provide a graphical interface for building MOTECH workflows based on specific form/case fields.

We are thrilled to have Tuan and Mimansha on board and excited for what the summer will bring!

By Lauren Lavoie, Organization Administrator for MOTECH

Checkstyle is a development tool that helps programmers write coherent Java code that adheres to coding standards. It automates the process of checking Java code to spare humans of this sometimes boring (but very important) task. Checkstyle is ideal for projects that want to enforce a coding standard.

Checkstyle is highly configurable and can be made to support almost any coding standard and can check many aspects of your source code. The tool also provides checks that easily identify class design problems or detect negligence of engineering best practices.

Our projects for Google Summer of Code 2014 include:

  • Updating Java ANTLR grammar to support Java 8 syntax changes.
  • Adding reliable parsing support of comments and documentation comments (special format of comments that is used by JavaDoc tool) to Checkstyle's Java grammar. This will allow Checkstyle to validate comments in code and let other developers write their custom validation rules based on ready-to-use parse tree (as it is done with java code now).
  • Reviewing requirements for Java code style from Google, creating a Checkstyle configuration for it, and extending the existing checks (or create new checks) to cover Google's requirements.

By Roman Ivanov, Organization Administrator for Checkstyle

Categories: Open Source

KDE shines with help from Google Code-in students

Wed, 07/09/2014 - 02:00
Google Code-in (GCI) is a contest that helps encourage teens (13-17 year olds to be exact) to participate in the wide world of open source development. KDE, an organization that focuses on the development and distribution of free and open source software for desktop and portable computing, has been a proud GCI mentoring organization for the last four years. Dennis Nienhüser, one of KDE’s mentors, discusses his experience with the program below.

How does one become a contributor to Open Source? Some start with the wish to fix that certain annoying bug in their favorite software. Others want to extend it by adding a new feature. However one arrives, the path to completing a seemingly easy task is often not clear. Where's the source for that button? How do I make my changes take effect in the software? Finding the right path can be a frustrating journey many are not willing to endure. Google Code-in (GCI) aims to help out; pairing prospective teen contributors with mentors from established open source organizations ultimately builds a path to successful contributions.

To increase motivation, GCI is organized as a contest. Pre-university students 13-17 years old from all over the world can choose from a large pool of code, documentation, research, quality assurance and user interface tasks. The pool is created by the mentors of the participating open source organizations who continue to add to it throughout the contest. A task is a set of work in one of the above five categories that can be completed in a short time, taking approximately a few hours to a day to complete. In addition to self-contained tasks, task series are also created where similar work is split into several tasks or related work is split into sequential tasks. This way all sorts of work can be converted into manageable pieces for open source newbies.

However, GCI is not meant to be a way of distributing work. It’s more of an ongoing communicative event — students and mentors exchange ideas, collaborate, and task after task gets closed. The core of the contest involves choosing a task (or several tasks) and completing it during the seven week contest. Afterwards, the number of successfully completed tasks is summed up. One completed task earns the student a certificate. Three or more qualifies the person for a groovy t-shirt certain to make their friends jealous. Students who are among the 20 top performers win a trip to Google Headquarters in Mountain View, California.

A successful GCI for a student means finishing tasks -- fortunately they're fun to work on. Maybe even addicting! Why else would someone work on tasks from dusk till dawn? Our industrious students added documentation videos for all sorts of KWin effects, updated KGeography to show recent changes, and polished KStars features. A new touch typing course for the US English keyboard layout and keyboard layout files for more languages were created for KTouch. Python support of KDevelop was extended in a series of tasks, and Amarok got several new testers to verify bugs. The Trojitá email client got a couple of usability improvements. All sorts of new features found their way into Marble, among them are extensions of KML support, polishing of the new Cloud integration and initial support for tours. Inner and outer planets of the Solar System are now shown as well as the Moon with its phases. There were 115 Marble GCI tasks alone, a considerable portion of the 259 total closed tasks for KDE. At the end of the contest Mikhail Ivchenko from Russia and Benjamin Kaiser from Australia each completed over 40 tasks and were selected as KDE’s two grand prize winners, earning them a trip to Google’s headquarters in Mountain View, California.

A big thanks to all of our hard working students and mentors.  We are hopeful KDE will be able to participate in GCI again later this year!

By Dennis Nienhüser, KDE Mentor

Are you interested in participating in Google Code-in this year? Keep an eye on the program website for important dates and information.
Categories: Open Source

ZuriHac 2014: Haskell hackathon in Zurich

Mon, 06/30/2014 - 22:30
The Google Open Source Programs Office recently co-sponsored a three-day hackathon for Haskell, an open source functional programming language. Johan Tibell from Google’s Zurich office talks more about the event below.

June 6th saw the third installment of ZuriHac, a three-day Haskell hackathon in Zurich, Switzerland. With roughly 100 attendees from all over the world, this was the biggest ZuriHac to date.

In addition to hacking, hallway discussions, a demo session, and impromptu talks on topic ranging from GHC hacking to category theory, there were two one-hour talks. Simon Marlow talked about haxl, a library for automatically parallelization and batching of data requests. Edward Kmett followed with a talk about new and exciting persistent data structures based on cache-oblivious algorithms.
edward-profunctor.JPGThe hacking was all over the map. An entire room was dedicated to teaching newcomers how to hack on GHC, the Haskell compiler. A smaller group of people worked on various improvements to Cabal (the Haskell build system) by improving the dependency solver and making sure that parallel package builds work well. More lighthearted projects included a remake of 1990s cult video game Stunts.
even-more-people-small.JPGThanks to sponsorships by Google and Better, a local Haskell startup, we were well fed and had a roof over our heads.

By Johan Tibell, Software Engineer, and ZuriHac organizer

Categories: Open Source

Google Summer of Code new organizations - Part two

Fri, 06/27/2014 - 18:00
We have two great new Google Summer of Code organizations to spotlight this week, OpenKeychain and Linaro.  It’s hard to believe that we are almost halfway through the coding period for GSoC 2014. Midterm evaluations for both mentors and students are due today, Friday, June 27.
openkeychain.pngOpenKeychain allows you to manage cryptographic keys and encrypt messages as well as files for your contacts on Android. Our project is focused on providing an easy user interface based on Android design principles. It implements the OpenPGP standard, often referred to as GPG or PGP, and enables a secure end-to-end communication in times of mass surveillance.

As a new organization to Google Summer of Code, we secured two student slots. One of our students will work on a better abstraction between cryptography backend and user interface code, resulting in some unit tests, while also working on a better integration of the OpenPGP web-of-trust. The other student will work on a better integration of OpenKeychain into the Android OS, including better support for file encryption and decryption using Android 4.4 features, integration with Android's contact application, and work on potential improvements for the API.

By Dominik Schürmann, OpenKeychain Organization Administrator

linaro-logo.pngLinaro is the place where engineers from the world's leading technology companies define the future of Linux on ARM. Linaro is a not-for-profit engineering organization with over 200 engineers consolidating and optimizing open source software for the ARM architecture in many areas. We have teams working on the GCC toolchain, the Linux kernel, power management, graphics and multimedia interfaces, networking and more.

This is our first year participating in the Google Summer of Code, and we are welcoming three students to our team. Gaurav Minocha's project is Linux Flattened Device Tree Self-checking, mentored by Grant Likely. Ricardo de Freitas Gesuatto will be working on a project entitled "Lightweight IP Stack on top of OpenDataPlane", mentored by Maxim Uvarov. Finally, Varad Gautam will be Porting UEFI to a Low-Cost Embedded Platform (BeagleBoneBlack), mentored by Leif Lindholm. We're looking forward to seeing how our newest engineers succeed this summer!

By Steve McIntyre, Linaro Organization Administrator

Categories: Open Source

Cayley: graphs in Go

Wed, 06/25/2014 - 19:45

Four years ago this July, Google acquired Metaweb, bringing Freebase and linked open data to Google. It’s been astounding to watch the growth of the Knowledge Graph and how it has improved Google search to delight users every day.

When I moved to New York last year, I saw just how far the concepts of Freebase and its data had spread through Google’s worldwide offices. I began to wonder how the concepts would advance if developers everywhere could work with similar tools. However, there wasn’t a graph available that was fast, free, and easy to get started working with.

With the Freebase data already public and universally accessible, it was time to make it useful, and that meant writing some code as a side project.

So today we are excited to release Cayley, an open source graph database.

Cayley is a spiritual successor to graphd; it shares a similar query strategy for speed. While not an exact replica of it’s predecessor, it brings it’s own features to the table:
• Multiple (modular) backend stores, such as LevelDB and MongoDB
• Multiple (modular) query languages
• Easy to get started
• Simple to build on top of as a library
and of course
• Open Source

Cayley is written in Go, which was a natural choice. As a backend service that depends upon speed and concurrent access, Go seemed like a good fit. Go did not disappoint; with a fantastic standard library and easy access to open source libraries from the community, the necessary building blocks were already there. Combined with Go’s effective concurrency patterns compared to C, creating a performance-competitive successor to graphd became a reality.

To get a sense of Cayley, check out the I/O Bytes video we created where we “Build A Small Knowledge Graph”. The video includes a quick introduction to graph stores as well as an example of processing Freebase and linked data.

You can also check out the demo dataset in a live instance running on Google App Engine. It’s running with the sample dataset in the repository — 30,000 movies and their actors, roles, and directors using Freebase film schema. For a more-than-trivial query, try running the following code, both as a query and as a visualization; what you’ll see is the neighborhood of the given actor and how the actors who co-star with that actor interact with each other:
costar = g.M().In("/film/performance/actor").In("/film/film/starring")

function getCostars(x) {  return g.V(x).As("source").In("name")          .Follow(costar).FollowR(costar)          .Out("name").As("target")}

function getActorNeighborhood(primary_actor) {  actors = getCostars(primary_actor).TagArray()  seen = {}  for (a in actors) {    g.Emit(actors[a])    seen[actors[a].target] = true  }  seen[primary_actor] = false  actor_list = []  for (actor in seen) {    if (seen[actor]) {      actor_list.push(actor)    }  }  getCostars(actor_list).Intersect(g.V(actor_list)).ForEach(function(d)
{    if (d.source < {      g.Emit(d)    }  })}
getActorNeighborhood("Humphrey Bogart")To get involved, check out the project on GitHub and join the mailing list. But most importantly, have fun building your own graphs!

By Barak Michener, Software Engineer, Knowledge NYC

Categories: Open Source

Google Summer of Code 2014 New Organizations - Part One

Mon, 06/23/2014 - 23:40
Every year, we spend time highlighting each of the “rookie” organizations who have joined Google Summer of Code (GSoC). With over 40 new organizations to the program in 2014, we’ll dedicate Fridays this summer to spotlight their mission and goals of participating in GSoC. This week, the Organization Administrators from Amahi and Code Mirror tell us more about their organizations.
Amahi is an open source home server solution based on linux distribution, developed with the goal of making networking simple. It provides all the functionality you would want in a home server (e.g. DHCP, DNS, File Sharing), while being as easy to use as a web browser. Designed as a modular architecture, Amahi is easily expandable through one click application installs to provide additional features such as Media Streaming, VPN, Disk Pooling and more.

This is Amahi’s first year as a mentoring organization in Google Summer of Code and we were
fortunate to have three student participants. Kasun Thennakoon will work on a Disk Wizard plugin which is one of the most requested features on the platform side. This will provide an intuitive interface for adding new storage to your home server. Arpit Goyal will work on “what is next”, by upgrading the platform to the latest technology (i.e. Rails 4) and facilitate the application installation by improving the Amahi plugin system. Last but not least, we have Artur Dryomov who will work on the Amahi Anywhere android app, that will give users access to their home server data from any location without VPN or port forwarding.

By Carlos Puchol and Bogdan Mitrea, Amahi Organization Administrators

CodeMirror is a versatile text editor implemented in JavaScript for your browser. It is specialized for editing code and comes with a number of language modes and add-ons that implement more advanced editing functionality. A rich programming API and a CSS theming system are available for customizing CodeMirror to fit your application. We've had a pretty narrow developer base thus far—participating in Google Summer of Code is a great way for us to get some talent on board for the summer, and hopefully longer.

This summer we have two Google Summer of Code students. One who is working on improving bidirectional text support and the other student will work on improving the vim bindings (specifically the visual mode and undo tree).

By Marijn Haverbeke, Code Mirror Organization Administrator
Categories: Open Source

Google Summer of Code 2014 midterms are here!

Mon, 06/23/2014 - 20:30
This week marks the halfway point of Google Summer of Code 2014. Both students and mentors will be submitting their midterm evaluations of one another through Friday, June 27 as indicated in our timeline. If you would like to read more about these midterm evaluations, please check out the "How Do Evaluations Work?" link on our FAQ.

The next milestone for the program will be the “pencils down” date of August 11 after which students can take a week to scrub their code, write tests, improve calculations and generally polish their work before the firm end of coding on August 18.

There has been fantastic progress made so far, and we encourage all the students, mentors, and org admins to keep up the great work!

By Carol Smith, Open Source Team
Categories: Open Source

Google Summer of Code 2014 by the numbers: Part two

Wed, 06/18/2014 - 20:00
Our first “by the numbers” post was about what countries this year’s accepted Google Summer of Code students are from - all 73 countries - which made for a big list. This time we’re serving up a mix of interesting stats in smaller charts.

"How old are the students?"
Google Summer of Code is for students ages 18 and older - but note the lack of an upper limit. While most of the students are relatively young, we also welcome non-traditional students to participate. This year our oldest student is 57.

“Am I the only undergraduate in the program?”
Year after year the majority of GSoC students, more than 50%, are undergraduates, but Master and PhD programs are well represented also. 2014 is no exception.
"How many women are participating in GSoC 2014?"We are very pleased to report that just over 10% of this year’s accepted students are women. The percentage of female students has been increasing year over year since 2006, but this is the first time we’ve broken the 10% barrier.  We are obviously still a very long way from gender parity, but we’re glad this number continues to trend upward.

We will be doing additional posts about the statistics for GSoC 2014 in the next few weeks. If you have questions, please drop us a comment and we’ll do what we can to answer in an upcoming post.

By Cat Allman, Open Source Programs

Categories: Open Source

FlatBuffers: a memory efficient serialization library

Mon, 06/16/2014 - 23:00
Today, we are releasing FlatBuffers, a C++ serialization library that allows you to read data without unpacking or allocating additional memory, as an open source project.

FlatBuffers stores serialized data in buffers in a cross-platform way, supporting format evolution that is fully forwards and backwards compatible through a schema. These buffers can be stored in files or sent across the network as-is, and accessed in-place without parsing overhead.
The FlatBuffers schema compiler and runtime is written in platform independent C++ with no library dependencies outside the STL, which makes it possible to use on any platform that has a C++ compiler. We have provided methods to build the FlatBuffers library, example applications, and unit tests for Android, Linux, OSX and Windows.
The schema compiler can generate code to read and write FlatBuffers binary files for C++ and Java. It can additionally parse JSON-formatted data into type-safe binaries.
Game developers can use this library to store game data with less overhead than alternative solutions (e.g. Protocol Buffers or JSON).  We’re excited about the possibilities, and want to hear from you about how we can make this even better!
Download the latest release from our github page and join our discussion list!
By Wouter van Oortmerssen, Fun Propulsion Labs at Google*
*Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.
Categories: Open Source

My Google Code-in grand prize trip

Fri, 06/13/2014 - 21:00
Today’s post comes from Mateusz Maćkowski, one of the 20 grand prize winners of Google Code-in, an open source programming contest for 13-17 year old students. Mateusz came all the way from Poland to California for the trip and details the four days of technical presentations and fun activities the winners took part in.The Beginning
I first found out that I was a grand prize winner for Google Code-in 2013 (GCI) for the Wikimedia Foundation in the middle of January, about a week after the contest ended. I then had three months for my excitement to build before my trip in April to the United States to meet the other 19 Grand Prize Winners and a mentor from each of the 10 participating open source organizations.

Day 1
The opening meet and greet dinner started the festivities and as we entered the room, we were greeted by Stephanie Taylor, Cat Allman and Mary Radomile, three of the four members of the Google Open Source Programs team responsible for organizing and preparing the contest and trip.

After spending about an hour eating and chatting with other Grand Prize Winners, their family members, and our mentors we received backpacks full of goodies (t-shirts, stickers, notebooks, a jacket, etc.) followed by a short icebreaker game. Each student received a list of personality traits or talents (such as “Can paint”, “Has a dog”, “Can speak fluently three or more languages”, etc.).  We each had to find another person who matched the particular description. It was a great way to interact with each of the other students. The winners were the two people who were able to match the largest number of people. After the game, we received more swag, and – a huge surprise to most in the room – Samsung Chromebooks!

Day 2
The next day all 50 of us piled onto a large bus in San Francisco heading to the Googleplex in Mountain View, California. When we arrived in Mountain View we cruised around the various buildings of the Google Campus before settling into our large event room for the day.
We started with a brief presentation from Stephanie on various information and statistics about GCI. After that we had our awards ceremony where Chris DiBona, Director of Social Impact and Open Source at Google, gave us each of our awards. Our mentors then presented each of us with a plaque for our achievements. We took tons of individual photos and group shots (just a few of the many to come) and then headed to lunch.
Google employees from all parts of the company and from each of the countries represented by the Grand Prize Winners joined us for lunch.  It was great to be able to talk one-on-one with a Polish Googler about their experiences in Silicon Valley. After lunch another Googler spoke about the famous Google self-driving car project.
Next up was a tour of the Google campus. The tour included some of the most recognizable places at the Googleplex, including the Android statues representing each of the Android releases. As you can see, it was a perfect spot for group and individual photos.
After the tour concluded several more Googlers gave talks about their products and services — Google Giving, Google Maps, Chrome and the open source project Samba. The last Googler talking that day was a contributor to Melange, the open source software that Google Summer of Code and Google Code-in is run on. He is a past Google Summer of Code student and has been an active contributor to Melange for several years.  

Day 3 – “San Francisco Fun Day”
We spent our third day touring San Francisco. We had the choice between two tours: a Segway tour, or a visit to Alcatraz. I chose the Segway and couldn’t have been more excited. For me, it was one of the best parts of the whole Grand Prize trip.
After the Segway tour it was time to visit the California Academy of Sciences, which is one of the largest natural history museums in the United States.

The last event of the day was a surprise — all we knew was that we’d go on an “adventure”. What an adventure and nice surprise it was! We took a yacht tour in San Francisco Bay under the Golden Gate Bridge and around Angel Island. We spent the evening talking with other students, mentors and several Google employees. Day 3 was just as cool as the previous one.

Day 4
The last day of the 2013 GCI Grand Prize trip took place at the Google office in San Francisco. It was a nice and easy walk from our hotel to the office along San Francisco’s Embarcadero which is a large walkway along the waterfront. There was a breakfast buffet waiting for us, and because it was Google, the choices were, to say the least, significant. During and after the breakfast we listened to Google speakers who talked about Google Summer of Code and the Go programming language.

We then had a short tour of the San Francisco office where we could see beautiful views of the San Francisco–Oakland Bay Bridge.
After a few additional speakers, it was finally time for what I was anticipating most — the mentors from each of the 10 GCI open source organizations gave short lightning talks (3-5 minutes) about their projects and the work the GCI students accomplished during the 2013 contest

Finally it was time to return home. Below is an image of human misery — flying away from San Francisco at night seen from the airplane window…
When people ask me about the trip my response is usually “It was fantastic until I had to return!” My final words? Participate in Google Code-in! A friend told me that I shouldn’t really care about winning, because the number of people participating is so high that I wouldn’t stand a chance. When I later told him that I was chosen as a winner, his face was “priceless”. Even if you don’t end up on the Grand Prize Trip, it is definitely still worth the time and effort. It was a great experience for me to be able to create software that is actually used by MediaWiki users from around the world as a teenager.

By Mateusz Mackowski, GCI Grand Prize Winner for Wikimedia

Categories: Open Source

An update on container support on Google Cloud Platform

Wed, 06/11/2014 - 19:23
Cross posted from the Google Cloud Platform Blog

Everything at Google, from Search to Gmail, is packaged and run in a Linux container. Each week we launch more than 2 billion container instances across our global data centers, and the power of containers has enabled both more reliable services and higher, more-efficient scalability. Now we’re taking another step toward making those capabilities available to developers everywhere.

Support for Docker images in Google App Engine
Last month we released improved Docker image support in Compute Engine. Today, we’re building on that work and adding a set of extensions that allow App Engine developers to build and deploy Docker images in Managed VMs. Developers can use these extensions to easily access the large and growing library of Docker images, and the Docker community can easily deploy containers into a completely managed environment with access to services such as Cloud Datastore. If you want to try it, sign up via this form.

Kubernetes—an open source container manager
Based on our experience running Linux containers within Google, we know how important it is to be able to efficiently schedule containers at Internet scale. We use Omega within Google, but many developers have more modest needs. To that end, we’re announcing Kubernetes, a lean yet powerful open-source container manager that deploys containers into a fleet of machines, provides health management and replication capabilities, and makes it easy for containers to connect to one another and the outside world. (For the curious, Kubernetes (koo-ber-nay'-tace) is Greek for “helmsman” of a ship.) Kubernetes was developed from the outset to be an extensible, community-supported project. Take a look at the source and documentation on GitHub and let us know what you think via our mailing list. We’ll continue to build out the feature set, while collaborating with the Docker community to incorporate the best ideas from Kubernetes into Docker.

Container stack improvements
We’ve released an open-source tool called cAdvisor that enables fine-grain statistics on resource usage for containers. It tracks both instantaneous and historical stats for a wide variety of resources, handles nested containers, and supports both LMCTFY and Docker’s libcontainer. It’s written in Go with the hope that we can move some of these tools into libcontainer directly if people find them useful (as we have).

A commitment to open container standards
Finally, I'm happy that I've been nominated to Docker's Governance Committee to continue working with the Docker community toward better open container standards. Containers have been a great building block for Google and by working together we can make them the key building block for “cloud native” applications.

-Posted by Eric Brewer, VP of Infrastructure

Categories: Open Source

A chip off the ol’ Google Summer of Code block

Mon, 06/02/2014 - 18:00
We here in the Google Open Source Programs Office are always excited to hear about programs that are similar (or even inspired by) our flagship student program, Google Summer of Code (GSoC). Contributing to open source software in any capacity makes us happy, and learning about students exchanged in open source development makes us just plain giddy. We’d like to use today’s post to highlight some of the great open source student programs from past and present.
And don’t forget that Melange, the software used to run GSoC (as well as our contest for younger students, Google Code-in), is also open sourced. You are welcome to use it to start your own program. The source code can be found here.

Please use the comments section on the blog to tell us about your favorite Google Summer of Code-esqe program. We’d love to hear more!

By Mary Radomile, Open Source Programs
Categories: Open Source

Google Summer of Code Mentor Summit

Thu, 05/29/2014 - 18:00
Every year after Google Summer of Code (GSoC) has come to an end, we invite two mentors from each of that year’s participating organizations to visit Google’s Mountain View, CA headquarters and take part in the GSoC Mentor Summit—a three day unconference. There, they commingle with over 300 of their fellow mentors and organization administrators to talk shop and have some fun.  During the 2013 GSoC Mentor Summit last October, we asked attendees from a variety of projects if they would take a few minutes out of their weekend to tell us more about their organization’s experience with Google Summer of Code.

Topics discussed in the videos include:
  • a description of their organization and what they do
  • the organization’s experience and history with GSoC
  • some of the projects students worked on during the 2013 program
  • types of projects they want students to work on in future GSoC programs
  • how the org has benefited from participating in GSoC
  • progressing from GSoC student to GSoC mentor
Below you can find a playlist with the mentor and organization administrator videos:

We recently announced the over 1300 students accepted into the GSoC 2014 program. We hope these videos will help mentors, students and future GSoC participants learn more about the program and the type of projects available to work on.  In addition, all of these organizations would be thrilled to have new contributors outside of GSoC so please check them out to see if there is a project that interests you.

A huge thank you to Brian Grady for filming and editing these videos for us.

By Stephanie Taylor, Open Source Programs

Categories: Open Source

Google Summer of Code coding has begun!

Tue, 05/27/2014 - 15:16
Monday, May 19th was the first day of coding for our 10th year of the Google Summer of Code program. This year, more than 1,300 students will spend the next 12 weeks writing code for 190 different open source organizations.

We are excited to see the contributions this year’s students will make to the open source community.

For more information on important dates for the program please visit our timeline. Stay tuned as we will highlight some of the new mentoring organizations over the next few months.

Have a great summer!

By Carol Smith, Open Source Programs

Categories: Open Source

My Google Code-in experience

Wed, 05/21/2014 - 18:00
Today’s post comes from Sushain K. Cherivirala, one of the 20 uber-talented grand prize winners of Google Code-in, an open source coding competition for 13-17 year old students. The Open Source Programs Office recently hosted all 20 winners, their parents, and mentors at the Google headquarters in Mountain View, California. Read more about Sushain’s experience in GCI below.
If I had to pick the single most educational experience of my life, it would be Google Code-in (GCI). I've completed MOOCs on topics from Philosophy to Functional Programming, finished my high school's computer science curriculum, taken  a computer science internship and participated in countless programming contests. But I can claim with confidence that Google's initiative to put high school students into real-world open source development environments is unparalleled in its influence on me. 

Google Code-in has helped me not only advance my technological expertise but also, more importantly, exposed me to an environment that few students my age have the opportunity to benefit from.

Throughout the course of the six week contest, I worked with Apertium, a free and open source platform for developing rule-based machine translation systems, not because I'm particularly adept at computational linguistics, but rather because of the exceptional atmosphere Apertium provided. I can recall the first time I ever connected to an IRC channel during GCI 2012; it was both my interest in the GCI task and my attraction to the positive, friendly environment on #apertium that convinced me to continue working with Apertium for the remainder of GCI 2012 and pick up with them at the start of GCI 2013. The positive development environment the mentors (Fran and Jonathan) established was conducive to learning, and more notably, learning from one's mistakes

Apertium's mentors were not just mentors in the sense that they reviewed my code and approved my tasks. Talking with the mentors exposed me to the world of academia, both its pleasures and pains. For instance, now I know the pitfalls of getting a PhD but also about extremely affordable European college tuitions that make me seriously consider applying to one next year, something that would never have crossed my mind without Fran's encouragement. Apertium, an organization by which its very nature encompasses developers of myriad cultures, languages, and social standards, has helped me grow a genuine appreciation for the world's diversity. I often find myself displaying a newfound interest in the stories and lives of my friends at school with foreign backgrounds, eager to learn more about their experiences and expand my narrow view of the world.

Working through IRC with people halfway across the world is not a particularly pleasant or efficient workflow; however, it did improve my communication skills as I learned to effectively communicate across time-zone differences, disparities in experience, and barriers like those I will inevitably encounter in my future workplace. For me, the greatest takeaway from working with these mentors has been their steadfast dedication to their projects and helping interested students. Google couldn't have chosen a more apt title for these mentors.

There's a certain indescribable pleasure associated with developing open source applications that help others, a feeling I had throughout GCI this year. My first task was writing documentation on developing web scrapers to build corpora used by Apertium for quality assurance and development. This helped me get back into the flow of GCI as I documented code I had worked extensively with last year. For the remainder of GCI, I concentrated heavily on coding with an emphasis on developing web applications. For example, I built a web concordancer with a Python backend and worked on APY, an HTTP API in Python using Tornado, designed to replace ScaleMT, a Java based Apertium webservice. I wrote a few modules for our IRC bot, begiak, and created a new statistics bot for the Apertium Wiki. While completing some other documentation tasks, I ended up writing a few scripts to perform the majority of the work such as creating huge data tables from SVN data and language vulnerability tables.

However, my crowning achievement during this Google Code-in was the development of Apertium-html-tools, a web application providing a fully localizable interface for translation, morphological analysis, and generation powered by Apertium APY. Apertium-html-tools was recently deployed on, serving several thousand users and translating the equivalent of a few King James Bibles' worth of text each day. My work with Apertium after GCI has consisted primarily of improving Html-tools with search engine optimization, performance improvements, new features and more. I'm honored to have had the opportunity to contribute to Apertium for the past two years and am looking forward to continuing my involvement in the future.
Visiting Google HQ in Mountain View as a grand prize winner was an awesome experience, one that I'll cherish for the remainder of my life. From the Segway tour of San Francisco to the tour of Google HQ, I made memories that will stand out as some of the most enjoyable moments of my life. I particularly enjoyed being able to talk with Fran whom I had been working with for the past few months. The food choices were only trumped by the excellent talks from Google engineers on everything from self-driving cars to Melange (the software on which GCI is run). Talking with like-minded students my age only helped make the experience more entertaining. To be honest, my only regret is having to board the plane back home; Google's Open Source Programs Office truly spares no expense in giving the winners the experience of their lifetime.

Out of all the programming contests I've participated in, Google Code-in has offered the most authentic experience; there are no synthetic problems designed to test your coding ability, every line of code goes towards improving an open source organization's software. Working with Apertium during GCI has afforded me a new perspective on software development, made me a strong proponent of open source software, helped me gain valuable experience that will undoubtedly help me in the future and convinced me to remain a lifetime contributor to open source.

By Sushain K. Cherivirala, GCI Grand Prize Winner with Apertium, 2013

Categories: Open Source

Around the world in 126 days celebrating Google Summer of Code

Tue, 05/20/2014 - 05:03
To celebrate our 10th Google Summer of Code (GSoC), members of the Google Open Source Programs Office have been traveling the world attending conferences, hosting events at local Google offices and holding meetups at universities where we have had high student participation over the last nine years of the program.
Smiles in SingaporeStudents from 97 countries have participated in the program so far and we wanted to try to visit some of the countries to recognize the students, mentors and universities that have helped to make this program a success over the last decade.
University of Moratuwa, Sri LankaThe team visited 10 countries starting in late October beginning with the United Kingdom, then on to Canada, Romania, Poland, Australia, Sri Lanka, Belgium, India, Singapore and concluding with the FOSSASIA conference in Phnom Penh, Cambodia in early March.
GSoC Reception at the University of TorontoThis travel has been eye opening and an opportunity of a lifetime for all of us.  We met friendly and enthusiastic students, teachers, mentors and open source enthusiasts from so many backgrounds and cultures — all with a love of open source.
Politechnic University of Bucharest, RomaniaThere have been over 7000 student participants and 7500 mentors since the program’s inception. These are incredible statistics, but actually meeting the people behind these numbers was rewarding in ways that we didn’t expect.  Hearing stories time and time again from students about how they found their confidence and built their skill set during the summer they spent coding in GSoC was heartwarming. And almost all talked about the invaluable guidance they received from their mentors. To have a program where mentors from every time zone imaginable take up to 20 hours a week out of their busy lives to help guide a new open source contributor in their community is tremendous. We also spoke with many former students who are now active contributors to the open source communities they worked with during GSoC and quite a few have also become mentors for GSoC and/or Google Code-in (GCI).

Cambodia - FOSSASIAPicture by Hong Phuc DangCat Allman and I traveled to Norton University in Phnom Penh, Cambodia in late February to talk about the open source programs we run, GSoC and GCI, and spend time with past GSoCers, and GSoC hopefuls. FOSSASIA helped organize travel for 10 former Google Summer of Code students to come from China, India, Singapore, Sri Lanka, Taiwan and Vietnam to talk about their experiences with the program and take part in the conference.

Cat gave an inspiring keynote, “GSoC: Past, Present, and Future”, which touched on opportunities the program offers both organizations and individuals to improve not only the state of open source software, but also their lives and the world.

Friday afternoon continued with four tracks of talks throughout the day ending with a panel discussion of Women in IT. The panel included Cat, three former GSoC students from 2013—Sindhu Sundar (GNOME), Sneha Priscilla Makini (GNU Mailman), Richa Jain (MediaWiki), and many other inspiring women.

Saturday morning I gave a talk on GCI, our contest introducing 13-17 year olds to open source software development. Most of the audience wasn’t familiar with GCI but I was quite pleased with the many questions posed by attendees including interested teachers that want to get their classes involved in our next contest.

Next up were GSoC lightning talks by all ten of the students that FOSSASIA organized travel for to attend the conference. Students talked about their experiences in GSoC and a few also gave very helpful tips about writing proposals and how to approach the GSoC application process. With eight tracks of talks on Saturday alone there really was a session for everyone.
GSoC Lunch in Phnom Penh, CambodiaThe enthusiasm we found in Cambodia and throughout our travels during this “world tour” celebrating GSoC was remarkable. We are all excited to start this tenth year of GSoC coding next month and to see what this year’s 1300+ students can accomplish during their 3 months of coding.  Currently the students and mentors are engaged in their community bonding period where students learn more about their org’s code base, become involved in the communities and start their prep work for their coding which begins May 19.

Last but not least, the Google Open Programs Office would like to extend our thanks and gratitude to all of the volunteers who graciously hosted our team, spent countless hours organizing events, and toured us around your beautiful countries. It was an experience of a lifetime and one we won’t soon forget.

By Stephanie Taylor, Open Source Programs

Categories: Open Source

Google Summer of Code 2014 by the numbers: Part one

Thu, 05/15/2014 - 21:04
Every year around this time — just after students are accepted into Google Summer of Code (GSoC) — we at the Open Source Programs Office get a ton of questions like, “How many students from my country were accepted?”, “Am I the only undergraduate?”, “How many women are participating in GSoC this year?” and so on. Once we have a chance to crunch the numbers, we can use the statistics to answer at least some of these questions for you. 
For this first post, we’ll start with “What countries are the accepted students from?” and “How many students were accepted from “X” country?”  In years past we’ve listed the 10+ countries with the largest number of accepted students, but this year we’re going to share the whole list.

Here we go! In alphabetical order:

Algeria1Argentina9Armenia1Austria21Azerbaijan1Bangladesh1Belarus2Belgium7Bosnia-Herzegovina1Brazil21Bulgaria6Cameroon3Canada37Chile1China48Colombia2Croatia3Czech Republic8Denmark1Egypt6Estonia2Ethiopia1Finland7France28Georgia1Germany78Greece13Guatemala1Honduras1Hong Kong2Hungary21India401Ireland4Italy31Japan6Kazakhstan3Kenya3Latvia1Lithuania3Luxembourg2Malawi1Malaysia2Mexico1Moldavia3Netherlands13New Zealand2Nigeria1Norway1Pakistan3Paraguay1Peru4Philippines2Poland40Portugal9Romania36Russian Federation51Saudi Arabia3Serbia5Singapore14Slovak Republic4Slovenia4South Korea5Spain32Sri Lanka54Sweden4Switzerland5Taiwan2Turkey9Uganda1Ukraine13United Kingdom29United States161Vietnam3TOTAL 1307
As I’m sure you’ve noticed, five countries are highlighted in blue. This is the first year that students from Ethiopia, Honduras, Kenya, Malawi and Uganda have been accepted.  We are very pleased to welcome them to the GSoC family! 
We will be doing additional posts about the statistics for GSoC 2014 in the next few weeks. If you have questions, please drop us a comment and we’ll do what we can to answer in an upcoming post.

By Cat Allman, Open Source Programs

Categories: Open Source

The Interactive Spaces project continues to grow!

Tue, 05/13/2014 - 22:04
Interactive Spaces was first announced on the Google Open Source blog back in July 2012 and since then we’ve been working hard on several new releases. Interactive Spaces is an API and runtime which allows developers to merge the physical and virtual worlds by building interactive applications for physical spaces. With this platform you can build immersive physical spaces, home automation, physical-based computer gaming, and museum and interactive art installations.

Interactive Spaces has many new additions since it’s initial release, including:

 • OpenCV support for image processing, including face detection
• Depth camera support using OpenNI and the Leap Motion
XBee sensor meshes
• Examples using Arduinos to interface with sensors and control systems
• Speech synthesis
• Music playback
XMPP and Twitter can be used to interact with your space
• Standard control protocols such as Open Sound Control and soon DMX
• Controller support for Android devices
• And much more…
Interactive Spaces powers 6 locations in Google offices (an example is the Mountain View Partner Plex) around the world with plans for many more. End Point has recently re-architected the Open Source Liquid Galaxy as an Interactive Spaces application, showing the power of the platform for building a very responsive, flexible system.

For more details please visit the website, and take a look at the source code.

By Keith Hughes, Tech Lead, Experience Engineering Team, Google Engineering

Categories: Open Source