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: 1 hour 13 min ago

Google Summer of Code Wrap up: ns-3

Fri, 11/21/2014 - 20:00
Today’s Google Summer of Code wrap up comes to us from Tom Henderson at ns-3, a discrete-event network simulator developed for research and educational use.

The ns-3 network simulation project creates and maintains open source software for conducting performance evaluation of computer communications networks. Widely used in networking research and development activities, ns-3 is aimed towards the academic community involved in publishing original research, as well as towards educational use in undergraduate and graduate courses on computer networking. In 2014, the project mentored four students through Google Summer of Code (GSoC).

Piotr Gawłowicz: LTE Fractional Frequency Reuse algorithms
Piotr worked on algorithms for LTE Fractional Frequency Reuse. Mobile phone systems need to use radio spectrum very efficiently, particularly in managing interference. The ns-3 project has extensive LTE modeling capability which was initiated by a GSoC 2010 project. This year, Piotr extended the ns-3 LTE module to support a relatively new strategy for balancing interference mitigation and spectral efficiency known as Fractional Frequency Reuse (FFR). In addition to the FFR model code, Piotr delivered extensive corresponding test code, documentation and examples. He even fixed some LTE module bugs, developed several additional features (such as downlink and uplink power control and per-Resource Block Radio Environment Maps), refined the model for channel quality indicators, and refactored the power and interference calculation code. Piotr's code was merged to the mainline development tree in time for the September 2014 ns-3.21 release.
Rubén Martínez: Licklider Transport Protocol
Computer networks built for operation in outer space differ significantly from those found here on Earth. The propagation and networking delays for signals sent beyond the Earth may be as long as minutes or hours, confounding traditional systems accustomed to millisecond response times. Delay-Tolerant Networking (DTN) can be applied to these types of networks, and a specific protocol known as the Licklider Transmission Protocol (LTP), similar in purpose to the popular Transmission Control Protocol (TCP) used on the Internet, is designed to reliably deliver data across these types of links.
In his GSoC project, Rubén authored a model of LTP from scratch for inclusion in our future DTN module. This model includes about 5000 lines of new code and is being tested for interoperability against other implementations of LTP by using the ns-3 emulation mode which allows the simulator to exchange data with real protocol implementations. Rubén's model will soon help open up the use of ns-3 for space data networking research.
Truc Anh Nguyen: Understanding bufferbloat through simulations in ns-3
Bufferbloat refers to a phenomenon where network performance (latency, packet jitter, throughput) is diminished due to packet buffers at the ingress of a congested link becoming too deep. New "active queue management (AQM)" approaches help minimize packet transit times in congested queues. Anh’s project focused on addressing the known problems and testing the then-unreleased ns-3 CoDel queue model originally proposed by Andrew McGregor and Dave Taht. The revised CoDel model, test scripts, and example programs were included in the recent ns-3.21 release, and variations that build on this model are planned for future releases.
Krishna Teja: Multicast IPv6 traffic support
In his GSoC project, Krishna developed the Multicast Listener Discovery Version 2 (MLDv2) functionality for IPv6 in ns-3’s Internet module. The code is completely new, closely matches Internet RFC 3810, and (when merged) will be automatically enabled for any IPv6 node. Thanks to MLDv2, each router is made aware of the multicast groups that each attached host is interested in and can dynamically reconfigure its routing table. The protocol is part of an ongoing effort to enhance the multicast routing support in ns-3 for IPv6.

By Tom Henderson, ns-3 Organization Administrator
Categories: Open Source

Coding Android TV games is easy as pie

Wed, 11/19/2014 - 19:24
(cross-posted with the Android Developers Blog)

We’re pleased to announce Pie Noon, a simple game created to demonstrate multi-player support on the Nexus Player, an Android TV device. Pie Noon is an open source, cross-platform game written in C++ which supports

  • up to 4 players using Bluetooth controllers.
  • touch controls.
  • Google Play Games Services sign-in and leaderboards.
  • other Android devices (you can play on your phone or tablet in single-player mode, or against human adversaries using Bluetooth controllers).


Pie Noon serves as a demonstration of how to use the SDL library in Android games as well as Google technologies like Flatbuffers, Mathfu, fplutil, and WebP.






You can download the game in the Play Store and the latest open source release from our GitHub page. We invite you to learn from the code to see how you can implement these libraries and utilities in your own Android games. Take advantage of our discussion list if you have any questions, and don’t forget to throw a few pies while you’re at it!

