Friday, October 16, 2009

[Gd] Let's make the mobile web faster

| More

Google Code Blog: Let's make the mobile web faster

This week, we've been celebrating all things mobile across Google. Of course, this wouldn't be complete without a component for mobile web developers! Two months ago we asked you to make the web faster. Now, we've asked the Google Mobile team for some best practices, tips, and resources for mobile web development, and we've come up with a few things we wanted to share. "Go Mobile!" with our Make the mobile web faster article.

By Jeremy Weinstein, Google Webmaster

[Gd] Dealing with low-quality backlinks

| More

Official Google Webmaster Central Blog: Dealing with low-quality backlinks

Webmaster level: Intermediate/Advanced

Webmasters who check their incoming links in Webmaster Tools often ask us what they can do when they see low-quality links. Understandably, many site owners are trying to build a good reputation for their sites, and some believe that having poor-quality incoming links can be perceived as "being part of a bad neighbourhood," which over time might harm their site's ranking.

example of low-quality links
If your site receives links that look similarly dodgy, don't be alarmed... read on!

While it's true that linking is a significant factor in Google's ranking algorithms, it's just one of many. I know we say it a lot, but having something that people want to look at or use—unique, engaging content, or useful tools and services—is also a huge factor. Other factors can include how a site is structured, whether the words of a user's query appear in the title, how close the words are on the page, and so on. The point is, if you happen to see some low quality sites linking to you, it's important to keep in mind that linking is just one aspect among many of how Google judges your site. If you have a well-structured and regularly maintained site with original, high-quality content, those are the sorts of things that users will see and appreciate.

That having said, in an ideal world you could have your cake and eat it too (or rather, you could have a high-quality site and high-quality backlinks). You may also be concerned about users' perception of your site if they come across it via a batch of spammy links. If the number of poor-quality links is manageable, and/or if it looks easy to opt-out or get those links removed from the site that's linking to you, it may be worth it to try to contact the site(s) and ask them to remove their links. Remember that this isn't something that Google can do for you; we index content that we find online, but we don't control that content or who's linking to you.

If you run into some uncooperative site owners, however, don't fret for too long. Instead, focus on things that are under your control. Generally, you as a webmaster don't have much control over things like who links to your site. You do, however, have control over many other factors that influence indexing and ranking. Organize your content; do a mini-usability study with family or friends. Ask for a site review in your favorite webmaster forums. Use a website testing tool to figure out what gets you the most readers, or the biggest sales. Take inspiration from your favorite sites, or your competitors—what do they do well? What makes you want to keep coming back to their sites, or share them with your friends? What can you learn from them? Time spent on any of these activities is likely to have a larger impact on your site's overall performance than time spent trying to hunt down and remove every last questionable backlink.

Finally, keep in mind that low-quality links rarely stand the test of time, and may disappear from our link graph relatively quickly. They may even already be being discounted by our algorithms. If you want to make sure Google knows about these links and is valuing them appropriately, feel free to bring them to our attention using either our spam report or our paid links report.

Posted by Kaspar Szymanski, Search Quality Strategist, Dublin & Susan Moskwa, Webmaster Trends Analyst, Kirkland

[Gd] Let's make the mobile web faster

| More

Official Google Webmaster Central Blog: Let's make the mobile web faster

This week, we've been celebrating all things mobile across Google. Of course, this wouldn't be complete without a component for mobile web developers! Two months ago we asked you to make the web faster. Now, we've asked the Google Mobile team for some best practices, tips, and resources for mobile web development, and we've come up with a few things we wanted to share. "Go Mobile!" with our Make the mobile web faster article.

Posted by Jeremy Weinstein, Google Webmaster

[Gd] Issue Tracker Data API for Project Hosting

| More

Google Code Blog: Issue Tracker Data API for Project Hosting

I'm excited to announce the Issue Tracker Data API for Project Hosting on Google Code! The Issue Tracker Data API is a Google Data API that you can use to programmatically add new issues, make changes to existing issues, or simply access issues for your open source project.

This means that the issue tracker data for your open source code is now liberated!

To get started with the API, please refer to the following documentation:
If you find yourself digging into the API and creating something useful that others can use, please let us know and we'll be sure to add it to our documentation. As always, your feedback is also welcome.

