Posts from October 2014

Google Summer of Code wrapup: The Concord Consortium

Friday, October 31, 2014

Today’s Google Summer of Code wrap-up comes from Cynthia McIntyre at the Concord Consortium, a provider of online educational activities.

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

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

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

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

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

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

By Cynthia McIntyre, The Concord Consortium Organization Administrator

Google Summer of Code wrapup: OpenMRS

Friday, October 24, 2014

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

OpenMRS logo

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

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

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

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

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

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

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

Group photo climbing a mountain
Myself (crouching lower left) with my mentor Cosmin Ioan (standing left), and other colleagues climbing Sapitwa Mountain in Malawi.

Being involved with OpenMRS and Google Summer of Code 2014 was incredibly exciting and I feel fortunate that there are opportunities to continue to stay involved with the community. One important lesson was that open source projects have all kinds of ways to help. The OpenMRS tagline for GSoC is “Write code. Save Lives.” From my experience as an implementer and developer of OpenMRS, that motto rings completely true. It has been inspiring to see code pieced together by a diverse community of contributors from all over the planet to create a system that is literally saving lives.

You need look no further than the projects worked on during GSoC 2014 to get an idea of all the important work going on at OpenMRS:

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

By Stephen Po-Chedley, OpenMRS Student, 2014

Mercurial Makers Meet in Munich

Tuesday, October 21, 2014

Back in August, the Google Open Source Programs Office sponsored a meetup for contributors to Mercurial, a distributed version control system. Learn more about their two day hackfest below.

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

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

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

By Augie Fackler and Lennard de Rijk, Google Engineering

My summer of code and galaxies

Monday, October 13, 2014

Today we have a post from Doris Lee, a 2014 Google Summer of Code student for the Laboratory for Cosmological Data Mining. Doris talks about her fascinating summer project exploring the galaxy. 
I first learned about Google Summer of Code (GSoC) through an informational session at my school, UC Berkeley. I was interested because of the program’s project-based nature which sounded like a lot of fun. I started by listing my favorite projects from each organization’s ideas page, and ended up getting so engrossed in the project and the code problem associated with the application that I submitted just one to the Laboratory of Cosmological Data Mining. The Laboratory was founded in 2002 at the University of Illinois by Professor Robert J. Brunner to develop and apply computational technologies to extract cosmological information from large astrophysical data sets being generated within the community.
During GSoC’s community bonding period, my mentor and I discovered my initial project proposal had been completed by another contributor. Together, we came up with an alternative project involving creating image mosaics of galaxies. Although I wasn’t as familiar with the subject matter of this new project, I was still very excited and couldn’t wait to get started!

I soon realized that not knowing much about the topic was actually a good thing. I was always learning something new throughout the summer which kept it both interesting and challenging. It was also the first time that I undertook such a large individual project. 
But what I enjoyed the most about GSoC was the freedom to define the direction of my own work. The initial goal of the project was to make mosaics for large, bright galaxies from the Sloan Digital Sky Survey. However, in our first attempts some of the pictures that we made of the sky contained no galaxy at all! We discovered this was due to inherent inaccuracies in the coordinate values because the catalog was quite old. The course of my GSoC project was turned into developing an algorithm that uses newer imaging data to fix these inaccuracies and then mosaic them into pretty images. In the end, I designed a pipeline that enables users to automatically generate multi-band color images on any catalog of their choice. In addition, this pipeline is designed so it could be used on any set of data taken in the future. 

Overall, my mentor was very helpful with guiding me through my project and addressing my questions. I feel lucky to have worked on a project that I was so excited about and something I truly wanted to see working. 

Since my project made heavy use of open source software developed by other programmers and members of the scientific community, I learned a lot about how open source software projects are managed, documented, distributed and maintained. This was especially useful when I was developing the user interface and documentation to present my final GSoC project and making the code open source. In addition, I learned that in the free and open-source software community, effective documentation and readable code can be just as important as getting the code to work. The value of publicly-available code derives from how other users can benefit from it. You can view the work here on GitHub

There are so many organizations who participate in GSoC, it would be hard to find one that isn’t up your alley. I would encourage any interested student to look at the GSoC organizations and ideas lists when they are posted in February. GSoC enables students of all skill sets and levels to learn and contribute to the open source community and to develop skills in real-world software coding and design.  And not to mention—it’s a great way to spend your summer! 

By Doris Lee, 2014 Google Summer of Code student

Google Summer of Code meetup in New Delhi

Wednesday, October 8, 2014

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

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

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

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

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

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

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

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

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

Monday, October 6, 2014

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

A call to all students: if you have ever thought it would be cool to write code and see it make a difference in the world, then please keep reading. We are excited to announce the next editions of two programs designed to introduce students to open source software development, Google Summer of Code for university students and Google Code-in for 13-17 year old students.
Google Code-in - Program starts for students December 1, 2014

For the fifth consecutive year, we are happy to announce Google Code-in, an international, online contest designed to introduce 13-17 year old pre-university students to the world of open source development. Open source projects are about more than just coding, and this contest highlights a variety of ways to contribute to open source projects. 

When you read the term open source, do you think:
  • What is open source?
  • What types of work do open source projects do?
  • I’ve only taken one computer science class, can I contribute to an open source project?
  • I’m not really into coding, how else can I contribute to open source?
  • I’ve never participated in open source or an online contest before, can someone help guide me?
  • Open source sounds fun, how can I get started?
If you’ve wondered about any of these questions and are a pre-university student (age 13-17) then we hope you will join in the fun and excitement of the Google Code-in contest starting Monday, December 1st.

For seven weeks from early December to mid January, the Google Code-in contest will have students working with up to 12 selected open source projects on a variety of tasks.  The different categories of tasks that students will be able to work on include:
  1. Code: writing or refactoring 
  2. Documentation/Training: creating/editing documents and helping others learn more
  3. Outreach/research: community management, outreach/marketing, or studying problems and recommending solutions
  4. Quality Assurance: testing and ensuring code is of high quality
  5. User Interface: user experience research or user interface design and interaction
Over the past four years, we have had 1,575 students from 78 countries complete tasks in the contest. This year we hope to surpass 2,000 students.

Visit the Frequently Asked Questions page on the Google Code-in site for more details on how to sign up and participate. We will announce the open source organizations that will be participating in the contest on November 12. The Google Code-in contest starts for students on December 1. We look forward to welcoming hundreds of students from around the world into the open source family again this year.


Google Summer of Code 

Back in 2005, Google made a commitment to support open source software contributors. In addition to our other programs to build and support the contributor base, we thought a great way to get more people involved was to introduce the wide world of open source to college students. 

Google Summer of Code is an innovative program dedicated to introducing students from universities around the world to open source software development. The program offers student developers stipends to write code for various open source projects mentored by a wide variety of carefully selected open source projects. Our goal is to help these students pursue academic challenges over the summer break while they create and release open source code for the benefit of all. Over the past 10 years, over 8,300 mentors and 8,500 student developers in 101 countries have produced a stunning 55 million lines of code. Our goal is to help these students pursue academic challenges over the summer break while they create and release open source code for the benefit of all.

Spread the word to your friends! If you know of a university student that would be interested in working on open source projects this summer, or if you know of an organization that might want to mentor students to work on their open source projects, please direct them to our Google Summer of Code 2015 website where they can find our timeline along with the FAQs. Stay tuned for more details coming soon!

By Stephanie Taylor and Carol Smith, Open Source Programs

Google Summer of Code wrap-up: Worldforge

Friday, October 3, 2014

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

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

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

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

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

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

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

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

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

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

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

By Erik Ogenvik, Organization Administrator, Worldforge