Posts from September 2010

A galaxy of your own

Thursday, September 30, 2010

Last December, we wrote about our immersive Google Earth environment, Liquid Galaxy: eight 55-inch LCD screens showing Google Earth in a unified, surround view.

Liquid Galaxy at TED 2010

Since then, we’ve taken it to a lot of conferences, built Liquid Galaxies in Google offices all over the world and even put one in the Tech Museum in San Jose, Calif. We love watching people try it for the first time. Almost everybody wants to see their own house first; but then they start to explore, and we can never guess where they’ll choose to go next.

But we just couldn’t bring it to enough people—we could only go to so many conferences, and only friends and family of Googlers could try out the Liquid Galaxies in our offices.

So we decided to put the features that make Liquid Galaxy possible into the latest release of Google Earth, and open-source all the supporting work, from our Ubuntu sysadmin scripts to the mechanical design of our custom frames.

Not everyone will have the know-how to network computers together and get view synchronization working, but we tried to make it as easy as possible. If you think you’re up to the challenge, check out our Quick Start page. You can also contact our supplier End Point if you’d rather buy than build (or just need some professional assistance). Here’s a video they made that shows Liquid Galaxy in action:

Liquid Galaxies don’t have to be made from eight big LCD screens; the view sync features scale just fine from two to dozens of screens. And they can run more than just Google Earth; we’ve had success playing video in sync in our Liquid Galaxies, and even modified a Free Software video game for after-hours fun. We’ve daydreamed about making panoramic movies, head tracking or even real-time video from distant panoramic cameras. We’re excited to see what you come up with! Show off your creations in the liquid-galaxy discussion group.

Check out the Liquid Galaxy project at

By Jason Holt, Software Engineer, Liquid Galaxy 20% Team

Geek Time with Linus Torvalds

Monday, September 27, 2010

Linus Torvalds and Jeremy Allision were both in Sao Paulo, Brazil a few weeks ago for LinuxCon, where they were both presenters. Later in the week when they were waiting to go on a safari at the Sao Paulo Zoo, Jeremy seized the opportunity to go on a trip down memory lane when he asked Linus about the Sinclair QL they each owned while growing up. Because it was so hard to get software for it in Finland, Linus wrote his own assembler and editor (in addition to Pac-Man graphics libraries). They continue to reminisce about more archaic hardware like floppy drives, microdrives, 512 K RAM expansion packs and the Acorn Archimedes.

It’s a geek fest for fans of British computers from the ‘80s! Who knew that the Sinclair QL would play a role in the development of the modern free operating system?

By Ellen Ko, Open Source Team

GenMAPP’s Summer Harvest

Friday, September 24, 2010

The GenMAPP organization’s efforts focus on building software tools to analyze and visualize biological data. We joined forces with Cytoscape, WikiPathways, PathVisio and Reactome for this year's Google Summer of Code to offer students a unique opportunity to work at the intersection of biology and computing.

This was our 4th year participating in the program and we reached some new milestones. We mentored 10 excellent students (more than any prior year) with a 100% success rate. We integrated and released more code from this summer’s harvest than in prior years. And most importantly, we continued to expand our development community, as many of this year’s students are enthusiastic about continuing to work with us beyond the summer.

Our projects this year covered a broad range of topics:

Alternative Splicing Analysis Plugin for Cytoscape, by Anurag Sharma
CyAnnotator and CyAnimator Plugins, by Avinash Thummala
User Interface Development in PathVisio, by Bing Liu
Tools for Exploring Pathway Relations in WikiPathways, by Chetan Bansal
Expression Data Reader plugin for Cytoscape, by Dazhi Jiao
Improving Cytoscape’s Labels Experience, by Gerardo Huck
KEGG Global Map Browser, by Kozo Nishida
Semantic Network Summary for Cytoscape, by Layla Oesper
Reactome-WikiPathways Converter, by Leontius Pradhana
Edge-Weighted Layout for Cytoweb, by Tomithy Too

As part of the open source experience, we invite our Google Summer of Code students to our annual Cytoscape Retreat. This is a great way to engage students in both our development and user communities. One student pointed out a truism that is rediscovered from time to time in our digital age, “face-to-face meetings turn out to be very efficient.” Here are some other gems of reflection and advice from our students this year:

“The most rewarding part was when I was told that I should merge my changes back from my branch into the trunk"

“It has been the chance to meet and interact with wonderful people from various parts of the world, be it virtual or physical. I had a chance to physically meet another graduate student from my university and a professor from USA due to Google Summer of Code.”

