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: 18 hours 1 min ago

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

Google Summer of Code wrap-up: Twitter

Fri, 09/19/2014 - 18:00
Google Summer of Code 2014 has come to a close and news of the great work completed by our 1300+ student participants is starting to pour in. Our first student “wrap-up” post is from Twitter, a three time Summer of Code participant. We’ll be featuring these stories on Fridays this fall.

For the third time, Twitter had the opportunity to participate in Google Summer of Code (GSoC), and we wanted to share news on the resulting open source activities. Unlike many GSoC participating organizations that focus on a single ecosystem, Twitter has a variety of projects that span multiple programming languages and communities. They include:  
Use zero-copy read path in @ApacheParquetSunyu Duan worked with mentors Julien Le Dem (@J_) and Gera Shegalov (@gerashegalov) on improving performance in Parquet by using the new ByteBuffer based APIs in Hadoop. As a result of the work over the summer, performance has improved up to 40% based on initial testing and the work will make its way into the next Parquet release.
A pluggable algorithm to choose next EventLoop in NettyJakob Buchgraber worked with mentor Norman Maurer (@normanmaurer) to add pluggable algorithm support to Netty’s event loop (see pull request). At the start of the summer when a new EventLoop was needed to register a Channel, EventLoopGroup implementations used a round-robin like algorithm to choose the next EventLoop. This was challenging because different events may become more busy than others over time, hence the need for Jakob’s project to support pluggable algorithms to increase performance.  
Various compression codecs for NettyIdel Pivnitskiy (@pivnitskiy) worked with mentor Trustin Lee (@trustin) to add multiple compression codes (LZ4, FastLZ and BZip2) to the Netty project. Compression codecs will allow cutting traffic and creating applications, which are able to transfer large amounts of data even more effectively and quickly.
Android Support For PantsMateo Rodriguez (@mateornaut) added Android support to the Pants build system (see commits) so Pants can build Android applications (APKs) on top of the many other languages and tools it supports.
A pure ZooKeeper client for Finagle Pierre-Antoine Ganaye (@pa-ganaye) was mentored by Evan Meagher (@evanm) to add a pure Apache ZooKeeper client to Finagle to improve performance (see project).
An SMTP client for FinagleLera Dymbitska (@suncelesta) worked with mentors Selvin George (@selvin) and Travis Brown (@travisbrown) to add SMTP protocol support to Finagle to improve performance (see pull request). Finagle strives to provide fully asynchronous protocol support so baking in SMTP support was required versus using third party libraries such as javamail and commons-email which are synchronous by design.
Analyze Wikipedia using CassovarySzymon Matejczyk (@szymonmatejczyk) worked with mentors Pankaj Gupta (@pankaj) and Ajeet Grewal (@ajeet) to enable Cassovary to analyze Wikipedia data. The result of this work improved the performance of Cassovary when dealing with large graphs. See the commits associated with the project to see how it was done.
We really enjoyed the opportunity to take part in GSoC again this year. Thanks again to our seven students, mentors and Google for the program. We hope to participate again next summer.
Chris Aniszczyk, Organization Administrator, Twitter
Categories: Open Source

Security for the people

Thu, 09/18/2014 - 15:15
A recent Pew study found that 86% of people surveyed had taken steps to protect their security online. This is great—more security is always good. However, if people are indeed working to protect themselves, why are we still seeing incidents, breaches, and confusion? In many cases these problems recur because the technology that allows people to secure their communications, content and online activity is too hard to use.

In other words, the tools for the job exist. But while many of these tools work technically, they don’t always work in ways that users expect. They introduce extra steps or are simply confusing and cumbersome. (“Is this a software bug, or am I doing something wrong?”) However elegant and intelligent the underlying technology (and much of it is truly miraculous), the results are in: if people can’t use it easily, many of them won’t.

We believe that people shouldn’t have to make a trade-off between security and ease of use. This is why we’re happy to support Simply Secure, a new organization dedicated to improving the usability and safety of open-source tools that help people secure their online lives.

Over the coming months, Simply Secure will be collaborating with open-source developers, designers, researchers, and others to take what’s there—groundbreaking work from efforts like Open Whisper Systems, The Guardian Project, Off-the-Record Messaging, and more—and work to make them easier to understand and use.

We’re excited for a future where people won’t have to choose between ease and security, and where tools that allow people to secure their communications, content, and online activity are as easy as choosing to use them.

By Meredith Whittaker, Open Source Research Lead and Ben Laurie, Senior Staff Security Engineer







Categories: Open Source

gcloud-node - a Google Cloud Platform Client Library for Node.js

Wed, 09/17/2014 - 01:41
Today we are announcing a new category of client libraries that has been built specifically for Google Cloud Platform. The very first library, gcloud-node, is idiomatic and intuitive for Node.js developers. With today’s release, you can begin integrating Cloud Datastore and Cloud Storage into your Node.js applications, with more Cloud Platform APIs and programming languages planned.

 The easiest way to get started is by installing the gcloud package using npm:
$ npm install gcloud
With gcloud installed, your Node.js code is simpler to write, easier to read, and cleaner to integrate with your existing Node.js codebase. Take a look at the code required to retrieve entities from Datastore:
var gcloud = require('gcloud');

var dataset = new gcloud.datastore.Dataset({
projectId: 'my-project',
keyFilename: '/path/to/keyfile.json' // Details at
//https://github.com/googlecloudplatform/gcloud-node#README
});

dataset.get(dataset.key('Product', 123), function(err, entity) {
console.log(err, entity);
});
gcloud is open-sourced on Github; check out the code, file issues and contribute a PR - contributors are welcome. Got questions? Post them on StackOverflow with the [gcloud-node] tag. Learn more about the Client Library for Node.js at http://googlecloudplatform.github.io/gcloud-node/ and try gcloud-node today.

 -Posted by JJ Geewax, Software Engineer

Node.js is a trademark of Joyent, Inc. and npm is a trademark of npm, Inc.
Categories: Open Source

CausalImpact: A new open-source package for estimating causal effects in time series

