opensource.google.com

Menu

Who’s New in Google Summer of Code: Part 9

Friday, July 29, 2011


Every Friday all summer long we have spotlighted three or four new organizations participating in Google Summer of Code. This time organization administrators from Evergreen, Astrometry.net and Xapian give more insight into their projects and discuss some of the tasks their students are working on this summer.
The Evergreen library system provides a public catalog interface for libraries and manages library operations such as circulation (checkouts and checkins), acquisition of library materials, and sharing resources among groups of libraries. In 2004, the Georgia Public Library Service chose to build an open source solution to satisfy their need for a scalable catalog shared by approximately 285 public libraries in the state of Georgia. The first version of Evergreen was released in 2006: today almost 1000 libraries across the United States, Canada and many other countries run Evergreen.

We were delighted to have two Google Summer of Code students join us in this, our first year in the Google Summer of Code program, as their projects are addressing two of the major pain points with Evergreen:
• A kinder, gentler configuration user interface. Evergreen's flexibility as a system that can be used by a consortium of hundreds of libraries or just a single library by itself has come at a price, as hundreds of configuration options were added over time, but the usability for Evergreen administrators has not kept pace. Joseph Lewis has made use of online usability testing in his quest to improve the the experience of Evergreen administrators.
• Improved packaging and deployment. Evergreen is currently distributed only as a tarball, requiring administrators to go through the standard configure / make / make install cycle. After eliminating some long-standing issues with our build infrastructure, Ben Webb has automated the creation of Arch, Debian, Fedora, and Ubuntu packages, and is working towards automating the creation of LiveCDs and virtual machines to help with advocacy and testing.

By Dan Scott, Organization Co-Administrator for Evergreen

----------

Astrometry.net is a computer vision system that takes as input arbitrary images—snapshot, amateur astronomer, or professional—of the night sky, and returns precise meta-data about where those images are located in the sky, and the identities of the astronomical objects visible in those images. If you have a photograph of the night sky, Astrometry.net can identify the constellations, stars and galaxies in the picture. This is not just a cool trick, it makes citizen scientist and badly calibrated astronomical imaging useful for science. That means amateur astronomical images taken in backyards and historical images gathering dust in library archives can be used to make novel astronomical discoveries.

Our Google Summer of Code students, Kevin Chen and Carlos Lalimarmo, are building an image processing and sharing web site where astronomers can process images, share data, use our code, and learn from one another. This site is powered by our core code which can be downloaded and run anywhere, but is accessible to casual users and those who don't want to install the core code. Carlos and Kevin know a lot more about coding for the web than we do at Astrometry.net headquarters (we are astronomers, not coders), so they are making our user experience and our system far better than we ever could have without them. They have re-built our web presence from the ground up and created an integrated API for interfacing with other services, like flickr, where we run on user-submitted images. With Carlos and Kevin's help, Astrometry.net is going from a set of static web pages to a user-generated, interactive community site that is inviting and easy to use. This sets us up for some qualitatively new kinds of citizen science.

By David W. Hogg (NYU) & Dustin Lang (Princeton), Astrometry.net Organization Administrators

----------

Xapian is a Search Engine Library which aims to be fast, scalable, and flexible. It's used by many organizations around the world, including Debian, Ubuntu, One Laptop per Child, and the Gmane mailing list archive. It supports probabilistic ranking and a rich set of boolean query operators. The core library is written in C++, with bindings to allow use from C#, Java, Perl, PHP, Python, Ruby, and Tcl.

This is our first year as a mentoring org in Google Summer of Code, but we've been involved with Xapian-related projects for other orgs in previous years, and Xapian has been under development since 1999. We're mentoring four students this year:
• Nikita Smetanin from Russia is working on an assortment of enhancements to Xapian's existing spelling correction support. This involves such enhancements as allowing multiple possible corrections to be suggested, making use of phonetic algorithms, and handling typos which run words together or move a character from one word to the next. He's also made some substantial performance improvements.
• Xiaona Han is from China, and has been adding support for using Xapian from the programming language Lua, which wasn't previously possible. An early portion of this work has already been merged, and appeared in last month's Xapian 1.2.6 release to make it easy for interested users to try out.
• Dai Youli from China is working on segmenting Chinese text to allow it to be more usefully indexed and searched. Chinese text is usually written without spaces or other indications of where the word breaks are, so Youli has been working on implementing an algorithm to determine where the word breaks are. This is a challenging problem, as the algorithm needs to be reliable, fast enough to process large volumes of text, and robust in the presence of words it doesn't know about.
• Parth Gupta is from India, and his project is adding a "Learning to Rank" framework to Xapian. Learning to Rank is one of the hot topics in Information Retrieval research at present - it's the application of machine learning to tuning the relative weighting of the different features used to determine the order to present results to the end user. Parth recently completed a Master's thesis on Learning to Rank, which has given him a good theoretical background for this project.