“They opened up my perspective about a lot of things — how the industry looks like, where people with similar skill domain as me put themselves in the society, how important the projects I am involved in are, and other subjects unimaginable if I were to not join Google Summer of Code.”

“Got a taste of open-source development which is just amazing and I would like to keep attached with this project even after this GSOC ends.”

“This program is a great initiative, I loved the amount of exposure the participating students get and it definitely is one of the most exciting summers someone can ever get.”

“The most rewarding part is to be able to go to the cytoscape retreat. It is absolutely helpful to the project, and helpful to get to know the mentors and others.”

“Be the best user of the software. If you are the best user, you write and participate [in] the software project spontaneously.”

“At the beginning of the summer, I really had my doubts on whether or not I had gotten in too far over my head. So I very much enjoy being able to look back at what I was able to accomplish and realize that I was able to supersede my original expectations for myself.”

“Don’t be afraid to ask questions. Your mentors are an amazing source of information, and they are really interested in helping you in any way possible.”

“Be cool.”
This post is cross posted from my Next Nucleus blog, where you can read more about our previous years with Google Summer of Code.

By Alexander Pico, Google Summer of Code Mentor for GenMAPP

Get ready to Rocksteady

Thursday, September 23, 2010

Rocksteady is an effort to use Esper Complex Event Processing (CEP) to analyze user defined metrics. You can use it to parse your data and turn it into events that Esper CEP can query so that you can respond to events in real time.

Too often, metrics and graphs are only useful as an aid in analyzing what happened after things have gone wrong. Staring at a dozen graphs on a TV wall isn't monitoring, it's a waste of time. The goal of Rocksteady is to determine the root cause of breakage based on metrics in real time. Metric analysis is only part of the whole picture though, as we also present solutions including metric convention, metric sending, load balancing, and graphing.

Rocksteady can be used in a number of different environments, but here on the AdMob operations team, we use it to determine the cause of events such as latency. We monitor requests per second (rps) and a slew of other metrics such as CPU and network traffic, then put them together in a prediction algorithm such as Holt Winters to predict a confidence band for the next arriving value. We then record an event whenever metrics are outside the band more than a certain number of times in a row. This is what we call auto threshold establishment. Now, if we have a SLA we really care about, such as response time, we can set a hard threshold, say 250ms. When response time slows beyond 250ms, Rocksteady tells us whether rps, CPU or network crossed their respective thresholds. Now instead of just knowing there is a latency problem, we can also quickly pinpoint the potential cause.

Rocksteady was briefly mentioned in Ignite talks at the 2010 Velocity Conference and Devops Day and now it’s finally ready for open source. Let us know if you have any questions, and enjoy!

By Mark Lin, Operations Engineering Team

Changing the Look of the Web with Stylebot

Tuesday, September 21, 2010

Stylebot editing the Open Source Blog in advanced mode
Stylebot editing the Open Source Blog in basic mode

Cascading Style Sheets (CSS) are a part of every web designer’s vocabulary when styling websites, and since its inception, the C (Cascading) in CSS was intended as a way to empower users to have the final say over how they perceive content on the web. But because creating user stylesheets generally requires programming, end users have not always been able to easily leverage this functionality. Stylebot, a new Google Chrome extension created as a Google Summer of Code project, hopes to finally unlock the power of the C in CSS by giving the end user final control on how web content is displayed.

At Google, the Accessibility Engineering team is very excited about the potential of extensions like Stylebot to improve the accessibility of the web, making it possible for users to customize the web to fit their needs. For example, a Stylebot user with special reading needs might change a webpage by removing images, picking new text and background colors, and even moving blocks of text around. And Stylebot saves the custom style they create, so the next time they access that page the changes will still be there. Even better, they can sync their saved styles across computers so that webpage will always appear with their preferred style.

We invited Ankit Ahuja, the Google Summer of Code student who worked on Stylebot, to write about his experiences creating the extension. While there’s still a lot of work to be done to make Chromium more accessible, extensions like Stylebot are a great step - giving users themselves the power to shape the way they interact with the web.
My name is Ankit Ahuja, and I successfully completed my Google Summer of Code project this year for Chromium. I was mentored by Rachel Shearer. My project is Stylebot, a Chromium extension that enables users to easily customize the web’s appearance. Ultimately, Stylebot aims to make the web more accessible and adaptable.

StyleBot screencast demo

One of the main objectives of the project was to allow users unfamiliar with CSS to be able to use this extension with ease. In the Basic mode, users launch Stylebot on a page, select an element and style it. Changes made by the users are automatically saved, so the next time they visit the page, their custom styles are already applied. This mode provides an easy-to-use GUI for the commonly used CSS properties. For the more advanced users, there is a separate mode in which they can write their own CSS.

