Saturday, April 9, 2011

[Gd] Fridaygram

| More

The official Google Code blog: Fridaygram

This post is by Scott Knaster of Google Developer Relations. Scott works on technical docs at Google and is editor of this very blog. A Silicon Valley veteran, Scott enjoys listening to music, spending time with his family, and writing about himself in the third person.

If you’ve ever tried to make a big announcement on a Friday, you might have discovered that lots of people aren’t paying attention at the end of the work week. Like many organizations and blogs (although certainly not all), we’ve generally avoided publishing posts on Fridays. So what’s going on here?

Basically, I thought it would be fun to use Friday for publishing posts that are somewhat lighter in tone than our usual fare. After all, it’s Friday, and we don’t want to bum anybody out. I’m calling it a Fridaygram, because it’s always going to be on Friday (although not every Friday, I’m sure), and ‑gram because that means “something written or recorded”, plus it has a nice retro feel.

(For some reason I find myself thinking about Rebecca Black right now.)

Fridaygrams might include a look back at the week’s previous posts; maybe a couple of interesting curated links; possibly something new and interesting to geek out on over the weekend. We’ll see how it goes.

This week, the big news around here has been I/O Live. In case you missed the announcement yesterday, we’re going to livestream the keynotes as usual, but way cooler than that, we’re also livestreaming Android and Chrome sessions, with real-time captions on the streams. We also showcased some amazing Last Call for Google I/O contest winners and wrote about a test suite for web-based rich text editors.

And because you've read this far, here's a tip on something you can try: on your mobile phone, go to the web browser and do a Google search for tilt. Have fun with that one, share it with your friends, and thanks for reading.

Friday, April 8, 2011

[Gd] Our SEO Guide — now available in ten more languages

| More

Official Google Webmaster Central Blog: Our SEO Guide — now available in ten more languages

Webmaster Level: Beginner

We’re very glad to announce that our recently updated SEO guide is now available in ten more languages: Spanish, French, German, Russian, Turkish, Finnish, Swedish, Hungarian, Traditional Chinese and Simplified Chinese.

For this new version, we’ve thoroughly reviewed and updated the content; we’ve also added a brand new section on best practices for mobile websites.

You can download each PDF file in its full 32-page glory from and print it to have it as a useful resource.

Posted by Esperanza Navas and Mariya Moeva, Search Quality Team

[Gd] Changes in the Chrome user agent

| More

Official Google Webmaster Central Blog: Changes in the Chrome user agent

Webmaster Level: Intermediate to Advanced

The Chrome team is exploring a few changes to Chrome’s UA string. These changes are designed to provide additional details in the user-agent, remove redundancy, and increase compatibility with Internet Explorer. They’re also happening in conjunction with similar changes in Firefox 4.

We intend to ship Chrome 11 with these changes, assuming they don't cause major web compatibility problems. To test them out and ensure your website remains compatible with Chrome, we recommend trying the Chrome Dev and Beta channel builds. If you have any questions, please check out the blog post on the Chromium blog or drop us a line at our help forum.

Written by Peter Kasting, Software Engineer

[Gd] Introducing Page Speed Online, with mobile support

| More

Official Google Webmaster Central Blog: Introducing Page Speed Online, with mobile support

Webmaster level: intermediate

At Google, we’re striving to make the whole web fast. As part of that effort, we’re launching a new web-based tool in Google Labs, Page Speed Online, which analyzes the performance of web pages and gives specific suggestions for making them faster. Page Speed Online is available from any browser, at any time. This allows website owners to get immediate access to Page Speed performance suggestions so they can make their pages faster.

In addition, we’ve added a new feature: the ability to get Page Speed suggestions customized for the mobile version of a page, specifically smartphones. Due to the relatively limited CPU capabilities of mobile devices, the high round-trip times of mobile networks, and rapid growth of mobile usage, understanding and optimizing for mobile performance is even more critical than for the desktop, so Page Speed Online now allows you to easily analyze and optimize your site for mobile performance. The mobile recommendations are tuned for the unique characteristics of mobile devices, and contain several best practices that go beyond the recommendations for desktop browsers, in order to create a faster mobile experience. New mobile-targeted best practices include eliminating uncacheable landing page redirects and reducing the amount of JavaScript parsed during the page load, two common issues that slow down mobile pages today.

Page Speed Online is powered by the same Page Speed SDK that powers the Chrome and Firefox extensions and

Please give Page Speed Online a try. We’re eager to hear your feedback on our mailing list and how you’re using it to optimize your site.

Posted by Andrew Oates and Richard Rabbat, Page Speed team

