Saturday, July 28, 2012

[Gd] Fridaygram: Science Fair winners, crowd-sourced comet, Olympic salute

| More

Google Developers Blog: Fridaygram: Science Fair winners, crowd-sourced comet, Olympic salute

Author Photo
By Scott Knaster, Google Developers Blog Editor

This year’s Google Science Fair launched in January and attracted young scientists from more than 100 countries, who created thousands of projects. The judges performed the difficult task of choosing the finalists, who were rewarded with a trip to Google’s office in scenic Mountain View, California. Following a final round of judging, three winning projects were chosen:

  • Jonah Kohn for “Good Vibrations: Improving the Music Experience for People with Hearing Loss Using Multi-Frequency Tactile Sound”.
  • Iván Hervías Rodríguez, Marcos Ochoa, and Sergio Pascual for “La Vida Oculta del Agua (The Secret Life of Water)”.
  • Brittany Wenger for “Global Neural Network Cloud Service for Breast Cancer”.
The Science Fair is especially impressive when you consider that all entrants are 18 years old or younger, and some of us have t-shirts older than that. Congratulations to all the winners and near-winners!

If you were thinking of using “crowd-sourced astronomy” as your future science fair project, take note: your idea is not original. A team of researchers at Princeton University recently reconstructed the 2007 orbit of Comet Holmes using images taken by amateur photographers and found by Yahoo image search. They then used a cool app called to help figure out how to put the images together.

Finally, the Olympic Games opening ceremony in London is happening today, and we’d like to pay tribute here to Trevor Barron, an olympian who also participated in Google Summer of Code. Trevor's coding project involves working with Benetech to implement text-to-speech for mathematical expressions. Good luck in the games, Trevor!

Each week our Fridaygram presents cool things from Google and elsewhere that you might have missed during the week. Fridaygram items aren't necessarily related to developer topics; they're just interesting to us nerds. This week we say goodbye to Sally Ride, pioneering astronaut and hero to many Earthlings.

Friday, July 27, 2012

[Gd] New notifications about inbound links

| More

Official Google Webmaster Central Blog: New notifications about inbound links

Webmaster level: Advanced

Lots of site owners use our webmaster console to see how their site is doing in Google. Last week we began sending new messages to sites with a pattern of unnatural links pointing to them, and I wanted to give more context about these new messages.

Original Link Messages 

First, let's talk about the original link messages that we've been sending out for months. When we see unnatural links pointing to a site, there are different ways we can respond. In many severe cases, we reduce our trust in the entire site. For example, that can happen when we believe a site has been engaging in a pretty widespread pattern of link spam over a long period of time. If your site is notified for these unnatural links, we recommend removing as many of the spammy or low-quality links as you possibly can and then submitting a reconsideration request for your site.

In a few situations, we have heard about directories or blog networks that won't take links down. If a website tries to charge you to put links up and to take links down, feel free to let us know about that, either in your reconsideration request or by mentioning it on our webmaster forum or in a separate spam report. We have taken action on several such sites, because they often turn out to be doing link spamming themselves.

New Link Messages 

In less severe cases, we sometimes target specific spammy or artificial links created as part of a link scheme and distrust only those links, rather than taking action on a site’s overall ranking. The new messages make it clear that we are taking "targeted action on the unnatural links instead of your site as a whole." The new messages also lack the yellow exclamation mark that other messages have, which tries to convey that we're addressing a situation that is not as severe as the previous "we are losing trust in your entire site" messages.

How serious are these new link messages? 

These new messages are worth your attention. Fundamentally, it means we're distrusting some links to your site. We often take this action when we see a site that is mostly good but might be might have some spammy or artificial links pointing to it (widgetbait, paid links, blog spam, guestbook spam, excessive article directory submissions, excessive link exchanges, other types of linkspam, etc.). So while the site's overall rankings might not drop directly, likewise the site might not be able to rank for some phrases. I wouldn't classify these messages as purely advisory or something to be ignored, or only for innocent sites.

On the other hand, I don't want site owners to panic. We do use this message some of the time for innocent sites where people are pointing hacked anchor text to their site to try to make them rank for queries like [buy viagra].

Example scenario: widget links 

A fair number of site owners emailed me after receiving one of the new messages, and I think it might be helpful if I paraphrased some of their situations to give you an idea of what it might mean if you get one of these messages.

The first example is widget links. An otherwise white-hat site emailed me about the message. Here's what I wrote back, with the identifying details removed:

