Monday, 30 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

More ways to measure your website's performance with User Timings

By Satish Kambala and Mustafa M. Tikir, Google Analytics Team

Cross-posted from the Google Analytics Blog

As part of our mission to make the web faster, Google Analytics provides Site Speed reports to analyze your site’s page load times. To help you measure and diagnose the speed of your pages in a finer grain, we’re happy to extend the collection of Site Speed reports in Google Analytics with User Timings.

With User Timings, you can track and visualize user defined custom timings about websites. The report shows the execution speed or load time of any discrete hit, event, or user interaction that you want to track. This can include measuring how quickly specific images and/or resources load, how long it takes for your site to respond to specific button clicks, timings for AJAX actions before and after onLoad event, etc. User timings will not alter your pageview count, hence,  makes it the preferred method for tracking a variety of timings for actions in your site.

To collect User Timings data, you'll need to add JavaScript timing code to the interactions you want to track using the new _trackTiming API included in ga.js (version 5.2.6+) for reporting custom timings. This API allows you to track timings of visitor actions that don't correspond directly to pageviews (like Event Tracking).  User timings are defined using a set of Categories, Variables, and optional Labels for better organization. You can create various categories and track several timings for each of these categories. Please refer to the developers guide for more details about the _trackTiming API.

Here are some sample use cases for User Timings
  • To track timings for AJAX actions before and after onLoad event. 
  • A site can have their own definition of "User Perceived Load Time", which can be recorded and tracked with user timings.  As an example, news websites can record time for showing the above fold content as their main metric instead of onLoad time. 
  • Detailed performance measurement and optimization of sub components on a page, such as time to load all images, CSS or Javascript, download PDF files and time it takes to upload a file.
Want to check out User Timings Report in your account?

Go to the content section and click the User Timings report under Content section. There are three tabs within the User Timings report for you to review: Explorer, Performance, and Map Overlay. Each provides a slightly different view of user timings reported.

The Explorer tab on the User Timings report shows the following metrics by Timing Category, Timing Variable, or Timing Label (all of which you define in your timing code).
  • Avg. User Timing—the average amount of time (in seconds) it takes for the timed code to execute
  • User Timing Sample—the number of samples taken
The Explorer tab also provides controls that you can use to change the tabular data. For example, you can choose a secondary dimension—such as browser— to get an idea of how speed changes by browser.

To learn more about which timings are most common for user timings, switch to the Performance tab. This tab shows timing buckets, providing you with more insight into how speed can vary for user reported timings for selected category, variable and label combinations. You may switch to Performance tab at any point of navigation in the Explorer tab, such as after drilling down on a specific category and variable, to visualize distribution of user reported timings.  The bucket boundaries for histograms in Performance Tab are chosen to be flexible so that users can analyze data at low values ranging from 10 milliseconds granularity to 1 minute granularity with addition of sub-bucketing for further analysis.

The Map Overlay tab provides a view of your site speed experienced by users in different geographical regions (cities, countries, continents).

Satish Kambala and Mustafa M. Tikir are on the Google Analytics Team.

Posted by Scott Knaster, Editor

Friday, 27 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: translation birthday, photos in trees, giants on streets

Author Photo
By Scott Knaster, Google Developers Blog Editor

One of my favorite "living in the future" moments happens when I visit a webpage that’s not written in English. As you probably know, when this happens, Chrome figures out which language the page is using, and offers to translate it for me. That’s really cool. This week we celebrated the 6th anniversary of Google Translate’s statistical machine translation technology, which powers the Chrome translation scenario and many others.

Google Translate now works across 64 different languages, with more added from time to time. From modest beginnings, Google Translate now performs most of the translation work on Earth, translating one million books’ worth of text every day.

When words are not enough, we turn to pictures. What makes the LOOK3 Festival of the Photograph unusual is that it displays images high among the trees in an outdoor mall in Charlottesville, Virginia. Also known as "three days of peace, love and photography", this festival promotes environmental awareness and conservation, and also just looks really awesome.

Finally, what’s more lifelike than words and pictures? How about giant marionettes walking through the streets of Liverpool to commemorate the 100th anniversary of the Titanic? There are plenty of YouTube videos of the giants’ visit for you to enjoy.

Go Giants!