The team would also like to thank Joe LaPenna, who contributed the Python client for the Issue Tracker Data API in his 20% time.

By Jacob Moon, Google Project Hosting

Thursday, October 15, 2009

[Gd] Google Wave Samples Gallery: Best Practices & New Features

| More

Google Wave Developer Blog: Google Wave Samples Gallery: Best Practices & New Features

The Google Wave Samples Gallery has been a great way to see what developers have been creating and find starter code to build on. We added a search box to enable developers to find what they're looking for, but we heard that it still wasn't easy to find examples of code that uses a particular class/method or does one particular task. So, we've added a few new features to the gallery:

Best Practices

Some samples just demonstrate a fun and inspiring use of the API, but others demonstrate a nice use of a particular API feature, like how a robot can set the state of a gadget, or how a gadget can store per-participant keys. We wanted to call out these samples and make them easier to find, so we've added a "best practice" badge, highlighted these samples on the front page, and added a filter. We've also added a form field to the submit page, so that developers can tell us what aspects of the APIs their sample shows off.

Indexed Code Repositories

When a developer submits a sample, they must also submit a URL that points at their source code. Most of the time, this URL is to a public SVN or GIT repository. We've now added these URLs to the custom search engine that powers the search box, so that when you search, you'll also get results from code files. This makes it easier to find usage of particular parts of the API. Search for "GetDocument" as an example.

Code Snippets

When a developer submits a sample, they can specify that they're submitting a "Code Snippet" or a "Working Sample". With a code snippet, instead of providing links to the robot address, gadget XML, or installer XML, they need only to provide useful lines of code. You can use this to share some bit of code that you've written, even if you don't want to share the whole sample. And if at some point you want to change a snippet into a working sample, you can do that. Check out my Send Email from a Robot snippet for an example.

We hope that you will find these new features useful while you're designing your own Wave-y extensions. And, don't forget to subscribe to the recent samples ATOM feed to find out about new samples in the gallery.

Posted by Pamela Fox, Developer Relations

[Gd] Dev Channel Updated with Fixes

| More

Google Chrome Releases: Dev Channel Updated with Fixes


Windows release corresponding to the releases for Mac and Linux.

Jon Conradt
Engineering Program Manager

[Gd] Managing your reputation through search results

| More

Official Google Webmaster Central Blog: Managing your reputation through search results

(Cross-posted on the Official Google Blog)

A few years ago I couldn't wait to get married. Because I was in love, yeah, but more importantly, so that I could take my husband's name and people would stop getting that ridiculous picture from college as a top result when they searched for me on Google.

After a few years of working here, though, I've learned that you don't have to change your name just because it brings up some embarrassing search results. Below are some tips for "reputation management": influencing how you're perceived online, and what information is available relating to you.

Think twice

The first step in reputation management is preemptive: Think twice before putting your personal information online. Remember that although something might be appropriate for the context in which you're publishing it, search engines can make it very easy to find that information later, out of context, including by people who don't normally visit the site where you originally posted it. Translation: don't assume that just because your mom doesn't read your blog, she'll never see that post about the new tattoo you're hiding from her.

Tackle it at the source

If something you dislike has already been published, the next step is to try to remove it from the site where it's appearing. Rather than immediately contacting Google, it's important to first remove it from the site where it's being published. Google doesn't own the Internet; our search results simply reflect what's already out there on the web. Whether or not the content appears in Google's search results, people are still going to be able to access it — on the original site, through other search engines, through social networking sites, etc. — if you don't remove it from the original site. You need to tackle this at the source.
  • If the content in question is on a site you own, easy — just remove it. It will naturally drop out of search results after we recrawl the page and discover the change.
  • It's also often easy to remove content from sites you don't own if you put it there, such as photos you've uploaded, or content on your profile page.
  • If you can't remove something yourself, you can contact the site's webmaster and ask them to remove the content or the page in question.
After you or the site's webmaster has removed or edited the page, you can expedite the removal of that content from Google using our URL removal tool.

Proactively publish information

