Saturday, March 17, 2012

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


The Beta channel has been updated to 18.0.1025.109 for Windows, Mac, and Chrome Frame.  

This release changes to V8 back version 3.8.  Full details about what changes are in this build are available in the SVN revision log.  Interested in switching to the Beta channel?  Find out how.  If you find a new issue, please let us know by filing a bug.

Karen Grunberg
Google Chrome

URL: http://googlechromereleases.blogspot.com/2012/03/beta-channel-update_17.html

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


The Beta channel has been updated to 18.0.1025.108 for Windows, Mac, Linux, and Chrome Frame.  

This release changes to V8 version 3.7 and it contains fixes for a number of stability issues along with other bugs.  Full details about what changes are in this build are available in the SVN revision log.  Interested in switching to the Beta channel?  Find out how.  If you find a new issue, please let us know by filing a bug.

Karen Grunberg
Google Chrome

URL: http://googlechromereleases.blogspot.com/2012/03/beta-channel-update_16.html

[Gd] Chrome@GDC Recap

| More

Chromium Blog: Chrome@GDC Recap

Last week, the Chrome team participated in the Game Developers Conference in San Francisco. We all enjoyed talking to attendees about how game developers can benefit from the latest browser technologies such as Native Client and HTML5.

For those of you who were not able to attend, we recorded videos of our talks. Check them out and let us know what you think.

 

During GDC, several developers presented some new and upcoming games for the Chrome Web Store. From AirMech to the highly anticipated From Dust, these games provided a sneak peek to the future of browser-based games.

Besides being able to use the latest technology the web has to offer, creating a game for Chrome means you can distribute and monetize your game successfully. This is evidenced by our 4 brand new case studies with Kabam, Hlafbrick, Game Salad, and Limex Games.

To learn how you too can develop games for Chrome, start by visiting our game developer site.


Posted by Christian Stefansen, Product Manager
URL: http://blog.chromium.org/2012/03/chromegdc-recap.html

Friday, March 16, 2012

[Gd] Fridaygram: observing origami, beaming neutrinos, getting results

| More

Google Developers Blog: Fridaygram: observing origami, beaming neutrinos, getting results

Author Photo
By Scott Knaster, Google Developers Blog Editor

Google provides many different services and products, but the ones I hear about most from my non-technical friends and family are search (of course) and Google doodles. This week’s cool doodle celebrated the work of origami master Akira Yoshizawa, generally recognized as the inventor of modern origami. Yoshizawa worked at a factory before deciding to spend all his time on origami. In a different era, if we were very very lucky, maybe he would have been a doodler and come up with something like this.


From folding paper to folding space: researchers at the Fermi National Accelerator Laboratory used neutrinos to send a message through matter to a detector located 1 km away in a cavern. Because neutrinos rarely collide with other particles, the message was able to pass through the Earth successfully. The team used a binary code to send the word neutrino to the other side. And once again, science fiction becomes fact, sort of.

Speaking of binary code, here’s something you can try over the weekend: on google.com, sign out of your account (temporarily, of course) or click Hide personal results, then search for binary and see how many results you get.


Once a week we post a Fridaygram, in which we take a break from the real news and have some fun. Each Fridaygram item must pass only one test: it has to be interesting to us nerds. And by the way, it looks like we've made another great nerd movie recommendation this week.

URL: http://googledevelopers.blogspot.com/2012/03/fridaygram-observing-origami-beaming.html

[Gd] Using the updated Google Prediction API in App Engine applications

| More

Google App Engine Blog: Using the updated Google Prediction API in App Engine applications

Although we can’t reliably compare its future-predicting abilities to a crystal ball, the Google Prediction API unlocks a powerful mechanism to use machine learning in your applications.

The Prediction API allows developers to train their own predictive models, taking advantage of Google’s world-class machine learning algorithms. It can be used for all sorts of classification and recommendation problems from spam detection to message routing decisions. In the latest release, the Prediction API has added more detailed debugging information on trained models and a new App Engine sample, which illustrates how to use the Google Prediction API for the Java and Python runtimes.

To help App Engine developers get started with the prediction API, we’ve published an article and walkthrough detailing how to create and manage predictive models in App Engine apps with simple authentication using OAuth2 and service accounts. Check out the walkthrough and let us know what you think on the group. Happy coding!