"Looking into the very specific action that we took, I think we did the right thing. Take URL1 and URL2 for example. These pages are using your EXAMPLE1 widgets, but the pages include keyword-rich anchortext pointing to your site's url. One widget has the link ANCHORTEXT1 and the other has ANCHORTEXT2. 

If you do a search for [widgetbait matt cutts] you'll find tons of stories where I discourage people from putting keyword-rich anchortext into their widgets; see for example. So this message is a way to tell you that not only are those links in your widget not working, they're probably keeping that page from ranking for the phrases that you're using." 

Example scenario: paid links 

The next example is paid links. I wrote this email to someone:

"I wouldn't recommend that Company X ignore this message. For example, check out SPAMMY_BLOG_POST_URL. That's a link from a very spammy website, and it calls into question the linkbuilding techniques that Company X has been using (we also saw a bunch of links due to widgets). These sorts of links are not helping Company X, and it would be worth their time to review how and why they started gathering links like this." 

I also wrote to another link building SEO who got this message pointing out that the SEO was getting links from a directory that appeared to offer only paid links that pass PageRank, and so we weren't trusting links like that.

Here's a final example of paid links. I emailed about one company's situation as follows:

"Company Y is getting this message because we see a long record of buying paid links that pass PageRank. In particular, we see a lot of low-quality 'sponsored posts' with keyword-rich anchortext where the links pass PageRank. The net effect is that we distrust a lot of links to this site. Here are a couple examples: URL1 and URL2. Bear in mind that we have more examples of these paid posts, but these two examples give a flavor of the sort of thing that should really be resolved. My recommendation would be to get these sort of paid posts taken down, and then Company Y could submit a reconsideration request. Otherwise, we'll continue to distrust quite a few links to the site." 

Example scenario: reputation management 

In some cases we're ignoring links to a site where the site itself didn't violate our guidelines. A good example of that is reputation management. We had two groups write in; one was a large news website, while the other was a not-for-profit publisher. Both had gotten the new link message. In one case, it appeared that a "reputation management" firm was using spammy links to try to push up positive articles on the news site, and we were ignoring those links to the news site. In the other case, someone was trying to manipulate the search results for a person's name by buying links on a well-known paid text link ad network. Likewise, we were just ignoring those specific links, and the not-for-profit publisher didn't need to take any action.

What should I do if I get the new link message? 

We recently launched the ability to download backlinks to your site sorted by date. If you get this new link message, you may want to check your most recent links to spot anything unusual going on. If you discover that someone in your company has been doing widgetbait, paid links, or serious linkspam, it's worth cleaning that up and submitting a reconsideration request. We're also looking at some ways to provide more concrete examples to make these messages more actionable and to help narrow down where to look when you get one.

Just to give you some context, less than 20,000 domains received these new messages—that's less than one-tenth the number of messages we send in a typical month—and that's only because we sent out messages retroactively to any site where we had distrusted some of the sites' backlinks. Going forward, based on our current level of action, on average only about 10 sites a day will receive this message. 

Summing up 

I hope this post and some of the examples above will help to convey the nuances of this new message. If you get one of these new messages, it's not a cause for panic, but neither should you completely ignore it. The message says that the current incident isn't affecting our opinion of the entire website, but it is affecting our opinion of some links to the website, and the site might not rank as well for some phrases as a result.

This message reflects an issue of moderate severity, and we're trying to find the right way to alert people that their site may have a potential issue (and it's worth some investigation) without overly stressing out site owners either. But we wanted to take this extra step toward more transparency now so that we can let site owners know when they might want to take a closer look at their current links.

Posted by Matt Cutts, Distinguished Engineer

[Gd] Build Compelling Experiences Using YouTube Embeds With The IFrame Player API

| More

YouTube API Blog: Build Compelling Experiences Using YouTube Embeds With The IFrame Player API

If you've hesitated to use the <iframe> player in your app due to the IFrame Player API's experimental status, then wait no more. We've removed that API's 'experimental' tag, which means the API is production-ready and is covered by YouTube's deprecation policy. Since the <iframe> embed is the default way of sharing YouTube videos on the Web, the IFrame Player API is now the recommended mechanism to control video playback behavior in your Web applications.