Sometimes, however, you may not be able to get in touch with a site's webmaster, or they may refuse to take down the content in question. For example, if someone posts a negative review of your business on a restaurant review or consumer complaint site, that site might not be willing to remove the review. If you can't get the content removed from the original site, you probably won't be able to completely remove it from Google's search results, either. Instead, you can try to reduce its visibility in the search results by proactively publishing useful, positive information about yourself or your business. If you can get stuff that you want people to see to outperform the stuff you don't want them to see, you'll be able to reduce the amount of harm that that negative or embarrassing content can do to your reputation.

You can publish or encourage positive content in a variety of ways:
  • Create a Google profile. When people search for your name, Google can display a link to your Google profile in our search results and people can click through to see whatever information you choose to publish in your profile.
  • If a customer writes a negative review of your business, you could ask some of your other customers who are happy with your company to give a fuller picture of your business.
  • If a blogger is publishing unflattering photos of you, take some pictures you prefer and publish them in a blog post or two.
  • If a newspaper wrote an article about a court case that put you in a negative light, but which was subsequently ruled in your favor, you can ask them to update the article or publish a follow-up article about your exoneration. (This last one may seem far-fetched, but believe it or not, we've gotten multiple requests from people in this situation.)
Hope these tips have been helpful! Feel free to stop by our Web Search Forum and share your own advice or stories about how you manage your reputation online.

Posted by Susan Moskwa, Webmaster Trends Analyst

[Gd] App Engine SDK 1.2.7 - Bugfix Release for Python

| More

Google App Engine Blog: App Engine SDK 1.2.7 - Bugfix Release for Python

Due to two issues introduced in the 1.2.6 release of the Python SDK, we are releasing version 1.2.7 today. This is a bugfix-only release with just a few minor changes (no new features or functionality); all users of App Engine for Python should upgrade to the new version, available on our Downloads page.

The two issues were:

  • The 1.2.6 release added a key argument to the Model class constructor that broke subclasses who were calling the constructor's private arguments with positional (not named) values. The fix is to restore the original ordering, and require that the new key argument be specified as a named argument only.

  • The 1.2.6 release broke an interaction between remote_api and the local development app server.

Both are now fixed in 1.2.7.

There is no corresponding release for the Java language version of App Engine (the Java SDK remains at 1.2.6).


[Gd] Dev Channel updated with Bug Fixes

| More

Google Chrome Releases: Dev Channel updated with Bug Fixes


This week's dev channel update includes quite a few bug fixes.  The Windows release will arrive shortly.

Mac OS X:
  • [r28121] Fix bookmark bar resize issues. (Issue: 23949)
  • [r28145] Support OS X's url handlers. (Issue: 15546)
  • [r28260r28600] Make content area a drop target for dragging images, etc. (Issues: 2351719529)
  • [r28453] Enable "Edit Search Engines" in Omnibox context menu. (Issues: 2251222648)
  • [r28505r28528] Make cmd-left/right and backspace/shift-backspace navigate history if the focus is not in a text box. (Issue: 12557)         
  • [r28613] Fix a ton of theming bugs. (Issues: 22213202951854719851236512433818438)
  • [r28749] Status bubble now fades in and out after a delay. (Issue: 24495)
  • r28709 ] Key equivalents sent to renderer: Cmd-s etc. should now work on e.g. google docs. (Issue: 15090)
  • r28813 ] Chrome's and Safari's ideas of "default browser" now agree. (Issue: 24401)

  • Various crash and visual glitch fixes.

  • [r28095] Extensions loaded "Load unpacked extension" (and --load-extension) will no longer change id's when they're reloaded (Issue: 21281)
  • Browser Actions (windows only at the moment)
    • [r28130r28136] Can now set an image dynamically with an ImageData from a canvas. (Issue:23269)
    • [r28115] Can close popups using window.close. (Issue: 23832)
    • [r28187] Popups now have a bubble border. (Issue: 23833)
    • some sample extensions converted to use browser actions. (gmail checker, buildbot, mappy)
    • a number of other misc bug fixes.
  • [r28135] Extension packing now works on Linux and Mac. (Issue: 20669)