By Olly Betts, Xapian Organization Administrator

We had 48 new organizations participating this year in the Google Summer of Code. For a complete list of the 175 organizations participating please visit our program site.

By Stephanie Taylor, Open Source Programs

LevelDB: A Fast Persistent Key-Value Store

Wednesday, July 27, 2011

LevelDB is a fast key-value storage engine written at Google that provides an ordered mapping from string keys to string values. We are pleased to announce that we are open sourcing LevelDB under a BSD-style license.

LevelDB is a C++ library that can be used in many contexts. For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB. Google's Bigtable manages millions of tablets where the contents of a particular tablet are represented by a precursor to LevelDB. The Riak distributed database has added support for using LevelDB for its per-node storage.

We structured LevelDB to have very few dependencies and it can be easily ported to new systems; it has already been ported to a variety of Unix based systems, Mac OS X, Windows, and Android.

LevelDB has good performance across a wide variety of workloads; we have put together a benchmark comparing its performance to SQLite and Kyoto Cabinet. The Riak team has compared LevelDB’s performance to InnoDB. A significant difference from similar systems like SQLite and Kyoto Cabinet is that LevelDB is optimized for batch updates that modify many keys scattered across a large key space. This is an important requirement for efficiently updating an inverted index that does not fit in memory.

LevelDB is available on Google Code, we hope you’ll find it useful for your projects.

By Jeff Dean and Sanjay Ghemawat; Google Fellows

Announcing Git Support for Google Code Project Hosting

Monday, July 25, 2011

We’re pleased to announce today that in addition to supporting the Subversion and Mercurial version control systems, Google Code Project Hosting now supports Git. Git is a popular distributed version control system (DVCS) like Mercurial, and it is used by many popular projects including the Linux kernel and Android.



Now, when you create a project or visit your existing project’s Administration > Source tab, you have the option of choosing Git as your version control system. You’ll enjoy all the same great Google Project Hosting features, like project updates, advanced issue tracking, and an easy-to-use VCS-backed wiki—only now, you can do it with Git. You can also create an instant server-side clone of any existing Git repository by clicking the “Create a clone” button on the project’s checkout page.

For more information, including an introduction to Git and tips on converting existing Subversion and Mercurial repositories, see the new Git section of our support wiki.

Under the Hood
Since our original announcement of Mercurial support, Git has grown significantly more popular and user-friendly, and on the technical side, it has added an efficient “smart” HTTP protocol that fits with Google’s HTTP-based infrastructure. (Note that this feature is only available in version 1.6.6 and later.)

Like our Mercurial implementation, our Git implementation stores object data in a custom data store built on Bigtable, which provides us with efficient, scalable source code repositories with near-instantaneous replication to multiple datacenters around the world. To fit with our existing Python-based system, our Git server implementation is powered in part by Dulwich.

By Dave Borowitz, Google Git Engineer, with thanks to Augie Fackler, Lucas Bergman, Jacob Lee, and Shawn Pearce

Who's New in Google Summer of Code: Part 8

Friday, July 22, 2011

For the 8th Friday this summer we're highlighting organizations participating in their first Google Summer of Code. The organization administrators and mentors from Catroid, Komodo OpenLab, and the International Neuroinformatics Coordinating Facility (INCF) are featured today to give more information on their projects and discuss some of the tasks their students have been working on all summer.
Catroid is an on-device Lego-style graphical programming language for Android devices. Besides empowering children to easily develop their own games and animations using only their smartphones, Catroid fosters the sharing and remixing of these games and animations under a free and open source license through Catroid’s community website.

For Google Summer of Code we have 4 students: Roman Mauhart is working on making our community website multilingual, Alex Nicoara is implementing a program which allows building stand-alone Android apps out of Catroid projects, David Reisenberger is improving the usability of the Catroid IDE for children, and Manuel Zoderer is extending Catroid to let kids control external hardware via Bluetooth through an Arduino board.

We are excited and grateful for Google’s support and believe Catroid will have significant impact by spreading programming skills and understanding of free open source software among the children of the world!

By Wolfgang Slany, Catroid Organization Administrator

----------