- Posted by the App Engine Team
URL: http://googleappengine.blogspot.com/2012/03/using-updated-google-prediction-api-in.html

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update

The Beta channel has been updated to 18.0.1025.100 for Windows, Mac, Linux, and Chrome Frame.  

This release turns prerendering back on and it contains fixes for a number of stability issues along with other bugs.  Full details about what changes are in this build are available in the SVN revision log.  Interested in switching to the Beta channel?  Find out how.  If you find a new issue, please let us know by filing a bug.

Karen Grunberg
Google Chrome

URL: http://googlechromereleases.blogspot.com/2012/03/beta-channel-update_15.html

[Gd] Dev and Beta Channels Update for Chromebooks

| More

Chrome Releases: Dev and Beta Channels Update for Chromebooks


The Beta channel has been updated to 18.0.1025.98 (Platform versions: 1660.84.0) for Chromebooks (Acer AC700, Samsung Series 5, and Cr-48). 

The Dev channel has been updated to the same version 18.0.1025.98 (Platform version 1660.84.0) for Cr-48 Chromebooks.
This build contains a number of stability improvements. Some highlights of these changes are:
  • Fixes to 15753 & 25971 where Flash content on pages was causing tabs to freeze.
  • Wifi improvements
If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

Danielle Drew
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/03/dev-and-beta-channels-update-for.html

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update


The Dev channel has been updated to 19.0.1068.1 for Windows, Mac, Linux and Chrome Frame.  This build contains a fix for browser hang and increase in CPU usage. Full details about what changes are in this build are available in the SVN revision log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Dharani Govindan
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/03/dev-channel-update_15.html

Thursday, March 15, 2012

[Gd] V8 Benchmark Suite extended with physics simulation

| More

Chromium Blog: V8 Benchmark Suite extended with physics simulation

Today we are releasing version 7 of the V8 Benchmark Suite. This new version adds Oliver Hunt’s 2D Navier-Stokes fluid dynamic simulation, which stresses intense double array computations. These complex double array computations are today common in games, graphic and scientific applications.

The new test shows the recent improvements V8 has made in handling advanced physics computations: the current Chrome 18 (today in beta) delivers a 5% score improvement compared to the current Chrome 17. Chrome 19 (today in canary), where the full set of improvements is being released, delivers a whopping 25% score improvement compared to Chrome 17.



With these additions, the V8 Benchmark Suite is now a more comprehensive collection of eight tests, including OS kernel simulation, crypto and string operations, memory management stress-tests, and as of today, double array computations.

We plan to keep updating the suite by adding more tests. These updates are a reflection of Chrome’s commitment to keep pushing the boundaries of speed, optimizing the engine for today’s more demanding web apps.

Posted by Stefano Cazzulani, Product Manager
URL: http://blog.chromium.org/2012/03/v8-benchmark-suite-extended-with.html

[Gd] YouTube, Google+, the API, and You

| More

YouTube API Blog: YouTube, Google+, the API, and You

By now, you may have read about the recent launch of connecting a Google+ profile with a new YouTube channel and questioned whether the change will affect YouTube Data API responses and, consequently, your application. The API does have a couple of changes that affect the way account names are returned, and these changes are designed to be backward compatible with applications that follow the best practices defined in our compatibility guidelines.

With that in mind, this post explains how to ensure that user names function properly in your application.



  • Avoid manually generating links to related feeds — instead, extract URLs for related feeds from <link> or <gd:feedLink> elements. For instance, the profile entry for a given account contains a <gd:feedLink> element with a rel attribute of http://gdata.youtube.com/schemas/2007#user.playlists, and that element's href attribute contains the URL for that account’s playlists.

  • If you do need to manually generate a feed URL that is not for the default user, use the value in the <yt:username> element as the username in the feed URL. Other fields, like <author>, might contain a display name or a different identifier that is not appropriate for use in a feed URL.

    Note that for accounts that have connected a Google+ profile to a new YouTube channel and for
    Google Accounts without a linked YouTube account, the <yt:username> field will not be a traditional YouTube username. Instead, it will be a globally unique identifier that isn't intended for display in a user interface. A new field, <yt:userId>, will always contain this globally unique identifier regardless of the account type, and if you are writing new code to specifically deal with that identifier, we recommend reading it from <yt:userId>.

  • Any existing code that relies on displaying the <yt:username> or <media:credit> value to users should instead switch to using the value in that element's yt:display attribute. The yt:display attribute value will always be a meaningful value suitable for display. For accounts connected to Google+, it will be set to the full public display name. For full YouTube accounts that aren’t connected to Google+, it will be set to the YouTube account name.