A nontrivial problem was allowing the users to preview the changes instantly. So although a stylesheet is used to apply the custom CSS when the page is initially loaded, inline CSS is deployed while the user is in editing mode for a smooth, dynamic editing experience. Another important issue was determining the best way to position the Stylebot panel on the page. During testing, I found drag-and-drop to be slow. Instead, allowing the panel to be moved to a fixed left or right position felt the most user friendly. CSS parsing was required and luckily there already existed a CSS parser in JavaScript.

On my part, I’ve tried to make sure the Stylebot code is useful for other developers. I’ve kept the implementation of features like extension data synchronization, selection of elements, CSS selector generation, etc. separate, so that anyone can reuse the code easily. I’ve also used code from other open source projects. For example, the user interface is the CSS version of Cappuccino’s Aristo and the selection of elements is similar to Firebug’s implementation.

Take a look at a few examples we created using Stylebot. You can install the extension from the Google Chrome extensions gallery. We’re already receiving some positive and critical feedback, which is exciting!

I had an amazing experience participating in Google Summer of Code this year. I had a great time interacting with my mentor through the summer, who was very helpful and motivating. Finally, I would like to thank Google for sponsoring and making this project possible.
By Ankit Ahuja, 2010 Google Summer of Code Student and Rachel Shearer, Google Accessibility Engineering Team

Ohio LinuxFest Wrap-up

Monday, September 20, 2010

I just got back from Ohio LinuxFest, a three-day all-volunteer conference on free and open source software held in Columbus, Ohio. A wonderful group of about 800 people, some from the Midwest, some of whom were from other parts of the country, some of whom were experienced with open source software, and some of whom were new to it, attended. I enjoyed seeing the wide variety of talk topics - from starting your own business in open source to an entire workshop devoted to diversity in open source software development. Some of the topics were even a little unexpected - there was a great talk on reaching out to new people through video games.

I spoke on the 7 Habits of Highly Ineffective Project Managers late in the day on Saturday. Much of the content for the talk was gleaned from experience at Google and managing the Google Summer of Code project. The audience had some great questions about how to effectively manage upward (to your boss), what sorts of tactics to take when you feel your managers are meddling too much in your project, and how to manage your workflow in an environment where too many tasks are high priority. I’ll be giving this talk again at, which is being held in Brisbane January 24th to 29th next year.

Interviews from GUADEC, Part 5

Friday, September 17, 2010

This week we have the last video in Jeremy Allison’s series of interviews from his trip to GUADEC, the GNOME conference. In this video, he talks to Michael Meeks, early GNOME hacker and developer. Jeremy and Michael talk about collaboration, malware, and how Michael started his involvement with GNOME. For those who are new to open source, Michael gives tips for those who want to get involved in the GNOME community, developer and non-developer alike. For non-developers, Jeremy also gives translations of geek-speak throughout.

If you missed the earlier videos, you can watch all of Jeremy’s GUADEC interviews together in a playlist. Even though this is the last in the GUADEC series, don’t worry, more interviews are coming up soon because Jeremy just returned from LinuxCon Sao Paulo, Brazil, where he was able to get some amazing interviews. Stay tuned!

By Ellen Ko, Open Source Team

FreeBSD’s Summer Highlights

Wednesday, September 15, 2010

FreeBSD is a modern open source operating system for servers, desktops, and embedded systems, based on over 30 years of continuous development. The FreeBSD Project has participated as a mentoring organization in Google Summer of Code each year since the program’s inception in 2005. This year, FreeBSD mentored 18 students with a final success rate of 89%. The cumulative total over 6 years has been 117 students improving FreeBSD. This participation in the program has brought many new features into FreeBSD, several new long-term committers to the project, and many of the former students have by now joined some of the mentors as colleagues at their respective companies.

A complete list of FreeBSD Projects is available from the wiki, but I wanted to select a small number of the many successful projects to showcase here.
Efstratios Karatzas's project extended the FreeBSD NFS server to support security auditing (logging) of client activity -- before his work, as with most systems out there, FreeBSD logged only local file system activity. This work is valuable and timely: FreeBSD is used widely as a file server, as well as being the foundation OS for numerous storage products including NetApp, Isilon, Panasas, and the open source FreeNAS. We look forward to shipping this feature in FreeBSD 9.0, as the patches mature, as well as seeing Efstratios at EuroBSDCon in Karlsruhe this autumn!