Fridaygram posts are made for fun, not technical value. They have been designed for your Friday and weekend enjoyment. Items that are interesting to us nerds are published in these posts. By the way, today has been declared Passive Voice Day 2012, so make sure that fun is had!

Wednesday, 25 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

African developers finding success with Google technologies

Author PhotoBy Chukwuemeka Afigbo, Program Manager, Sub-Saharan Africa

Cross-posted from the Google Africa Blog

Creating applications and services that use Google platforms to make the internet more relevant to Africans is a big part of Google’s vision in Africa. This is why we are always excited whenever we come across individuals or companies whose efforts are in line with this vision. Here are a few of the interesting applications we have seen in recent months.

Battabox, co founded by Christian Purefoy and Yemisi Ilo, is an online social television platform developed in Nigeria that aims to provide everything Nigerian from music, film, street-life to news, comedy and cooking using the YouTube platform. Crowdsourcing videos is an important part of the Battabox strategy and they were able to achieve this using YouTube Direct running on Google App Engine integrated into their website. They also provided an Android App that enables users to upload videos directly from their Android phones.

Battabox website screenshot

There are many other examples from further afield. In South Africa we met Nomanini who have a Google App Engine backend for Lula, their airtime vending device, which promises to change the way airtime is distributed in the region. Envaya SMS is an amazing application that turns your Android phone into an SMS gateway and has been used by many NGOs in East Africa. SAF SMS is a school management solution built with Google Web Toolkit that has been adopted in more than 100 schools in Nigeria. We also met Serengeti Advisers, a consultancy firm in Tanzania that uses Google Chart Tools to create interactive reports on their website.

Nomanini’s Lula terminal communicates with a backend powered by Google App Engine

As part of our drive to meet and interact with app developers in Africa, our Android Developer Relations team also recently hosted the developers of AfriNolly and the Nigerian Constitution Android app on their weekly Android DevRel office hours hangout on Google+ for Europe, Middle East and Africa. At the hangout, these African developers shared information about their apps with other Android developers.

You can follow the exploits of these and more developers in Sub Saharan Africa as they continue to make things happen with Google APIs and platforms by keeping an eye on our case studies page.

Do you feel your app should be featured here? Let us know!

Chukwuemeka Afigbo is a Program Manager in the Sub-Saharan Africa Outreach Team. He is an avid football (soccer) fan.

Posted by Scott Knaster, Editor

Tuesday, 24 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Introducing Google Drive and the Google Drive SDK

Author PhotoBy Mike Procopio, Software Engineer

Today, we're announcing Google Drive—a place where people can create, share, collaborate and keep all of their stuff. Drive is a natural step in the evolution of Google Docs. Drive is built to work seamlessly with other Google applications like Google+, Docs and Gmail, and your app can too. Joining the launch today are 18 web apps that have integrated with Drive using the Google Drive SDK.

Integrating your application with Google Drive makes it available to millions of users. Drive apps are distributed from the Chrome Web Store, and can be used with any modern browser. Plus, your app can take advantage of Google's sharing, storage, and identity management features.

Create and collaborate

Google Drive allows for more than storage. Google Docs is built right into Drive, and your app can join the party. For example, Lucidchart is an online visual diagramming tool integrated with Google Drive. You can start a new Lucidchart or share your diagrams with friends or coworkers straight from Drive, just like a Google document or spreadsheet.

Store everything safely and access it everywhere

With Google Drive you can store all of your files and access them from anywhere. For example, MindMeister, an app for creating mind maps online, also lets you open files from popular desktop mind mapping applications. By integrating with Google Drive, MindMeister users can open their mind maps stored in Drive from any modern browser.

Search everything

Your app can also take advantage of Drive's storage, indexing, and document viewers. For example, HelloFax is a web application that lets you sign and fax documents from your browser. HelloFax users can now store all their inbound and outbound faxes in Google Drive, making them easy to find later. Plus, with automatic OCR, users can even search and find text in faxed images. Your application can store files of any type up to 10 GB in size or create file-like shortcuts to your application's data.

Want your application to work with Google Drive? Full documentation on the Google Drive SDK is available at, or if you're itching to start building, head to our Getting Started guide. Our team will be on Stack Overflow to answer any questions you have when integrating your app with Google Drive. You can also bring your questions to our Hangout this Thursday at 10:30 AM PDT / 17:30 UTC.