By Alex Ames, 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

GSoC Reunion Recap with Magdalen Berns

Tue, 11/18/2014 - 21:30
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 Magdalen Berns, a student participant in GSoC 2013 and 2014.

The GSoC Reunion was a really great experience for me. I traveled from Edinburgh for the event. It was wonderful chatting with so many different FLOSS enthusiasts all in one place and I made lots of new buddies who I’ll definitely keep in touch with.
On the first day, Google rented out a theme park for a few hours, letting us go wild. We successfully fought the urge to be sick on the rides as they spun us around. Afterward, we were invited to the San Jose Tech Museum where we got to listen to Linus Torvalds speak about the qualities of good code. The museum’s exhibitions were very interactive and I especially liked the one which demonstrated how ice hockey protective equipment is designed for goalies. I hadn't realised how sophisticated it is!
An "unconference" was held across Saturday and Sunday, and I really enjoyed the sessions I attended. For those who have never been to an unconference, it’s much more interactive than a typical conference talk. People ask questions and make comments throughout, making it a discussion. It’s definitely a format I can get on with!
One conversation which had begun around ending misogynistic trolling on internet dating sites got really interesting because it quickly developed into two groups who were each keen to address sexism from different angles. One group focused on online sexism and the other on sexism at conferences and other events. The latter group went on to discuss establishing a universal code of conduct available for FLOSS projects to adopt if they choose, while the former group considered developing software to deal with abuse on IRC. Everyone got so engaged that we chatted until the notetaker's wrists were sore from 2 or 3 hours of typing. It was incredibly heartening to see so many men who are interested discussing these issues in one place. I have never seen anything like that before in my life! It takes quite a lot of objectivity and emotional intelligence to be able to stand up for the rights of a group you aren’t part of.
Another session was led by a Googler and we discussed the potential pitfalls of publishing work in the public domain. Laws vary widely around the world, and there are places where the work may unintentionally remain under copyright protection. That is a compelling reason to use free or open source licenses. There have been few landmark court cases since FLOSS licensing came along, so it’s difficult to be certain what things will mean in practical terms. That session made me quite interested in learning more about copyright law.
On Sunday, there was a talk on The GNOME Foundation’s Outreach Program for Women (OPW) which was well attended. I learned that projects have to demonstrate their commitment by finding funding for a student before they can take part. I think that is a good idea, but it is a shame that there are not more sponsors available so smaller projects can get involved. Hopefully as OPW continues successfully helping women get started in open source development, more companies will step forward as sponsors.
I am always keen to talk about accessible software, so I initiated an unconference discussion on the topic in one of the rooms. Although that session was not well attended, those who were there had a lot to say and were very engaged with the idea of establishing a common interest group for accessibility developers. Get in touch if that sounds interesting to you too.
Finally, we got to visit the Google Headquarters on the final day of the reunion. We didn’t get to tour inside the offices, but I at least got a peek at the famous indoor slide… Maybe next time I’ll get a chance to go up to the top.

By Magdalen Berns
Categories: Open Source

Lovefield: a powerful Javascript SQL-like database query engine for the web

Mon, 11/17/2014 - 19:00
Today we are announcing the release of a powerful library to be added to the arsenal of every web developer's toolbox. Since WebSQL standardization efforts ceased in 2010, there has been no cross-browser relational database solution for web clients. Existing persistence solutions such as IndexedDB and LocalStorage fall under the category of object-oriented storage and therefore lack traditional relational database features.

Lovefield is finally closing that gap by providing a feature rich database query engine built using IndexedDB as a backend. It provides an intuitive SQL-like declarative syntax such that developers can pick it up with minimal effort. Its declarative form provides immunity to SQL injection attacks, since there is no query parsing involved. The feature list includes:

  • select, insert, update, delete queries.
  • atomicity with intuitive transaction semantics (unlike IndexedDB’s surprising auto-commit behavior).
  • integrity constraint checks (primary key, unique, nullable/not-nullable).
  • aggregators (count, min, max, sum, avg, stddev, distinct)
  • "group by" for select queries.
  • multi-table join
  • easier schema upgrade mechanism than IndexedDB.
  • cross browser support (Chrome, Firefox, IE10).


On the performance front, Lovefield includes a query optimizer which will evaluate different execution plans and finally pick the most promising. We are confident that current performance will satisfy the majority of use cases (less than 50k rows) and we plan to further improve the performance for larger datasets in the near future.