Zheng Liu spent the summer working with veteran FreeBSD kernel hacker John Baldwin on enhancing FreeBSD’s ext2fs to support preallocation and implementing read-only support for ext4 file systems. This was a particularly challenging project and Zheng Liu’s efforts at benchmarking his new implementation and documenting his work were particularly appreciated. This work will likely be included in an upcoming FreeBSD release.

David Forsythe returned to the Google Summer of Code program this year to work on developing a robust library with a clean API to manage FreeBSD packages. The goal is to abstract out some of the capabilities used in the current package tools into a library so they can be easily reused by new tools. David has even started assembling some replacements for the existing package tools implemented on top of his new library, and did a great job coordinating with other students and developers working in this area over the summer.
As usual our mentors are looking forward to continuing to work with their students to leverage all the great work that was done this summer, and to working with new contributors on exciting projects in operating systems, networking, and security research throughout the year.

Thanks to FreeBSD Administrators Robert Watson, Brooks Davis, and Tim Kientzle for helping to put together this post, and to all the other FreeBSD Mentors for helping run another successful Google Summer of Code for the FreeBSD Project.

By Murray Stokely, Software Engineering Team

Introducing the Mobile Bookmark Bubble

Tuesday, September 14, 2010

Today, we’re pleased to announce that we’re open-sourcing the Mobile Bookmark Bubble, a JavaScript library that helps users of your web application bookmark the app to their home screen, just like a native app. We’ve been using this library in several of our own web apps, and hope you’ll find it useful for your users, too.

The bubble, which currently supports iPhone, iPod and iPad devices running iPhone OS 3 and above, slides in at the bottom of the application with instructions for creating the bookmark. The bubble automatically slides back out again after a few seconds if the user does not interact with it. HTML5 local storage is used to prevent the bubble from being shown after the user has dismissed it too many times. The amount of time the bubble remains visible, as well as the number of times the bubble can be dismissed, can be easily configured.

The Mobile Bookmark Bubble is released as an open source project under the Apache license, and is available now on Google Code. The repository includes a small sample application demonstrating how the library can be used. If you’d like to send feedback or have any questions, please see our discussion group. Happy hacking!

By Neil Thomas, Software Engineering Team

License Evolution and Hosting Projects on Code.Google.Com

Friday, September 10, 2010

Nearly 6 years ago when we first started thinking about doing project hosting on we noticed something particular about the other open source project hosting sites. They either accepted all Open Source Initiative (OSI) approved licenses, like Sourceforge, or they only accepted one, like the Free Software Foundation's Savannah project, which only accepted GPL'd projects.

In our day-to-day work looking after open source licensing, we lamented the proliferation of licenses and decided that we would split the difference and only offer a very limited subset of the approved OSI licenses choices to our users as a stand against the proliferation of the same. You see, we felt then and still feel now that the excessive number of open source licenses presents a problem for open source developers and those that adopt that software. Thus when we launched project hosting on, we only launched with a small subset of licenses.

This was hardly a barrier to adoption. While there were some complaints from some corners, in the intervening 5+ years since then, we've grown to become one of the largest hosts while allowing that ethic behind license choice to persist.

What's changing and why change now?

Public domain projects are still only allowed on a case by case basis, as true public domain projects are quite rare and, in some countries, impossible. We encourage those that want to truly ship public domain to look at how D. Richard Hipp does things around SQLite and emulate his style. Email if you’d like to request that license be applied to your project.

(Please note: we will continue to hunt down and kill non-open source projects or other projects using Google Code as a generic file-hosting service.)

Why change now? The TL;DR version is that we think we've made our point and that this new way of doing things is a better fit to our goal of supporting open source software developers.

The longer form of the reason why is that we never really liked turning away projects that were under real, compatible licenses like the zlib or other permissive licenses, nor did we really like turning away projects under licenses that serve a truly new function, like the AGPL. We also think that there were inconsistencies in how we handled multi-licensed projects (for instance: a project that is under an Apache license, but has a zlib component.)

To rectify this, we decided to add an additional option to the license selector that would accommodate some flexibility around open source licenses. We hope you find it useful and look forward to seeing how you use the site!

By Chris DiBona, for the Project Hosting Team

Interviews from GUADEC, Part 4

Stormy Peters is the Executive Director of the GNOME Foundation, and when Jeremy Allison from the Google Open Source Programs Office ran into her at GUADEC, he was eager to talk to her about the direction that GNOME is heading. In the video above, Stormy and Jeremy discuss release schedules, GNOME 3, and hackfests. Enjoy!

By Ellen Ko, Open Source Team

Thousand Parsec HackWeek at the Googleplex