Look for more posts about working with the Drive SDK on the Google Apps Developer Blog in the coming weeks.

Mike Procopio is a Software Engineer for Google Drive, focusing on all things Drive apps. He gets to leverage his passion for the developer and user experience by working on the next-generation APIs that help unleash Google Drive. Before joining Google in 2010, he was a machine learning researcher, and enjoys engaging in illuminating statistical discussions at every opportunity.

Posted by Scott Knaster, Editor

Friday, 20 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: student photographers, space video, shuttle sights

Author Photo
By Scott Knaster, Google Developers Blog Editor

As regular Fridaygram readers know, at Google we love to get students involved in coding and other pursuits. For example, last fall we announced the Google Photography Prize, which was open to student photographers around the world. More than 20,000 students from 146 countries submitted entries in the few months the competition was open.

A panel of judges whittled these entries to 100, and then to 10 finalists. You can read more about the competition and see a slideshow of the amazing work of these photographers.

Photo by Sasha Tamarin

Let’s move from still photos to video – and out into space, with a look at what video creator Alex Rivest calls "the best view in the solar system". This video shows what astronauts see from the International Space Station, from various points of view. When you watch this video, you can really see what Alex means. And it kind of makes you want to go check it out for yourself.

As long as we’re already out in space, we can’t resist a final mention of one of our favorite Fridaygram topics, the U. S. Space Shuttle. Earlier this week, shuttle Discovery was flown to its new home at the National Air and Space Museum in Washington, DC, producing some incredible sights before arriving. Happy retirement, Discovery.

On the land or in the sky, Fridaygram posts are just for fun. They're designed for your Friday and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.

Changes to deprecation policies and API spring cleaning

Author PhotoBy Adam Feldman, APIs Product Manager

It’s 2012. These days technology moves fast and we want to keep our developer products moving and innovating fast, too. In an effort to align our pace of development with the market, we did a careful analysis of our API deprecation policies. Based on our conclusions, we've decided to adopt a one-year policy for some APIs, remove the policy for other APIs and make the policy itself simpler and clearer. This doesn't mean we have changed the way we think about our APIs - we are more committed than ever to offering stable and relevant APIs to our developer community.

Most of these changes will happen over the next several years, but today we are giving you advance notice. As always, we will strive to keep changes to a minimum and announce them in a timely manner.

One-year API deprecation policies

As part of our effort to evolve our developer platform (like introducing the Google APIs Terms of Service), we are moving some services to a one-year deprecation policy, a common industry practice among similar APIs. The four services moving to a one-year policy are:
Google App Engine, Google Maps/Earth APIs and YouTube API will wind down their current 3-year deprecation policy and will transition to the one-year policy in April 2014. Google Cloud Storage keeps its current one-year policy. To be very clear, we are not deprecating the APIs themselves.

Clearer deprecation policy language

For the above APIs, we've shortened our deprecation policy to be clearer and more concise. The new policy simply states that we will strive to provide one year notice before making breaking changes. For details, see each API's Terms of Service, such as the Google Maps/Earth APIs.

Removal of deprecation policies

For Google's other APIs, we are removing the deprecation policy - not the API. In most cases, this change will not take effect until April 2015. Check the following affected APIs' Terms of Service for details: Accounts API, AdSense Host API, Chart Tools API, Checkout API, Contacts API, Custom Search API, Documents API, Doubleclick for Publishers API, Feed API, Google Apps Admin APIs, Libraries API, Orkut API, Picasa Web Albums API, and Prediction API.

During the remainder of the deprecation period, these APIs will also benefit from the clearer deprecation policy language. Our commitment to the underlying APIs remains unchanged. We will continue to work very hard to communicate any changes to our APIs well in advance, regardless of the APIs' deprecation policy.

Retirement of older APIs

In addition, we are announcing the deprecation of several older APIs and versions. Please visit the documentation for each API for more information about the deprecation period and suggested alternatives:
Our commitment to developers

Our change in policy is designed to make it easier for us to bring you the technology you’ve come to expect from Google: technology that excels at ease-of-use and scalability, and enables you to focus on building your unique application. Our team remains committed to existing APIs as well as building powerful new Google technology into our developer platform.