Thu, 09/11/2014 - 00:00
How can we measure the number of additional clicks or sales that an AdWords campaign generated? How can we estimate the impact of a new feature on app downloads? How do we compare the effectiveness of publicity across countries?

In principle, all of these questions can be answered through causal inference.

In practice, estimating a causal effect accurately is hard, especially when a randomised experiment is not available. One approach we've been developing at Google is based on Bayesian structural time-series models. We use these models to construct a synthetic control — what would have happened to our outcome metric in the absence of the intervention. This approach makes it possible to estimate the causal effect that can be attributed to the intervention, as well as its evolution over time.

We've been testing and applying structural time-series models for some time at Google. For example, we've used them to better understand the effectiveness of advertising campaigns and work out their return on investment. We've also applied the models to settings where a randomised experiment was available, to check how similar our effect estimates would have been without an experimental control.

Today, we're excited to announce the release of CausalImpact, an open-source R package that makes causal analyses simple and fast. With its release, all of our advertisers and users will be able to use the same powerful methods for estimating causal effects that we've been using ourselves.

Our main motivation behind creating the package has been to find a better way of measuring the impact of ad campaigns on outcomes. However, the CausalImpact package could be used for many other applications involving causal inference. Examples include problems found in economics, epidemiology, or the political and social sciences.

How the package works
The CausalImpact R package implements a Bayesian approach to estimating the causal effect of a designed intervention on a time series. Given a response time series (e.g., clicks) and a set of control time series (e.g., clicks in non-affected markets, clicks on other sites, or Google Trends data), the package constructs a Bayesian structural time-series model with a built-in spike-and-slab prior for automatic variable selection. This model is then used to predict the counterfactual, i.e., how the response metric would have evolved after the intervention if the intervention had not occurred.

As with all methods in causal inference, valid conclusions require us to check for any given situation whether key model assumptions are fulfilled. In the case of CausalImpact, we are looking for a set of control time series which are predictive of the outcome time series in the pre-intervention period. In addition, the control time series must not themselves have been affected by the intervention. For details, see Brodersen et al. (2014).

A simple example
The figure below shows an application of the R package. Based on the observed data before the intervention (black) and a control time series (not shown), the model has computed what would have happened after the intervention at time point 70 in the absence of the intervention (blue).

The difference between the actual observed data and the prediction during the post-intervention period is an estimate of the causal effect of the intervention. The first panel shows the observed and predicted response on the original scale. The second panel shows the difference between the two, i.e., the causal effect for each point in time. The third panel shows the individual causal effects added up in time.
The script used to create the above figure is shown in the left part of the window below. Using package defaults means our analysis boils down to just a single line of code: a call to the function CausalImpact() in line 10. The right-hand side of the window shows the resulting numeric output. For details on how to customize the model, see the documentation.
How to get started
The best place to start is the package documentation. The package is hosted on Github and can be installed using:

install.packages("devtools")
library(devtools)
devtools::install_github("google/CausalImpact")
library(CausalImpact)

By Kay H. Brodersen, Google

Categories: Open Source

Glide 3.0: a media management library for Android

Tue, 09/09/2014 - 21:48
Today we are happy to announce the first stable release of Glide 3.0. Glide is an open source media management framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.

Glide is specifically designed not only to be easy to use, but also to make scrolling lists of images as smooth and pleasant to use as possible. To reduce stuttery scrolling in lists caused by garbage collections due to Bitmap allocations, Glide uses reference counting behind the scenes to track and reuse Bitmap objects. To maximize the number of Bitmaps that are re-used, Glide includes a Bitmap pool capable of pooling arbitrary sizes of Bitmaps. 
The 3.0 version of Glide includes a number of improvements, including support for animated GIF and video still decoding, improved lifecycle integration to intelligently pause and restart requests, and thumbnailing support. 
Despite all of the new features, Glide’s interface is still simple and easy to use. To display an image, video still, or animated GIF in a view, you still need only one line:
Glide.with(context).load("http://goo.gl/h8qOq7").into(yourImageView);
Glide will intelligently determine the type of media you’re trying to load, decode it, and return a drawable object that can display the animation or still image in the view. If you want to load specifically a Bitmap, you can do that too:
Glide.with(context).load("http://goo.gl/h8qOq7").asBitmap().into(yourImageView);
You can also do more complex transformations. For example, to upload the bytes of a 250px by 250px profile photo for a user:
Glide.with(context)
.load("/user/profile/photo/path")
.asBitmap()
.toBytes()
.centerCrop()
.into(new SimpleTarget<byte[]>(250, 250) {
@Override
public void onResourceReady(byte[] data, GlideAnimation anim) {
// Post your bytes to a background thread and upload them here.
}
});
For a more complete list of changes, documentation, or to report issues please see the Github page. To see Glide being used in a real application, check out the recently released source of the 2014 Google I/O app and their excellent blog post on image loading. Finally, for questions, comments, or suggestions please join our discussion list.
By Sam Judd, Google Engineering
Categories: Open Source

Software Freedom Conservancy and Google Summer of Code

Thu, 09/04/2014 - 20:00
Today’s guest post comes from Bradley Kuhn, President of Software Freedom Conservancy. Conservancy and Google Summer of Code have had a long history as partners and in many cases Conservancy has made it possible for organizations to participate in our program. Read on for more details on how becoming a member of Conservancy can benefit your project in Google Summer of Code and beyond.

Software Freedom Conservancy, Inc. is a 501(c)(3) non-profit charity that serves as a home to Open Source and Free Software projects. In this post I'd like to discuss what that means and why such projects need a non-profit home. In short, Conservancy seeks to makes the lives of Free Software developers easier and it gives contributors much less administrative work to do outside of their area of focus (i.e., software development and documentation).

Google Summer of Code (GSoC) is a great example to show the value a non-profit home brings to Free Software projects. GSoC is likely the largest philanthropic program in the Open Source and Free Software community today. However, one of the most difficult things for organizations who seek to take advantage of such programs is the necessary administrative overhead. Google invests heavily in making it easy for organizations to participate in the program (for instance, by handling the details of stipend payments to students directly). However, to take full advantage of any philanthropic program, the benefiting organization has some work to do. For its member projects, Conservancy is the organization that gets that logistical work done.