Tuesday, September 7, 2010

On the 7th of August, the Thousand Parsec core developers congregated for the first time at the Googleplex. We arrived in Mountain View, CA from six locations around the world for a week long hackathon including coding, frivolity and fun!

The Thousand Parsec project was started in January 2002 and is a framework for creating a specific group of games, often called 4X games (from the main phases of gameplay that arise: eXplore, eXpand, eXploit and eXterminate). You might be familiar with some of the games that Thousand Parsec draws ideas from such as Reach for the Stars, Stars!, VGA Planets, Master of Orion and Galactic Civilizations. The ultimate goal of Thousand Parsec is to allow multiple different 4X games be playable in a single client.

A primary focus of the week was to increase the playability of the “rulesets” (different game implementations). We spent plenty of time playing games, especially the Risk and Minisec games. While tempted to spend a week just playing games, we also fixed numerous bugs, cleaned up obsolete code, made lots of client improvements and reviewed Google Summer of Code students’ work.

By having many of the core developers in one location, changes could be made significantly quicker. An example is the new “Who is ready?” feature, which lets players know who is holding up the game and hence they are now able to guilt them into hurrying up! You can check out all the improvements that we made during the hack week by cloning out our latest git repositories and following setup instructions on our wiki.

Thousand Parsec still has a long way to go before it is as polished as the games which it draws ideas from, but hopefully with the continuing work by the contributors on line and in person at additional meetups, we have a bright future ahead.

Google Summer of Code was instrumental in making the hackfest happen. The event was primarily funded though the mentor payments, and the majority of the developers consisted of former Google Summer of Code students. Stay tuned to this blog for a wrap up of our 2010 Google Summer of Code student projects coming soon!

In the above photo you can see,

Alan ‘alanp’ Laudicina (from Canada), a Google Summer of Code student in 2009, working on MTSec ruleset.
• Lee ‘llnz’ Begg (from New Zealand), project co-founder who wrote majority of the C++ Code.
Kornel ‘Epyon’ Kisielewicz (from Poland), a Google Summer of Code student in 2009 and again this year. Working on refactoring the C++ server.
Tim ‘mithro’ Ansell (me, from Australia), project founder who wrote the majority of the Python Code.
• Vincent ‘Iwanowitch’ Verhoeven, (from Belgium), a Google Summer of Code student in 2008, created our premier AI, daneel-ai.
• Eugene ‘jmtan’ Tan Jie Ming (from Singapore), a Google Summer of Code student in 2008, working on 3d client.

By Tim Ansell, Technical Solutions Engineering Team

Interviews from GUADEC, Part 3

Friday, September 3, 2010

For the past two weeks, we’ve been sharing Jeremy Allison’s video interviews from his trip to GUADEC. Today we have a third video where he talks to Lennart Poettering, creator of PulseAudio. Jeremy and Lennart talk about PulseAudio features, how Lennart got started improving audio on the linux desktop, and how to be successful in free software. Enjoy!

Thanks to Fabian Scherschel of Sixgun Productions for operating the camera.

By Ellen Ko, Open Source Team

Eclipse Day at the Googleplex 2010

Thursday, September 2, 2010

Here at Google, we have engineers using Eclipse every day to build our external and internal products, as well as engineers building and releasing Eclipse tools. Earlier this year, we announced Eclipse Labs, which is “a single place where anyone can start and maintain their open source projects based on the Eclipse platform with just a few clicks.” Since we use Eclipse so much here at Google, hosting Eclipse Day at the Googleplex is one way of giving back to the community and providing an environment for Eclipse contributors and users to network and share ideas. We hosted Eclipse Day before in 2009 and 2008, and last week we hosted our third year where we tried out some new ideas: a brief lunchtime unconference and post-conference Ignite talks.

Ian Skerrett of the Eclipse Foundation wrote on his blog,

...Over 150 people attended the day long event that included 12 sessions related to Eclipse and Google technology. The presentations are now available online. There was lots of great information presented, like upcoming improvements to the Android SDK (based on Eclipse), Git support in Eclipse, a review of the Instantiations tools that Google just purchased and an introduction to the new Tools for Mobile Web project.
Most important, all of us at Google would like to thank Ian Skerrett and everyone at the Eclipse Foundation for assembling three of these great events. We were happy to welcome the Eclipse community to our campus, and we are happy to continue to support Eclipse. Don’t forget that we’re always looking to make this conference better, so give us your ideas! Tell us what you would like to see at future events in the comments, or if you were able to attend, tell us what you thought about this year’s program.

By Robert Konigsberg, Software Build Tools Team