Adam Feldman is a Product Manager, focusing on all of Google's APIs and making sure Google provides the best possible platform to developers.

Posted by Scott Knaster, Editor

Wednesday, 18 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Code Jam’s Sprint to Google I/O

Author Photo
By Igor Naverniouk, Software Engineer, Code Jam

Last Friday, we kicked off our Code Jam qualification round where over 36,000 programmers from around the world competed for a chance to be one of the 25 finalists invited to New York for the final showdown. While registration for Code Jam is now closed, we didn’t want to keep you waiting a whole year to re-try your luck.

Starting tomorrow, April 19 at 7:00 AM PDT / 14:00 UTC, we will be running a Code Jam sprint. The stakes, you ask? The 100 top scoring developers to solve at least one two-part challenge will be given the opportunity to purchase tickets to Google I/O, which sold out in just over 20 minutes this year.

You don’t have to be a seasoned Code Jam veteran to participate, but you’ll want to register in advance. This ensures that the only thing between you and your ticket to Google I/O is a single challenge and a few quick clicks. In case you want a warm up, check out our Code Jam quick-start guide and practice questions.

The URL for the challenge will be posted to our +Google Developers page promptly tomorrow, April 19 at 7:00 AM, so don’t miss your chance to code your way to Google I/O this year!

Update 9:20 PM: We've edited this post to clarify exactly how the successful entries will be determined. Please read the bold sentence above for details.

Code Jam is a worldwide programming competition in which contestants may use any programming language to solve algorithmic problems. Although registration for Code Jam 2012 is now closed, developers can still compete in our Sprint to Google I/O for a chance to purchase a ticket to the conference for $900.

As his main job, Igor Naverniouk builds analytics for Google Play. In his 20% time, he works on programming challenges for Code Jam.

Posted by Scott Knaster, Editor

Tuesday, 17 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Back to Morocco: g|maroc 2012

Author Photo
By Rania Hadi, MENA Outreach Manager

View this post in Arabic

Last May, I joined the MENA Outreach team and was swiftly transported to Rabat for my first event (as an organizer) in Morocco. it is hard to believe that a year has passed, but here we are again, preparing for our upcoming g|maroc event!

Our first g|day of 2012 was in Jeddah, and we had a great time learning from, and interacting with, the vibrant tech and business communities - and I even got to exercise my Arabic skills on stage. We hope the fun and energy continues at g|maroc 2012, to be held in the city of Mohammedia, on June 7-8. We chose this location to be between Casablanca and Rabat, but we look forward to having many people attend from all around Morocco.

I’m looking forward to a few things: interacting with participants, testing my French and Arabic skills (fingers crossed), and especially, the new and updated sessions. Based on participant feedback from our previous events, we’re changing the content and format this time to make sure we cover topics that are useful for advanced users. We’ll also have Google engineers, product managers, and business leaders available to answer any questions.

g|maroc isn’t just about us, though; we also want to showcase Moroccan talent! If you have created or built something cool using a Google product, technology, or tool, be sure to tell us about it while registering. You may get the chance to present at g|maroc, so be detailed and show us what you’ve got.

Registration opens today, and it’s free. So register now, tell your friends about it, and let us know what you want to see at the event. Morocco was a fantastic first start for me, and I hope the tradition continues!

Rania Hadi has been with Google since 2004 and now works on Outreach in the Middle East & North Africa. She focuses on building relationships and promoting Google technologies with the developer and tech communities.

Posted by Scott Knaster, Editor

Add SPDY support to your Apache server with mod_spdy

Author Photo
Author Photo

By Matthew Steele and Bryan McQuade,
PageSpeed Insights Team

At Google, we strive to make the whole web fast. Our work in this area includes PageSpeed, Google Chrome, and the SPDY protocol, among other efforts. In December of 2011, to make it easy for you to enable the SPDY (pronounced "SPeeDY") protocol on your sites, we released an early beta of mod_spdy, an Apache module that adds SPDY support to the Apache HTTPD server. We’ve spent the last few months working with our early adopters to fix bugs and tune performance of the module. Today, we’re launching a version of mod_spdy that we encourage you to try on your web server.

Installing mod_spdy

