Saturday, December 11, 2010

[Gd] Webmaster Tools’ Holiday Update

| More

Official Google Webmaster Central Blog: Webmaster Tools’ Holiday Update

Webmaster Level: All

Just in time for the holidays the Webmaster Tools team has updated the "Search queries" and "Links to your site" features.

Search queries with top pages:
Throughout the past year we’ve made some significant changes to the search queries feature in Webmaster Tools. We've received lots of feedback about this tremendously popular feature. One frequent request we heard was that people wanted to be able to see search queries data for their site’s individual pages. Well we totally agreed that this would be useful and promptly set out to add this functionality to search queries. The fruits of our effort have finally ripened enough on the vine and are ready for you to enjoy. Now when you visit the search queries feature in Webmaster Tools you'll see a new tab titled "Top Pages". The "Top Pages" tab lists impression, click, and position data for the top pages on your site based on their performance in Google's search results.

If you click on one of the individual pages listed you’ll see a list of the queries driving traffic to that page along with impressions and number of clicks for each query.

Just like in the "Top queries" view, you can click on a specific query to see more detailed data and evaluate how the query is performing across the whole site.

To make filtering in search queries even easier, we've added pie charts to show visually the proportions of search type, location and traffic. Also in the "Top queries" view, you can now specify “containing” or “not containing” when filtering queries.

Links to your site with intermediate links:
Links to your site now shows when a particular URL redirects. If there's a link to your site that links to URL1 which then redirects to URL2, we are now showing the link from URL1 to URL2 as an intermediate link. We also added a "Download all links" option to all the tables in the links to your site feature.

Now that you know about these updates, please take a few minutes to check them out for your site. We hope it will provide you with a little bit of extra joy this holiday season. Let us know what you think by submitting a comment here or posting in our Webmaster Help Forum. Happy Holidays from the Webmaster Tools team!

Posted by Jonathan Simon, Webmaster Trends Analyst

[Gd] Android Market Client Update

| More

Android Developers Blog: Android Market Client Update

[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]

The Android Market engineering team has been hard at work on improving the Android Market experience for users and developers. Today, I’m pleased to announce a significant update to the Android Market client. Over the next two weeks, we’ll be rolling out a new Android Market client to all devices running Android 1.6 or higher.

This new Market client introduces important features that improve merchandising of applications, streamline the browse-to-purchase experience, and make it easier for developers to distribute their applications.

With a focus on improving discoverability and merchandising, we’ve introduced a new carousel on the home and category screens. Users can quickly flip through the carousel to view promoted applications and immediately go to the download page for the application they want. Developers have been very active in creating great Widgets and Live Wallpapers. To make it easier for users to find their favorites, we’re introducing two new categories for Widgets and Live Wallpapers. Applications that include Widgets and Wallpapers will be automatically added to those new categories. We’ll also be adding more categories for popular applications and games in the weeks ahead. In addition, the app details page now includes Related content, which makes it easier for users to quickly find apps of similar interest.

To streamline the browse-to-purchase experience, users can now access all the information about an application on a single page without the need to navigate across different tabs. We’re also introducing application content rating to provide users with more information about applications they are interested in. Since most users who request a refund do so within minutes of purchase, we will reduce the refund window on Market to 15 minutes. This change will be largely transparent to buyers, but will help developers manage their businesses more effectively.

To make it easier for developers to distribute and manage their products, we will introduce support for device targeting based on screen sizes and densities, as well as on GL texture compression formats. We are also increasing the maximum size for .apk files on Market to 50MB, to better support richer games.

With this release, we aimed to deliver features that are most requested by users and developers. However, we’re not done yet. We plan to continue to rapidly enhance Android Market for both users and developers and make it the best content distribution service for the Android ecosystem.

Please stay tuned as we continue to deliver new capabilities in the coming weeks and months.


[Gd] Webinar Tomorrow

| More

Google Testing Blog: Webinar Tomorrow

By James Whittaker

uTest informs me that the planned webinar tomorrow (see my post below) is a record setter for pre-registration. I hope everyone shows up.

Last time I set a uTest record was the number of people who read my interview on their blog, only to have that record broken by Pat Copeland. I hate losing to Pat Copeland.

