Skip to content

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

Methods & Tools

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

Google Open Source Blog
Syndicate content
News about Google's Open Source projects and programs.
Updated: 1 hour 16 min ago

Mercurial Makers Meet in Munich

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

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

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

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

By Augie Fackler and Lennard de Rijk, Google Engineering

Categories: Open Source

My summer of code and galaxies

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

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

Google Summer of Code meetup in New Delhi

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

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

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

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

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

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

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

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

Categories: Open Source

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

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

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

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

Google Summer of Code wrap-up: Worldforge

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

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

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

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

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

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

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

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

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

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

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

By Erik Ogenvik, Organization Administrator, Worldforge

Categories: Open Source

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

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

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

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

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

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

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

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

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

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

Google Summer of Code 2014 by the numbers: Part three

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

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

By Mary Radomile, Open Source Programs


Categories: Open Source

Google Summer of Code wrap-up: Twitter

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

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

Security for the people

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

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

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

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

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

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







Categories: Open Source

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

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

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

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

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

 -Posted by JJ Geewax, Software Engineer

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

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

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

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

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

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

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

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

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

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

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

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

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

By Kay H. Brodersen, Google

Categories: Open Source

Glide 3.0: a media management library for Android

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

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

Software Freedom Conservancy and Google Summer of Code

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

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

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

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

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

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

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

By Bradley M. Kuhn, President, Software Freedom Conservancy

Categories: Open Source

New Google Summer of Code Organizations - Final post

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

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

By Manuel Corpas, Organization Administrator for BioJS

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

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

By Keno Fischer, Organization Administrator for Julia

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

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

By Carlos Fernandez, Organization Administrator for GNU Octave

Categories: Open Source

Tips and tricks from a Google Summer of Code veteran

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

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

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

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

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

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

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

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

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



Categories: Open Source

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

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

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

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

Now that this year’s program has concluded, students are busy preparing their code samples for all eyes to see. Soon you will be able to go to the program site where organizations will have links to the students’ code repositories.

Thank you to all of the students, mentors and organization administrators that have helped to make this 10th year of the Google Summer of Code a great success!

By Carol Smith, Open Source Programs

* This number could change slightly in the next few weeks



Categories: Open Source

The Sahana Software Foundation annual conference

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

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

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

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

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

By Michael Howden, CEO, Sahana Software Foundation



Categories: Open Source

Melange: the open source software powering Google Summer of Code

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

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

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

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

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

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

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

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

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

Google Summer of Code new organizations - Part Seven

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

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

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

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

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

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

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

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

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

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

Categories: Open Source