To install mod_spdy on your Apache 2.2 server, simply download the appropriate mod_spdy Debian or RPM package for your platform, or compile from source. Once installed, your Apache server will begin using SPDY to communicate with SPDY-compatible browsers (e.g. Google Chrome, Android, and recent versions of Firefox). SPDY runs over HTTPS, so any HTTP (non-HTTPS) traffic on your site will not be affected by mod_spdy. Further, since SPDY requires server-side support for the NPN TLS HTTPS extension, which is not available in most current Apache environments, a version of mod_ssl with NPN support is included with the mod_spdy packages.

Enabling SPDY for your site improves performance in several ways:
  • The server and browser can compress HTTP headers, saving bytes on the network.
  • Multiple resource requests can be multiplexed over a single TCP connection, saving connections on the network.
  • The browser can request all page resources at once instead of a few at a time, which reduces the number of network round-trips needed between server and client.
We've tested mod_spdy using locally-mirrored pages from popular websites, and have seen significant speedups compared to serving via plain HTTPS – comparable to the gains that Google’s own servers achieve by using SPDY – with no extra configuration and negligible effect on Apache’s CPU and memory usage. In extreme cases, for example, pages with many small resources, we’ve seen mod_spdy reduce load times by more than 50%.

How mod_spdy works in Apache

Implementing SPDY in Apache posed several interesting challenges. For example, multiplexing is an important performance feature of SPDY which allows for multiple requests in a single SPDY session to be processed concurrently, and their responses interleaved down the wire. However, due to the serialized nature of the HTTP/1.1 protocol, the Apache HTTP server provides a one-request-per-connection architecture. Apache’s connection and request processing normally happens in a single thread, like so:

single thread

This works well for HTTP, but it presents a problem for multiplexed protocols like SPDY because in this flow, each connection can only process one request at a time. Once Apache starts processing a request, control is transferred to the request handler and does not return to the connection handler until the request is complete.

To allow for SPDY multiplexing, mod_spdy separates connection processing and request processing into different threads. The connection thread is responsible for decoding SPDY frames and dispatching new SPDY requests to the mod_spdy request thread pool. Each request thread can process a different HTTP request concurrently. The diagram below shows the high-level architecture.

multiple threads

Happily, all this is almost completely invisible to users and server administrators alike--you can continue to use your existing Apache modules and configurations.

Download mod_spdy for your platform and give it a try, and let us know what you think on our mailing list. mod_spdy is an open-source project and we welcome contributions. We are continuing to add new features, tune performance, and improve support for up-and-coming versions of the SPDY protocol.

Matthew Steele and Bryan McQuade are Software Engineers on the Google PageSpeed Insights Team in Cambridge, MA. When not working on mod_spdy, they focus on developing tools to help site owners understand how to speed up their sites.

Posted by Scott Knaster, Editor

Monday, 16 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Register now for the global Dart hackathon

Author PhotoBy Seth Ladd, Developer Advocate

Cross-posted with the Chromium Blog

The Dart team invites you to the first global Dart hackathon, a collaboration between the Dart team and the developer community. Sign up and have fun hacking on Dart to build modern client and server side web apps and libraries.

Current hackathon locations include:
  • North America:
    • Silicon Valley, California, USA
  • South America:
    • São Paulo, Brazil
  • Europe and Middle East:
    • London, England
    • Prague, Czech Republic
    • Tel Aviv, Israel
  • Asia:
    • Bacolod City, Philippines
    • Chandigarh, India
    • Goa, India
    • Karnataka, India
    • Manipal, India
    • New Delhi, India
    • Seoul, Korea
    • Tokyo, Japan
Hackathon dates vary by location. Check out the full list for the schedule.

The Dart project is still in technology preview, which means you’ll be hacking on early access code, but that’s all part of the fun. We’re eager to see what you build, and we hope you can make it. Register today!

Seth Ladd is a Developer Advocate with the Chrome team, and is having a grand ol' time learning Dart.

Posted by Scott Knaster, Editor

Friday, 13 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: Chrome tools, Goldberg machines, Lehrer songs

Author Photo
By Scott Knaster, Google Developers Blog Editor

If you use Google Chrome and you like to live on the edge, you might want to try Google Chrome Canary. There's a new version of Chrome Canary pretty much every day, and it gets the latest features. Of course, because it's built every day, sometimes it’s not very stable and it falls right off the leading edge it's balanced on. That’s why, for safety, you can install and run the stable version of Chrome alongside the Canary version.