So I am upping the ante with a bribe. I am offering signed books and totally wicked Google testing t-shirts to the folks who ask the best questions at the end of the talk.

I know what you're thinking. Ain't it sad that Kentucky boy has to resort to bribes to beat Pat Copeland.

You're right and I don't care. This is about WINNING.

[Gd] Chrome OS Pilot Program Announced

| More

Google Testing Blog: Chrome OS Pilot Program Announced

By James Whittaker

If you've heard me speak anytime over the past year you have heard me talk about Chrome OS and how we are testing it. Well, we're not done testing it but we are announcing a pilot where you, yes you, can get one of the initial sets of new hardware with Chrome OS pre-installed. The hardware is called Cr-48 (a chromium isotope, how nerdy is that?) and is available in very limited numbers.

How do you get one? Glad you asked. Go here and tell us why you are an ideal candidate to give it a test drive and provide us with feedback! It's that simple/hard and I would love to see some of these in the hands of the many hardcore testers who read this blog.

Friday, December 10, 2010

[Gd] A fresh look for Google Project Hosting

| More

Google Code Blog: A fresh look for Google Project Hosting

Simplicity is key to longevity. Since we launched in 2006, even as we’ve added new features, we’ve had very little desire to change our user interface. It’s simple, it’s clean, it’s quick -- and as engineers, we like it.

However, the look of other Google products has evolved significantly in the last four years. Rounded corners, for example, are not used as aggressively as they used to be. Therefore, we’ve pushed out a small set of changes that update the style of our pages.

Take a look at the project creation page, project pages, and user profile page and give us your feedback. We look forward to hearing what you think.

By Ali Pasha, Google Project Hosting

[Gd] Richer photo support in the Google Buzz API

| More

Google Code Blog: Richer photo support in the Google Buzz API

You’ve already been able to simply include a photo in a Google Buzz post using the Buzz API. Today we’re making it much easier to add photos to Buzz posts. Additionally, using Picasa as the photo repository, you’ll now be able to wield the Buzz API to take all sorts of other actions on behalf of the user:

  • Create a new album
  • Get an album
  • Update an album’s metadata
  • Delete an album
  • List a user’s albums
  • Upload a new photo
  • Get a photo
  • Update a photo’s metadata
  • Delete a photo
  • List a user’s photos

Accessing a photo entry through the Buzz API is just as easy as getting an activity. The form for retrieving an activity is:{userId}/@self/{activityId}

With just a few alterations, we get the form for retrieving a photo:{userId}/@self/{albumId}/@photos/{photoId}

With live data, it would look like the following URL:

Browse to that address and you’ll get data that will point to this Picasa photo:

(Photo by Julie Farago, used under the Creative Commons Attribution Non-Commercial Share-Alike license)

The read-only endpoints will return public data without authentication. For authenticated access to the photos endpoints, you must be granted an OAuth token for the user with both the Buzz and Photos API scopes. For existing users, you will need to discard the OAuth tokens scoped to the Buzz API and request authorization to both scopes. More details can be found on the Google Buzz API documentation site.

Photos are an essential part of social applications. We expect these new capabilities will allow you to enrich your user’s experience with a minimum of fuss. As always, please swing by the Developer Forum to let us know what you think. And if you haven’t already, start using the APIs console to track your API usage and other coolness.

By Todd Volkert, Google Buzz Team

Thursday, December 9, 2010

[Gd] Saving Data Safely

| More

Android Developers Blog: Saving Data Safely

With the advent of Gingerbread, we’re going to be running a series of posts in this space about the aspects of Android 2.3 that developers should care about. One thing that developers should care about more than anything else is not losing data. The rules are changing slightly as Gingerbread arrives, so I thought that would be a good starting point. I didn’t write this; I pulled it together from the contents of an email thread involving Android engineers Brad Fitzpatrick, Dianne Hackborn, Brian Swetland, and Chris Tate.

The question is: how do you make really sure your data’s been written to persistent storage? The answer involves a low-level system call named fsync(). Old C programmers like me mostly learned this the hard way back in the Bad Old Days; in 2008 at OSCON I immensely enjoyed Eat My Data: How Everybody Gets File IO Wrong by Stewart Smith; I've included a picture I took of one of his slides.