Google donates $500 to the mentoring organizations for every student it mentors. However, these funds need to go somewhere. If the funds go to an individual, there are two inherent problems. First, that individual is responsible for taxes on that income. Second, funds belonging to an organization as a whole are now in the bank account of a single project leader. Conservancy solves both those problems. As a tax-exempt charity, the mentor payments are available for organizational use under its tax exemption. Furthermore, Conservancy maintains earmarked funds for each of its projects. Conservancy keeps the mentor funds for the Free Software project, and the project leaders can later vote to make use of the funds in a manner that helps the project and Conservancy's charitable mission. Often times, projects in Conservancy use these funds to send developers to important conferences to speak about the project and recruit new developers and users.

Google also offers to pay travel expenses for two mentors from each mentoring organization to attendGSoC Mentor Summit. Conservancy handles this work on behalf of its member projects in two directions. First, for developers who don't have a credit card or otherwise are unable to pay for their own flight and receive reimbursement later, our staff book the flights on Conservancy's credit card. For the other travelers, Conservancy handles the reimbursement details. And on the back end, we handle all the overhead issues in requesting the POs from Google, invoicing for the funds, and tracking to ensure payment is made.
the annual

GSoC coordination is just one of the many things that Conservancy does every day for its member projects. If there's anything other than software development and documentation that you can imagine a project needs, Conservancy does that job for its member projects. This includes not only mundane items such as travel coordination, but also issues as complex as trademark filings and defense, copyright licensing advice and enforcement, governance coordination and mentoring, and fundraising for the projects. Some of Conservancy's member projects have been so successful that they've been able to fund developers’ salaries — often part-time but occasionally full-time — for many years to allow them to focus on improving the project's software for the public benefit.

If your project seeks help with regards to handling its GSoC funds and travel, or anything else mentioned on Conservancy's list of services to member projects, Conservancy is welcoming new applications for membership. Your project could join Conservancy's more than thirty other member projects and receive these important services to help your community grow and focus on its core mission of building software for the public good.

By Bradley M. Kuhn, President, Software Freedom Conservancy

Categories: Open Source

New Google Summer of Code Organizations - Final post

Fri, 08/29/2014 - 18:00
Today marks the final post in our series highlighting new Google Summer of Code organizations for 2014. Organization administrators from BioJavaScript, Julia and GNU Octave discuss their students’ projects below.
BioJavaScript (BioJS) is an open source library and standard for visualization of biological data on the web. BioJS provides widgets (a pre-made piece of code that performs a task needed in lab software) that can be easily reused, combined and extended, following a common architecture and documentation. BioJS is great for labs with few resources to be able to reutilize, find and share existing functionality.

For Google Summer of Code (GSoC) 2014, our students worked on a series of widgets such as a taxonomy viewer that is zoomable at different resolutions and a phylogenetic tree viewer that displays proteins in a tree and branches according to their evolutionary proximity.

By Manuel Corpas, Organization Administrator for BioJS

-----------------------
Julia is a new dynamic programming language aimed primarily at technical computing. It is designed to be both high-level and high-performance, thus replacing the need to have separate languages to achieve these goals. Development on Julia started in 2009 and the project has since become a global collaboration—over 250 collaborators around the world have written close to 20,000 lines of code in the core Julia repository alone.

2014 marks our first time participating in Google Summer of Code and our three students have finished up their highly successful projects:
  • Simon Danisch is working on volumetric, particle and surface visualizations entirely in Julia and OpenGL. He has been blogging about his progress and all his code is available here on GitHub.
  • Mikes Innes is building a Julia environment on top of the excellent Light Table platform. It will support building big projects in small steps by modifying them as they are running. It tightly integrates tools such as the profiler and the upcoming documentation and debugging systems, with the aim of being accessible for novices and powerful for seasoned Julians. His work is available through the LightTable plugin manager as well as on GitHub.
  • Shashi Gowda is working on making use of the recently added real-time interaction support in IJulia notebooks. It will allow users to create widgets including sliders, drop-downs, colorpickers and other input elements in their notebooks and connect them to plots, DataFrames and other output. As part of this work he has also been working on React.jl, an Elm-inspired reactive-programming package for Julia. His code is available on GitHub.

By Keno Fischer, Organization Administrator for Julia

--------------------
GNU Octave is a high-level interpreted programming language primarily intended for numerical computations. It provides a command-line interface for solving linear and nonlinear problems numerically and for performing other numerical experiments using a language that is mostly compatible with MATLAB.

We are excited to have three GSoC students who worked with us this summer. Their projects include:
  • Improving finite element modeling capabilities through an interface to FEniCS
  • Adding incomplete matrix factorization capabilities
  • Improving the handling of sparse matrices

By Carlos Fernandez, Organization Administrator for GNU Octave

Categories: Open Source

Tips and tricks from a Google Summer of Code veteran

Wed, 08/27/2014 - 20:00
Today we have guest writer Victoria MartĂ­nez de la Cruz providing her take on how to have a successful Google Summer of Code. Victoria just finished her summer working with OpenStack, an open source tool for building private and public clouds. Read below for some of her great tips on how to conquer the summer as a GSoC student. 
The end of Google Summer of Code (GSoC) is near and I wanted to share with readers my perception of what it takes to participate in GSoC, to work in an open source environment and what to expect after the program.

What it takes
Participating in GSoC will allow you to learn about the latest technologies and to contribute to the open source organization project of your choice. Every project is different, so any previous knowledge you should have and tools you are expected to use depend on the project plans.You don't need to be a hacker, but in my opinion, it really helps to have deep understanding of several computer science concepts.

The learning curve can be high. It really helps to become familiar with the project code—discover where things are located and how they interact to make the application work ahead of time. You also will have to become familiar with the programming style of the community. Every organization has its conventions and it’s important to stick to good practices to guarantee high quality code. Students are required to understand the workflow, including how to submit your code for review, how the review process works and what is required to get it merged. Finally, you have to start working on your specific project— sometimes a bit harder than you might think!

