Blog of our latest news, updates, and stories for developers
More ways to measure your website's performance with User Timings
Monday, April 30, 2012
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
Fridaygram: translation birthday, photos in trees, giants on streets
Friday, April 27, 2012
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.
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!
African developers finding success with Google technologies
Wednesday, April 25, 2012
By 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
Introducing Google Drive and the Google Drive SDK
Tuesday, April 24, 2012
By 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
developers.google.com/drive
, 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
Fridaygram: student photographers, space video, shuttle sights
Friday, April 20, 2012
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
Friday, April 20, 2012
By 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 Cloud Storage
Google Maps/Earth APIs
YouTube API
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:
We are deprecating the
Moderator API
and
Legacy Portable Contacts API
, as well as part of the Account Authentication APIs (
ClientLogin
,
AuthSub
and
OAuth 1.0
) and Google Chart Tools (
Image Charts
and
Infographics
).
We are also deprecating the non-current versions of the
Spreadsheets
,
Contacts
,
Documents List
and
Freebase
APIs.
Finally, we are adding a shutdown date for the
Finance API
and
Feedburner Administrative APIs
, which were
deprecated last year
.
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
Code Jam’s Sprint to Google I/O
Wednesday, April 18, 2012
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
Back to Morocco: g|maroc 2012
Tuesday, April 17, 2012
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
Tuesday, April 17, 2012
Bryan
Matthew
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:
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.
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
Register now for the global Dart hackathon
Monday, April 16, 2012
By 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
Fridaygram: Chrome tools, Goldberg machines, Lehrer songs
Friday, April 13, 2012
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.
Join Hack4Kids, the second edition of the EUHackathon in Brussels
Thursday, April 12, 2012
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
http://www.euhackathon.eu
.
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
http://suggestions.euhackathon.eu
.
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
Fridaygram: 3D graphs, battling bacteria, viewing art
Friday, April 6, 2012
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
.
Join us for g|Senegal and g|Cote d’Ivoire
Wednesday, April 4, 2012
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
Google Cloud Storage: high performance that just works
Tuesday, April 3, 2012
Ville
Navneet
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
Labels
.app
#AIY
#freeandopen
#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments
#growwithgoogle
#io12
#io13
#io14
#io15
#io16
#io17
#io18
#io2012
#io2013
#io2014
+1
20% project
3d
about.com
accelerator
accessibility
actions
actions on google
actionsongoogle
Administrative APIs
AdMob
adobe
Ads
adsense
advogato
AdWords
africa
agency program
agpl
AI
AIY
AIY Projects
AIYProjects
ajax
ajax apis
ajax search
ajax search books news apis
all for good
amarok
AMP
AMP Cache
analytics
and Assistant
android
android developer certification
android developers
Android Studio
Android Things
android wear
Announcement
announcements
apache
api
API.AI
apis
apis console
apis explorer
apis. charts
app
app design
app engine
app indexing
app indexing api
App Invites
apple
apps
apps script
AR
ARCore
area 120
artifact management
Artificial Intelligence
asia
assistant
atom publishing protocol
Audio
Augmented images
australia
Auth
authentication
authsub
automatic speech recognition
awards
axsjax
barcodes
beacon
beacons
Belarus
bespin
best practices
beta
bigquery
Blockly
blogger
book search
books API
bootcamp
british english
Brotli
browser
Build Out
building ajax apps
BuildOut
Bulgaria
business
buzz
c++
Cache
caja
caldav
calendar
camino
campfire one
caption
cardboard
CardDAV
cast
Certification
certification award
channel
chinese
chrome
chrome apps
chrome dev summit
chrome devtools
chrome experiment
chrome extensions
chrome os
chrome web store
chromecast
chromium
chronoscope
cifs
classes
classroom api
client libraries
closure tools
cloud
Cloud anchor
cloud datastore
cloud functions for firebase
Cloud Next
cloud platform
cloud portability
cloud services
cloud sql
cloud storage
cms
coca cola
CocoaPods
code for educators
code jam
code review
code-in
codeedu
codelabs
coffee with a googler
collada
color
Colt McAnlis
commerce
community
community connectors
competition
Compilers
compression
compressorhead
computer vision
computing heritage
conferences
contacts api
Containers
contest
contextual gadgets
conversation design
conversations
Core ML
couchdb
countdown to I/O 2012
courses
CPU
crash course
Crash Reporting
crashlytics
creative commons
cricket
crisis response
Croatia
cryptography
css
css3
custom search
custom search api
Czechia
danish linux forum
dart
Data Compression
Data Visualization
database
Dataset
Datasets
datastore
dataviz
Daydream
design
devart
develop
developer
Developer Communities
developer expert
developer features
Developer Keynote
developers
developers. meetup
devfest
devfest developer chrome maps social wave apps
DevFest18
DevFestStories
DFP
dialogflow
discovery service
diversity
django
dns
do-it-yourself
Docker
docs
documentation
documents list api
dojo
doodles
dot net
doubleclick
dreamweaver
Drive
drupal
dynamic links
earn
earth
eclipse
eclipsecon
eddystone
Edge TPU
Edge TPU Accelerator
Edge TPU Dev Board
educatio
education
email
EMEA
endpoints
enterprise
entrepreneurs
Estimator
Estimators
estonia
Europe
event
events
evolution
execution api
extensions
Fabric
fairness in machine learning
faster web
FCM
featured
feeds
finance
Firebase
Firebase Analytics
Firebase Cloud Messaging
Firebase Dynamic Links
firebug
firefox
firestore
firevox
firstbeta
fitness
flutter
flutter release preview 1
flutter release preview 2
font api
Fonts
fosdem
freebsd
freenet
Fridaygram
fusion tables
G Suite
gadgets
Game Developers Conference
games
gaming
gcc
gci
GCP
GDA
gdata
GDC17
GDD
gdd07
gdd08
gdd09
GDD11
GDE
gdg
gdl
gdl weekly
gears
geo
geolocation
geoserver
getpaid
ghop
git
github
GKE
gmail
Gmail APIs
GMTC
gnome
gnome women's summer outreach program
Go
goo.gl
Google
Google APIs
google apps
google apps api
google apps for your domain
google apps marketplace
Google AR
google assistant
google assistant sdk
Google Brain
google buzz
google cast
google chart api
google checkout
google chrome
Google Cloud
Google Cloud Messaging
Google Cloud Platform
google cloud storage
google code
google code project hosting
google code search
google code university
google compute engine
google data apis
google data protocol
Google Data Studio
google developer day
google developer days
google developers
Google Developers Academy
google developers certification
google developers community groups
Google Developers Live
Google Developers site
Google Developers University Consortium
google docs
Google Docs API
google doctype
google domains
Google Drive
Google Drive SDK
google earth
google fit
Google Fonts
google friend connect
google gadgets
google gears
google grants
google health
Google I/O
Google Identity Platform
google io
Google Maps
Google Maps Platform
google mashup editor
Google Noto fonts
google photos
google platform
Google Play
Google Play Developer API
google play services
Google Registry
google scholarships
Google Science Fair
Google sheets
Google Sheets API
Google Slides
Google Slides API
Google Spreadsheets API
google storage
google summer of code
Google tech talk
Google technology
google technoloy user groups
google tv
google visualization api
google wallet
Google Wave
google web elements
google web toolkit
google.org
google+
GoogleAssistant
googlecast
googledevelopers
googleio
googlenew
GooglePlay
googlewebelements googleio
GPE
GPGS C++ Games
GPT
green linux
grow
grow with google
gsoc
GSuite
gtags
gtug
guest post
guice
gulp
GWSOP
gwt
gzip
hackathon
hacking
hackthon
hamilton
hangouts
Hangouts Chat
Hangouts Chat API
haproxy
hg
hibernate
howto
hpux
html
html5
http
I/O
I/O 17
I/O 2017
I/O Extended
I/O Live
ical
identity
ietf
ignite
igoogle
iguanas
iiw
Image Compression
image search
Imara
In-app billing
in-app payments
in-app purchase
incubator
India
indie
Indie Games Accelerator
information visualization
intelligentwire
interactive music
internationalization
internet explorer
internet of things
interviews
IO17
io18
IO2017
ios
iOS SDK
IoT
ipad
iphone
israel
Issue Tracker
jaiku
japanese
java
javascript
jetpack
joomla
joomladayus2007
joomladayusa
json
karaoke
KDE
KDE 4.0
Keras
kernel
kernel summit
keynote
khronos
kids
kids coding team
kml
korean
Krakow
Kubernetes
labs
lanchpad
languages
latitude
latvia
launch
launchpad
launchpad accelerator
launchpad studio
lca
Leadership
Learning
lens
lessons
licenses
linux
linux foundation
linux summit
linux virtual server
linuxconf eu
lithuania
localization
LoCo
london
mac
MacFuse
Machine
machine intelligence
machine learning
machine learning accelerator
maker
Makers
malware
maps
maps apis
Marketplace
material
material components
material design
MDL
meetup
mercurial
MIT CSAIL
ml
ML Kit
MLCC
mobile
mobile design
mobile performance
mobile sites
mobile speed
mobile UX
Mobile web
mod_pagespeed
Moderator
monetize
MOOC
mozilla
mylar
myspace
MySQL
mythtv
named
narratives
native ads
native client
nearby
netbsd
non-profit
nonsense
nosql
notifications
Noto Serif CJK
nss
nvidia
O3D
oauth
OAuth playground
OAuth2
objective-c
OCaml
ocr
ODF
office hours
oha
OOXML
open data
open source
open source blog
open source releases
open web
openajax alliance
opengl
openid
opensocial
openssh
openssl
Optimization
oreilly
orkut
oscon
oscon2007
osi
oss devs
ossjam
osx
pactester
page speed
PageSpeed
palette
payments
Peer bonus program
performance
phone
photos
picasa
picasa web
places API
play services
playground
plone
plone sprint
podcast
poland
Poly
polymer
Polymer Summit
portugal
posix
PowerMeter API
prediction api
preview
prizes
programming
Progressive Web App
project hosting
Project Loon
Project Tango
prototype
proximity
pubsubhubbub
PWA
py3k
python
python sprint
rails
random hacks of kindness
Rasberry Pi
reader
releases
Remote Config
research
reserve seats
result snippets
Reto Meier
Rewarded Ads
Rewarded Video Ads
rhino
Saatchi
safety and security
salesforce
samba
Sample dialogs
sandbox
Santa Tracker
scalability
scale-ups
Sceneform
schedule
scholarship
scholarships
Scratch
screencast
sdk
sdks
search
security
Serbia
serif
service worker
sessions
seurat
Sheets API
shindig
shopping
Shoreline Amphitheatre
showcase
sidewiki
sign-in
silverstripe
SIMD
sitemaps
sites api
sixapart
sketchup
Slides API
small business
Smart Lock for Passwords
soap search api
soc
social
social graph
solaris
souders
spa2007
spdy
speakers
speech
speed
speed tracer
standards
startup
startups
STEM
storage
Street View
student programs
students
stuff
style
subscribed links
subscription
subversion
summer of code
Sundar Pichai
SVG
sxsw
syndication
tasks API
Team Drives (new)
techmakers
templates
TensorFlow
tensorflow dev summit
TensorFlow Lite
TensorFlow Research Cloud
tensorRT
Test Lab
testing
text embedding models
tfdevsummit
TFLite
themes
thought leadership
tool
tools
topp
TPU
training
tranparency
transit
translate
translation
tutorials
tv
ubiquitous computing
ubiquity
ubucon
ubuntu
Udacity
UI
Ukraine
unicode
unit test
Unity
universal
Universal App Campaigns
University
unix
url
url shortener
URLs
video
videos
Vim
virtual keyboard
virtual reality
visualization
voice
voice kit
voice user interface
VR
VUI
wattpad
Wearables
Weave
web
web animations api
web apps
web components
web design
web designer
web development
web exponents
web fonts
web performance
web platform docs
web registry
webfonts
webgl
webmaster
WebP
website optimizer
webVR
weekly roundup
WhiteHouse.gov
Who's at Google I/O
win
windows
windows programming
Winter of Code
Women Tech Makers
women techmakers
writing
wtm
xauth
yahoo
Young Makers
youtube
zlib
zurich
ZXing
Archive
2018
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2007
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2006
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2005
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Subscribe
Google
on
Follow @googledevs
Visit
Google Developers
for docs, event info, and more.