Cheers,
–Jeff Posnick, YouTube API Team
URL: http://apiblog.youtube.com/2012/03/youtube-google-api-and-you.html

[Gd] Meet the Web Platform Again for the First Time

| More

Chromium Blog: Meet the Web Platform Again for the First Time

A few weeks ago one of my developer friends was gushing about the capabilities of his favorite native platform. After every point I felt obliged to point out that the web platform either already had or was actively developing precisely the same capabilities—and then some. He was incredulous. "Prove it," he said.

So I pulled together a few of my favorite examples from the cutting edge of the web platform and recorded three screencasts to help my friend—and others—meet the web platform again for the first time.

The first video, Building on Foundations, goes over how the web platform has been fixing various historical shortcomings and building upon its core strengths, like complicated graphical effects, composability, and advanced text layout.



The next video, Learning from Other Platforms, reviews how the web platform offers new capabilities inspired by successes on other platforms with things like push notifications, payment APIs, and web intents.



The last video, On the Cutting Edge, demonstrates some of the new tricks the web platform is learning, like webcam access, powerful audio APIs, and complicated 3D graphics.



If you're interested in learning more about the technology behind any of the demos, check out the Meet the Web Platform companion guide.

I hope these videos capture your imagination and begin to show what is possible on the web platform. The web platform is evolving at an enormous pace, and I just can't wait to see where it goes next!

Posted by Alex Komoroske, Product Manager
URL: http://blog.chromium.org/2012/03/meet-web-platform-again-for-first-time.html

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


The Beta channel has been updated to 18.0.1025.58 for Windows, Mac, Linux and Chrome Frame platforms 

This build has the following changes:
  1. GPU acceleration of the Canvas 2D is now reenabled.
  2. We've reenabled the image transport surface on Windows Vista and 7.  
  3. We fixed a race condition in audio. 
  4. Disabled prerender.
These changes are due to stability measures and some or all of these features may be enabled again in a future release.

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

Karen Grunberg
Google Chrome


URL: http://googlechromereleases.blogspot.com/2012/03/beta-channel-update_14.html

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update

The Dev channel has been updated to 19.0.1068.0 for Windows, Mac, Linux and Chrome Frame.  This build contains following updates:

  • Users of Chrome for Android who have tab sync enabled can use the “Other Devices” menu on the new tab page to open tabs from other devices.
  • Several fixes and improvements in the new Settings, Extensions, and Help pages.
  • Fixed the flashing when switched between composited and non-composited mode. [Issue: 116603]
  • Fixed stability issues 116913, 117217, 117347, 117081

Full details about what changes are in this build are available in the SVN revision log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Dharani Govindan
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/03/dev-channel-update_13.html

Wednesday, March 14, 2012

[Gd] Five things you didn’t know about Google I/O 2012

| More

Google Developers Blog: Five things you didn’t know about Google I/O 2012

Author Photo
By Monica Tran, Google I/O Team

If you were following +Google Developers this morning, you’d already know that:
  1. Registration will open first-come, first-serve on March 27th at 7 AM PDT / 14:00 UTC.
  2. Rooms at the W Hotel are currently going for $279. Limited time offer, while supplies last.
  3. Code Labs have graduated from Bootcamp and will now be incorporated into our 3-day agenda.
  4. This year’s After Hours theme is Carnival 2112.
  5. Real-time transcription (CART) will be provided live during the keynote and some breakout sessions.
That’s a lot to take in all at once, so to make it easier on you, we’ve consolidated everything you need to know about Google I/O 2012 at developers.google.com/io.

And because we know 105 days is a long time to wait, we’ve built a little game called input/output to help you pass the time. The objective is simple: use the tools and machine parts to create a Rube Goldberg-inspired machine that moves a particle from the <input> to the </output>. Then, share your machine on Google+ using #io12. Build well and you won't lose your marbles — build a machine of epic design and your creation could be featured at Google I/O 2012.


Whether you’ll be joining us in San Francisco, at an I/O Extended viewing party, or on I/O Live from the comforts of home, be sure to bookmark our Google I/O website to make the most of your 2012 experience. More details about the 3-day program, session schedules, and Developer Sandbox will come in the following months.


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