It’s important to be proactive and take initiative. Research things you don't understand and collect as many resources as you can to make your own decisions. It is better to be wrong about something and fix it with the feedback submitted by the reviewers than to waste time poking people to ask their opinion on a subject they may not be so familiar with.

Working with a mentor
I want to emphasize how important it is to find a good mentor and to get along with them. It is essential that you share with them both what you feel good about and what is making you nuts! Given that GSoC is a remote program, it is always a good idea to keep your mentor up to speed on what you are doing. Otherwise they cannot track your efforts and they won't notice if you are stuck on something.

Seek to find a good balance—contact your mentor often, but don't expect them to devote all of their time to you. And don’t forget about taking advantage of the developer community. If your mentor cannot reply to your questions for some reason, you can also ask someone else.

What to expect after GSoC
Once you have walked down the GSoC path, you have several options. You can stop contributing to the project you worked on and continue with something else that you like more, you can keep contributing as a volunteer, or you can try to find a full-time job to keep working on it. What you decide to do is up to you, but at the very least you have built a strong background that will be useful in your career.

In short
  • GSoC is an incredible opportunity. You will learn about programming tools and practices used in real world deployments, and you will build the experience and confidence necessary for a future job. It is really worth the effort!
  • Become familiar with the project before the summer starts. If you can get in touch with the project community and contribute with a small fix, it will make it easier for you to apply later to GSoC.
  • Share as much as possible with your mentor. Interact with the community. Get to know them, it's important. Open source projects work because of their communities.
  • Your contributions are as important as other people's. Review other people’s patches and submit feedback. You will not only learn a lot, but they will be more likely to review your patches.

By Victoria Martinez de la Cruz, Google Summer of Code Student, 2014



Categories: Open Source

10th Year of Google Summer of Code draws to a close

Tue, 08/26/2014 - 23:00
This has been a big year for Google Summer of Code, our program designed to introduce university students from around the world to open source development. In celebration of our 10th instance of the program we made a lot of changes.

In April, we accepted more students than we ever have before: 1,307 university students from 72 countries. We raised the stipend for them: the successful participants were paid $5,500 over the course of the program. These students wrote code for the largest number of open source organizations we’ve ever had participate: 190. And last but not least, we had 2491 mentors from 78 countries help them out. We are excited to announce that 89.7%* (1172) of the students passed their final evaluations. To see more about how that compares to previous years, check out our statistics from the last nine years of the program.

And we’re not done yet. This October we’ll be hosting a 10-year reunion in San Jose, California. We’ll welcome our alumni (students, mentors, and organization administrators) from all years of the program to meet and exchange ideas.

Now that this year’s program has concluded, students are busy preparing their code samples for all eyes to see. Soon you will be able to go to 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 10th 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



Categories: Open Source

The Sahana Software Foundation annual conference

Thu, 08/21/2014 - 20:00
Today we have a post from Michael Howden, Google Summer of Code mentor since 2010, contributor to the Sahana Open Source Disaster Management Software and as of June 2014 CEO of the Sahana Software Foundation. Sahana recently held it’s annual conference in Sri Lanka, bringing contributors together from around the globe. 
The Sahana Software Foundation helps organizations and communities prepare for and respond to disasters by providing open source information management tools. There is not much overlap between the people engaged in disaster management activities using our software and the people who contribute code to it, so it’s important to ensure that our contributors see how their code supports our mission of helping organizations and communities. This is especially important while working with students during Google Summer of Code (GSoC)—and is often hard to do over the mailing list or a Hangout—so we wanted to bring them to the Sahara Annual Conference in Sri Lanka. The conference was sponsored by Google,  AidIQ, Virtusa, The University of Colombo School of Computing and LIRNEAsia which made it possible for the following GSoC mentors and students to attend:
  • Arnav Agrawal
  • Fran Boon
  • Ramindu Deshapriya
  • Michael Howden
  • Somay Jain
  • Mayank Jain
  • Dominic König
  • Gaurav Narula
  • Arnav Sharma
  • Hemant Singh 
  • Nuwan Waidyanatha 
The Sahana Annual Conference consisted of a number of separate events which were being held in parallel with the Indian Ocean Tsunami 10th Anniversary convention (IOTX). This gave the students broad exposure to the Sahana community, users, history, strategy, and of course the code of our open source project.
The main event of the week was the SahanaCamp workshop. These workshops are conducted to help encourage collaboration between coders and disaster management experts. Our students were very impressed to learn about all the places around the world where Sahana was used. It occurred to me that we need to improve our introduction documents so students can have this information before they start work on their projects. One of the highlights of the day for me was having our students give demonstrations of Sahana to people from various disaster management organisations who were attending the SahanaCamp. I was really impressed with their knowledge and professionalism.

There was no way we could get everyone together without cranking out some code— the Common Alerting Protocol (CAP) Code-Fest was a great opportunity for this. A number of CAP experts had been consulted and were also present to work with the Sahana Team. During the day our mentors and students were able to work together to implement new support for sharing alert messages between organizations.

The week wrapped up with our Annual General Meeting, during which we held a number of unconference sessions allowing us to dive into a number of really important areas:
  • Debugging with Eclipse and Firebug. It was a surprise how few of our students knew about using these tools (for example, print statements != debugging), another addition for us to make to our introduction documents.
  • We held a session looking at our GSoC program and how we could improve it. Everyone agreed that face-to-face meetings were valuable and more structured meetings could be useful, especially if they connected students with the end users. We also talked about the value of allowing students to set their own priorities and having ownership over their projects.
The conference allowed our students to see that there is much more to open source than what they saw on their computer screens. But more importantly it gave them a chance to come together, see the bigger picture they are a part of, meet each other face to face, build relationships and make friendships.

“Open source is nothing but a few people with a common goal working together for the betterment of a community by developing software. This I saw in person and this will stick with me for the rest of my life.”
-Arnav Sharma

If you’re interested in finding out more about the conference, please take a look at the blog posts prepared by our students!

By Michael Howden, CEO, Sahana Software Foundation



