opensource.google.com

Menu

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 code.google.com.

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
.