Posts from August 2015

The 11th year of Google Summer of Code comes to an end

Friday, August 28, 2015

Another year of Google Summer of Code, our program designed to introduce university students from around the world to open source development, is drawing to a close.

In April, we accepted 1,051 university students from 73 countries. These students wrote code for 137 mentoring organizations. We also had 1,918 mentors from 70 countries help them out. We are excited to announce that 87%* (916) of the students passed their final evaluations. To see more about how that compares to previous years, check out our statistics from the last ten years of the program.   

And we’re not done yet: this November, we’ll be hosting our yearly mentor summit in Sunnyvale, California. We’ll welcome representative mentors and organization administrators from each of the mentoring organizations from this year’s program to meet and exchange ideas.

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

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

By Carol Smith, Open Source Programs

* This number could change slightly in the next few weeks.

My sweet adventures with Sugar Labs and Google Code-in

Thursday, August 27, 2015

Today we have a guest post from Sam Parkinson, a 15 year-old Google Code-in 2014 grand prize winner. Sam worked with Sugar Labs for two instances of Google Code-in and tells us more about his journey navigating the world of free and open source software. We hope this is only the beginning of Sam’s contributions.
Ever since I was young, naive and enjoying my first tastes of Linux, I've wanted to contribute to the FOSS community. For me, Google Code-in (GCI) made that dream come true. I was lucky enough to be able to participate for the last two years with the mentoring organization Sugar Labs.

Sugar Labs is a “desktop environment without a desktop” that uses Python. Officially, Sugar Labs is the core component of a worldwide effort to provide every child with an equal opportunity for a quality education. Available in 25 languages, Sugar Labs activities are used every school day by nearly 3 million children in more than 40 countries.

I started my FOSS journey in GCI 2013 by completing the simple task of changing a ValueError to a logged exception. At first, my confidence level went from "yeah, I know some cool Python tricks" to "omg! how do I code?". I discovered new (and sometimes confusing) things like PEP8, git-branch and mailing lists. However, having the GCI and Sugar Labs communities as a support system made my dream of contributing to FOSS manageable by breaking it up into small, manageable tasks.

I worked on some pretty cool features, like adding a nutcracker-style mode in a Speak activity, where users could insert a picture of a face and have it talk to them.
I also worked on some not-so-fun tasks, like fixing bugs caused by GTK updates while trying not to break compatibility with ancient versions. But by the end of GCI 2014, I had learned how to pass code reviews and even completed some of my own. Hopefully I’ve programmed something that has made somebody smile.

In 2014, I was lucky enough to be chosen as a GCI winner. The grand prize trip was the cherry on top of the proverbial cake. I got to meet the amazing people I'd been hacking with, plus some pretty inspiring people from Google and other FOSS projects. I found it mind blowing to actually talk with people about programming face to face, and even better to sit around laughing about the programming culture. A highlight of the trip was meeting Walter Bender, one of the Sugar Labs mentors. Together we hacked on a project improving the Sugar Labs website. It’s not done, but it’s in better shape than it was before, and I can claim that I did some coding during the trip.

GCI was truly something that changed my life. I went from being an open source newbie to being able to contribute to really cool projects, thanks to the amazing GCI and Sugar Labs communities. It's something that I would recommend any young programmer consider doing. Participating in GCI is something that can make dreams come true.

By Sam Parkinson, Google Code-in grand prize winner

Go 1.5 is released

Wednesday, August 19, 2015

(Cross-posted from the Go Blog)

Today the Go project is proud to release Go 1.5, the sixth major stable release of Go.

This release includes significant changes to the implementation. The compiler tool chain was translated from C to Go, removing the last vestiges of C code from the Go code base. The garbage collector was completely redesigned, yielding a dramatic reduction in garbage collection pause times. Related improvements to the scheduler allowed us to change the default GOMAXPROCS value (the number of concurrently executing goroutines) from 1 to the number of available CPUs. Changes to the linker enable distributing Go packages as shared libraries to link into Go programs, and building Go packages into archives or shared libraries that may be linked into or loaded by C programs (design doc).

The release also includes improvements to the developer tools. Support for "internal" packages permits sharing implementation details between packages. Experimental support for "vendoring" external dependencies is a step toward a standard mechanism for managing dependencies in Go programs. The new "go tool trace" command enables the visualisation of  program traces generated by new tracing infrastructure in the runtime. The new "go doc" command is a substitute for the original "godoc" that provides an improved command-line interface.

There are also several new operating system and architecture ports. The more mature new ports are darwin/arm, darwin/arm64 (Apple's iPhone and iPad devices), and linux/arm64. There is also experimental support for ppc64 and ppc64le (IBM PowerPC 64-bit, big and little endian).
The new darwin/arm64 port and external linking features fuel the Go mobile project, an experiment to see how Go might be used for building apps on Android and iOS devices. (The Go mobile work itself is not part of this release.)

The only language change was the lifting of a restriction in the map literal syntax to make them more succinct and consistent with slice literals.

The standard library saw many additions and improvements, too. The flag package now shows cleaner usage messages. The math/big package now provides a Float type for computing with arbitrary-precision floating point numbers. An improvement to the DNS resolver on Linux and BSD systems has removed the cgo requirement for programs that do name lookups. The go/types package has been moved to the standard library from the repository. (The new go/constant and go/importer packages are also a result of this move.) The reflect package provides the new ArrayOf and FuncOf functions, analogous to the existing SliceOf function. And, of course, there is the usual list of smaller fixes and improvements.

For the full story, see the detailed release notes. Or if you just can't wait to get started, head over to the downloads page to get Go 1.5 now.

by Andrew Gerrand, Go team

Announcing Shaderc: tools for compiling graphics shaders

Monday, August 10, 2015

Over the weekend, we released Shaderc: a library and command-line tool for translating graphics shaders from GLSL into SPIR-V.  It is a wrapper around Glslang, the open source reference compiler for GLSL published by the Khronos Group.

Shaderc is designed to be as developer-friendly as possible and encourage the widest adoption of best-in-class open GLSL compiler technology. It offers:

  • A C API that is portable, thread-safe, and easy to use.
  • An idiomatic object-based C++ API.  This is a headers-only wrapper around the C API, to minimize the impact of potential changes in the environment's C++ ABI.
  • glslc, a command-line shader compiler.  Its arguments and file handling are similar to Clang and GCC, for easy integration with standard build systems.

Shaderc works on Linux, and there is an initial port to Windows.

The Shaderc project is released under the Apache License, Version 2.0, and is available immediately on GitHub at Contributions from the community are welcome.

By David Neto and Dejan Mircevski, Google Engineering