Categories: Open Source

Melange: the open source software powering Google Summer of Code

Wed, 08/20/2014 - 14:52
Daniel Hans, a long time Melange developer, is today’s guest writer. Below he describes a bit about the open source software that makes Google Summer of Code and Google Code-in possible year after year.
There is no Google Summer of Code (GSoC) without Melange, the open source software both GSoC and Google Code-in (GCI) run on. The first release in 2009 was a real game changer for both program administrators and participants. Can you believe that in the pre-Melange era we once ran the program with almost 1,000 students on just a spreadsheet?

But what exactly is Melange? In short, it is a website front end to the database we use to both present information about GSoC and manage the participation of all the projects, mentors and students involved. Melange is a project that supports open source initiatives. Not surprisingly, it is open source itself and has participated as an organization in GSoC from its infancy.

The project was started in 2008 and developed primarily by a group of volunteers who dedicated a considerable amount of time so that it could be deployed one short year later. In the early days of Melange, the user interface was very simple. It visualized the underlying database layer with minimum graphics. Despite its simplicity and initial shortcomings it was a breakthrough, as a lot of tasks which previously had been completed manually became automated. The program could now continue to grow and scale with each year.  By 2011 the layout was completely redesigned to provide a much better user experience. Since launch, almost 40,000 student proposals have been processed through Melange.

This summer we chose four students to work on Melange as a GSoC project and three successfully passed the midterm evaluation. They have all been working hard on projects that will have a real impact on both GSoC and GCI. At the end of the summer we should be able to resolve several high priority issues requested by our users.

Shikher Somal is improving the general workflow of a student participant. For example, student applicants will be able to rank their proposals in order of their own preferences. They will no longer have to rely on the organizations they applied with and program administrators to decide who gets to work with the student (which often occurs when multiple orgs like the same student).

Denys Butenko from Ukraine is working on CSS improvements to make the user interface more responsive. The new UI will look much cleaner on different screen sizes, especially on mobile devices where so much traffic is coming from these days.

Our third participant, Piyush Bansal, is helping to make the Melange developer’s life a bit easier. Piyush successfully completed his first GSoC project in 2013 and has since become an important part of our community since then. This summer he is working on a continuous integration system. His changes are not directly visible to end users but are crucial to our daily workflow. We recently pushed to production a first release for which the developer did not need to run all the tests manually as a part of the deployment process. The buildbot did the job for him.

The summer has been going great and we are really excited about all the work so far. We have already integrated some parts of the students’ projects into the master branch. Is there any better evidence that a GSoC student can make an actual impact? And we are always happy to welcome new contributors. If you would like to make Melange even better, please start by reading the getting started guide. Feel free to get in touch with us on our mailing list.

By Daniel Hans, Google, Melange Developer
Categories: Open Source

Google Summer of Code new organizations - Part Seven

Fri, 08/15/2014 - 18:00
We have two additional Google Summer of Code organizations to spotlight this week, TEAMMATES and Tatoeba.  Both are new to the program in 2014. Read below for details about the exciting projects their students have taken on this summer.
TEAMMATES is an online feedback management tool for education. It is a not-for-profit project based at the National University of Singapore and funded by education grants. While TEAMMATES-the-service is offered as a free SaaS to the public, TEAMMATES-the-project is primarily a student project that aims to train students in building non-trivial software systems. Currently TEAMMATES contains the work of over 100 students and is used by both teachers and students from over 100 universities.TEAMMATES is a JavaEE application running on Google App Engine.
In GSoC 2014, we have 4 students—Gu Junchao, Low WeiLin, Thyagesh Manikandan, and Xie Kai are each adding new major features to TEAMMATES. 
  • Junchao is adding fine-grain access control to enable variable access levels to different instructors for the same course. 
  • WeiLin is adding the ability to see statistics for responses collected in feedback sessions
  • Thyagesh is adding the function for students to create user profiles within TEAMMATES
  • Xie Kai working on a feature for instructors to comment on students, teams, and feedback responses submitted
By Damith Rajapakse, Organization administrator for TEAMMATES
----------------------------
Tatoeba is a platform that aims to build a large database of sentences and their translations into as many languages as possible. The initial idea was to have a tool in which you could search certain words, and it would return example sentences containing these words with their translations in the desired languages. The name Tatoeba resulted from this concept, because "tatoeba" means "for example" in Japanese. 
Anyone can contribute to add new sentences and translations. The data collected is redistributed under the CC-BY license.
Our organization is mentoring 4 GSoC students this year:
  • Jake, working on an export to Anki deck. The application will take an Anki deck from the user, compare it against Tatoeba's database, and generate a new deck with sentences where the user will know one new word
  • Pallav, working on administrative scripts. The project's main aim is to create scripts that simplify the task of setting up a development/production environment for Tatoeba, along a few supporting scripts that can perform backup, restore, export, import, etc
  • Saeb, working on a Python rewrite of Tatoeba. We hope that the resulting prototype will be the foundation for the next and better version of Tatoeba, with awesome new feature
  • Harsh, working on a mass import system for open texts. This will be a boost for the database because the system will not import just any sentence. It will have to evaluate what is a good sentence to meet the Tatoeba community's need for high quality.
By Trang Ho, Organization Administrator for Tatoeba
Categories: Open Source

My Google Summer of Code journey: From student, to mentor, to organization administrator

Wed, 08/13/2014 - 20:00
Today’s post comes from guest blogger Ana Cutillas — a dedicated Google Summer of Code student, mentor, and now organization administrator for Systers, a forum for women involved in the technical aspects of computing. The email list has over 4,000 members from at least 54 countries around the world. Ana is passionate about all things open source and shares a bit of her story below. 
A few years ago, a friend told me about a cool open source program called Google Summer of Code (GSoC). I was reluctant to get involved — I had no idea where to start! But when the organizations for GSoC 2012 were made public, I felt ready. I skimmed through the list and one of them caught my eye. Systers. Funny name. I read more about them: an international electronic mailing list for technical women in computing. Awesome! I decided to apply and before I knew it, I was a full time student, full-time worker, an Ultimate Frisbee player and applying to become a GSoC participant. Needless to say, I was quite busy.