Posted by Scott Knaster, Editor
URL: http://googledevelopers.blogspot.com/2012/03/five-things-you-didnt-know-about-google.html

[Gd] Meet the web platform again for the first time

| More

Google Developers Blog: Meet the web platform again for the first time

By Alex Komoroske, Product Manager

Cross-posted with the Chromium Blog

A few weeks ago one of my developer friends was gushing about the capabilities of his favorite native platform. After every point I felt obliged to point out that the web platform either already had or was actively developing precisely the same capabilities—and then some. He was incredulous. "Prove it," he said.

So I pulled together a few of my favorite examples from the cutting edge of the web platform and recorded three screencasts to help my friend—and others—meet the web platform again for the first time.

The first video, Building on Foundations, goes over how the web platform has been fixing various historical shortcomings and building upon its core strengths, like complicated graphical effects, composability, and advanced text layout.



The next video, Learning from Other Platforms, reviews how the web platform offers new capabilities inspired by successes on other platforms with things like push notifications, payment APIs, and web intents.



The last video, On the Cutting Edge, demonstrates some of the new tricks the web platform is learning, like webcam access, powerful audio APIs, and complicated 3D graphics.



If you're interested in learning more about the technology behind any of the demos, check out the Meet the Web Platform companion guide.

I hope these videos capture your imagination and begin to show what is possible on the web platform. The web platform is evolving at an enormous pace, and I just can't wait to see where it goes next!


Posted by Scott Knaster, Editor
URL: http://googledevelopers.blogspot.com/2012/03/meet-web-platform-again-for-first-time.html

[Gd] A new look for Custom Search results plus a new search box

| More

Google Custom Search: A new look for Custom Search results plus a new search box

We’re excited to announce that starting today, we are providing a new results style that’s more modern and streamlined, based on the evolving Google design and experience across Google properties.

This look will be the new default for new custom search engines, and admins of existing custom search engines can also choose this new style by visiting the Look and feel page of their CSE’s control panel and selecting “Default” in the Choose or customize a style section. The old default remains an option, but has been renamed to “Classic”.


In addition to the new style for results, we’ve also updated the search box and made autocomplete more robust and consistent with the standard Google autocomplete. Note that this update affects all CSEs that use the Element so, in some rare cases, site owners who have made customizations to their CSE search box (or who have enabled autocomplete for their own search boxes) may need to make minor updates to accommodate the new search box’s slightly different look.

We hope you and your visitors enjoy these updates. Let us know what you think in our discussion forum.

Posted by: Dana Bright, UI Designer

URL: http://googlecustomsearch.blogspot.com/2012/03/new-look-for-custom-search-results-plus.html

[Gd] Integrating Google Docs with Salesforce.com using Apps Script

| More

Google Apps Developer Blog: Integrating Google Docs with Salesforce.com using Apps Script

Editor's Note: Ferris Argyle is going to present Salesforce Workflow Automation with Google Spreadsheet and Apps Script at Cloudforce. Do not miss Ferris's talk - Saurabh Gupta

As part of Google's Real Estate and Workplace Services (REWS) Green Team, the Healthy Materials program is charged with ensuring Google has the healthiest workplaces possible. We collect and review information for thousands of building materials to make sure that our offices are free of formaldehyde, heavy metals, PBDEs and other toxins that threaten human health and reduce our productivity.

A Case for using Google Docs and Salesforce.com

My team, as you might imagine, has a great deal of data to collect and manage. We recently implemented Salesforce.com to manage that data, as it can record attributes of an object in a dynamic way, is good at tracking correspondence activity and allows for robust reports on the data, among many other functions.

We needed Saleforce.com to integrate with our processes in Google Apps. We wanted to continue collecting data using a Google Docs form but needed it integrated with Salesforce.com because we:

  1. Liked the way the form looked and functioned
  2. Wanted to retain continuity for our users, including keeping the same URL
  3. Wanted a backup of submissions

And this is where Google Apps Script came to our rescue. We found that we could use Google Apps Script to create a new Case or Lead in Salesforce.com when a form is submitted through our Google Docs form. This allowed us to continue using our existing form and get our data directly and automatically into Salesforce.com.

Google Docs + Apps Script + Salesforce.com = Integrated Goodness!