[Gd] I think I’m having a Gene Amdahl moment (

| More

Android Developers Blog: I think I’m having a Gene Amdahl moment (

[This post is by Andy Rubin, VP of Engineering —Tim Bray]

Recently, there’s been a lot of misinformation in the press about Android and Google’s role in supporting the ecosystem. I’m writing in the spirit of transparency and in an attempt to set the record straight. The Android community has grown tremendously since the launch of the first Android device in October 2008, but throughout we’ve remained committed to fostering the development of an open platform for the mobile industry and beyond.

We don’t believe in a “one size fits all” solution. The Android platform has already spurred the development of hundreds of different types of devices – many of which were not originally contemplated when the platform was first created. What amazes me is that even though the quantity and breadth of Android products being built has grown tremendously, it’s clear that quality and consistency continue to be top priorities. Miraculously, we are seeing the platform take on new use cases, features and form factors as it’s being introduced in new categories and regions while still remaining consistent and compatible for third party applications.

As always, device makers are free to modify Android to customize any range of features for Android devices. This enables device makers to support the unique and differentiating functionality of their products. If someone wishes to market a device as Android-compatible or include Google applications on the device, we do require the device to conform with some basic compatibility requirements. (After all, it would not be realistic to expect Google applications – or any applications for that matter – to operate flawlessly across incompatible devices). Our “anti-fragmentation” program has been in place since Android 1.0 and remains a priority for us to provide a great user experience for consumers and a consistent platform for developers. In fact, all of the founding members of the Open Handset Alliance agreed not to fragment Android when we first announced it in 2007. Our approach remains unchanged: there are no lock-downs or restrictions against customizing UIs. There are not, and never have been, any efforts to standardize the platform on any single chipset architecture.

Finally, we continue to be an open source platform and will continue releasing source code when it is ready. As I write this the Android team is still hard at work to bring all the new Honeycomb features to phones. As soon as this work is completed, we’ll publish the code. This temporary delay does not represent a change in strategy. We remain firmly committed to providing Android as an open source platform across many device types.

The volume and variety of Android devices in the market continues to exceed even our most optimistic expectations. We will continue to work toward an open and healthy ecosystem because we truly believe this is best for the industry and best for consumers.


Thursday, April 7, 2011

[Gd] Bringing Google I/O direct to you with I/O Live

| More

The official Google Code blog: Bringing Google I/O direct to you with I/O Live

This post is by Monica Tran of the Google I/O Team. In the past four years, Monica has been around the world, working as a Product Marketing Manager in Mountain View, London, and Tokyo. But if you've been reading these little bios (and I hope you have) you knew that already from Monica's previous post! -scottk

(Cross-posted with the Official Google Blog.)

After Google I/O sold out in 59 minutes, we gave ourselves a challenge: bring I/O 2011 to as many developers as we could, even those who didn't have tickets to Moscone Center. So for those of you not joining us in San Francisco or at one of our I/O Extended viewing parties, visit on May 10-11 from the comforts of your own home, office or anywhere you have a reliable Internet connection for I/O Live.

I/O Live will bring all of the excitement at Moscone Center to our website, where the keynotes, sessions and Developer Sandbox will come to life for audiences all over the world. Starting on May 10, the Google I/O homepage will become the I/O Live dashboard, where you can:
  • Watch livestream video feeds from our two largest session rooms from 9:00 a.m PST to 6:00 p.m. PST during both days of the conference. This will include streaming of the keynotes, as in years past, as well as—new for 2011—the addition of sessions from Android and Chrome. We’ll also aim to post HD video recordings from sessions that are not livestreamed within 24 hours.
  • Read captions from the livestreamed sessions in real-time. Plus, to make sure all our content is accessible, all remaining videos will also be captioned. For international developers, captions will be machine translated to all languages that are supported by Google Translate.
  • Be one of the first to know by getting your news direct from the source. The latest announcements and news will be added to our I/O Live dashboard in real-time.
  • Submit your questions to our Sandbox developers. We'll post answers for the questions with the most votes.
In the coming weeks, we’ll update our Sessions and Sandbox pages with all the relevant information you’ll need to participate in I/O Live. In the meantime, visit our temporary I/O Live page, where you can get our new HTML5 badge to display on your website and let us know that you’ll be watching on May 10th and 11th.

This year is slated to be our largest Google I/O event to date. So whether you’re joining us in San Francisco, from an I/O Extended event, or even from the comforts of your own Shangri-La, we’re looking forward to seeing you at 9 a.m. PDT on May 10 as we count down to 00:00:00:00 and I/O Live.

Wednesday, April 6, 2011

[Gd] AdWords Position Preference feature is being retired

| More

AdWords API Blog: AdWords Position Preference feature is being retired

As part of the retirement of the Position Preference bidding feature, this feature can no longer be enabled via the AdWords API.

Starting tomorrow, calling CampaignService with BiddingStrategy ManualCPC.PositionPreference set to ON will return the error
This feature can still be used, however, to disable Position preference for a campaign.

Then, starting in May, the PositionPreference field will be disabled entirely, meaning that calling CampaignService with BiddingStrategy ManualCPC.PositionPreference set to any value will return the error BiddingError.POSITION_PREFERENCE_NOT_ENABLED. This change is timed to coincide with the removal of the feature from the AdWords web interface.

We appreciate your understanding and your continued support of AdWords.

As always, please post any questions to the AdWords API Forum

Posted by Stan Grinberg, AdWords API Team

[Gd] Opportunities tab optimization ideas now available through the AdWords API (beta)

| More

AdWords API Blog: Opportunities tab optimization ideas now available through the AdWords API (beta)

The Opportunities tab in AdWords can help you find keyword, bid, and budget ideas for your account. With each optimization idea, you’ll also see estimates for how the idea might affect your impressions, clicks, and cost. Until now, you had to log in to AdWords to view these custom optimization ideas. Now you can discover and use ideas from the Opportunities tab with the AdWords API.

This functionality is exposed using the new BulkOpportunityService. The BulkOpportunityService returns new keyword ideas that may help you capture more impressions and clicks, budget ideas that may help you get additional traffic for campaigns that are meeting their budgets, and bid ideas that may help you increase or decrease CPC bids to increase traffic or reduce costs.

Extend your current API tools with BulkOpportunityService
If you use the Adwords API to build tools to manage your complex or large AdWords account, you can now extend your tools to surface or use the ideas returned by the BulkOpportunityService. 

Your tools can display these ideas where they’re relevant. For example:
  • If you have a tool that allows the modification of keywords in an ad group, you might display the keyword ideas returned by the BulkOpportunityService as ideas for that ad group.
  • If you use a tool that allows changes to bids or budgets, you might also use bid ideas or budget ideas respectively and see the potential impact of those changes.
Make BulkOpportunityService calls for free during the beta period
Calling the BulkOpportunityService with a selector and a paging value, both specified in the BulkOpportunitySelector, will return a number of OpportunityIdeas that you can review and decide to accept or ignore on a case-by-case basis. For some examples on how to do this, look at the code samples provided with the client libraries.

If you want to make changes based on ideas you retrieved using the BulkOpportunityService, you can make these changes through existing Campaign Management services such as AdGroupService, CampaignService, etc.

We’ll be introducing the BulkOpportunityService as a beta over the next several days. Calls made to the service will be free during this beta period. We’ll post again to this blog when we are out of the beta period and will start charging.

After you’ve tried the BulkOpportunityService, please share your feedback and experiences on the API and the client libraries at the AdWords API Forum.

Posted by Umesh Unnikrisnan, Product Manager, AdWords

[Gd] Concurrency Management in the AdWords API

| More

AdWords API Blog: Concurrency Management in the AdWords API

Has a call from your application ever returned a CONCURRENT_MODIFICATION error but you can’t figure out why? Let’s look at concurrency management in the API to understand what might have happened.

The AdWords API uses an optimistic concurrency control mechanism.  When the server begins to process a request, it checkpoints the current state of the relevant account, then executes the business logic and validation rules in the request.  Before committing the requested change, the server again checkpoints the account. If the “before and after” checks don’t match, the server returns a concurrency error to ensure that the request doesn’t introduce data inconsistency.

A concurrency issue occurs when two different applications or two different instances or threads of the same application attempt to change a single piece of data at the same time. Let’s say that request1 and request2 both want to operate on the same original version of some data. If request1 changes the data first and is committed, request2 becomes invalid, because it’s trying to operate on data that is now out-of-date.

A concurrency issue doesn’t occur only when your application tries to modify an entity that’s changed during processing. A problem can also occur if the entity that your request modifies has a dependency on another entity that’s been changed.  For example, an ad group entity references a campaign. If your request modifies an ad group and the referenced campaign is modified while your request is executing, you’ll get an error.   

In an exception to this general rule, we’ve recently introduced the ability to make concurrent changes to some services, such as AdGroupCriterionService and AdGroupAdService. However, the principle still applies at the field level: field-level changes are exclusive to one request at a time.

In the past, you might have gotten a CONCURRENT_MODIFICATION error even when using a single-threaded application to modify one account at a time. The problem was likely due to background processing, such as approvals, which also modified the account’s entities. We’ve made some changes that should reduce the likelihood of these errors occurring

To summarize, when you get a concurrency error, consider whether the application has done one of the following:
  • Run multiple threads that attempted to modify the same entity
  • Modified an entity on which another entity is dependent 
As always, if you have more questions, feel free to post them to AdWords API Forum.

Posted by Dan H. and Nina Silk, AdWords API Team

[Gd] Bid simulator results have moved to the DataService

| More

AdWords API Blog: Bid simulator results have moved to the DataService

We introduced the BidLandscapeService in v201003 as a read-only service that allowed developers to retrieve the bid simulator results available for keywords, then extended it to include ad group results in v201008. Looking ahead we foresaw that additional forms of metadata would need to be exposed via the API, so we decided to consolidate these types of features into a single service: the DataService. Today the DataService provides the ability to retrieve bid simulator results and we plan to expand it to include other functionality in future versions of the API.

In addition to relocating the bid simulator feature to a new service, we updated it to support generic selectors. The returned objects haven't changed however, so much of your application logic can remain the same. It's also worth noting that while the BidLandscapeService had a single getBidLandscape() method which would return both criteria and ad group bid simulation results, the DataService has now broken this functionality out into two methods: getAdGroupBidLandscape() and getCriterionBidLandscape().

As a reminder, to get criteria bid simulation results using the v201008 BidLandscapeService you can use the following PHP code:

// Old v201008 code.
$selector = new CriterionBidLandscapeSelector();

$idFilter = new BidLandscapeIdFilter();
$idFilter->adGroupId = $adGroupId;
$idFilter->criterionId= $keywordId;
$selector->idFilters = array($idFilter);

$bidLandscapes = $bidLandscapeService->getBidLandscape($selector);

To accomplish the same task with the v201101 DataService use the following code:

// New v201101 code.
$selector = new Selector();

$selector->fields = array('AdGroupId', 'CriterionId', 'StartDate',
'EndDate', 'Bid', 'LocalClicks', 'LocalCost', 'MarginalCpc',

$adGroupIdPredicate =
new Predicate('AdGroupId', 'IN', array($adGroupId));
$criterionIdPredicate =
new Predicate('CriterionId', 'IN', array($criterionId));
$selector->predicates =
array($adGroupIdPredicate, $criterionIdPredicate);

$page = $dataService->getCriterionBidLandscape($selector);

Like with all generic selectors you must explicitly list all of the fields you wish to have returned, the names of which can be found in the documentation for CriterionBidLandscape (or AdGroupBidLandscape) and its sub-objects. Also notice that the functionality of the BidLandscapeIdFilter can be replicated by using a combination of predicates, which are always ANDed together.

If you have any questions about the DataService, or how to migrate your bid simulator code, reach out to us on the forum.

 - Eric Koleda, AdWords API Team

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

The Dev channel has been updated to 12.0.725.0 for Windows, Mac, Linux and Chrome Frame

  • Updated V8 -
  • Spring cleaning in the code, lots of code cleanup and refactoring under the covers
  • Continued work on tab multi-select
    Known Issues
    • 78475 Regression: Bidi Chrome UI lost directional diplay in menu and DOMUI and about: page functions
    • 78501 Regression: NACL apps are no longer working
    • 78509 Regression: Autofill fails on certain forms
    • 78073 Regression: Autocomplete sometimes pops up in the upper left corner
    More details about additional changes are available in the svn log of all revision.

     You can find out about getting on the Dev channel here:

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

    Anthony Laforge
    Google Chrome

    [Gd] Entrepreneurial Innovation at Google

    | More

    Google Testing Blog: Entrepreneurial Innovation at Google

    The April 2011 issue of Computer, the flagship publication of the IEEE Computer Society, features a cover article written by Alberto Savoia and Patrick Copeland (@copelandpatrick). The article, Entrepreneurial Innovation at Google, explores some of the ideas we use to encourage engineers to well, innovate. For a limited time you can see a digital version of the article on Computing Now – see

    Alberto & Pat

    [Gd] The SET Career Path

    | More

    Google Testing Blog: The SET Career Path

    By James Whittaker

    I've had a number of questions about the SET role and it seems I have confused folks when I say that the SWE is a tester and the SET is a tester and at the same time the SWE is a developer and the SET is a developer. What could possibly be confusing about that?

    Oh, yeah. Right.

    My next series of posts are going to detail the role of the SET and all will eventually be clear but some clarification on career path seems worthwhile.

    SETs are developers who write test code and automation as their primary task. They are in every sense of the word a developer. When we interview SETs, SWEs are on the interview loop and SWE questions are asked. They are not all of the interview, but they are part of it.

    This means that the skill set that our SETs possess makes them perfect candidates for switching to the SWE role. There is neither incentive nor deterrent to do so. SETs and SWEs are on the same pay scale and bonus structure (I have both roles reporting to me so I have real visibility into salary data) and their promotion velocity (again based on actual data) is roughly equivalent. This means that SETs have no outside influences to prompt them one way or the other.

    The key factor is really the type of work you are doing. SETs who find themselves involved in SWE work usually convert to SWE. SWEs are also drawn in the opposite direction. Much of this happens through our 20% time work. Any SET interested in SWE work can take on a 20% task doing feature development. Any SWE interested in automation can find a group and sign up for a 20%. Right now I have both SWEs and SETs involved in such cross pollination.

    The ideal situation is that the title reflects the actual work that you are involved in. So if an SET starts doing more feature dev work than automation, he or she should convert, same for SWEs doing automation work. In my time here, conversions in both directions have happened, but it is not all that common. The work of both roles is engaging, interesting and intense. Few Googlers are walking around bored.

    Bottom line: do the work you are passionate about and capable of and the right job title will find you.

    [Gd] Protecting users from malicious downloads

    | More

    Chromium Blog: Protecting users from malicious downloads

    [cross-posted on the Google Online Security Blog]

    For the past five years Google has been offering protection to users against websites that attempt to distribute malware via drive-by downloads — that is, infections that harm users’ computers when they simply visit a vulnerable site. The data produced by our systems and published via the Safe Browsing API is used by Google search and browsers such as Google Chrome, Firefox, and Safari to warn users who may attempt to visit these dangerous webpages.

    Safe Browsing has done a lot of good for the web, yet the Internet remains rife with deceptive and harmful content. It’s easy to find sites hosting free downloads that promise one thing but actually behave quite differently. These downloads may even perform actions without the user’s consent, such as displaying spam ads, performing click fraud, or stealing other users’ passwords. Such sites usually don’t attempt to exploit vulnerabilities on the user’s computer system. Instead, they use social engineering to entice users to download and run the malicious content.

    Today we’re pleased to announce a new feature that aims to protect users against these kinds of downloads, starting with malicious Windows executables. The new feature will be integrated with Google Chrome and will display a warning if a user attempts to download a suspected malicious executable file:

    Download warning

    This warning will be displayed for any download URL that matches the latest list of malicious websites published by the Safe Browsing API. The new feature follows the same privacy policy currently in use by the Safe Browsing feature. For example, this feature does not enable Google to determine the URLs you are visiting.

    We’re starting with a small-scale experimental phase for a subset of our users who subscribe to the Chrome development release channel, and we hope to make this feature available to all users in the next stable release of Google Chrome. We hope that the feature will improve our users’ online experience and help make the Internet a safer place.

    For webmasters, you can continue to use the same interface provided by Google Webmaster Tools to learn about malware issues with your sites. These tools include binaries that have been identified by this new feature, and the same review process will apply.

    Posted by Moheeb Abu Rajab, Google Security Team

    [Gd] New experimental APIs for Chrome extensions

    | More

    Chromium Blog: New experimental APIs for Chrome extensions

    In the latest Chrome beta release, we made available two new experimental extension APIs: the Web Navigation and Proxy Extension APIs. They are the first in a series of low-level APIs that allow extension and application authors integrate more closely with the user’s browsing experience. We're excited about these APIs and want to get them in front of developers early so we can receive their feedback on any additional needs.
    • The Web Navigation Extension API allows extension developers to observe browser navigation events. These events fire both for top-level navigation and in-page navigation. The API therefore allows an extension to keep track of exactly what page (or section thereof) the tab is showing, and how the user got there. We foresee a number of use cases for this API, including extensions that gather and present statistical or benchmarking data, safe-browsing extensions, and developer tools.
    • The Proxy Extension API closes one of our most popular feature requests, allowing users to configure Chrome’s proxy settings via extensions. Proxies can be configured for the entire browser or independently for regular and incognito windows. Configuration options range from setting a single proxy server to installing remote or even local PAC scripts. A sample extension demonstrates these capabilities.

    Sample extension showcasing individual proxy settings for normal and incognito windows.

    To try out these new APIs, please go to about:flags and enable “Experimental Extension APIs”. To protect our users' privacy, when these APIs reach the stable channel, extensions that use them will need to request explicit permission from users.

    Let us know if you create something cool with one of these APIs. If we like it, we may feature you in the extensions gallery.

    We’re looking forward to seeing what you’ll create!

    Posted by Dominic Battré, Software Engineer and Jochen Eisinger, Software Engineer

    [Gd] And the winners are...

    | More

    Google Web Toolkit Blog: And the winners are...

    The results have been tabulated and the winners are in! In Round II of the Last Call for Google I/O GWT contest, we asked contestants to implement a countdown clock in GWT similar to the official Google I/O countdown and received 48 entries from the US and Canada (regrettably, other countries were ineligible due to contest legal requirements).

    The three judges from the GWT team were very impressed with the overall creativity and productivity of the participants, with one of the winning entries coming in only seven hours into the 24-hr contest. We selected the top 10 entries based on originality, visual appeal, and performance, and used the size of the compiled Javascript as a tie-breaker in close calls. Here are a few of the judges' favorites:

    Eight of our ten contest winners provided a little info about themselves, so in no particular order, here they are. Congratulations to all!

    Towers of Hanoi

    Christopher Troup

    Santa Monica, CA, USA / Halifax, NS, Canada

    GWT experience: 2 years

    Web Application Developer for We use GWT in lots of ways ranging from full-scale GWT applications to progressive enhancement layers over traditional web applications.

    Conveyer Belt

    Pierre Coirier

    Boston, MA, USA

    GWT experience: 3 years

    Lead front-end developer at Xplana, working on new student learning platform that bridges social networking and the traditional elements of education (, creator of Mvp4g (MVP/Event bus framework for GWT)


    Brad Rydzewski

    Scottsdale, AZ, USA

    GWT experience: 3 years

    I'm a technology product manager at a large corporation during the day ... and enjoy caffeine-fueled nights working on my open source projects gwt-cal, gwt-touch and a gwt nintendo emulator


    [Editor's note: move the mouse to play]

    Brian Reilly

    Cambridge, MA, USA

    GWT experience: 20 months

    Software developer for a biomedical research institution using GWT to develop applications to track DNA sequencing projects.


    Yi Yang

    Edmonton, AB, Canada

    GWT experience: 1.5 years

    Software developer for a local startup (CorpAv Inc.). We build awesome flight-scheduling software with awesome GWT technologies. We built our application entirely on pure GWT without using any third-party UI library (e.g. Ext-Gwt, SmartGwt) and managed to make it visually-appealing and user-friendly.

    Word pixels

    John Ho

    Boston, MA, USA

    GWT experience: 2 years

    Web applications developer in the education software field. Our UI team primarily uses GWT for development.

    Domino clock

    James Wendel

    Austin, TX, USA

    GWT experience: 2 years

    Software developer for a network security company. Have used GWT to create small utilities for personal websites. I started out as a Java UI developer and moved into web application development with GWT.

    Source code:

    Jumping for Droids

    [Editor's note: move your mouse over the developers to excite them by directing Androids their way]

    Tom Burke

    Scottsdale, AZ, USA

    GWT experience: 2 years

    Developer at a large Dilbert-style corporation in the finance industry. Been using GWT a little bit at work, and quite a lot on hobby projects.

    Thanks again to all who participated!


    [Gd] GWT/GPE 2.3: Cloud Connecting Eclipse

    | More

    Google Web Toolkit Blog: GWT/GPE 2.3: Cloud Connecting Eclipse

    We’re not going to be shy about this, the GWT team loves tools and APIs that make developers' lives better. That’s why we’re happy to have reached an important milestone within the GWT 2.3 release, and are making the GWT 2.3 Beta available for public preview today. This release focuses on bringing Google Services and APIs directly into the Eclipse IDE, making it easier than ever to build fantastic apps using the GWT SDK and Google Plugin for Eclipse (GPE).

    Easy Discovery and Access to Google APIs

    The number of new APIs hosted by Google has been on the rise lately, and we think this is great for developers looking to add cool features to their apps, such as Google Maps overlays, Buzz streams, and Google Docs integration. To help developers build out these features, we’ve added the ability to browse and add Google APIs directly from Eclipse. Simply highlight a project and the select the “Google - Add Google APIs” menu item to get started.

    Import Projects from Project Hosting

    What developer tool would be cloud-enabled if it didn’t allow you to store your source code in the cloud? GPE 2.3 provides a simple UI that makes importing projects, from Project Hosting, into Eclipse a piece of cake. We’ve been eating our own dogfood for years, with Project Hosting being the home for GWT source, issue, tracking, wikis, and downloads, so we’re particularly excited to see this functionality within GPE.

    One Login, Many Services

    As we’ve increased the breadth of services that GPE is communicating with, we wanted to make sure that the user experience remained streamlined. To do so, we’ve included an option to specify your Google Account information only once (using the same authentication mechanisms as Gmail and Google Docs), and deploy to App Engine and import projects from Project Hosting as many times as necessary.

    Local Storage APIs

    One of the key differentiators between legacy desktop apps and modern web apps is their ability to access data quickly and continue to be usable offline. With the GWT 2.3 SDK we’ve included support for accessing Web Storage, leveling the playing field by allowing web apps to store and retrieve data locally. This is not only faster than typical RPCs, but more functional too, as it allows the app to access data even when there is no Internet connection.

    Along with this new set of features and functionality, we have a handful of issue fixes such as updated IE9 support and better iFrame loading within Internet Explorer. The full list of fixes can be found within the GWT issue tracker.

    If you're looking to get started, the Google Plugin for Eclipse, as well as other developer tools, can be downloaded here.

    As always, if you have any feedback, we’d love to hear it and the GWT Groups is the right place to submit it.

    Posted by Chris Ramsdale,


    Tuesday, April 5, 2011

    [Gd] And the glory goes to...Last Call for Google I/O winners

    | More

    The official Google Code blog: And the glory goes to...Last Call for Google I/O winners

    This post is by Monica Tran of the Google I/O Team. In the past four years, Monica has been around the world, working as a Product Marketing Manager in Mountain View, London, and Tokyo. Now that she's come full circle to Developer Marketing, she is focused primarily on Google I/O and our international Developer Days. -scottk

    It seems like only yesterday that we announced our Last Call for Google I/O contest. We’ve been keeping busy, judging Round 2 submissions for all 10 of our challenges. The winners have been notified via email and will receive a pass to this year’s sold-out Google I/O. Also, all of the Round 1 answers, as well as Round 2 prompts have been posted to the contest site.

    We were really impressed with the quality of the submissions--especially with less than 24 hours to turn the code around! Check out screenshots of some of the winning entries below, along with notes from members of each Google Developer Relations group, and stay tuned for more surprises from the I/O team.


    Judging was easy for the Android challenge, because our first run through the apps produced a total of exactly 10 places where the reviewer said “Nice!”. Above you see a screenshot of the “Party mode” in Charles Vaughn’s “Bounce Clock”. Read about the details on our Android Developers Blog.

    - Tim Bray, Android Developer Advocate


    (Click a doodle to go to its site and interact.)

    We received a lot of nifty doodles and it was tough to pick only ten winners. Some of the particularly fun doodles were interactive or involved a game of some sort (like Pong, or Simon with the Chrome logo). We definitely appreciated being able to view the source code of the web page to see how developers took advantage of the latest HTML, CSS, and JS technologies.

    - Jeffrey Chang, Chrome Product Manager


    (Click a screen shot to play a game.)

    Congratulations to everyone who knew the Konami code and somehow managed to recall that Kuribo’s Shoe is only found on one stage of World Five in Super Mario Bros. 3...and after remembering all that, were still able to write a game in only 24 hours. Apparently playing video games as a kid doesn’t rot your brain as much as our moms said it would.

    Almost all of our submissions were fun, technically impressive, or both. The judges were video game industry veterans, so we weren’t wowed by flashy graphics alone. We tried to reward a balance of fun gameplay and technical prowess. Some of the games were actually pretty addictive!

    - Ian Lewis, Games Developer Advocate


    We saw some great submissions that put the new iframe Player API through its paces! The winning submissions offered a mix of cross-browser compatibility, stylish user interface, and the ability to reuse the player for arbitrary sequences anywhere on the web.

    - Jeffrey Posnick, YouTube Developer Advocate


    Our Google Apps challenge was built around Google Apps Script, a JavaScript cloud scripting language that allows developers to automate tasks across Google products and interact with 3rd-party APIs. In round 1, we asked contestants to find the median stock price of stock symbols. Round 2 was a fairly open challenge, and the winning submissions performed tasks such as predicting future traffic accidents on Google Maps, producing a daily meeting agenda using Google Calendar and LinkedIn, and sharing Flickr pictures via e-mail to friends and family.

    - Ryan Boyd, Google Apps Developer Advocate


    We enjoyed seeing how much the ten top entries were able to achieve in such a short time in developing a caption rating app for YouTube (at least one dedicated tweeter pulled an all-nighter). Our top picks really impressed us with the accessibility and polish of their UI. All of them have TalkBack speech support through the Android Accessibility API. Most of the winners have already published and open sourced their work. If these apps inspire you, take a look at the source and contribute!

    - Naomi Black, Accessibility Technical Program Manager


    They say that great minds think alike, and in the case of Google Commerce, our developers created similar mashups. A simple store based on Google Product Search and Google Checkout could be a powerful tool for mom and pop shops. We hope our developers had fun learning about the commerce products that Google offers.

    - Ossama Alami, Commerce/Geo Developer Relations


    We asked developers to create a mobile web application to discover interesting walks around San Francisco. We had some really impressive entries, especially given they were developed in a very short timeframe.

    - Ossama Alami, Commerce/Geo Developer Relations

    Google Web Toolkit (GWT)

    We were very impressed with the creativity and performance of the I/O countdown entries. All of the submissions were great examples of what is possible with GWT and HTML5/CSS3. It was an extremely tight competition that came down to tough decisions based on originality, visual appeal, and the size of the resulting JavaScript.

    - Chris Ramsdale, GWT/Developer Tools Program Engineer

    App Engine

    Developers submitted a simple Fibonacci web app in Round 1, where the key was to demonstrate that you correctly handled bad input. We were amazed at the apps that were submitted for Round 2, where we asked developers to create an interesting app using one or more of several App Engine APIs. From making book recommendations to visualizing author impact on PubMed (a favorite of mine, my wife being an academic in medicine), we found many apps useful, well designed, and often quite elaborate.

    - Patrick Chanezon, App Engine Developer Relations

    Congratulations from the entire Google I/O team to the winners of all the challenges. The bar was quite high and even if you didn’t win, we hope you learned something while building your applications. We encourage you to hone your skills for challenges to come!


    [Gd] Grading Made Easy using Apps Script

    | More

    Google Apps Developer Blog: Grading Made Easy using Apps Script

    Editor’s Note: Guest author Dave Abouav is a Google employee who is a part-time instructor for a night class in physics. He created Flubaroo as a 20% time project at Google based on his own teaching experiences.

    As an instructor for a night class in physics at De Anza Community College, I didn't have enough time to grade assignments. Because it was a survey course, multiple choice assignments seemed like a viable option. So I used Google Forms to collect homework assignments. But I needed a way to grade the collected submissions and perform some useful analysis. The idea for Flubaroo was born and is now ready to share with other teachers thanks to Google Apps Script!

    Flubaroo is designed as a simple grading solution for teachers using existing tools they're already comfortable with. It allows automated grading of quizzes and assignments administered via Google Forms. Beyond just grading, Flubaroo also provides analytics such as a histogram of grade distribution and identification of questions that many students missed. Flubaroo’s most popular feature is its ability to email each student their grade, along with the answer key if desired.

    Here are the key reasons I chose Google Apps Script to implement Flubaroo:
    1. I wanted to build a simple application which can be easily integrated with Spreadsheets without the need to compile and deploy code.
    2. I liked its ability to integrate right into the spreadsheet as a menu, easily giving teachers access to all of Flubaroo's features.
    3. Apps Script provided UI Services which allowed me to build UI applications very easily from within a browser. I did not have to install complex tools to create a UI.
    4. Apps Script Services makes it very easy to integrate other Google APIs such as Google Charts API for the grade histogram.
    5. A JavaScript syntax is easy to program and without the need to learn more complex languages like Java and Python.
    6. Apps Script gave me the ability to easily share my grading technique with other teachers through the Apps Script Gallery. It is very easy for anyone to install the Flubaroo script in their Apps Script editor.

    It was easy to get started with Apps Script, and the examples already provided in the Apps Script Documentation further helped me get it working quickly. Flubaroo is about 2300 lines of code. I used Spreadsheet Services to process and grade assignment submissions. I extensively used Ui Services to create the grading flow. In addition, Flubaroo makes use of the Google Chart API to create the grade distribution chart. Integration with Apps Script with Google Chart API was very easy. Below is an example of the types of charts I was able to generate using Apps Script’s integration with Google Chart API.

    One of the great features of Apps Script is the availability of Triggers and Events. Events helped me provide a menu to the users. I created an onOpen function which installed a menu on the spreadsheet every time the spreadsheet is opened by a user. This allows users a menu based access to the various functions in the script.

    If you’d like to give it a try then please install the script from the Apps Script gallery. You can also visit Flubaroo website to go through a full tutorial of the script. Thanks to Apps Script, grading assignments is no longer a chore for me.

    Posted by Dave Abouav, Googler

    Want to weigh in on this topic? Discuss on Buzz


    [Gd] Live Gadget Previews in the iGoogle Directory

    | More

    iGoogle Developer Blog: Live Gadget Previews in the iGoogle Directory

    The iGoogle Gadget Directory just got better. Users can now interact with a gadget in the directory before adding it to their page. Have a look at a couple examples like the Google News or Google Hot Trends gadgets.

    Your gadgets can have live previews too. Gadgets that use Content view="default" already have a live preview in the gadget directory. Remember, view="default" can match any view supported by the container. Similarly, if the Content element in a gadget doesn't specify the view attribute, that's treated the same as if view="default" were present. Up until now, the only views that were supported on iGoogle were home and canvas; remember, home is the smaller version and canvas is the larger version.

    Some gadgets are customized to display differently for the home and canvas views. If your gadgets do this, you can update the gadget XML spec to add a unique view for the preview or reuse an existing content element.

    For gadgets with an element <Content view="home,canvas">
    In this case you can just add preview, so you'll have view="home,canvas,preview".

    For gadgets with <Content view="home">
    Here too, you can reuse the home view for the preview by changing your spec to view="home,preview".

    There are some other restrictions on the way the preview works. A preview can't use OpenSocial calls - since the user hasn't set the OpenSocial permissions before installing the gadget. You may want to address this in your gadget by making a special preview version that uses some dummy data, or you can opt out of the live preview and stick with a static screenshot.

    Like all gadget views, the preview is cached. This reduces load and speeds up serving for users. But if you're working on your gadget and don't see a recent change in the preview, you can disable caching temporarily by adding the parameter "nocache=1" to the url.

    Gadgets displayed as a preview also can't navigate to other views using requestNavigateTo(). If your gadget has a link that triggers changing the view it won't work in the preview.

    If you feel a preview isn't the right choice for your gadget then specify the other views (home & canvas) and be sure that your screenshot does a good job of conveying what your gadget will do for users.

    As always, come to the iGoogle Developer Forum to talk about live gadget previews with other iGoogle developers.

    Posted by Rob Russell, Developer Relations

    [Gd] Beta Channel Update

    | More

    Google Chrome Releases: Beta Channel Update

    The Beta channel has been updated to 11.0.696.34 for Macintosh, Windows, Linux and Chrome Frame platforms

    The following bugs were fixed
    • Duplicate desktop icon is created using First Run UI even if it's present (Issue 5073).
    • FLACEncoder::Encode has mismatched free (Issue 77653).
    • Switch from using Speex to FLAC for speech input requests (Issue 61677).
    • Chrome hangs on form submit with lots of stored Autofill profiles (Issue 75862).
    • Browser crash if tab is closed while page is being downloaded (Issue 76963).
    You can find full details about the changes that are in this version of Chrome 11 in the SVN revision log.

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

    Want to change to another Chrome release channel? Find out how.

    Karen Grunberg
    Google Chrome