The reason this should be of concern to Android developers is that with 2.3, an increasing proportion of devices, notably including the Nexus S, are going to be moving from YAFFS to the ext4 filesystem, which buffers much more aggressively; thus you need to be more assertive about making sure your data gets to permanent storage when you want it to.

If you just use SharedPreferences or SQLite, you can relax, because we’ve made sure they Do The Right Thing about buffering. But if you have your own on-disk format, keep in mind that your data doesn't actually consistently reach the flash chip when you write() it or even when you close() it. There are several layers of buffering between you and the hardware! And because of ext4 buffering policy, any POSIX guarantees that you thought you had before (but actually didn't), you especially don't have now.

Some Android devices are already running non-YAFFS filesystems, but as we brought up the Nexus S, buffering issues have actually bitten us a couple of times in framework code. When the Gingerbread source code becomes available, you’ll find lots of examples of how file I/O should be done.

To start with, for raw data consider using one of the synchronous modes of, which take care of calling fsync() for you in the appropriate way. If you can’t, you’ll want Java code that looks something like this.

     public static boolean sync(FileOutputStream stream) {
try {
if (stream != null) {
return true;
} catch (IOException e) {
return false;

In some applications, you might even want to check the return status of the close() call.

Now of course, there are two sides to this story. When you call fsync() and force the data onto storage, that can be slow; worse, unpredictably slow. So be sure to call it when you need it, but be careful not to call it carelessly.

Background reading if you want to know more:


[Gd] Announcing Chrome Developer Plugin support for Mac and Linux

| More

Google Web Toolkit Blog: Announcing Chrome Developer Plugin support for Mac and Linux

One of the features that makes GWT unique is the ability to run your application in the browser of your choice, and debug your Java source in the IDE. While the “browser of your choice” portion of the feature has been quite true for Windows users, our Developer Plugin support has had some gaps. Today we’re happy to close some of these gaps, by announcing the release of a Chrome Developer Plugin for Mac and Linux users.

To download and install the new plugin, simply start debugging your GWT application and point Chrome at the URL provided by the Google Plugin for Eclipse. From there you’ll be prompted to install the “GWT Developer Plugin for Chrome”.

You can also browse directly to the following URL for installation:

In addition to the new OS support, there is an important security fix included in this update. You will see the GWT icon appear in your browser bar when the plugin sees the ?gwt.codesvr fragment in a URL, and it will turn black and white if you need to authorize that host. If you see a full-color icon, that indicates your permissions are in order. You can click the icon to quick-jump to the permissions configuration.

Note to Windows users: we have created a new permissions UI that is baked into the extension rather than using native Windows dialogs. You will need to re-add any hosts you had configured for this new version.

For more information regarding security and the GWT Developer Plugin, checkout the plugin design wiki page, here.

If you have questions or want to provide some feedback, we’d love to hear it, and the best place to do so is at the Google Web Toolkit Group.


[Gd] [Libraries][Update] jQueryUI 1.8.7

| More

Google AJAX API Alerts: [Libraries][Update] jQueryUI 1.8.7

jQueryUI has been updated to 1.8.7

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

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

  • Primarily stability fixes and minor UI tweaks, no new features or functionality have been added.
Known Issue:
  • Regression: Certain sites fail to render the first time.  The temporary workaround is to re-load the page. (Issue: 65376)
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

Wednesday, December 8, 2010

[Gd] New version of .Net Gdata client library

| More

Google Apps Developer Blog: New version of .Net Gdata client library

We just released version 1.7 of the .NET GData client library which adds support for two extensions of the Google Apps Provisioning API: Organization Units and Multiple Domains. It also adds a default retry count for failed HTTP requests and fixes a set of issues, including one on the implementation of the ResumableUploader component introduced in the previous version.

For the complete list of changes, check the Release Notes:

The new version of the .NET GData client library can be downloaded from and, as usual, you are invited to report issues of file feature requests at

Posted by Claudio Cherubino, Developer Relations Team

Want to weigh in on this topic? Discuss on Buzz


[Gd] Expanding the Google Apps Reporting API for resellers

| More

Google Apps Developer Blog: Expanding the Google Apps Reporting API for resellers

(Cross-posted from the Google Enterprise Blog)

The Google Apps Reporting API lets administrators to programmatically get information about their Google Apps environment, and today we're expanding access to the API for Google Apps Authorized Resellers. Resellers can use the API to gain a better understanding of how their customers are using Google Apps, so they can better personalize the service they provide to their customers.

Specifically, resellers can retrieve the following usage reports with the API:
  • Accounts – Contains a list of the customer’s end-user accounts on a particular day.
  • Activity – Identifies the number of customer end-user accounts as well as the number of active and idle accounts over several different time periods.
  • Disk Space – Shows the amount of disk space used by a customer’s mailboxes.
  • Email Clients – Identifies how the customer’s end-users access their accounts on a day-by-day basis.
  • Summary – Contains the customer’s total number of accounts, total mailbox storage usage and total mailbox quota.
The Reporting API is one of several features we’ve been working on to let Google Apps resellers -- over 2,000 and growing -- understand and serve their customers better. If you’re an IT solution provider, we invite you to learn more and get started building a practice around bringing Google Apps to your customers. The Google Apps Authorized Reseller program is designed to help you enhance and strengthen your customer relationships.

Posted by Namrata Gupta, Google Apps Engineer

Want to weigh in on this topic? Discuss on Buzz


Tuesday, December 7, 2010

[Gd] A New Crankshaft for V8

| More

Chromium Blog: A New Crankshaft for V8

Today we are introducing Crankshaft, a new compilation infrastructure for V8, Google Chrome’s JavaScript engine. By using aggressive optimizations, Crankshaft dramatically improves the performance of compute-intensive JavaScript applications - often by more than a factor of two! This will give users a faster and more responsive experience loading web pages and applications built with complex JavaScript. Here is a comparison of Chrome with and without Crankshaft on the V8 benchmark suite:

The benchmarks that benefit the most from Crankshaft are Richards, DeltaBlue and Crypto. This shows that we have taken the performance of JavaScript property accesses, arithmetic operations, tight loops, and function calls to the next level. Overall, Crankshaft boosts V8’s performance by 50% on the V8 benchmark suite. This is the biggest performance improvement since we launched Chrome in 2008.

In addition to improving peak performance as measured by the V8 benchmark suite, Crankshaft also improves the start-up time of web applications such as GMail. Our page cycler benchmarks show that Crankshaft improves the page load performance of Chrome by 12% for pages that contain significant amounts of JavaScript code.

Crankshaft uses adaptive compilation to improve both start-up time and peak performance. The idea is to heavily optimize code that is frequently executed and not waste time optimizing code that is not. Because of this, benchmarks that finish in just a few milliseconds, such as SunSpider, will show little improvement with Crankshaft. The more work an application does, the bigger the gains will be.

Crankshaft has four main components:
  1. A base compiler which is used for all code initially. The base compiler generates code quickly without heavy optimizations. Compilation with the base compiler is twice as fast as with the V8 compiler in Chrome 9 and generates 30% less code.
  2. A runtime profiler which monitors the running system and identifies hot code, i.e., code that we spend a significant amount of the time running.
  3. An optimizing compiler which recompiles and optimizes hot code identified by the runtime profiler. It uses static single assignment form to perform optimizations such as loop-invariant code motion, linear-scan register allocation and inlining. The optimization decisions are based on type information collected while running the code produced by the base compiler.
  4. Deoptimization support which allows the optimizing compiler to be optimistic in the assumptions it makes when generating code. With deoptimization support, it is possible to bail out to the code generated by the base compiler if the assumptions in the optimized code turn out to be too optimistic.
V8 with Crankshaft for the 32-bit Intel architecture is available today in the V8 bleeding edge repository and in canary builds of Chrome. Work on the ARM and 64-bit ports has started.

We are excited about the JavaScript speed improvements we are delivering with Crankshaft today. Crankshaft provides a great infrastructure for the next wave of JavaScript speed improvements in V8 and we will continue to push JavaScript performance to enable the next generation of web applications.

Kevin Millikin, Software Engineer and Florian Schneider, Software Engineer

[Gd] [Libraries][Update] WebFont 1.0.17

| More

Google AJAX API Alerts: [Libraries][Update] WebFont 1.0.17

WebFont has been updated to 1.0.17

[Gd] Become an OpenSocial Board Member! Nominations are open!

| More

OpenSocial API Blog: Become an OpenSocial Board Member! Nominations are open!

As President of OpenSocial, I'm pleased to announce that the nominations for the Community Elected Board seat are now Open! The nomination period will run from December 6, 2010 through Jan 9, 2011, when voting will commence.

Anyone OpenSocial member is able to serve on the board. The only requirement to nominate or hold the position is that you must be a member of the OpenSocial Foundation. There are no membership fees to join OpenSocial. All you need to do is fill out a simple on-line membership application.

Posted by Mark Weitzel, President, OpenSocial Foundation

[Gd] Calling .Net developers!

| More

OpenSocial API Blog: Calling .Net developers!

Myspace has always been committed to open standards and the open Internet. The Myspace Developer Platform team is taking the next logical step and will be open sourcing our internally developed Myspace OpenSocial Gadget container. Now there will be a high quality and highly scalable .Net implementation of an OpenSocial Gadget container available to the community. This will provide an excellent complement to the Java and PHP based containers developed by the Shindig project as we continue to support OpenSocial as one of the foundational building blocks of the open web.

Posted on behalf of Chris Cole, Principal Software Architect, MySpace Developer Platform by Mark Weitzel, President, OpenSocial Foundation

Monday, December 6, 2010

[Gd] Highlights from Google Developer Day 2010

| More

Google Code Blog: Highlights from Google Developer Day 2010

With our 3 Google Developer Days in Munich, Moscow and Prague last month, we wrapped up “GDD season” this year. It was great to meet many of you in person, and we’re happy to see all of the positive responses via your tweets and blog posts. Participating in the events was a great way to update you on where we are in our product development as well as to hear your feedback.

Here is a 3-minute highlights video and a short summary of each of our Google Developer Day events. For all photos and videos, see here.

Sep 28, Tokyo: Japan is the 2nd largest country for Android app uploads and App Engine usage, so we were happy to meet and thank the strong developer communities there. We hosted our largest Developer Day in Tokyo, with 1,500 developers in Tokyo and 200 developers at a satellite venue in Kyoto. Our developer sandbox had over 30 booths with 90 developers, from the Android-based Android robot to the Android Developers' Club, which presented more than 100 Android applications by its members. See for videos of all sessions.

Oct 29, Sao Paulo: Mario Queiroz, VP Product Management, opened the day for Brazil’s 4th GDD with the announcement that Jambool will now provide payments support for Orkut, and we announced that Brazil is our second largest country in number of Chrome users. As Voice Search and Navigation for Android launched just the day before, we demoed live during the keynote, including a daring and successful voice search query, “number of people who attended the Bon Jovi concert”. We hosted 1300 developers throughout the day to packed sessions. See keynote video, photos and presentation slides (linked from each session page).

Nov 9, Munich: For the first time, we organized Google Developer Day in partnership with the Technical University of Munich, who co-hosted their own sessions and ran an Innovation Sandbox throughout the day. 1200 developers were in attendance, and we met with one of our most active GTUG communities, with 11 locations in Germany and 21 events in the last six months. We treated ourselves to beer & pretzels and watched the Blinkendroid team put together 72 Android devices, the highest number yet. See our highlights video and photos.

Nov 12, Moscow: This year we reduced the number of simultaneous tracks from 6 to 4 to help developers choose between sessions. After a great keynote, 1300+ developers from over 85 cities attended 24 different sessions, 2 project showcase sessions, and participated in countless discussions, including one with a Duma member and Skolkovo advisor. The local GTUG also hosted two hackathons - one focused on Android & Chrome/HTML5, and one focused on Google Maps. Here are the highlights video, photos and PDFs (linked from each session page).

Nov 16, Prague: Bringing almost 1000 Czech & Slovak developers together, the third GDD in Prague was the biggest yet. We loved how much local stuff was happening there! The local Google User Group hosted a mini-barcamp onsite and launched an internet TV station ( during the event, developers competed in a QR hunting game, and much more. Almost every link regarding the event (including the YouTube playlist) was compiled by the community into this freely editable Google Doc.

While we have great fun at these events, and love interacting with local developers, we’re usually only in town once or twice a year. However, there are vibrant developer communities all over the globe that meet regularly to discuss and hack on all the technologies showcased at GDD. To get involved, find a local group near you, or start up your own!

Finally, based on the interest we saw from previous developer events, we created some digital “souvenirs” for you in the form of PC & Mac wallpapers and an Android live wallpaper.


By Susan Taing, Product Marketing Manager

[Gd] Introducing Apache Wave

| More

Google Wave Developer Blog: Introducing Apache Wave

One of the best outcomes from November's Wave Protocol Summit was a proposal for Wave to enter the Apache Software Foundation's incubator program. Apache has a fantastic reputation for fostering healthy open source communities that create great software. Last week, that proposal was accepted, and we're spinning up the project infrastructure so that the community can continue to grow in the Apache way.

During the summit, it became quite clear that there is a healthy community of startups, independent developers, and industry partners enthusiastic to continue development of the Wave Federation protocols and Wave in a Box product. We've posted videos of the technical talks and demos presented throughout the summit so that those who couldn't make it to San Francisco needn't miss out.

The final days of the summit were dedicated to technical design and coding. Progress since then includes significant improvements to the wave panel, visual enhancements to the login pages, gadgets hooked up and working, improved development set-up and documentation, and a draft HTTP transport for wave federation.

In recognition of this work, we're proud to announce that the open source project leadership is expanding to include a number of new committers from outside Google: Tad Glines, Michael McFadden (Solute), James Purser, Ian Roughley (Novell), Anthony Watkins (SESI), and Torben Weis (University Duisburg-Essen). They are joining graduated Google interns Joseph Gentle and Lennard de Rijk as trusted contributors who have demonstrated high quality code and valuable design insight.

The creation of Apache Wave will serve to accelerate the growth of the existing community with strong open source processes. If you'd like to get involved, please join the Apache Wave mailing list (send an email to We're looking forward to working with you.

Posted by Alex North, Software Engineer, Google Wave team

[Gd] Android 2.3 Platform and Updated SDK Tools

| More

Android Developers Blog: Android 2.3 Platform and Updated SDK Tools

Today we're announcing a new version of the Android platform — Android 2.3 (Gingerbread). It includes many new platform technologies and APIs to help developers create great apps. Some of the highlights include:

Enhancements for game development: To improve overall responsiveness, we’ve added a new concurrent garbage collector and optimized the platform’s overall event handling. We’ve also given developers native access to more parts of the system by exposing a broad set of native APIs. From native code, applications can now access input and sensor events, EGL/OpenGL ES, OpenSL ES, and assets, as well a new framework for managing lifecycle and windows. For precise motion processing, developers can use several new sensor types, including gyroscope.

Rich multimedia: To provide a great multimedia environment for games and other applications, we’ve added support for the new video formats VP8 and WebM, as well as support for AAC and AMR-wideband encoding. The platform also provides new audio effects such as reverb, equalization, headphone virtualization, and bass boost.

New forms of communication: The platform now includes support for front-facing camera, SIP/VOIP, and Near Field Communications (NFC), to let developers include new capabilities in their applications.

For a complete overview of what’s new in the platform, see the Android 2.3 Platform Highlights.

Alongside the new platform, we are releasing updates to the SDK Tools (r8), NDK, and ADT Plugin for Eclipse (8.0.0). New features include:

Simplified debug builds: Developers can easily generate debug packages without having to manually configure the application’s manifest, making workflow more efficient.

Integrated ProGuard support: ProGuard is now packaged with the SDK Tools. Developers can now obfuscate their code as an integrated part of a release build.

HierarchyViewer improvements: The HierarchyViewer tool includes an updated UI and is now accessible directly from the ADT Plugin.

Preview of new UI Builder: An early release of a new visual layout editor lets developers create layouts in ADT by dragging and dropping UI elements from contextual menus. It’s a work in progress and we intend to iterate quickly on it.

To get started developing or testing applications on Android 2.3, visit the Android Developers site for information about the Android 2.3 platform, the SDK Tools, the ADT Plugin and the new NDK.

Check out the video below to learn more about the new developer features in Android 2.3.