Salesforce.com has two built-in options for capturing data online - Cases and Leads. Google Docs Forms can capture data for both of them. Set up your Case or Lead object with the desired fields in Salesforce.com. The next step is to generate the HTML for a form. You will use the IDs in the Salesforce.com-generated HTML when writing your Google Apps script.


A) Getting the HTML in Salesforce.com:

1. Login to Salesforce.com and go to Your Name > Setup > Customize > Leads or Self-Service (for Cases) > Web-to-Lead or Web-to-Case

2. Make sure Web-to-Lead/Web-to-Case is enabled. Click on Edit (Leads) or Modify (Cases) and enable if it is not.

3. Click on the 'Create Web to Lead Form' button (for Leads) or the 'Generate the HTML' link (for Cases)

4. Select the fields you want to capture and click 'Generate'. Save the HTML in a text file. You can leave 'Return URL' blank


B) Setting up Google Apps Form/Spreadsheet:

Create your form and spreadsheet (or open up the one you already have and want to keep using). This is very easy to do. Go to your Docs and click on 'Create' to open a new form. Use the form editor to add the desired fields to your form- they'll show up as column headings in the corresponding spreadsheet. When someone fills out your form, their answers will show up in the right columns under those headings.


C) Writing the Google Apps Script:

The script is set up to take the data in specified cells from the form/spreadsheet and send it into designated fields in your Salesforce.com instance (identified by the org id in the HTML generated above). For example, the form submitter's email is recorded through the form in one cell, and sent into the email field in either the Lead or Case object in Salesforce.com.

1. Create a new script (Tools > Script Manager > New).

2. Write the script below using the pertinent information from your Salesforce.com-generated code (shown further down).


function SendtoSalesforce() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var row = sheet.getLastRow();
var firstname = sheet.getRange(row, 2).getValue();
var lastname = sheet.getRange(row, 3).getValue();
var email = sheet.getRange(row, 4).getValue();
var company = sheet.getRange(row, 5).getValue();
var custom = sheet.getRange(row, 6).getValue();
var resp = UrlFetchApp
.fetch(
'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',
{
method: 'post',
payload: {
'orgid' : '00XXXXXXXX',
'first_name' : firstname,
'last_name' : lastname,
'email' : email,
'company' : company,
'00YYYYYYYY' : custom,
'external' : '1'
}
});
Logger.log(resp.getContentText());
}

Define your variables by directing the script to the correct cell (row, column number). Then in the payload section, match the field id from your Salesforce.com HTML (red) to the variable you defined (blue). For example, the email address of the submitter is defined as variable 'email', can be found in the 4th column of the last row submitted, and the id for that field in Salesforce.com is 'email'.


Note that any custom fields you've created will have an alpha-numeric id.

3. Save your script and do a test run.


D) Wiring Script to a Form Submission.

To send your data automatically into Salesforce.com, you need to set a trigger that will run the script every time a form is submitted. To do this, go to your script and click Resources>Current script's triggers.

1. Create a Trigger for your function so that it runs when a form is submitted.


2. Post the link to your form on your website, send it in an email, link to it on G+, etc. Get it out there!

That's it! Now when someone submits a form, the information will come into your spreadsheet, and then immediately be sent into Salesforce.com. You can adjust your Salesforce.com settings to create tasks when the information comes in, send out an auto-response to the person filling out the form and set up rules for who is assigned as owner to the record. You'll also have the information backed up in your spreadsheet.

This has been a great solution for our team, and we hope others find it useful as well!


Beth Sturgeon  

Beth Sturgeon is a member of Google's Green Team in Mountain View, which makes sure that Google's offices are the healthiest, most sustainable workplaces around. Prior to Google, she had a past life as a wildlife researcher.

URL: http://googleappsdeveloper.blogspot.com/2012/03/integrating-google-docs-with.html

[Gd] Video about pagination with rel=“next” and rel=“prev”

| More

Official Google Webmaster Central Blog: Video about pagination with rel=“next” and rel=“prev”

Webmaster Level: Beginner to Intermediate

If you’re curious about the rel=”next” and rel=prev” for paginated content announcement we made several months ago, we filmed a video covering more of the basics of pagination to help answer your questions. Paginated content includes things like an article that spans several URLs/pages, or an e-commerce product category that spans multiple pages. With rel=”next” and rel=”prev” markup, you can provide a strong hint to Google that you would like us to treat these pages as a logical sequence, thus consolidating their linking properties and usually sending searchers to the first page. Feel free to check out our presentation for more information:


