opensource.google.com

Menu

Google Code-in: sixteen and counting

Wednesday, July 30, 2014

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.

Google Summer of Code new organizations - Part Four

Friday, July 25, 2014

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


GSoC students create a Google Compute Engine interface to CloudStack

Wednesday, July 23, 2014

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

.