To provide a consistent developer experience with the YouTube Upload Widget, we’ve changed the the URL for loading the IFrame Player API code to The old URL ( is now deprecated, though it will continue to work. Similarly, the iframe API initialization callback name has been changed to onYouTubeIframeAPIReady from onYouTubePlayerAPIReady, also for consistency with the YouTube Upload Widget. The old callback name, onYouTubePlayerAPIReady, is now deprecated as well. If your app uses both the YouTube Upload Widget as well as the IFrame Player API, you only need to include the script once and handle a single initialization callback.

Going forward, we'll continue making improvements to the IFrame API and make it work better with mobile platforms. As before, you can find the details about the API in our documentation and ask questions about it on our developer forum.

--Jarek Wilkiewicz, YouTube API Team

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update

The Beta channel has been updated to 21.0.1180.57 for Windows, Mac, Linux and ChromeFrame platforms

  • Fixed Youtube Drag & Drop Upload Not Working (Issue: 137024)
  • Fixed Calendar picker for <input type=date> is garbled in HiDPI (Issue: 136958)
    More details about additional changes are available in the svn log of all revisions. 

    If you find new issues, please let us know by filing a bug at

    Karen Grunberg
    Google Chrome

    [Gd] Beta Channel Update for Chrome OS

    | More

    Chrome Releases: Beta Channel Update for Chrome OS

    The Beta channel has been updated to 21.0.1180.55 (Platform versions: 2465.97.0) for Chromebooks (Acer AC700, Samsung Series 5 550, Samsung Chromebook Series 3, and Cr-48) and Samsung Chromebox Series 3. This build contains a number of UI, stability & security improvements. 

    Highlights of these changes are:
    • Update Netflix plugin to 2.0.5 
    • Wifi stability fixes
    • 3G stability fixes
    • Audio fixes
    • UI fixes

    Known Issues:

    • 32327 - System suspend while streaming audio 
    • 137273  - Connecting to hidden networks fails when you try to connect to it for the first time
    • 31866 -  Unable to enable mobile data for locked SIM on y3300 and y3400 modems
    • 136864  - Multiple options Disabled in the Certificate Manager.

    If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

    Josafat Garcia

    Google Chrome


    Thursday, July 26, 2012

    [Gd] Saving files to Google Drive with Web Intents

    | More

    Google Apps Developer Blog: Saving files to Google Drive with Web Intents

    The Google Drive SDK opens up a great number of possibilities of integration with third-party applications and services. One such integration is via the new Web Intents API.

    Web Intents lets web developers integrate their web apps with third-party services and avoid implementing the same feature with similar services over and over again. With Web Intents, a service can register itself to handle specific functionality, such as saving a file or sharing data. Client applications can then discover and interact with the service to use that specific functionality.

    In this post, we’ll look at code for two example apps: a service that exposes a “save” web intent, and a client that consumes it to save files to Google Drive.

    Exposing the Web Intent

    To demonstrate web intents, we wrote a proof of concept app called This is a service that lets users or applications save and retrieve data from Drive via the Web Intents API. With Cloudfilepicker, any application that fires a “save” intent can save to Google Drive without directly implementing the API.

    To build a service application like that interacts with Drive and Web Intents, create a Chrome app whose manifest exposes a intent action. For example:

    "name": "Google Drive Web Intent",
    "version": "1",
    "app": {
    "launch": {
    "local_path": "index.html"
    "intents": {
    "": [
    "type" : ["image/png", "image/jpg", "image/jpeg"],
    "href": "save.html",
    "title": "Save to Drive"


    The intent declaration in the app manifest describes the functionality that your application offers, the data it can work with, and what to launch when the user chooses your application.

    In order to use the Drive API, the page has to get an OAuth token for the user. The complete JavaScript implementation of the OAuth flow is available in the project repository.

    Once the app receives a valid OAuth token, we can load the Drive client library and perform the file upload request using multipart upload. A Web Intent with action can provide the file data in two ways: as a base64-encoded string or a blob, and our app should support both. With the former, we have to pass the string to the request, while with the latter we have to read the blob content and base64 encode it before we can pass it to insertBase64Data:

    const boundary = '-------314159265358979323846';
    const delimiter = "\r\n--" + boundary + "\r\n";
    const close_delim = "\r\n--" + boundary + "--";

    function makeApiCall(authResult) {
    gapi.client.load('drive', 'v2', function() {
    if(window.webkitIntent) {
    var data =;
    if( == "Blob") {
    insertFileData(data, authResult, processResponse);
    else if(typeof(data) == "string") {
    var meta = {
    'title': "Test Image " + (new Date()).toJSON(),
    'mimeType': window.webkitIntent.type
    window.webkitIntent.type, meta, authResult);

    function insertBase64Data(data, contentType, metadata, authRequest,
    callback) {
    var multipartRequestBody =
    delimiter +
    'Content-Type: application/json\r\n\r\n' +
    JSON.stringify(metadata) +
    delimiter +
    'Content-Type: ' + contentType + '\r\n' +
    'Content-Transfer-Encoding: base64\r\n' +
    '\r\n' +
    data +

    var request = gapi.client.request({
    'path': '/upload/drive/v2/files',
    'method': 'POST',
    'params': {'uploadType': 'multipart'},
    'headers': {
    'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
    'body': multipartRequestBody});
    if (!callback) {
    callback = function(file) {

    function insertFileData(fileData, authRequest, callback) {
    var reader = new FileReader();
    reader.onload = function(e) {
    var contentType = fileData.type || 'application/octet-stream';
    var metadata = {
    'title': fileData.fileName,
    'mimeType': contentType

    var base64Data = btoa(reader.result);
    insertBase64Data(base64Data, contentType, metadata,
    authRequest, callback);

    Now, any web app that wants to save data to Google Drive could use this service instead of implementing the same functionality by invoking webkitStartActivity with a save intent.

    Triggering the Web Intent

    An example client app is This app lets users manipulate and save images, but has no direct Drive API integration. When the user invokes the “save” intent in, if they have the “Save to Drive” app installed they will see Drive as an option in the list of apps that can fulfill that action:

    If the user selects “Save to Drive”, the browser will send a request to the page listed as the href property of the intent declaration -- save.html in the sample manifest above. The following code shows how to trigger the save request:

    var fileData = canvas.toDataURL();
    var intent = new WebkitIntent({'action': '',
    'type':'image/png', 'data': fileData});
    var onSuccess = function(data) {
    // handle any data that might be sent back
    window.navigator.webkitStartActivity(intent, onSuccess);

    To learn more about the Web Intents check, and visit to learn about the Google Drive SDK. The complete sample described in this post is also available on

    Claudio Cherubino   profile | twitter | blog

    Claudio is an engineer in the Google Drive Developer Relations team. Prior to Google, he worked as software developer, technology evangelist, community manager, consultant, technical translator and has contributed to many open-source projects. His current interests include Google APIs, new technologies and coffee.

    Paul Kinlan   profile | twitter | blog

    Paul is a Developer Advocate on the Chrome Developer Relations team and one of the engineers on the Web Intents project. His main focus is to help developers make great apps on the web.


    [Gd] Beta Channel Update

    | More

    Chrome Releases: Beta Channel Update

    The Beta channel has been updated to 21.0.1180.55 for Windows, Mac, Linux and ChromeFrame platforms

    • Several crash fixes (Issues: 131310134574)
    • Can't press Enter to save to PDF (Issue: 137690)
    • Several Pepper Flash Fixes (Issues: 134615)
    • This build should also fix audio issues with flash, please let us know if you still experience audio problems
    • Chrome returns black screen with no logged errors on WebGL examples (Issue: 138088)
    • Chrome Extension dropdown menus corrupted for when compositing is enabled (Issue: 135382)
    • Fixed Websites do not render completely in Presentation Mode (Issue: 137336)
      More details about additional changes are available in the svn log of all revisions. 

      If you find new issues, please let us know by filing a bug at

      Karen Grunberg
      Google Chrome

      [Gd] Dev Channel Update for Chrome OS

      | More

      Chrome Releases: Dev Channel Update for Chrome OS

      The Beta channel has been updated to 22.0.1215.0 (Platform versions: 2650.0.0) for Chromebooks (Acer AC700, Samsung Series 5, and Cr-48). This release contains functional and stability improvements.

      Highlights of these changes are:
      • UI improvements on start and lock screens
      Known issues:
      • 32909 - Purchasing additional data for a Verizon 3G account is currently not functioning. Workaround: Contact Verizon to purchase additional data.
      • 32766 - Cr-48 machines will go through the out of box sign-up experience after this update, however all data and settings on the machine will be preserved.
      • 32906 - Cr-48 machines fail to save new users where the new user is created and the system is not restarted prior to the next autoupdate. Workaround: After creating a new user, reboot the system and check that the user still exists.
      • 32922Connected hidden network is unavailable immediately after resume. Workaround: Wait several seconds for the network to become available.
      • 32923OpenVPN with no-OTP does not allow login with a correct username/password.
      • 138967 - Photo editor will not complete edit actions.
      If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

      Danielle Drew

      Google Chrome

      [Gd] Google I/O 2012: Ready to relive the craziness?

      | More

      Google Developers Blog: Google I/O 2012: Ready to relive the craziness?


      By Monica Tran and Merci Niebres, Google I/O Team

      Thank you to the 5,500 developers who joined us in San Francisco, the 3.5 million who watched online, and the 350 I/O Extended viewing parties that came together at Google I/O this year. In case you missed it, we’ve condensed two keynotes, 130 sessions, 150 sandbox partners and three days into a short 3 1/2 minute video that captures the highlights from this year’s conference.

      Want to learn more about Nexus 7, or get the behind-the-scenes scoop on the Project Glass demo? Or maybe you just want to catch up on all 130 technical sessions on your way to becoming the ultimate renaissance Google developer. The archives of the event are posted at, but check out the links below to get a 360 degree recap of Google I/O 2012.

      We hope all this will tide you over for the next few months, but in case it doesn’t, connect with us year round via Google Developers Live, where you can ask questions, find inspiration and get your app reviewed by our developer advocates all around the world.

      Until next year!

      Monica Tran leads marketing for Google I/O and broader developer marketing programs at Google.

      Merci Niebres is Google I/O's executive producer and leads marketing events focused on developer outreach and special executive programs.

      Posted by Scott Knaster, Editor


      [Gd] Time to Wow the Judges: The Google Apps Developer Challenge is Ready for Submissions!

      | More

      Google Apps Developer Blog: Time to Wow the Judges: The Google Apps Developer Challenge is Ready for Submissions!

      Are you an expert in the Drive API or Google Apps APIs? Are you an expert in Google Apps Script? If you are, then you must have been busy coding away for the Google Apps Developer Challenge since its launch earlier last month.

      Now it’s time to wow the judges, as the Google Apps Developer Challenge is now open for submissions! If you would like to submit your application, please submit on the website using one of the three following categories:

      • Enterprise / Small Business Solutions e.g., Accounting, Sales, Workflow, Collaboration
      • Social / Personal Productivity / Games / Fun
      • Education / Not for Profit / Water / Food & Hunger / Health

      If you are not ready, don’t worry -- as you still have time. The submission deadline is 24 August 2012 at 23:59:59 PT. Remember to use the many resources available to you in order to get ready. Ask questions on the Google+ Office Hours and Google Developers Live. Read up on Apps Script and the Drive and Apps APIs on Google Developers. Review the latest updates since Google I/O as well as the pre-submission checklist. Post questions and comments using the hashtag #gappschallenge on Google+. Review, and most importantly, finalize your application!

      Best of luck!

      Chukwuemeka Afigbo profile | blog

      Chukwuemeka is a Program Manager at Google with the Emerging Markets Outreach team where he works closely with developers, startups, businesses and IT professionals in the region to successfully grow their business around Google Developer Tools and APIs. His current mission is to drive developer internet content in Sub Saharan Africa.


      Tuesday, July 24, 2012

      [Gd] Behold Google index secrets, revealed!

      | More

      Official Google Webmaster Central Blog: Behold Google index secrets, revealed!

      Webmaster level: All

      Since Googlebot was born, webmasters around the world have been asking one question: Google, oh, Google, are my pages in the index? Now is the time to answer that question using the new Index Status feature in Webmaster Tools. Whether one or one million, Index Status will show you how many pages from your site have been included in Google’s index.

      Index Status is under the Health menu. After clicking on it you’ll see a graph like the following:

      It shows how many pages are currently indexed. The legend shows the latest count and the graph shows up to one year of data.

      If you see a steadily increasing number of indexed pages, congratulations! This should be enough to confirm that new content on your site is being discovered, crawled and indexed by Google.

      However, some of you may find issues that require looking a little bit deeper. That’s why we added an Advanced tab to the feature. You can access it by clicking on the button at the top, and it will look like this:

      The advanced section will show not only totals of indexed pages, but also the cumulative number of pages crawled, the number of pages that we know about which are not crawled because they are blocked by robots.txt, and also the number of pages that were not selected for inclusion in our results.

      Notice that the counts are always totals. So, for example, if on June 17th the count for indexed pages is 92, that means that there are a total of 92 pages indexed at this point in time, not that 92 pages were added to the index on that day only. In particular for sites with a long history, the count of pages crawled may be very big in comparison with the number of pages indexed.

      All this data can be used to identify and debug a variety of indexing-related problems. For example, if some of your content doesn’t appear any more on Google and you notice that the graph of pages indexed has a sudden drop, that may be an indication that you introduced a site-wide error when using meta=”noindex” and now Google isn’t including your content in search results.

      Another example: if you change the URL structure of your site and don’t follow our recommendations for moving your site, you may see a jump in the count of “Not selected”. Fixing the redirects or rel=”canonical” tags should help get better indexing coverage.

      We hope that Index Status will bring more transparency into Google’s index selection process and help you identify and fix indexing problems with your sites. And if you have questions, don’t hesitate to ask in our Help Forum.

      Posted by , and, Webmaster Tools Team

      [Gd] Helping developers build more applications on Google BigQuery

      | More

      Google Developers Blog: Helping developers build more applications on Google BigQuery

      By Ju-kay Kwek and Amanda Bradford, Google BigQuery Team

      In May we launched Google BigQuery, a fully managed cloud-based service that enables businesses to analyze enormous amounts of data in the cloud. While we're continually amazed by the range of business problems being solved, we recognize that writing one-off scripts to ingest data, or creating custom front-end integration, requires effort and takes away time from the fun stuff: getting results.

      So today we're pleased to highlight a few new members of our Cloud Platform Partner Program that are here to help you be even more productive – by delivering tools integrated with BigQuery that make it much easier to automatically load data from a broad set of sources, as well as to analyze and visualize the data with spectacular dashboards.

      BigQuery partner logos

      Import data from multiple sources into BigQuery

      We’ve partnered with Informatica, Pervasive Software, Talend and SQLstream to make it easier to bring data from a variety of sources into BigQuery. This means you can use their BigQuery connectors to move data very easily from on-premise or cloud IT systems to BigQuery. For example, TribusPoint, a consulting firm, leveraged the Informatica Cloud BigQuery connector to rapidly move large files from their on-premise data centers to BigQuery.

      Build rich interactive dashboards on BigQuery

      We’ve partnered with data visualization providers QlikTech, Jaspersoft, Bime Analytics and Metric Insights to help you build rich, interactive dashboards for a broad range of customers. You can use their tools to build dashboards and reports very easily. For example, Pixelfish leveraged Metric Insights BigQuery integration to create dashboards that delivered a 300% improvement in customer engagement.

      Click the partner links above to see more specific customer examples of each. We have just scratched the surface on Google BigQuery. We can’t wait to see what other cool applications you can build on Google BigQuery using our APIs. Hack away!

      Ju-kay Kwek is the Product Management Lead for Google's Cloud Big Data initiative. In this role, he focuses on creating services that enable businesses and developers to harness Google's unparalleled data processing infrastructure and algorithms to tackle Big Data needs.

      Amanda Bradford works in Business Development at Google, driving strategic alliances and partnerships for Google and specializing in the Google Cloud Platform.

      Posted by Scott Knaster, Editor

      [Gd] Know What’s Loaded?

      | More

      YouTube API Blog: Know What’s Loaded?

      If you’ve ever developed a custom playback experience based on our Player API, you’ve probably used the getVideoBytesLoaded() and getVideoBytesTotal() methods to determine how much the current video is locally buffered and the size of the entire video. After obtaining this information, the next logical step is to divide the number of bytes loaded by the total number of bytes to obtain the fraction of the video that’s been buffered, which you can then display in your custom user interface.

      Instead of taking this two-step approach to calculate how much of a video has buffered, we encourage you to use the new getVideoLoadedFraction() method. It will return a numerical value between 0.0 and 1.0 that represents the same fraction obtained by dividing getVideoBytesLoaded() by getVideoBytesTotal(). While those two legacy methods still work today, they are now officially deprecated, as per the terms of our deprecation policy.

      getVideoLoadedFraction() allows us to expose more accurate information to your code about the state of the video that’s currently playing across a wider range of playback scenarios. When HTML5 <video> playback was used in the <iframe> Player, for instance, we previously had to return “fake” values for getVideoBytesLoaded() and getVideoBytesTotal(), as the true byte counts weren’t directly exposed via the <video> element. The value returned by getVideoLoadedFraction() should be correct for that and other playback scenarios that we roll out in the future.

      If you have any questions about the new method or anything else related to the YouTube APIs, please let us know in the developer forum.

      Jeffrey Posnick, YouTube API Team

      [Gd] GWT Support for Mobile App Development

      | More

      Google Web Toolkit Blog: GWT Support for Mobile App Development

      If you’re interested in using GWT to build mobile apps and mobile web apps from a single codebase, then you’ll want to take a good look at mgwt. The following is a guest blog post from Daniel Kurka, the creator of the mgwt library.

      Going mobile with mgwt and gwt-phonegap

      mgwt is a library for developing mobile apps and mobile websites with GWT using a single codebase. mgwt provides native-looking widgets and effects for most of the popular mobile platforms. It also comes with a ton of other useful features for building mobile apps. We’ve detailed some of them later on in the post.

      gwt-phonegap enables GWT apps to use Phonegap. With Phonegap, HTML5 applications can access the same device features that native apps can use via Javascript APIs, such as the camera, file system or contacts.

      With mgwt and gwt-phonegap, you can deploy your GWT applications to any app store that Phonegap supports (such as the Google Play Store or the Apple App Store), or let your users access them as a mobile-enhanced web applications. Both projects are licensed under the Apache 2.0 License, and are available from Maven Central.

      Some of the key features in mgwt and gwt-phonegap:

      • mobile widgets that are compatible with UiBinder and the Editor Framework

      • a DOM API for touch and animation events that corresponds to HTML5 and CSS3, and gesture recognizers built on top these APIs that detect the most common gestures on mobile devices

      • themes for iPhone, iPad, Android phones, Android tablets, and BlackBerry

      • auto-generated HTML5 offline manifest to support development of offline applications

      • in GWT’s development mode, gwt-phonegap emulates the Phonegap API, so that developers can debug and test Phonegap applications from within their IDE

      • support for GWT RPC in a Phonegap environment

      One of the most impressive things about mgwt is how closely the widgets and effects resemble their native counterparts on each specific platform.

      For example, this is how some of the widgets look on iOS and Android:

      mgwt is built for performance and uses many GWT core concepts to be as efficient as possible. As mobile app developers know, performance and efficiency are critcal.

      Both mgwt and gwt-phonegap are built by Daniel Kurka, who is one of the GWT Steering Committee members.

      Want to learn more? Check out the mgwt homepage and the blog. There’s also a 90-minute talk on mgwt presented at the Dutch Google Developer Group (GDG), and a post on Daniel’s blog with a more detailed description of mgwt’s features.


      mgwt homepage:
      mgwt talk:
      mgwt features:
      Daniel Kurka:

      [Gd] Dev Channel Update

      | More

      Chrome Releases: Dev Channel Update

      [Note: The Windows push has been halted, we've encountered an error w/ our installer that's prevent an update w/ Error 22. We are tracking the issue w/ bug 138658 and hope to update everyone soon.]

      The Dev channel has been updated to 22.0.1215.0 for Windows, Mac, Linux and Chrome Frame.  This build has an update version of V8 ( along with the following changes in the svn log.
      The Pepper Flash Player Plugin has been turned on by default on Mac OSX.
      You can find out how to change to the Dev channel, or any channel, on  If you find a new issue with this release, please shoot us a bug report.
      Anthony Laforge
      Google Chrome

      [Gd] Beta Channel Update for Chrome OS

      | More

      Chrome Releases: Beta Channel Update for Chrome OS

      The Beta channel has been updated to 21.0.1180.50 (Platform versions: 2465.82.0) for Chromebooks (Samsung Series 5, Samsung Series 5 550, and Cr-48) and Samsung Chromebox Series 3. This release contains functional, security and stability improvements. Machines will be receiving updates to this version over the next several days.

      Highlights of these changes are:

      • We re-designed the App list to work alongside your browser and apps
      • New connection manager
      • New Print UI - please see the blog post for more details
      • You can select your own custom wallpaper
      • Seccomp Flash sandbox
      • Security fixes

      Known issues:

      • 137273 Connecting to hidden networks fails when you try to connect to it for the first time
      • 31866 Unable to enable mobile data for locked SIM on y3300 and y3400 modems

      • 136864 Multiple options Disabled in the Certificate Manager.

      If you find new issues, please let us know by visiting our
      help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

      Josafat Garcia

      Google Chrome