This video on pagination covers the basics of rel=”next” and rel=”prev” and how it could be useful for your site.


Slides from the pagination video

Additional resources about pagination include:
  • Webmaster Central Blog post announcing support of rel=”next” and rel=”prev”
  • Webmaster Help Center article with more implementations of rel=”next” and rel=”prev
  • Webmaster Forum thread with our answers to the community’s in-depth questions, such as:

    Does rel=next/prev also work as a signal for only one page of the series (page 1 in most cases?) to be included in the search index? Or would noindex tags need to be present on page 2 and on?

    When you implement rel="next" and rel="prev" on component pages of a series, we'll then consolidate the indexing properties from the component pages and attempt to direct users to the most relevant page/URL. This is typically the first page. There's no need to mark page 2 to n of the series with noindex unless you're sure that you don't want those pages to appear in search results.

    Should I use the rel next/prev into [sic] the

    In regard to using rel=”next” and rel=”prev” for entries in your blog that “are not strictly correlated (but they are just time-sequential),” pagination markup likely isn’t the best use of your time -- time-sequential pages aren’t nearly as helpful to our indexing process as semantically related content, such as pagination on component pages in an article or category. It’s fine if you include the markup on your time-sequential pages, but please note that it’s not the most helpful use case.

    We operate a real estate rental website. Our files display results based on numerous parameters that affect the order and the specific results that display. Examples of such parameters are “page number”, “records per page”, “sorting” and “area selection”...

    It sounds like your real estate rental site encounters many of the same issues that e-commerce sites face... Here are some ideas on your situation:

    1. It’s great that you are using the Webmaster Tools URL parameters feature to more efficiently crawl your site.

    2. It’s possible that your site can form a rel=”next” and rel=”prev” sequence with no parameters (or with default parameter values). It’s also possible to form parallel pagination sequences when users select certain parameters, such as a sequence of pages where there are 15 records and a separate sequence when a user selects 30 records. Paginating component pages, even with parameters, helps us more accurately index your content.

    3. While it’s fine to set rel=”canonical” from a component URL to a single view-all page, setting the canonical to the first page of a parameter-less sequence is considered improper usage. We make no promises to honor this implementation of rel=”canonical.”

Remember that if you have paginated content, it’s fine to leave it as-is and not add rel=”next” and rel=”prev” markup at all. But if you’re interested in pagination markup as a strong hint for us to better understand your site, we hope these resources help answer your questions!

Written by Maile Ohye, Developer Programs Tech Lead
URL: http://googlewebmastercentral.blogspot.com/2012/03/video-about-pagination-with-relnext-and.html

[Gd] Unifying Key Store Access in ICS

| More

Android Developers Blog: Unifying Key Store Access in ICS

[This post is a group effort by Tony Chan, Fred Chung, Brian Carlstrom, and Kenny Root. — Tim Bray]

Android 4.0 (ICS) comes with a number of enhancements that make it easier for people to bring their personal Android devices to work. In this post, we’re going to have a look at the key store functionality.

Back in Android 1.6 (Donut), a system key store was added for use by VPN. Although this was later expanded to support WiFi authentication, applications weren’t able to access it.

In the past, it was common practice for apps to maintain their own key store if they needed to authenticate a secure SSL web server, or authenticate the user to a server via a client certificate. While this works, it can present manageability issues in an enterprise environment where multiple certificates may be shared across a number of apps such as Email and Browser.

New in ICS: KeyChain

To bridge the gap in ICS, there’s a new API named KeyChain that regulates application access to the system key store and allows users to grant application access to the credentials stored there. Additionally, this API enables applications to initiate installation of credentials from X.509 certificates and PKCS#12 key stores.