Lovefield’s vision is captured in this specification document and we are working to provide some more exciting features such as foreign keys, cascaded delete/update, self-table join, observers/data-binding, in the near future.

Lovefield is already successfully powering a few Google services, including Google Play Movies Chrome app. With this open source release we are hoping to enable the development of data-rich applications and to attract interest and feedback from developers which will allow us to better understand how to move forward.

By Demetrios Papadopoulos, Chrome team
Categories: Open Source

Google Summer of Code Wrap up: Point Cloud Library

Fri, 11/14/2014 - 19:00
Today’s Google Summer of Code wrap up comes from Federico Tombari at the Point Cloud Library project, a 2D/3D image and point cloud processing framework.
pointcloudlibrary_horz_large_pos.png
For the third year, the Point Cloud Library (PCL) organization has been a participant in Google Summer of Code. We had the opportunity to mentor 12 students who spent the summer developing projects related to 3D computer vision and robotic perception.
This year, I had the pleasure to mentor two students: Manuel Gesto and Jilliam Diaz Barros. Manuel worked on porting a recent algorithm (proposed last year at the ICRA conference by Karphaty et al.) related to object discovery. The idea is that a robot can wander around a room or a building, reconstruct the surrounding environment through Kinect Fusion techniques and then try to extract interesting parts - possibly objects - out of this 3D representation without an explicit training set. Manuel worked well in implementing on his own a segmentation method that was required for the algorithm. Jilliam worked on stereo matching techniques. She implemented two state-of-the-art algorithms, one focused on efficiency and the other on accuracy, which will enrich the stereo module already present in PCL. Also, she validated her work with a comprehensive experimental evaluation using benchmark datasets.
Alex Ichim from our organization worked with Andrei Militaru, a BSc student in Computer Science from Jacobs University in Germany. We looked into efficient representations for head models in the context of face reconstruction using RGB-D devices such as the Microsoft Kinect. In order to counteract the heavy noise and missing data from this kind of camera, we employed the concept of statistical face models (first introduced by Blanz and Vetter at Siggraph ‘99). To demonstrate this, we built an application that uses live data from the camera, registers and integrates it into a point cloud using the Kinect Fusion implementation in PCL; in parallel, another thread uses the data and fits the statistical model to it, yielding a low resolution face model that updates in realtime as more views of the actor are acquired.
Markus Schoeler was another student working with us this year. His project consisted of two sub projects, namely implementing the Locally Convex Connected Patches (LCCP) algorithm and a shape generator. The LCCP algorithm was published on this year’s CVPR conference and aims at segmenting a scene into objects and parts (by tuning parameters, you can "select" the desired level of detail). The shape generator puts special emphasis on giving users full control of how they assign labels in scenes. This makes it possible to easily create annotated data and decide how coarse the segmentation should be.
Federico Tombari, Organization Co-Administrator, Point Cloud Library
Categories: Open Source

Geometry Math Library for C++ Game Developers: MathFu

Thu, 11/13/2014 - 18:32
(Cross-posted with the Google Developers Blog)
Today we're announcing the 1.0 release of MathFu, a cross-platform geometry math library for C++ game developers.  MathFu is a C++ math library developed primarily for games focused on simplicity and efficiency.

It provides a suite of vector, matrix and quaternion classes to perform basic geometry suitable for game developers.  This functionality can be used to construct geometry for graphics libraries like OpenGL or perform calculations for animation or physics systems.

The library is written in portable C++ with SIMD compiler intrinsics and has been tested on Android, Linux, OS X and Windows.

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.

Categories: Open Source

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

Wed, 11/12/2014 - 18:44
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 platformFOSSASIA - a non-profit organization supporting developers and makers of the Free and Open Source community in AsiaHaiku - an operating system, fast and simple, inspired by BeOS KDE -  a powerful graphical desktop environment for Unix-like workstationsMifos - a non-profit org that brings technology-enabled financial services to the poorOpenMRS - a medical records system platform for developing countriesSahana Software Foundation - humanitarian open source disaster management software Sugar Labs - a learning platform that reinvents how computers are used for primary educationWikimedia 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
Categories: Open Source

GSoC Reunion Recap with Cyrille Artho

Tue, 11/11/2014 - 19:00
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
Categories: Open Source

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

Mon, 11/10/2014 - 18:30

