Skip to content

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

Methods & Tools

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

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

The Sahana Software Foundation annual conference

6 hours 54 min ago
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
   â€¨sudo python./ 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:


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 []: localhost

   gstack bind port [5000]:
   â€¨Cloudstack host [localhost]:
   â€¨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_PORT = '443'
   CLOUDSTACK_PATH = '/compute'

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


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

Flowing into your games: LiquidFun 1.1

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

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

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

LiquidFun Games

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

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

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

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

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

By Jason Sanmiya, Fun Propulsion Labs at Google*

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

Categories: Open Source

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

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

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

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

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

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

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

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

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

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

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

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

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

By Julio Merino, Google Site Reliability Engineering

Categories: Open Source

Google Summer of Code new organizations - Part three

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

Features of typical MOTECH-based applications include:

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

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

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

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

By Lauren Lavoie, Organization Administrator for MOTECH

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

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

Our projects for Google Summer of Code 2014 include:

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

By Roman Ivanov, Organization Administrator for Checkstyle

Categories: Open Source

KDE shines with help from Google Code-in students

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

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

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

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

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

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

By Dennis NienhĂĽser, KDE Mentor

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

ZuriHac 2014: Haskell hackathon in Zurich

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

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

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

By Johan Tibell, Software Engineer, and ZuriHac organizer

Categories: Open Source

Google Summer of Code new organizations - Part two

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

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

By Dominik SchĂĽrmann, OpenKeychain Organization Administrator

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

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

By Steve McIntyre, Linaro Organization Administrator

Categories: Open Source

Cayley: graphs in Go

Wed, 06/25/2014 - 19:45

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

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

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

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

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

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

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

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

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

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

By Barak Michener, Software Engineer, Knowledge NYC

Categories: Open Source

Google Summer of Code 2014 New Organizations - Part One

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

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

By Carlos Puchol and Bogdan Mitrea, Amahi Organization Administrators

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

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

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

Google Summer of Code 2014 midterms are here!

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

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

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

By Carol Smith, Open Source Team
Categories: Open Source

Google Summer of Code 2014 by the numbers: Part two

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

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

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

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

By Cat Allman, Open Source Programs

Categories: Open Source

FlatBuffers: a memory efficient serialization library

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

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