The KeyChain API is rather simple. To install a key store or a certificate, you retrieve an install intent, supply the raw bytes of the credentials, and use the intent to launch a system installation dialog. If it’s a keystore, as in the example below, you’ll need provide the data in PKCS#12 format, and the user will have to know the PKCS#12 password.

  byte[] keystore = . . (read from a PKCS#12 keystore)

Intent installIntent = KeyChain.createInstallIntent();
installIntent.putExtra(KeyChain.EXTRA_PKCS12, keystore);
startActivityForResult(installIntent, INSTALL_KEYSTORE_CODE);

The install intent launches a system dialog that prompts the user to enter the password for the keystore.

This can also be used for installing organizational CA certificates which will then be trusted by all applications to authenticate to non-public servers with certificates issued by the same CA.

In ICS, Android no longer requires a separate password to protect the system credential storage. Rather, it uses the screen lock password for this purpose, and the Android Device Administration API can be used for central policy enforcement. This means, for example, that the screen lock password can’t be removed as long as the secured credentials remain on the device.

Accessing System Key Store Credentials

Once the system key store is configured, the KeyChain API offers functions such as requesting a client certificate for authenticating with an SSL server. The first time an application requests access, the user is prompted with a list of available certificates and can select one to grant access to that certificate to the application. If the user chooses to allow access to a certificate, a string alias name for the certificate is returned to the application. The application can then use the alias to access the certificate in the future without further user involvement.

The code below illustrates how an application can prompt the user to select a credential alias and grant access to the application. KeyChain will remember this selection such that the same application can save the credential alias selection and have access to the same certificate in future. For example, the Email application for ICS has implemented this feature in its Server Settings screen.

  KeyChain.choosePrivateKeyAlias(this,
new KeyChainAliasCallback() {

public void alias(String alias) {
// Credential alias selected. Remember the alias selection for future use.
if (alias != null) saveAlias(alias);
}
},
new String[] {"RSA", "DSA"}, // List of acceptable key types. null for any
null, // issuer, null for any
"internal.example.com", // host name of server requesting the cert, null if unavailable
443, // port of server requesting the cert, -1 if unavailable
null); // alias to preselect, null if unavailable

Once an application has been granted access to the certificate, it can access the private key through the getPrivateKey() method. It is worth noting that as with any PrivateKey objects, the application should not make assumptions about the encoding. For example, on some implementations the PrivateKey object may just be an opaque representation of a key stored in a hardware key store.

Here’s a sample code snippet that demonstrates the use of private key retrieved from the key store for signing:

    PrivateKey privateKey = KeyChain.getPrivateKey(context, savedAlias);
if (privateKey != null) {
...
Signature signature = Signature.getInstance("SHA1withRSA");
signature.initSign(privateKey);
...
}

A common use of the private key is for SSL client authentication. This can be implemented by using an HttpsURLConnection with a custom X509KeyManager that returns the PrivateKey retrieved from the KeyChain API. The open source Email application for ICS uses KeyChain with an X509ExtendedKeyManager. To learn more, have a look at the source code (in SSLUtils.java).

This API provides a unified way to access the system key store credentials. If your application uses client certificates (take note: enterprise email client or web browser developers) you should definitely look into the KeyChain API for your next update!

URL: http://android-developers.blogspot.com/2012/03/unifying-key-store-access-in-ics.html

[Gd] Stable Channel Update for Chromebooks

| More

Chrome Releases: Stable Channel Update for Chromebooks

The Stable channel has been updated to 17.0.963.80 (Platform version: 1412.234.0) for Chromebooks (Acer AC700, Samsung Series 5, and Cr-48).

Release highlights:


Known issues:
  • Issue 26698: Time display mismatch

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

Orit Mazor
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/03/stable-channel-update-for-chromebooks_12.html

Monday, March 12, 2012

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


update: The Beta channel for Mac is back to the 18.0.1025.54 version due to Flash running incorrectly.


The Beta channel has been updated to 18.0.1025.56 for Windows, Mac, Linux and Chrome Frame platforms 

This build has the following changes:
  1. GPU acceleration of the Canvas 2D is now disabled by default and can be enabled in about:flags 
  2. We've disabled the image transport surface on Windows Vista and 7.  For gpu accelerated content gpu process now renders directly to the window.
  3. Core Animation plugins no longer trigger gpu accelerated compositing on the Mac. 

These changes are due to stability measures and some or all of these features may be enabled again in a future release.



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

Karen Grunberg
Google Chrome


URL: http://googlechromereleases.blogspot.com/2012/03/beta-channel-update_12.html

[Gd] Crawl Errors: The Next Generation

| More

Official Google Webmaster Central Blog: Crawl Errors: The Next Generation

Webmaster level: All

Crawl errors is one of the most popular features in Webmaster Tools, and today we’re rolling out some very significant enhancements that will make it even more useful.

We now detect and report many new types of errors. To help make sense of the new data, we’ve split the errors into two parts: site errors and URL errors.

Site Errors

Site errors are errors that aren’t specific to a particular URL—they affect your entire site. These include DNS resolution failures, connectivity issues with your web server, and problems fetching your robots.txt file. We used to report these errors by URL, but that didn’t make a lot of sense because they aren’t specific to individual URLs—in fact, they prevent Googlebot from even requesting a URL! Instead, we now keep track of the failure rates for each type of site-wide error. We’ll also try to send you alerts when these errors become frequent enough that they warrant attention.

View site error rate and counts over time

Furthermore, if you don’t have (and haven’t recently had) any problems in these areas, as is the case for many sites, we won’t bother you with this section. Instead, we’ll just show you some friendly check marks to let you know everything is hunky-dory.

A site with no recent site-level errors

URL errors

URL errors are errors that are specific to a particular page. This means that when Googlebot tried to crawl the URL, it was able to resolve your DNS, connect to your server, fetch and read your robots.txt file, and then request this URL, but something went wrong after that. We break the URL errors down into various categories based on what caused the error. If your site serves up Google News or mobile (CHTML/XHTML) data, we’ll show separate categories for those errors.

URL errors by type with full current and historical counts

Less is more

We used to show you at most 100,000 errors of each type. Trying to consume all this information was like drinking from a firehose, and you had no way of knowing which of those errors were important (your homepage is down) or less important (someone’s personal site made a typo in a link to your site). There was no realistic way to view all 100,000 errors—no way to sort, search, or mark your progress. In the new version of this feature, we’ve focused on trying to give you only the most important errors up front. For each category, we’ll give you what we think are the 1000 most important and actionable errors.  You can sort and filter these top 1000 errors, let us know when you think you’ve fixed them, and view details about them.

Instantly filter and sort errors on any column

Some sites have more than 1000 errors of a given type, so you’ll still be able to see the total number of errors you have of each type, as well as a graph showing historical data going back 90 days. For those who worry that 1000 error details plus a total aggregate count will not be enough, we’re considering adding programmatic access (an API) to allow you to download every last error you have, so please give us feedback if you need more.

We've also removed the list of pages blocked by robots.txt, because while these can sometimes be useful for diagnosing a problem with your robots.txt file, they are frequently pages you intentionally blocked. We really wanted to focus on errors, so look for information about roboted URLs to show up soon in the "Crawler access" feature under "Site configuration".

Dive into the details

Clicking on an individual error URL from the main list brings up a detail pane with additional information, including when we last tried to crawl the URL, when we first noticed a problem, and a brief explanation of the error.

Details for each URL error

From the details pane you can click on the link for the URL that caused the error to see for yourself what happens when you try to visit it. You can also mark the error as “fixed” (more on that later!), view help content for the error type, list Sitemaps that contain the URL, see other pages that link to this URL, and even have Googlebot fetch the URL right now, either for more information or to double-check that your fix worked.

View pages which link to this URL

Take action!

One thing we’re really excited about in this new version of the Crawl errors feature is that you can really focus on fixing what’s most important first. We’ve ranked the errors so that those at the top of the priority list will be ones where there’s something you can do, whether that’s fixing broken links on your own site, fixing bugs in your server software, updating your Sitemaps to prune dead URLs, or adding a 301 redirect to get users to the “real” page. We determine this based on a multitude of factors, including whether or not you included the URL in a Sitemap, how many places it’s linked from (and if any of those are also on your site), and whether the URL has gotten any traffic recently from search.

Once you think you’ve fixed the issue (you can test your fix by fetching the URL as Googlebot), you can let us know by marking the error as “fixed” if you are a user with full access permissions. This will remove the error from your list.  In the future, the errors you’ve marked as fixed won’t be included in the top errors list, unless we’ve encountered the same error when trying to re-crawl a URL.

Select errors and mark them as fixed

We’ve put a lot of work into the new Crawl errors feature, so we hope that it will be very useful to you. Let us know what you think and if you have any suggestions, please visit our forum!

Written by Kurt Dresner, Webmaster Tools team
URL: http://googlewebmastercentral.blogspot.com/2012/03/crawl-errors-next-generation.html