Recent Canary builds have added cool new features to the developer tools section of Chrome. Specifically, you can now test mobile environments by simulating different screen sizes and by emulating touch events using the mouse. These features are on the Settings page of developer tools.

If you haven’t visited Chrome's developer tools before, you might be pleasantly surprised at all the nifty things available there. To get to developer tools, click the Wrench in Chrome, then choose Tools > Developer Tools. Have a look around – if you need a guide, see the documentation.

Some developers make hardware too, and a bunch of them competed in this year’s Rube Goldberg Machine Contest at Purdue University. The winning team broke a record – their own record – by building a machine that takes 300 steps to inflate and pop a balloon. When you consider that 14 people spent 5000 hours on this project, you realize the power of creativity mixed with craziness.

Finally, take a moment to celebrate Tom Lehrer's birthday week by listening to some of his classic tunes. As a math professor / musician / parodist, nobody expresses the spirit of Fridaygrams better than Tom Lehrer.

Fridaygram posts are just for fun. They're designed for your Friday and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds. Disclaimer: we do not advocating poisoning pigeons, whether in the park or elsewhere.

Thursday, 12 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Join Hack4Kids, the second edition of the EUHackathon in Brussels

Author Photo
By Marco Pancini, Senior Policy Counsel

This year, the second edition of the EUhackathon is taking place on 20 and 21 June, and the theme is Hack4Kids. The event is organised again in conjunction with the European Institutions in Brussels.

The EUhackathon concept aims to build a bridge between the "old" (the European Institutions and lawmakers) and the "new" world (the Internet and coders). The 2012 edition adds the dimension of putting children at the center of the event as end-users and as members of the jury.

The Hack4Kids EUhackathon revolves around two tracks: 1) child safety and 2) child creativity.

The first track offers developers a chance to create or improve tools that enhance the Internet experience of children and parents. Ideas include providing simple and robust reporting tools for harmful online content or behaviour, crowdsourcing content classification, creating easier parental control tools, and education and awareness raising.

The second track invites developers to explore how industry can support and improve children's creativity online and offline. For example, this could include enabling children to easily create new online content, from building their own 3D game environment to producing their own hit single.

Selected applicants will have their travel and accommodation costs covered and the winner or winning team in each track will be awarded €5,000. Not to forget, there will also be free food and WiFi.

Interested candidates can submit an online application until Monday the 30th of April 2012 at noon CET.

More information is available at

No time to join the fun and excitement with us, but full of great ideas? Don’t hesitate to share your ideas on useful tools for kids, parents and teachers with us, or just go vote on other people’s suggestions at .

Marco Pancini was part of the start-up project iBazar, the first online auction web site in Europe, and after that he joined eBay from 2002 to 2007. In July 2007 he joined the Google team as policy counsel in charge of government relationship for the Italian market. Since February 2011 he has been a member of the Google policy team in Brussels.

Posted by Scott Knaster, Editor

Friday, 6 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: 3D graphs, battling bacteria, viewing art

Author Photo
By Scott Knaster, Google Developers Blog Editor

Back in December we added graphing capability to Google Search. That was pretty cool, but only 2D graphs? Come on! Most of the people we know are three-dimensional, so it only made sense to add 3D graphing to Google Search as well.

To see a 3D graph, type any real two-variable function into Google Search. You can click the graph to rotate it, use the controls to zoom, or edit the range in the box at the lower-right. This feature works in modern browsers thanks to the magic of WebGL.

Jumping from math to science, this week brings news of a "plasma flashlight" that instantly inactivates bacteria on skin. In tests, the flashlight penetrated all the way to the bottom of a 17-layer stack of bacteria and zapped all of it. You can imagine parents of the world using these on their kids’ hands before dinner.

Finally, technology meets art in the newly expanded Google Art Project, which enables people to view works online from more than 150 museums around the world. Seeing art online might not be as good as being there, but it’s far more accessible. And it’s one of those things that just makes you feel like you’re living in the future.

Fridaygram posts are just for fun. They're designed for your Friday and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds. And just because you read this far, here are a couple of bonus links: a test of Google’s self-driving car, and a very special 2D graph.