For the application, Systers required that you install their environment in your machine and fix a bug for them. It wasn't easy. I had so many questions! Thankfully I had already joined the Systers' developers mailing list and I decided to ask them. At the beginning, mentors-to-be answered my questions but eventually new potential students joined the list and I knew the answers to some of their questions. It felt great to be able to help people already.

I finished my application before the deadline and I got feedback from Systers that helped me make it better. They told me that GSoC wasn’t compatible with having a full time job (they were right, it definitely isn't). They suggested I should either volunteer my time and have someone mentor me outside of the program, or leave my job and apply to be an official GSoC student. I didn't have to give it much thought—I left the job I didn't like for the possibility of an awesome summer.
Throughout the application process, I became friends with another student that wanted to work with Systers too. The night of the accepted students announcement, we were both so nervous. I remember walking back home from my Ultimate Frisbee practice when she told me she had gotten the email. I had a rush of mixed emotions, I was so happy for her but worried about where mine was. Maybe I hadn't made it? After several of the longest minutes of my life, there it was! I made it!
Systers set me up with two mentors. During the community bonding period we went through my summer schedule until we were all happy with it. The coding period started and I dived head first into my project. I spent my summer working in Python, and learning about open source project etiquette and culture. When I didn't know where to find the files I needed to do something, I could ask my senior mentor and she just knew. I feel very fortunate to have worked with her and I still turn to her for career advice.

A few months after GSoC ended, I got  an email from our administrator to the mailing list saying that Systers was going to try to participate in GSoC again that year (in 2013). I immediately wrote her back and told her that I would like to be a mentor. I was really nervous about being a mentor, a lot more than I was when I was a student. As a student you’re just expected to get your work done, ask questions and slowly become part of the community. However, as a mentor, I was expected to be a role model. I had such an amazing experience with my mentor and I really wanted to provide the same experience to my student.

All my worries went away as soon as I met my student.  As far as students go, I hit the jackpot! She was extremely smart, really organized, got her work done on time and was absolutely fantastic to work with.

Later in the year I was chosen to go to the mentor summit at the Google campus in California. There, I got to meet some of the people that had mentored me when I was a student. The summit has truly been one of the best experiences of my life. It was so cool to be surrounded by tons of exceptionally smart people who were also really passionate about open source.

Shortly after the summit, our administrator asked me if I wanted to help out as an org admin as well as be a mentor for 2014 GSoC. I didn’t have to think about it, I happily accepted. I’m happy to report our organization has grown a lot in a year. We’ve gone from six to 14 students and we’ve been able to recruit about four mentors per student.  And what a ride I’ve been on. I’m excited to continue my work with Systers and can’t wait to see what’s next for Google Summer of Code.

By Ana Cutillas, Google Summer of Code Student, Mentor, and Organization Administrator for Systers

Categories: Open Source

Google Summer of Code new organizations - Part Six

Fri, 08/08/2014 - 18:00
We have two great new Google Summer of Code organizations to spotlight this week, The Institute of Artificial Intelligence and Frenetic.  It’s hard to believe that the summer has almost come to an end! The coding period for GSoC ends on Monday, August 18. 
The Institute of Artificial Intelligence at the University of Bremen in Germany investigates methods for cognition-enabled robot control. The research is at the intersection of robotics and Artificial Intelligence (AI) and includes methods for intelligent perception, dexterous object manipulation, plan-based robot control, and knowledge representation for robots.

Robots performing complex tasks in open domains, such as assisting humans in a household or collaboratively assembling products in a factory, need to have cognitive capabilities for interpreting their sensor data, understanding scenes, selecting and parameterizing their actions, recognizing and handling failures and interacting with humans.

In our first year in Google Summer of Code (GSoC), we have students working on three distinct projects from our core research competences:

  • Mihai Baltac is working on the development of situation-specific simulation environments in the Gazebo robot simulator. On the basis of an existing plan library in the CRAM system, he will also develop robot plans that enable robotic agents to operate in this environment in a knowledge-supported, robust fashion.
  • Andrei-Mihai Nicolae is improving the visualization of the belief state and the intentions of the cognitive agent. He’s further developing the Bullet physics engine based reasoning system of CRAM.
  • Razvan-Andrei Stoica is extending the geometric reasoning capabilities of the KnowRob CAD reasoning system. He will introduce new attributes that can be extracted from physical properties of a known object model, and will work on further refining the current algorithms.

By Jan Winkler, Institute for Artificial Intelligence 

-----------------

Frenetic is an open source software-defined networking controller platform. With Frenetic, a programmer can describe the intended behavior of the network in a high-level language, and the compiler and run-time system generates the low-level code that executes on network devices.

Software-defined networking (SDN) is an emerging network architecture in which a logically-centralized controller manages the behavior of a collection of programmable switches, such as OpenFlow switches. SDN can simplify many network algorithms, and it also makes it easy to extend the network with new functionality. Most SDN controller platforms provide low-level programming interfaces that closely mirror the capabilities of the underlying hardware.

Frenetic is unique in that it provides a high-level and declarative programming interface that abstracts away from the details of the hardware and allows programmers to focus on the essential features of network applications.

We are very excited to have a Google Summer of Code student this year. He is working hard designing and implementing support for versions 1.3 and 1.4 of the OpenFlow protocol.

By Marco Canini, Frenetic Organization Administrator

Categories: Open Source

Google Summer of Code new organizations - Part Five

Fri, 08/01/2014 - 20:00
We have two additional Google Summer of Code organizations to spotlight this week, LabLua and Code Combat.  Both are new to the program in 2014. Read below for more information about the exciting projects their students have taken on this summer.
lablua.pngLabLua is a lab at PUC-Rio dedicated to research on programming languages with an emphasis on the Lua language. Lua is a powerful, fast, lightweight, embeddable scripting language that has been used in many industrial applications, and on many embedded systems and games.

It is our first year in Google Summer of Code (GSoC). We had eight mentors create a pool of 15 projects to help students to submit proposals. We received a total of 20 proposals, from which four have been accepted. We are quite an international group — two of the accepted students are from Brazil, one is from Romania and one is from India.

The projects our students are currently working on include:
  • Adding flow typing and evolution of table types to typed Lua
  • Adding multi-CPU support to VLC
  • Creating a library to help 'memory leak' detection in Lua
  • Porting Gameduino demos to the programming language CĂ©u (another language currently under development at our lab)
By Ana LĂşcia de Moura and Francisco Sant'Anna, Researchers at LabLua

----------------------
coco_logo.pngCodeCombat is a game that teaches people to code. It runs completely in HTML5 and supports playing in JavaScript, Coffeescript, Python, Lua, Clojure, Io, and more to come. Since open sourcing the site in January, we've been very happy with the huge response from people who provide code improvements, experimental game levels and extensive translations to the site. Almost every aspect of the game is available for contributors to work on, and GSoC has been terrific in bringing not only attention to our project but also many dedicated volunteers as well.

Alexandru Caciulescu is building new game levels throughout the summer. His campaign focuses on teaching intermediate-to-advanced concepts and algorithms, such as sorting, recursion and data structures. He has already built the Gold Rush level which requires efficient pathfinding, and which we based our own Greed Tournament level on.

Jayant Jain is working on improving our level editor. Building new levels is currently quite hard, arguably the most difficult thing for any contributor to do. Jayant is running UX tests and working with Alexandru and other level builders to remove pain points, fix bugs, add key features and create helpful documentation.

Dominik Kundel is doing a series of projects on the game interface which will improve gameplay in general and mobile gameplay in particular. Projects include auto-complete, separation of coding and game views and interfaces for manipulating code easily on mobile.

Ruben Vereecken is building the site's achievement system from top to bottom. It uses an experimental, highly decoupled and flexible foundation that is largely independent from the client logic. He's also digging into several other parts of the site, such as the testing systems and making server-side improvements.

By Scott Erikson, Organization Administrator for Code Combat

Categories: Open Source

Google Code-in: sixteen and counting

Wed, 07/30/2014 - 20:00
Today we have a guest post from Chirayu Desai, one of the twenty amazing teenagers from around the globe who took top honors in Google Code-in 2013. Read more about Chirayu and his introduction into the world of open source software below.

If I told you a 16 year-old kid could work on software which runs on millions of devices, contribute to an operating system which is present on more than a billion devices, and work on code that goes into spacecraft, would you believe it?

Believe it! I am that very 16 year-old writing this blog post three months after visiting the Googleplex in California (a long-time dream) as one of the 20 grand prize winners of Google Code-in 2013 (GCI). Check me out on a Segway! I’m the one on the right.
I first read about GCI online, and I immediately decided to participate. I felt that it was the perfect opportunity for me to not only get involved in an open source project but also get to know new people. I chose RTEMS because I liked their hello world task — it involved setting up a development environment for RTEMS, compiling a test program, and running it in a simulator.

So what is involved when completing tasks for GCI? It isn’t just about writing code, but also really understanding the code and contributing back to it. While working with an open source organization, you have to ensure that the code quality meets the project’s guidelines.  The code must be as accurate and efficient as possible — no quick hacks here.

As an open source contributor, I worked with version control systems (they’re awesome, really), mailing lists (old school, but still effective) and code review systems. I then got feedback from my mentors, applied it, rinsed and repeated. The exciting part wasn’t just the coding process, but everything associated with working on such a project. I wrote the code, wrote tests for the code, read and closed bug reports, collaborated with other people, etc. It’s much more in depth than what I would experience with a personal project and I learned a ton!

As a high school student you may have worked on a personal project in your spare time, or maybe you even know a few coding languages. But I believe working with open source projects and participating in GCI gives you much more. I now know that when I get a job one day, I won’t just have to write code, I’ll also have to get it reviewed, and review other people’s code. This is not something you learn by working on personal projects, but by working collaboratively — something I practiced and refined by participating in GCI. In addition, the mentors assigned to help students were very supportive would help us students with everything that we needed which was really encouraging.
I really enjoyed participating in the contest. Even though I had worked on open source software before, my Google Code-in experience was completely different from anything I’d ever done. Flying halfway across the world and getting to meet the people with whom I had worked was something I didn’t imagine would ever happen. Every 13-17 year old pre-university student has the opportunity to participate in GCI, you just need to take that first step. Then you too can be a part of something that could change your life — I know it changed mine.

By Chirayu Desai, Google Code-in Grand Prize Winner, 2013

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

Google Summer of Code new organizations - Part Four

Fri, 07/25/2014 - 20:00
For the 4th post in our Google Summer of Code series highlighting the new open source organizations participating in this year’s program, we welcome administrators from jMonkeyEngine and BuildmLearn to describe their students’ projects.
jMonkeyEngine (JME3) is a modern 3D engine written entirely in Java. The full SDK comes bundled with industry-standard editing tools and an ever-growing library of plugins contributed by the community. The engine can publish to all PC platforms including Android and iOS.

This is our first year participating in Google Summer of Code (GSoC) and we are very excited about it. All our mentors are jME3 veterans, two of whom are from the core team and one is a long time trusted contributor. As for our students, they never cease to impress. Below are descriptions of the projects they are working on this summer.

Smooth Voxel Terrains, by John
jMonkeyEngine has become very popular among voxel game creators. John is exploring techniques such as dual marching cubes which might very well be the precursor to a next-gen Minecraft. We hope his work can serve as a starting point for similarly ambitious developers.

Cinematic Editor, by Mayank
We have an SDK with a lot of potential, but still need some flagship plugins to show developers what it's really capable of. Mayank has taken on the task of creating a comprehensive cinematic editor which will enable game developers to create cutscenes in a snap, all within a comfortable GUI.

Recast Navigation Integration, by Tihomir
Game AI is an incredibly difficult thing to get right for the masses, but luckily we have access to the Recast Navigation AI. Tihomir is creating Recast Navigation bindings and adjusting them to jME3 — a task which is easier said than done (jME3 is Java and Recast is C++). We're confident he is up to the challenge!

This year we also made our first attempt at a community-sponsored summer of code, for which we secured another four incredibly promising students. Albeit at a more relaxed schedule, they will follow along the GSoC schedule and take advantage of our support network just the same. If all goes well, we will have seven shiny new projects once the summer cools off.

By Erlend Sogge Heggen, Organization Administrator for jMonkeyEngine
----------------------

BuildmLearn is a group of volunteers who collaborate to promote mobile learning (m-Learning) with the specific aim of creating open source tools and enablers for teachers and students. The group is involved in developing m-Learning solutions, tool-kits and utilities for teachers, parents and students.

Our current projects include the BuildmLearn Toolkit which is an easy-to-use program that helps users make mobile apps without any knowledge of application development. The toolkit empowers users to create mobile applications with various functionality and custom content. Targeted at teachers, this program helps them make learning fun and engaging through mobile apps. Besides the toolkit, we have mobile application projects focussing on education.

What our students are working on?

This is BuildmLearn's first year in Google Summer of Code and we received a large number of proposals (over 250!) from students all over the world. Three of the best proposals were chosen based on a careful selection process.

- Martin from Czech Republic is working on porting the BuildmLearn Toolkit to Linux, OS/2 and Mac OS X. He has also proposed to work on several enhancements to the toolkit and stabilize the code base.

- Kelvin from Malaysia is working on an educational mobile game called “Tell the time” which teaches children about the concepts of time and date in an interesting manner. Targeted at children 4 to 8 years of age, this mobile game will use an interactive clock and calendar elements to engage the kids.

- Abhishekh from India is working on an interesting mobile application called “Learn from Map” which is focused on teaching geography. Targeted at kids studying in primary schools, this application would use interactive map elements to teach geography and related topics in an informal environment.

BuildmLearn is very excited about being a part of this amazing program and will be happy to showcase the work done by the students as the program progresses.

By Pankaj Nathani, BuildmLearn Organization Administrator


Categories: Open Source

GSoC students create a Google Compute Engine interface to CloudStack

Wed, 07/23/2014 - 19:46
Today on the Open Source blog we have guest writer Sebastien Goasguen, an avid open source contributor and member of the Apache Software Foundation. Below, Sebastien highlights the significant contributions that two Google Summer of Code students have made to Apache CloudStack.

In December 2013, Google announced the General Availability (GA) of the public cloud, Google Compute Engine (GCE).  Apache CloudStack now has a brand new GCE compatible interface (Gstack) which allows users to take advantage of the GCE clients (i.e gcloud and gcutil) to access their CloudStack cloud. This interface was made possible through the Google Summer of Code (GSoC) program.

In the summer of 2013, Ian Duffy, a student from Dublin City University, participated in GSoC through the Apache Software Foundation and worked on a LDAP plugin to CloudStack. He did such a great job that he finished early and was made an Apache CloudStack committer. Since he finished his primary GSoC project so early, I encouraged him to take on another! He brought in a friend for the ride — Darren Brogan, another student at Dublin City University. Together they worked on the GCE interface to CloudStack and even learned Python in doing so.

Both Ian and Darren remained engaged with the CloudStack community and as their third year project in University, they successfully developed an Amazon EC2 interface to CloudStack. Since he enjoyed his experience so much, Darren also applied to the GSoC 2014 program and proposed to revisit Gstack, improve it, extend the unit tests, and make it compatible with the GCE v1 API. He is making excellent progress so far and we are all excited to see the results.

Technically, Gstack is a Python Flask application that provides a REST API compatible with the GCE API and forwards the requests to the corresponding CloudStack API. The source is available on GitHub and the binary is downloadable via PyPi.

Installation and Configuration of Gstack

Are you interested in using Gstack? Check out the full documentation. To get a taste for things, you can grab the binary package from Pypi using pip in one single command.

        pip install gstack

Or if you plan to explore the source and work on it, you can clone the repository and install it by hand. Pull requests are of course welcome.

       git clone https://github.com/NOPping/gstack.git
   â€¨sudo python./setup.py install

Both of these installation methods will install a gstack and a gstack-configure binary in your path. Before running Gstack you must configure it. To do so run:

   gstack-configure

And enter your configuration information when prompted. You will need to specify the host and port where you want gstack to run on, as well as the CloudStack endpoint that you want gstack to forward the requests to. In the example below we use the exoscale cloud:

   $ gstack-configure

   gstack bind address [0.0.0.0]: localhost

   gstack bind port [5000]:
   â€¨Cloudstack host [localhost]: api.exoscale.ch
   â€¨Cloudstack port [8080]: 443
   â€¨Cloudstack protocol [http]: https

   Cloudstack path [/client/api]: /compute

The information will be stored in a configuration file available at ~/.gstack/gstack.conf:

   $ cat ~/.gstack/gstack.conf 

   PATH = 'compute/v1/projects/'

   GSTACK_BIND_ADDRESS = 'localhost'
   â€¨GSTACK_PORT = '5000'
   â€¨CLOUDSTACK_HOST = 'api.exoscale.ch'
   â€¨CLOUDSTACK_PORT = '443'
   â€¨CLOUDSTACK_PROTOCOL = 'https'
 
   CLOUDSTACK_PATH = '/compute'

You are now ready to start Gstack in the foreground with:

   gstack

That's all there is to running Gstack. You can then use gcutil to send requests to gstack which will forward them to a CloudStack endpoint.  Although it is still a work in progress, it is now compatible with GCE GA v1.0 API. It provides a solid base to start working on hybrid solutions between GCE public cloud and a CloudStack based private cloud.

GSoC has been a terrific opportunity for all of us at Apache. Darren and Ian both learned how to work with an open source community and ultimately became an integral part of it. They learned tools like JIRA, git, and Review Board and gained confidence working publicly on mailing lists. Their work on Gstack and EC2stack is certainly of high value to CloudStack and could eventually become the base for interesting products that will use hybrid clouds.

By Sebastien Goasguen, Senior Open Source Architect, Citrix and Apache Software Foundation member

Categories: Open Source