Known Issues:
  • [Mac] Trackpad scroll events are passed to windows behind the chrome window.
  • [Mac] Cmd-` doesn't work when tab contents are focused.
  • [Mac] Chrome for Mac thinks its name is Google Chrome Helper.  (Issue: 24776)
  • [Mac] Cannot "edit" or "add" bookmarks via bookmark contextual menu.  (Issue: 24828)

More details about additional changes are available in the svn log of all revisions.

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

Jonathan Conradt
Engineering Program Manager

Wednesday, October 14, 2009

[Gd] [Language][Update] Ten new Virtual Keyboard Layouts

| More

Google AJAX API Alerts: [Language][Update] Ten new Virtual Keyboard Layouts

Added keyboards for Armenian Eastern, Armenian Western, Belarusian, Czech QWERTZ, English, Georgian QWERTY, Georgian Typewriter, Kazakh, Slovak QWERTY, and Turkish F layout.

[Gd] The ActionScript 3 YouTube Chromeless Player is Now Live

| More

YouTube API Blog: The ActionScript 3 YouTube Chromeless Player is Now Live

We have some good news for developers who integrate YouTube videos into their ActionScript 3 Flash applications: the official YouTube Chromeless Player API has been updated to natively support ActionScript 3!

Previous to this release, ActionScript 3 developers had to rely on wrapper libraries that bridged the gap between the native ActionScript 2 API and their own ActionScript 3 code. We're thrilled that intrepid developers were able to patch things together on their own and share their code with the rest of the community. Now that there's official support for using the chromeless player from ActionScript 3, everyone should have more time to focus on writing compelling Flash applications, rather than dealing with the unique issues that cross-language coding entails.

Please check out our ActionScript 3 documentation, and let us know what you think of the new API in our developer forum.

With the launch of ActionScript 3 support, we're officially deprecating the ActionScript 2 YouTube Chromeless Player API. As per our YouTube API deprecation policy, detailed in our Terms of Service, we will continue to operate the ActionScript 2 API for a period of three years (until October 14, 2012).

-The YouTube API Team

[Gd] "View Source" - a new series about sites using HTML5

| More

Google Code Blog: "View Source" - a new series about sites using HTML5

View Source is a new series where we crack open cool web sites and applications and detail how they were made, step by step. The series will be hosted on Ajaxian, but the Code blog will always carry a link to any new posts that come out in the series. We hope that the articles will help you understand how developers out there are using HTML5 and other Open Web technologies.

Here are links to two articles from this series that were published over the last few days:

"View Source Tutorial: Sticky Notes With HTML5 and CSS3"

"View Source Tutorial: Fancy Web Page Using HTML5, CSS, and SVG"

By Brad Neuberg, Google Developer Programs

Tuesday, October 13, 2009

[Gd] App Engine SDK 1.2.6 Released with Incoming Email, App Deletion, and more!

| More

Google App Engine Blog: App Engine SDK 1.2.6 Released with Incoming Email, App Deletion, and more!

The App Engine team is psyched to present version 1.2.6 of our SDK for both runtimes, Python and Java. This releases contains plenty of improvements and bugfixes, along with some exciting new features:

Incoming Email - Your App Engine app has been able to send email for some time ... but now, with 1.2.6, your app can also receive email. After enabling mail as an inbound service (just like XMPP), users can email your application at Inbound messages are converted to HTTP requests (again, just like XMPP) which you can receive via webhook handler. Docs for Python, Java.

Delete an App - Our developers have been quite vocal with their desire to delete an App Engine application once it is no longer used (It's one of the top 5 most requested features on our issue tracker). Well, this feature is now available via the Admin Console! Just visit the Application Settings page for more information. Please be careful when deleting an app - the appid can never be reused after deletion. Learn more.

Datastore Stats - You can now see more detailed statistics about how your application data is stored in the Admin Console. This information can also be accessed programmatically. Docs for Python, Java.

More details can be found in the Release Notes. To download the new SDK and get coding, please visit the Downloads page.


[Gd] STAR West Trip Report

| More

Google Testing Blog: STAR West Trip Report

By James A. Whittaker

I am happy to report that attendance is way up at STAR. My back of the envelope calculations put it at several hundred more than STAR East a mere five months ago. A sure sign of economic recovery; I am surprised the stat hasn't made it to Obama's resume yet.

The Expo was my main disappointment. The vendor exhibits are still in atrophy. I realize the days of Mercury and Rational are over and Empirix's $ix figure rotating-parts booth is packed away in someone's garage, but there were only two short rows of sedate booths. (The magician was a nice touch though ... wish I could remember what he was selling.) Where have all the big players gone?

I gave a tutorial with the arrogant title (Lee Copeland's idea, not mine) "James Whittaker: On Testing." It was listed as sold out (STAR capped the audience at 100) but a couple dozen truants clearly snuck in. Apparently there is a bug in their 'sold out' exception handler and I am a poor door warden. The tutorial is a discussion of problems and trends in testing. I gave it at STAR East and it was different again this time. It's half a discussion of what we do wrong in testing and half about how to correct those behaviors. As my understanding of these issues evolves, so does this tutorial. If you attended (only a small handful of the 100+ would admit to reading this blog), feel free to post a comment, I promise not to delete any negative ones.

I had an amicable hallway conversation with James Bach. His blogger angst at my use of the title 'Exploratory Testing' didn't spill over to a face-to-face discussion. Frankly, I am not surprised. I've never claimed the term as my own, I simply took it and made it work in the hands of real testers on real software under real ship pressure. Consultants can coin all the terms they want, but when us practitioners add meat to their pie, why cry foul? Is it not a better reaction to feel happy that there are people actually doing something with the idea?

Yet I still made some jabs at the broader consultant community in my keynote. STAR remains full of vendors and people trying to sell ideas instead of results and good engineering practice. I am committing Google and the projects that I lead here to an openness regarding how we do testing and hope to be joined by others. I'd like to see the real practitioners, those who work at financial companies, data centers, ISVs, online retailers, and so forth to come out in larger numbers ... not just as the learners and attendees but also as speakers, panelists and active participants. I'm not saying the consultant community has nothing to say, those guys simply need no encouragement to open their mouths. It's the practitioners who I want to encourage. It's one thing to think really hard about testing, it's another thing to actually put those thoughts into practice.

The jabs aside, my keynote was aimed at describing the practice of exploratory testing I helped create at Microsoft and am now employing at Google and which is embodied in my new book. But it was my Google cohort Rajat Dewan who stole the show. After I detailed the Landmark Tour and how we applied it to Chrome, I ran out of time to talk about the FedEx tour. The folks at STAR were kind enough to set up an impromptu breakfast presentation for Rajat and he delivered a 20 minute talk to a standing room only crowd (I stopped counting at 150) on how he applied the FedEx tour to Mobile Ads. He showed three bugs the tour helped find and described how he automated the tour itself. (Has anyone coined the term 'automated exploratory testing' yet?)

Perhaps he can steal the show again by blogging about his presentation. Rajat?

Other highlights: apparently the twitter-verse was alight over my comment about god-the-developer. I don't tweet and I avoid twits at all costs so I am not sure if people were offended or found it insightful. Comments from tweeters? Also, I've been invited back for the tutorial at STAR East and also plan on submitting a track talk on How we test Google Chrome. Let the detailed discussion about real testing, warts and all, begin!

Monday, October 12, 2009

[Gd] Beta/Stable Channel Update

| More

Google Chrome Releases: Beta/Stable Channel Update

Both the beta and stable channel have been updated to and contains the following fixes:

  • Fixed an issue where menu items for certain Indian languages were not properly visible. (Issue: 18042)
  • Add support to blacklist the faux certificate. (Issue:24038)
  • Added NTLMv2 support on Windows. (Issue: 14206)
  • FFmpeg files now properly have the NX/DBCompat enabled. (Issue: 23189 - Will be made public once this release is fully deployed)
  • V8 crash fix. (Issue: 22913)

Anthony Laforge
Google Chrome Program Manager

[Gd] Fetch as Googlebot and Malware details -- now in Webmaster Tools Labs!

| More

Official Google Webmaster Central Blog: Fetch as Googlebot and Malware details -- now in Webmaster Tools Labs!

The Webmaster Tools team is lucky to have passionate users who provide us with a great set of feature ideas. Going forward, we'll be launching some features under the "Labs" label so we can quickly transition from concept to production, and hear your feedback ASAP. With Labs releases, you have the opportunity to play with features and have your feedback heard much earlier in the development lifecycle. On the flip side, since these features are available early in the release cycle they're not as robust, and may break at times.

Today we're launching two cool features:
  • Malware details
  • Fetch as Googlebot
Malware details (developed by Lucas Ballard)

Before today, you may have been relying on manual testing, our safe browsing API, and malware notifications to determine which pages on your site may be distributing malware. Sometimes finding the malicious code is extremely difficult, even when you do know which pages it was found on. Today we are happy to announce that we'll be providing snippets of code that exist on some of those pages that we consider to be malicious. We hope this additional information enables you to eliminate the malware on your site very quickly, and reduces the number of iterations many webmasters go through during the review process.

More information on this cool feature is available at our Online Security Blog.

Fetch as Googlebot (developed by Javier Tordable)

"What does Googlebot see when it accesses my page?" is a common question webmasters ask us on our forums and at conferences. Our keywords and HTML suggestions features help you understand the content we're extracting from your site, and any issues we may be running into at crawl and indexing time. However, we realized it was important to provide the ability for users to submit pages on their site and get real-time feedback on what Googlebot sees. This feature will help users a great deal when they re-implement their site with a new technology stack, find out that some of their pages have been hacked, or want to understand why they're not ranking for specific keywords.

We're pretty excited about this launch, and hope you are too. Let us know what you think!

Posted by Sagar Kamdar, Product Manager, Webmaster Tools

[Gd] Mark your calendars for Google I/O 2010

| More

Google Code Blog: Mark your calendars for Google I/O 2010

We're excited to share the dates for Google I/O 2010! Mark your calendars:

Google I/O
May 19 - 20, 2010
Moscone Center, San Francisco

Here's a quick look back at this year's event:

Early registration for I/O 2010 will open in January. Until then, you can follow us on Twitter and check out

See you in May!

By Christine Tsai, Google Developer Team

[Gd] Web Search in Your Country

| More

Google AJAX APIs Blog: Web Search in Your Country

I am happy to announce the addition of the ability to scope your searches to a specific country in the AJAX Web Search API. Now, if you have a lot of visitors in Madagascar, you can make sure that the search results displayed on your site are tailored to them. All it takes is a small change to your code.

There are three possible ways to implement, depending on how you're using the API:

  1. If you use the loader, you can simply load jsapi on the domain you're interested in (example), such as:
    <script src=""></script>

  2. Alternately, you can set this with the web search object's .setRestriction method (example):
    var ws = new;
    {'gl' : 'es'});
  3. Finally, if you're using the RESTful interface, all you have to do is append a "gl" URL parameter to your request:

Most valid country codes will work, as long as Google has a home page on that country's top level domain (e.g. If you use an invalid or unsupported country code, you'll get an error message letting you know.

We're excited to bring you this addition to the API, and look forward to seeing the innovative ways in which you use this new feature to improve your users' experience. Please drop us a line with your thoughts (or questions) on our discussion group.


[Gd] Direct Uploads Server Migration

| More

YouTube API Blog: Direct Uploads Server Migration

We first announced our new API upload infrastructure back in June and asked developers to test their YouTube API code against our staging environment.

Since then, we've started deploying the new upload infrastructure to production machines in a phased manner. Last month, we transitioned browser-based API uploads to the new servers, and have been closely monitoring performance and error rates to ensure that there were no unintended side effects.

We're now ready to begin the transition for direct uploads. Starting today, a small percentage of direct uploads traffic will automatically be routed to our new servers. We will be monitoring traffic over the next few weeks and gradually increasing the traffic that the new servers receive until we have fully completed the migration.

As a developer, you won't have to make any changes in your code to take advantage of the increased reliability and bug fixes found in the new infrastructure. While we do expect that this new infrastructure will be fully backwards compatible, if you do notice any change in your application's behavior with regard to direct uploads, please let us know in our developer group.

-The YouTube API Team

[Gd] [Search][Update] Web Search by Country Code

| More

Google AJAX API Alerts: [Search][Update] Web Search by Country Code

Added gl URL parameter and AJAX loader detects country specific hostname.

[Gd] oEmbed support

| More

YouTube API Blog: oEmbed support

oEmbed is a pretty slick way to embed multimedia for a link. For example with a request like this:

You get a response like this:
{"provider_url": "",
"title": "Auto-Tune the News #8: dragons. geese. Michael Vick. (ft. T-Pain)",
"html": "embed code",
The value for the "html" key is all you need to insert into your webpage to render an embedded YouTube video:

Check out the documentation at for more information.