Wednesday, 4 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Join us for g|Senegal and g|Cote d’Ivoire

By Tidjane Deme, Lead Francophone, Google Africa and Melina Mattos, Program Manager, Google Africa

This year so far has been about creating connections with local communities and resharing our knowledge and love for Google products either offline in our conferences or online with Google+. With the success we've had with our conferences in East and West Africa, we are excited to announce that in May we are coming to Dakar for g|Senegal and Abidjan for g|Cote d’Ivoire!

This year’s g|Senegal will have more hands-on coding sessions for more experienced developers, more sessions on new Google technology, and more local success stories--perhaps you will be featured. Join us for g|Senegal on 9 and 10 May at Place du Souvenir.

For advanced developers, the Dakar Google Technology User Group (GTUG) is holding a Google+ Hackathon to help developers build applications on the Google+ API. If you are interested in joining, please flag your interest when applying for g|Senegal Developer Day and we will send you more information at a later date.

For our first ever g|Cote d’Ivoire, we are excited to take part of the vibrant energy in this era of rebuilding. The event will focus on building innovative applications and helping the fast-growing business community come online. Sign up for g|Cote d'Ivoire on 14 and 15 May.

Remember to register early for these free events because May is just around the corner. Don’t forget to join the conversation about g|Senegal and g|Cote d’Ivoire on Google+ using the event hashtags #gsenegal and #gcotedivoire.

Posted by Scott Knaster, Editor

Tuesday, 3 April 2012
Facebook StumbleUpon Twitter Google+ Pin It

Google Cloud Storage: high performance that just works


By Navneet Joneja, Product Manager,
and Ville Aikas, Technical Lead

When evaluating options for cloud storage, customers often wonder, "How can we optimize our storage to get the highest performance possible?". We believe you shouldn't have to, so we do all the optimization for you – enabling you to focus on your application instead of the minutiae of storage optimization.

The performance of cloud storage services (and indeed most web services) depends on two main factors: the network that moves the data between us and the end user, and the performance of the storage service itself.

1. Network

When you make a request to Google Cloud Storage, one of the key determinants of performance is the network path between you and our servers. This path is critical because if the network is slow or unreliable, it doesn’t really matter how fast the backend is.

There are two main ways to make the network faster:
  • Serve the request from as close to the user as possible
  • Optimize the network routing between the end-user and the service, including avoiding pockets of network congestion and minimizing the number of network hops between the user and the service.
2. Storage

The other component of system performance is how quickly our servers process your request. The data needs to be managed optimally and once an end-user’s request reaches our servers, we need to serve the request as fast as possible. In a sense, Google Cloud Storage is a gigantic filesystem: authorization checks need to happen, the object in question needs to be looked up, and the data requested needs to be read from the physical storage medium and transferred to the end user, all as efficiently as possible.

So, how do we make sure your requests are served as fast as possible?
  • Google Cloud Storage is built on Google’s proprietary network and datacenter technology. We’ve spent more than a decade building out proprietary infrastructure and technology to power Google’s sites (after all, we believe that fast is better than slow). When you use Google Cloud Storage, the same network goes to work for your data.
  • We replicate data to multiple data centers and serve an end-user’s request from the nearest data center that holds a copy of the data. We also offer a choice of regions (currently U.S. and Europe) to allow you to keep your data close to where it’s most needed. We then take this one step further. When you upload an object and mark it as cacheable (by setting the standard HTTP Cache-Control header), we automatically figure out how best to serve it using Google’s broad network footprint, including caching it closer to the end-user if possible.
  • Finally, you don’t need to worry about optimizing your storage layout (like you would on a physical disk), or the lookups (i.e. directory and naming structure) like you would on most file systems and some other storage services. We take care of all the "file system" optimizations behind the scenes.
In other words, when you store your data on Google Cloud Storage, we do all the background work to make it fast so that you can focus on your application.

Navneet Joneja loves being at the forefront of the next generation of simple and reliable software infrastructure, the foundation on which next-generation technology is being built. When not working, he can usually be found dreaming up new ways to entertain his intensely curious almost-two-year-old.

Ville Aikas likes to work on tools and services that make developers lives easier and "just work". When not busy cranking out code, he loves to play soccer with his kids, build robots and watch F1.

Posted by Scott Knaster, Editor