(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.
Categories: Open Source

Google Summer of Code wrap up: Ceph

Fri, 11/07/2014 - 19:00
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 DissectorStudent: Kevin CoxMentor: 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 ModelStudent: Veronica Estrada GaliñanesMentors: 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
Categories: Open Source

GSoC Reunion Recap with Abhishek Das

Wed, 11/05/2014 - 22:00
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

Categories: Open Source

Google Summer of Code wrapup: The Concord Consortium

Fri, 10/31/2014 - 18:00
Today’s Google Summer of Code wrap-up comes from Cynthia McIntyre at the Concord Consortium, a provider of online educational activities.



The Concord Consortium is a non profit R&D organization based in Concord, MA, dedicated to transforming education through technology. Our digital tools and learning activities capture the power of curiosity and create revolutionary new approaches to science, math and engineering education that bring out the inner scientist in everyone.

Our two Google Summer of Code students did a fabulous job this summer.

Mobile-friendly HTML5 Seismic Eruption 
mash-upAbhinav Mukherjee worked on an HTML5 version of the popular Seismic Eruption software. (The original version ran only on Windows.) He has created a client side application that pulls data from the U.S. Geological Survey and displays it both on a 2D map using leaflet and in 3D space using three.js.

The software shows a visual display of the distribution, depth and magnitude/strength of the earthquakes and eruptions, as well as popup information about the type of volcano, date of eruption and information about plate boundaries. A user can cut a cross section into the 2D map, then choose the 3D view, or adjust the time range of the data being displayed in order to focus on certain earthquakes. We look forward to embedding this software in Earth science activities for middle and high school teachers.

Data analytics for user actions in HTML5 web appsFor our educational research, we would like to be able to capture detailed logs of student actions in browser-based activities, then analyze the data in a shared tool. Peeyush Agarwal worked on the Data Analytics Log Manager, a new server-side application that makes it easier for any project to log user events and then view them using CODAP (our Common Online Data Analysis Platform).

Logs from HTML5 applications or other client-side apps (e.g. Java) can be posted to the log manager, which stores them and provides access to registered researchers. The logs can then be filtered and transformed through a variety of methods (adding calculated metadata, adding new "synthetic events" by pattern matching) before being imported into CODAP for visual analysis.

By Cynthia McIntyre, The Concord Consortium Organization Administrator
Categories: Open Source

Google Summer of Code wrapup: OpenMRS

Fri, 10/24/2014 - 18:00
As a long-time Google Summer of Code participant, OpenMRS had twelve Google Summer of Code students in 2014. One of those students, Stephen Po-Chedley, writes more about his experience below as well as other students’ projects.


OpenMRS logo
Waking up to an uneventful landing in September 2013, I found our plane surrounded by dry grass fields. I couldn’t even tell that we were on a runway. I had slept through the approach over small clay houses and family gardens. This small, dusty country of Malawi is where I would spend the next year.

Prior to Autumn 2013, I had been a PhD student studying climate change in Seattle. As part of my research, I was constantly working through random technical and computational challenges. It seemed like every week I was hacking together some code in some unfamiliar language. While the work was challenging and interesting, I wanted to take some time away from my studies to apply some of these technological skills to issues even more acute than climate change.

Upon deplaning, I stepped away from supercomputers meant for climate research and found myself in Malawi working with barely functional laptops. As a volunteer with a health NGO in Malawi, I was slotted to help support the OpenMRS based electronic medical records system that was crucial for monitoring and evaluating the remote district’s health progress. OpenMRS is an open source medical records system used on every continent. The system was created to help provide management tools to meet global health challenges, especially in resource poor countries.

I quickly understood why OpenMRS was such an important tool. The system could generate reports to help us track down patients that had missed appointments, we could flag people who needed a change in medication or a new lab test, doctors could get an overview of their clinical practices, and clinical programs could get a snapshot of their patient cohorts.

Of course, any information that we derive is only as good as the data it comes from. With an entire district of health data being fed into the system, it is easy to miss some parts of records or mis-enter information. Any errors have the potential to affect patient care or high-level decisions made about programs. We need not only good data, but to also understand the quality of the data we have. And this is where Google Summer of Code (GSoC) became so important.

Over the last few months, I was able to work with mentors to design and begin to build a module within OpenMRS to help assess data quality. Beginning work on the project was terrifying for me because my programming experience was mostly hacking together code for scientific analysis. Most of my programming education has been through exhaustive Google searches and discussions with fellow geeks, but this was nearly impossible in Malawi working off of an unreliable satellite internet connection with pretty limited bandwidth.

But I could see that the project was important. My mentors were awesome and the OpenMRS community was incredibly supportive, offering invaluable advice to those that are new to the community. Throughout the summer, I learned a ton of new technologies and — together with my mentors — made a lot of progress on our project.


Group photo climbing a mountainMyself (crouching lower left) with my mentor Cosmin Ioan (standing left), and other colleagues climbing Sapitwa Mountain in Malawi.
Being involved with OpenMRS and Google Summer of Code 2014 was incredibly exciting and I feel fortunate that there are opportunities to continue to stay involved with the community. One important lesson was that open source projects have all kinds of ways to help. The OpenMRS tagline for GSoC is “Write code. Save Lives.” From my experience as an implementer and developer of OpenMRS, that motto rings completely true. It has been inspiring to see code pieced together by a diverse community of contributors from all over the planet to create a system that is literally saving lives.
You need look no further than the projects worked on during GSoC 2014 to get an idea of all the important work going on at OpenMRS:

On behalf of all the students involved with OpenMRS and the Google Summer of Code 2014, thank you to OpenMRS and to Google for supporting our work and to our mentors that helped make the summer so successful. It was an incredible opportunity to learn so much from world-class mentors, be involved in important work that makes a huge difference, and to get exposure to the rich communities that support open source projects.
By Stephen Po-Chedley, OpenMRS Student, 2014
Categories: Open Source

Mercurial Makers Meet in Munich

Tue, 10/21/2014 - 18:45
Back in August, the Google Open Source Programs Office sponsored a meetup for contributors to Mercurial, a distributed version control system. Learn more about their two day hackfest below.

On August 29th-31st, the Mercurial project held one of its twice-a-year sprints in the Google Munich office. Mercurial is a distributed version control system, used by Python, OpenJDK, and Firefox among others. We had 24 developers in attendance, some from companies with large Mercurial deployments and some individual contributors who volunteer in their spare time.

One of the problems Mercurial wants to tackle soon is scaling from supporting hundreds of thousands of files to supporting millions of files in a single repository. The community has identified two approaches to scaling: shallow clones and narrow clones. Shallow clones will allow clients to pull down only part of a repository’s history, and narrow clones will make it possible to pull history for only some files.

At the sprint, we talked through some of the initial narrow/shallow clone implementation hurdles, like how to securely and efficiently store large manifests, and made good progress on a plan. We spent time working on changeset evolution, which makes it easier to manage the process of collaborating on a patch before it’s done. A group also discussed how to make bookmarks work better for users of changeset evolution in large systems, including developing a good plan around remote bookmark management.
If you are interested in finding out more about Mercurial (or perhaps you’d like to contribute to make it scale even better!) you can find our mailing list information here.

By Augie Fackler and Lennard de Rijk, Google Engineering

Categories: Open Source

My summer of code and galaxies

Mon, 10/13/2014 - 18:00
Today we have a post from Doris Lee, a 2014 Google Summer of Code student for the Laboratory for Cosmological Data Mining. Doris talks about her fascinating summer project exploring the galaxy. 
I first learned about Google Summer of Code (GSoC) through an informational session at my school, UC Berkeley. I was interested because of the program’s project-based nature which sounded like a lot of fun. I started by listing my favorite projects from each organization’s ideas page, and ended up getting so engrossed in the project and the code problem associated with the application that I submitted just one to the Laboratory of Cosmological Data Mining. The Laboratory was founded in 2002 at the University of Illinois by Professor Robert J. Brunner to develop and apply computational technologies to extract cosmological information from large astrophysical data sets being generated within the community.
During GSoC’s community bonding period, my mentor and I discovered my initial project proposal had been completed by another contributor. Together, we came up with an alternative project involving creating image mosaics of galaxies. Although I wasn’t as familiar with the subject matter of this new project, I was still very excited and couldn’t wait to get started!
I soon realized that not knowing much about the topic was actually a good thing. I was always learning something new throughout the summer which kept it both interesting and challenging. It was also the first time that I undertook such a large individual project. But what I enjoyed the most about GSoC was the freedom to define the direction of my own work. The initial goal of the project was to make mosaics for large, bright galaxies from the Sloan Digital Sky Survey. However, in our first attempts some of the pictures that we made of the sky contained no galaxy at all! We discovered this was due to inherent inaccuracies in the coordinate values because the catalog was quite old. The course of my GSoC project was turned into developing an algorithm that uses newer imaging data to fix these inaccuracies and then mosaic them into pretty images. In the end, I designed a pipeline that enables users to automatically generate multi-band color images on any catalog of their choice. In addition, this pipeline is designed so it could be used on any set of data taken in the future. 
Overall, my mentor was very helpful with guiding me through my project and addressing my questions. I feel lucky to have worked on a project that I was so excited about and something I truly wanted to see working. 

Since my project made heavy use of open source software developed by other programmers and members of the scientific community, I learned a lot about how open source software projects are managed, documented, distributed and maintained. This was especially useful when I was developing the user interface and documentation to present my final GSoC project and making the code open source. In addition, I learned that in the free and open-source software community, effective documentation and readable code can be just as important as getting the code to work. The value of publicly-available code derives from how other users can benefit from it. You can view the work here on GitHub
There are so many organizations who participate in GSoC, it would be hard to find one that isn’t up your alley. I would encourage any interested student to look at the GSoC organizations and ideas lists when they are posted in February. GSoC enables students of all skill sets and levels to learn and contribute to the open source community and to develop skills in real-world software coding and design.  And not to mention—it’s a great way to spend your summer! 
By Doris Lee, 2014 Google Summer of Code student
Categories: Open Source

Google Summer of Code meetup in New Delhi

Wed, 10/08/2014 - 18:00
Google Summer of Code meetups are a great way for students to spread the word about how the program works and meet fellow open source enthusiasts. If you are interested in holding a meetup at your University, please visit our FAQ page for more information.

On August 23rd, the Jamia Millia Islamia Linux User Group (JMILUG) hosted a Google Summer of Code (GSoC) meetup at Jamia Millia Islamia University in New Delhi. The meetup was an opportunity to learn from past and present GSoC students who have actively contributed to open source projects all over the world. The meetup also provided great information for budding developers who are ready to get their hands dirty and contribute to real world projects.

Over the last two years, nine JMILUG members have participated in GSoC. We felt it was time to give back to both the Indian GSoC students and open source community. We started accepting proposals from potential speakers for the event a couple of months before the meetup. Proposals were subject to a voting process through a website we built and speakers from the top voted sessions were called to give a talk.
The event was incredibly popular — we received over 250 registrations! We decided to move to a bigger venue and were able to accommodate everyone that was interested. On the day of the meet-up, we were pleased to welcome student participants from all academic levels and backgrounds.

The Google Open Source Programs Office graciously provided pens and t-shirts for the event. To make the speaker sessions more interactive, we distributed the goodies based on participation in a Q&A session after each talk. This also ensured that attendees listened intently to each speaker.

In total we had seven speakers give talks during the day-long event. Topics ranged from Angular.js to web accessibility. The final session of the day was dedicated to the topic “Getting into GSoC”. A high point was inviting all current GSoC participants on stage and having them share details about their experience and answer questions from the audience.
We wrapped up the day by distributing attendance certificates to speakers and t-shirts to the two most active audience members. Later, a lottery round was conducted and two people were selected randomly from the audience to be awarded another pair of GSoC T-shirts.

We hope that the meetup will attract many new students to GSoC and the world of open source coding. A big thanks to all of our speakers and attendees!

By Vipul Nayyar, GSoC participant in 2013 and 2014 and Umar Ahmad, GSoC participant in 2014

Google Summer of Code 2015 has just been announced! For more information please visit our program website.

Categories: Open Source

Google Summer of Code 2015 and Google Code-in 2014 are on!

Mon, 10/06/2014 - 18:00
At Google, we are passionate about introducing students to open source software development. Since 2005, the Open Source Programs team at Google has worked with over 10,000 students and over 485 open source projects in a variety of fields to create more code for us all.

A call to all students: if you have ever thought it would be cool to write code and see it make a difference in the world, then please keep reading. We are excited to announce the next editions of two programs designed to introduce students to open source software development, Google Summer of Code for university students and Google Code-in for 13-17 year old students.Google Code-in - Program starts for students December 1, 2014
For the fifth consecutive year, we are happy to announce Google Code-in, an international, online contest designed to introduce 13-17 year old pre-university students to the world of open source development. Open source projects are about more than just coding, and this contest highlights a variety of ways to contribute to open source projects. 
When you read the term open source, do you think:
  • What is open source?
  • What types of work do open source projects do?
  • I’ve only taken one computer science class, can I contribute to an open source project?
  • I’m not really into coding, how else can I contribute to open source?
  • I’ve never participated in open source or an online contest before, can someone help guide me?
  • Open source sounds fun, how can I get started?
If you’ve wondered about any of these questions and are a pre-university student (age 13-17) then we hope you will join in the fun and excitement of the Google Code-in contest starting Monday, December 1st.

For seven weeks from early December to mid January, the Google Code-in contest will have students working with up to 12 selected open source projects on a variety of tasks.  The different categories of tasks that students will be able to work on include:
  1. Code: writing or refactoring 
  2. Documentation/Training: creating/editing documents and helping others learn more
  3. Outreach/research: community management, outreach/marketing, or studying problems and recommending solutions
  4. Quality Assurance: testing and ensuring code is of high quality
  5. User Interface: user experience research or user interface design and interaction
Over the past four years, we have had 1,575 students from 78 countries complete tasks in the contest. This year we hope to surpass 2,000 students.
Visit the Frequently Asked Questions page on the Google Code-in site for more details on how to sign up and participate. We will announce the open source organizations that will be participating in the contest on November 12. The Google Code-in contest starts for students on December 1. We look forward to welcoming hundreds of students from around the world into the open source family again this year.
-----------------------
Google Summer of Code 
Back in 2005, Google made a commitment to support open source software contributors. In addition to our other programs to build and support the contributor base, we thought a great way to get more people involved was to introduce the wide world of open source to college students. 
Google Summer of Code is an innovative program dedicated to introducing students from universities around the world to open source software development. The program offers student developers stipends to write code for various open source projects mentored by a wide variety of carefully selected open source projects. Our goal is to help these students pursue academic challenges over the summer break while they create and release open source code for the benefit of all. Over the past 10 years, over 8,300 mentors and 8,500 student developers in 101 countries have produced a stunning 55 million lines of code. Our goal is to help these students pursue academic challenges over the summer break while they create and release open source code for the benefit of all.
Spread the word to your friends! If you know of a university student that would be interested in working on open source projects this summer, or if you know of an organization that might want to mentor students to work on their open source projects, please direct them to our Google Summer of Code 2015 website where they can find our timeline along with the FAQs. Stay tuned for more details coming soon!
By Stephanie Taylor and Carol Smith, Open Source Programs
Categories: Open Source

Google Summer of Code wrap-up: Worldforge

Fri, 10/03/2014 - 18:00
For our Google Summer of Code wrap-up post this week, we put the spotlight on Worldforge, a project that provides tools to allow users to build their own virtual worlds.

Worldforge had three Google Summer of Code (GSoC) students this year. Now that the 2014 program has ended we’d like to highlight these three students and the work they've done.

Céline Noël, Smartbody integration in Ember.js
Céline worked on integrating the Smartbody system into Ember. Smartbody is a comprehensive system for simulating human behavior with all of the subtle body movements that natural motion entails.

Since Smartbody is a large system dealing with many different facets of human motion, a large part of the work done by Céline involved integration with Ember on the code level. Further work was then done modifying the Ember structure so that human entities can use Smartbody for their underlying animations and movement.

Celine’s work can be seen on Github. It will be merged into the Ember master branch in the coming months.

Péter Szücs, Android support for Ember.js
Péter worked on adding support for Android to Ember, including multi-touch support. The main difficulty initially was getting the Worldforge stack to build for Android using the existing Autoconf build system. Péter has made changes to most of the Worldforge libraries, as well as to the Hammer build tool. Hammer now has built in support for cross platform builds and will set up an Android toolchain by itself.

We expect to provide Android builds of Ember in the next couple of months. Keep an eye on the Worldforge news page for more information about Android support. In the coming weeks, we'll start moving Péter's work into the main repositories.

Yaroslav Taben, Cyphesis Entity filters
Yaroslav worked on adding entity filtering to Cyphesis, the server for Worldforge. Yaroslav’s project can basically be described as "functional filtering of entities using a query language". It is very useful for things like AI code since authors then can more easily write rules for entity behaviour using a query-like language.

Yaroslav worked on both defining the rules for the query language and implementing this in an efficient way in the code. We used an iterative process for the language definition, where we tried out various syntaxes until we found one that fit our specific use case best.

The code can be seen on Github and we plan to start integrating it into Cyphesis in the coming weeks.

All of our students worked hard during the summer and produced excellent results. We're very happy to have been a GSoC participating organization and hope to do so again next year.

By Erik Ogenvik, Organization Administrator, Worldforge

Categories: Open Source

Google Summer of Code wrap-up: Apache Flink (previously Stratosphere)

Fri, 09/26/2014 - 18:00
We continue our Friday Google Summer of Code wrap-up series with Apache Flink (previously Stratosphere) who was a first time participant in the program. Organization Administrator Robert Metzger talks below about their two successful student participants as well as their project’s transition to the Apache Software Foundation incubator program. 
Apache Flink is a system for expressive, declarative, fast, and efficient data analysis. Flink combines the scalability and programming flexibility of distributed MapReduce-like platforms with the efficiency, out-of-core execution, and query optimization capabilities found in parallel databases.

We were accepted to this year’s Google Summer of Code (GSoC) under our former project name “Stratosphere”. But during the summer our project entered the incubator of the Apache Software Foundation (ASF). Incubation is a process for new projects to enter the umbrella of the ASF. As part of the process our project name was subsequently changed from Stratosphere to Flink.

Our move to the ASF also meant quite a few changes for us and our students during the course of their projects. Both mentors and students were able to learn together about the new processes required by the ASF and in the end this transition worked out quite well for everyone involved.

The acceptance of our project into GSoC was a huge, exciting accomplishment for all of the Flink / Stratosphere developers and especially thrilling to a new, first time organization. We had two students this summer: Artem Tsikiridis and Frank Wu.

Artem worked on a full Hadoop MapReduce compatibility layer for Flink. Both Hadoop and Flink are distributed systems for processing huge amounts of data. Hadoop is an open source implementation of the MapReduce algorithm published by Google. It is widely used for a broad range of data intensive computing applications. Flink offers a broad range of operators and can be used to execute MapReduce-style applications.

Artem’s summer project concerned the implementation of a compatibility layer that exposes exactly the same APIs as Apache Hadoop. This feature allows existing Hadoop users to run their Hadoop jobs with Flink. Consequently, users are now able to utilize a faster execution engine for their existing code! Artem worked closely with the community and succeeded in bringing his changes into our main code line. His work will be available with the 0.7-incubating release of Apache Flink.

Frank Wu, our second GSoC student, worked on a large sub-project of Flink called Support for Streaming (Stratosphere Streaming). Frank initiated the development of the mini-batch processing API of Stratosphere Streaming, enabling operations on windows of tuples. Additionally, he contributed to both the iterative and stateful streaming solutions, two of the most challenging applications of streaming. Frank also provided numerous code examples for the topics he was working on. Like Artem, his work will be available with the 0.7-incubating release of Apache Flink.

I would like to thank the mentors, Fabian Hüske and Marton Belassi, as well as our second organization administrator, Ufuk Celebi, for their help with Stratosphere/Flink’s GSoC participation in the summer of 2014.

By Robert Metzger, Organization Administrator for Apache Flink
Categories: Open Source

Google Summer of Code 2014 by the numbers: Part three

Wed, 09/24/2014 - 19:38
In our third statistics post for Google Summer of Code (GSoC) 2014 we have a list of schools with the highest number of student participants. For the first time in seven years a new school has claimed the top spot—congratulations to International Institute of Information Technology - Hyderabad.
RankSchoolCountry# of Accepted Students 2014# of Accepted Students 20131International Institute of Information Technology - HyderabadIndia69292University of MoratuwaSri Lanka44393Birla Institute of Technology and Science PilaniIndia26194Birla Institute of Technology & Science - Pilani, K K Birla Goa CampusIndia25165University POLITEHNICA Of BucharestRomania17256Indian Institute of Technology, BombayIndia1597National University of SingaporeSingapore14158Indian Institute of Technology (BHU) Varanasi India1399Budapest University of Technology and Economics Hungary1279Dhirubhai Ambani Institute of Information and Communication TechnologyIndia121710Indian Institute of Technology, RoorkeeIndia111010International Institute of Information Technology, BhubaneswarIndia11010Vienna University of TechnologyAustria111310University Of WaterlooCanada112
Student majors in 2014 were predominantly in Computer Science and other technical fields (as expected).  But this year we also had students studying Anthropology, Cartography, Evolutionary Biology, Linguistics and even Metallurgy. GSoC certainly attracts a diverse set of students year after year! For more stats from 2014, check out the other posts in this series.

We’d like to thank the schools and professors that help spread the word about GSoC to their students. But don’t forget that students from any university are encouraged to participate! Reviewing statistics each year from GSoC is exciting, but being in “first place” is certainly not the most important part of the program. Our goal since the inception of GSoC is to get students involved in the creation of free and open source software, and to encourage contributions to projects that have the potential to make a difference worldwide — no matter what university the student attends.

By Mary Radomile, Open Source Programs


Categories: Open Source