Komodo OpenLab is a “not-just-for-profit” organization that develops and commercializes open and inclusive technologies that facilitate the daily lives of people with disabilities. This is our first year as a mentoring organization in Google Summer of Code and we are working on two projects developed in collaboration with the Inclusive Design Research Centre. The first, Tekla, is a collection of mobile open source and open hardware applications that may be used to enable access to, and extend the functionality of, mobile devices for people with motor impairments. And the second, tagin!, is an open source location tagging engine that may be used to create indoor, location-based services and applications (think indoor GPS).

From the moment these projects were published on the Google Summer of Code website, we were overwhelmed by the amazing quality of the applications we received from students. Choosing the right students for each project has definitely been the most challenging part of the program for us and they have all been doing an excellent job. Here is a sneak peek of what they have been working on:
• Rishabh from India has been systematically coding different approaches to solve a problem that keeps preventing our target users (people with mobility impairments) from being able to access some parts of the Android operating system using the Tekla App. He will soon move into the implementation of a 3rd-party framework that any Android developer will be able to use to make their apps accessible through direct access to the Tekla Shield, an open hardware Bluetooth interface that provides remote control of Android devices by means of the adapted interfaces people with mobility impairments are already familiar with.
• Sara from the USA has done outstanding work coding a 3D tag cloud for tagin! which will act as a demo app showcasing the new tagin! SDK and its ability to retrieve location-based information indoors, in real time, and completely offline. Sara has not only created top quality code, but has also provided us with very comprehensive and detailed documentation, which will make it extremely easy for us to include her work into the first release of the engine scheduled for mid-September.
• Primal from India, a rising star in stackoverflow and hacker extraordinaire, has been almost single-handedly re-writing the entire tagin! engine and SDK complete with benchmarking tools and API. His work will be instrumental in allowing Android developers (and later iPhone developers) to create location-based applications that work indoors.

So, as you can probably tell, we could not be more pleased with the work of these fine students. We hope to contribute to the success of the Google Summer of Code and we can’t wait to continue mentoring these and other top-notch students for many years to come!

By Mauricio Meza, Komodo OpenLab Organization Administrator

----------
The International Neuroinformatics Coordinating Facility (INCF) was established through the Global Science Forum of the OECD to help meet the challenge facing the neuroscience research community: how to collect, integrate and model the rapidly growing collections of diverse types of data from different experiments in order to produce new insights about brain function and disease. INCF coordinates the development of an international collaborative cyberinfrastructure for neuroinformatics, which will facilitate the acquisition and annotation of diverse datasets to achieve multiscale and multiomic neuroscience data integration – from genes to behavior. We bring together the world’s leading scientists to solve challenges in standardization and interoperability, within the framework of our Scientific Programs.

We are a first-year participant in the Google Summer of Code, but the researchers in our scientific community nonetheless managed to generate a large number of interesting and challenging project proposals. Our two Google Summer of Code students are working on tools that will benefit the scientific community and help make new neuroscience research and analysis possible. One of our students is developing a web-based data analysis tool for multi-channel time series data, and the other is working on a build platform and continuous integration infrastructure to improve the accessibility and quality of neuroinformatics code.

By Malin Sandström, PhD, INCF Scientific Communication and Public Relations Officer
These are just a few of the 50 new organizations participating in Google Summer of Code this year. For a complete list of the 175 organizations participating in the Google Summer of Code visit our program site. Please check back next Friday when we feature still more new organizations.

By Stephanie Taylor, Open Source Programs

More Numerous Numbers for Google Summer of Code

Wednesday, July 20, 2011

As we go into the final half of this year’s Google Summer of Code we wanted to share a few more interesting statistics from this year’s program. Our previous statistics post focused on what countries the 2011 students were from: now we’d like to share more information about the students, organizations and mentors.

Returning Students
  • We have 1115 students participating this year, 202 of which also participated last year in the program, - that’s 18.1%!
  • There are 35 students who have participated in 2009, 2010 and are currently working on the 2011 program, so 3.1% are 3 year students!
Open source organizations
Mentors
  • We have 997 mentors assigned to a particular student and another 1,099 that are co-mentoring their students with others in their organization.
  • This year’s mentors are from 55 countries. This is our first year with mentors from Bangladesh, Belarus, Bosnia-Herzegovina, Kingdom of Cambodia, Egypt, Iceland and Indonesia.
Every Friday this summer we have highlighted some of the new organizations participating in Google Summer of Code: check out our most recent post. For more information on our Google Summer of Code program please visit our program site and timeline.

By Stephanie Taylor, Open Source Programs
.