Saturday, December 15, 2012

[Gd] Fridaygram: Lady Ada Lovelace, evolving limbs, ancient labyrinth

| More

Google Developers Blog: Fridaygram: Lady Ada Lovelace, evolving limbs, ancient labyrinth

Author Photo
By Scott Knaster, Google Developers Blog Editor

This week we celebrated the 197th birthday of computing pioneer Lady Ada Lovelace with a nifty Google Doodle. Among other accomplishments, Ada is credited with publishing the world's first algorithm for use with Charles Babbage’s Analytical Engine.


Coincidentally, also this week we launched the latest episodes in our Women Techmakers series on Google Developers Live. We're highlighting women who are making big social impacts through their innovations in tech. Please check it out.

In other areas of science this week, researchers in Spain used zebra fish to test an idea about limbs evolving from fins. The scientists ramped up the activity of a particular gene, which caused the fish to produce rudimentary limbs instead of fins. This might be an evolutionary clue about where our own arms and legs came from.

Finally, it looks like the mystery of line drawings in the Peruvian desert has been solved, according to Clive Ruggles, who is an archaeoastronomer (which might be the coolest job title ever) and archaeologist Nicholas Saunders. Ruggles says the drawings are a labyrinth, and "This labyrinth was meant to be walked, not seen". Well said, and in that spirit, we hope you get out and take a walk of your own this weekend, even if you don’t have an awesome ancient labyrinth nearby.


Each Friday on this blog we skip our usual developer topics and offer interesting (we hope) stuff that’s not directly related to writing code.
URL: http://googledevelopers.blogspot.com/2012/12/fridaygram-lady-ada-lovelace-evolving.html

[Gd] Chrome OS Management Console Update

| More

Chrome Releases: Chrome OS Management Console Update



The Chrome OS Management Console in the administrator control panel has been updated. This update brings new user policies including:
  • Screenshot
  • Allow external devices, such as Secure Digital (SD) cards and USB Flash drives
  • Audio input
  • Audio output
Known issues are available here. Enterprise customers can report an issue by contacting support.

Lawrence Lui
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/chrome-os-management-console-update.html

Friday, December 14, 2012

[Gd] Dev Channel Update for Chrome OS

| More

Chrome Releases: Dev Channel Update for Chrome OS


The Dev channel has been updated to 25.0.1354.2 (Platform version: 3379.2.0) for all Chrome OS devices. This build contains a number of stability fixes and feature enhancements. 

Some highlights of these changes are:
  • Modifications to the system tray to display accessibility options.
  • Tap dragging is now a user preference.
  • Fixes to corruption issues for some Netflix videos on Samsung Chromebox and Samsung Chromebook Series 5. 
  • Extended multi-monitor support (157734)
Known Issues:
  • Chrome Office Viewer will not work on this version for Samsung Chromebooks. Workaround: Upload files to your Google Drive online, and view files online.
  • Enabling the accessibility magnifying glass prevents the screen from redrawing properly (37107)

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...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Danielle Drew
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/dev-channel-update-for-chrome-os_14.html

[Gd] The Simpler, Yet More Powerful New YouTube Data API

| More

YouTube API Blog: The Simpler, Yet More Powerful New YouTube Data API

Since its initial launch in 2007, the YouTube Data API has become one of Google’s most popular APIs by request volume, thanks to the awesome apps from developers like you. To help you make better integrated video experiences, you can now use the YouTube API version 3.0. The new API is easy to use thanks to rich client library support, improved tooling, reference documentation and integration with Google’s common API infrastructure.  Version 3.0 only returns what you ask for and is using JSON rather than XML encoding for greater efficiency. The API introduces new core functionality including Freebase integration via topics, and universal search.  If you develop social media management apps, you’ll love channel bulletin post and full subscriber list management, also new in this release. Version 3.0 of the API constitutes the API's biggest overhaul to date and we’re eager for you to try it today

New Functionality: Topics, Universal Search, and Audience Engagement Support

Have you ever tried to search for YouTube videos only to find out that keyword search can produce ambiguous results? With the new Topics API, thanks to the power of Freebase, you can find exactly what you’re looking for by specifying Freebase topic IDs rather than search keywords. 
For example, if you’re reading this post from outside of the US and would like to search for content related to football, /m/02vx4 is probably the topic ID you're after. The API's universal search feature lets you retrieve channels, playlists and videos matching the topic with just one request like this one. Find out more in our Topics API Guide.  
Version 3.0 introduces better tools to engage and interact with one’s YouTube audience. Social media management apps can now help content creators communicate with their channel subscribers using buletin posts

Efficiency, Client Libraries, Better Tooling and More!

To help you reduce your app’s bandwidth requirements version 3.0 only returns the information you ask for as specified by the “part” parameter.  
While the default JSON encoding in version 3.0 is more efficient than XML in version 2.0, if parsing JSON isn’t your thing, check out the client libraries for .NET, Dart, Go, Java, JavaScript, Objective-C, PHP, Python and Ruby. The libraries use OAuth 2.0 authorization and work with the YouTube API as well as other modern Google APIs thus simplifying your application.
The familiar Google API tools such as the API console  work with YouTube API version 3.0 without any extra hassles. Additionally, our API reference documentation now allows you to scroll down to the bottom of any reference page to try the API. You can also or visit the standalone API Explorer to browse a list of supported methods. 

App Examples

Even though version 3.0 is still experimental, a number of exciting new apps are already using it. Let’s look at a few examples: 
  •  Showyou, an app that makes it easy to watch the Internet, integrated the Topics API to enable users to discover related videos after tapping on topics associated with the Showyou feed. 
  • Argentina-based Interesante integrated the Topics API to determine the Freebase topic of videos being shared. Interesante used this to serve interest-based video recommendations. 
  • FanBridge, a company specializing in growing and managing one’s fan base, recently introduced channel bulletin post functionality with scheduled posts support.
  • Tubular Labs, which focuses on YouTube audience development, uses subscriber list to help content creators develop a better understanding of their audiences. 
  • Pixability, a company specializing in YouTube marketing software, was able to quickly port their Online Video Grader to the YouTube API version 3.0 thanks to the new Python client library.
Learn More

If you would like to learn more about the YouTube API version 3.0, in addition to the API documentation, the material curated in this playlist is a great place to start. Please subscribe to the YouTube for Developers' channel to keep up on the latest.


Use The Source, Luke! 

Since the most fun way to work with it is to try it, we’ve prepared a few code examples in Python and JavaScript to get you started. For a more comprehensive client-side app using the Topics API, try the Topics Explorer. You can find its source code on code.google.com.

Cheers,
-- Raul Furnică, Vladimir Vuskovic and Pepijn Crouzen, YouTube API Team

URL: http://apiblog.youtube.com/2012/12/the-simpler-yet-more-powerful-new.html

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update

The Dev channel has been updated to 25.0.1359.3 for Windows, Mac, Linux, and Chrome Frame. This update contains a number of stability fixes. A full list of changes in this build is 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.

Jason Kersey
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/dev-channel-update_13.html

[Gd] App Engine 1.7.4 released

| More

Google Developers Blog: App Engine 1.7.4 released

Author PhotoBy the Google App Engine Team

Cross-posted from the Google App Engine Blog

The Google App Engine team has been busy putting together our final release of 2012. This release includes a number of features graduating from Experimental status as well as the usual batch of bug fixes and improvements. We’ll be taking a short break from our monthly release cycle over the holidays, but we’ll be back to our normal schedule starting in February.  

Expanded EU Support
We’re happy to announce that we are expanding European Union datacenter support, based on positive feedback from early users.  You can sign up here.  Please note, deployment is currently limited to billing-enabled applications.
We understand that data locality and latency are important to developers and are committed to further expanding this support in the coming months.

Java
We've made a new Maven plugin available, added the source to the SDK for easier IDE debugging, and made significant performance improvements to the JSP compilation process.  Please see our Java release notes for more information.

Python
We’ve made a big push to bring a number of new features to GA, upgraded the interpreter to version 2.7.3, and added several new experimental features.  For more details, please see our Python release notes.

New and Upgraded Features
We also have a handful of notable features in this release:

  • Task Queue statistics (General Availability): You can see statistics such as the current number of tasks in a queue, the number of tasks executed in the last hour, and more.
  • Traffic splitting (General Availability): You can split requests amongst different versions of your app.
  • LogsReader and Logs API (General Availability): You can now fetch requests based on a list of request IDs.
  • Expanded Datastore query support (Experimental): We’ve added ‘DISTINCT’ support to Datastore queries.

Full release notes and Google Cloud Platform newsletter
The complete list of features and a list of bug fixes for 1.7.4 can be found in our release notes. For App Engine coding questions and answers check us out on Stack Overflow, and for general discussion and feedback, find us on our Google Group.

Finally, to stay up to date with Google Cloud Platform, sign up for our newsletter where you’ll get the latest news, announcements and event information.



Written by the Google App Engine Team.

Posted by Scott Knaster, Editor
URL: http://googledevelopers.blogspot.com/2012/12/app-engine-174-released.html

Thursday, December 13, 2012

[Gd] App Engine 1.7.4 Released

| More

Google App Engine Blog: App Engine 1.7.4 Released



The Google App Engine team has been busy putting together our final release of 2012. This release includes a number of features graduating from Experimental status as well as the usual batch of bug fixes and improvements. We’ll be taking a short break from our monthly release cycle over the holidays, but we’ll be back to our normal schedule starting in February.  



Expanded EU Support

We’re happy to announce that we are expanding European Union datacenter support, based on positive feedback from early users.  You can sign up here.  Please note, deployment is currently limited to billing-enabled applications. We understand that data locality and latency are important to developers and are committed to further expanding this support in the coming months.



Java

We've made a new Maven plugin available, added the source to the SDK for easier IDE debugging, and made significant performance improvements to the JSP compilation process.  Please see our Java release notes for more information.



Python

We’ve made a big push to bring a number of new features to GA, upgraded the interpreter to version 2.7.3, and added several new experimental features.  For more details, please see our Python release notes.



New and Upgraded Features

We also have a handful of notable features in this release:




  • Task Queue statistics (General Availability): You can see statistics such as the current number of tasks in a queue, the number of tasks executed in the last hour, and more.

  • Traffic splitting (General Availability): You can split requests amongst different versions of your app.

  • LogsReader and Logs API (General Availability): You can now fetch requests based on a list of request IDs.

  • Expanded Datastore query support (Experimental): We’ve added ‘DISTINCT’ support to Datastore queries.




Full release notes and Google Cloud Platform newsletter

The complete list of features and a list of bug fixes for 1.7.4 can be found in our release notes. For App Engine coding questions and answers check us out on Stack Overflow, and for general discussion and feedback, find us on our Google Group.



Finally, to stay up to date with Google Cloud Platform, sign up for our newsletter where you’ll get the latest news, announcements and event information.




- Posted by the Google App Engine Team
URL: http://googleappengine.blogspot.com/2012/12/app-engine-174-released.html

[Gd] Stable Channel Update for Chrome OS

| More

Chrome Releases: Stable Channel Update for Chrome OS


The Stable channel has been updated to 23.0.1271.99 (Platform version: 2913.260.0) for new Samsung Chromebook and Acer C7 Chromebook . This build contains a number of stability fixes. Machines will be receiving update over the next several days.

Some highlights of these changes are: 
  • Update Adobe Flash to version 11.331.520 (arm)
  • Fixed an issue in which device was taken to out-of-box state after restarting 
  • Fixed unexpected "Your password has changed" dialog prompt on restart/resume 
  • Resolve most cases of reboots after sleep/resume
  • Stability fixes
Known Issues:
  • Black screen screen on resume occasionally (Issue: 37057)

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...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia & Ben Henry
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/stable-channel-update-for-chrome-os.html

[Gd] AdWords Analysis in Google Apps Script

| More

Google Apps Developer Blog: AdWords Analysis in Google Apps Script

Editor’s Note: Guest author David Fothergill works at QueryClick, a search-engine marketing company based in the UK. — Eric Koleda

Working in Paid Search account management, I've often found tremendous wins from making reports more useful and efficient. Refining your analytics allows you to streamline your workflow, allowing more time for strategic and proactive thinking — and that's what we're paid for, not endless number-crunching.

The integration between Google Analytics and Apps Script has opened up lots of opportunities for me to make life easier through automation. In a recent blog post on my agency's website, I outlined how an automated report can quickly “heatmap” conversion rate by time and day. The aim of the report is to provide actionable analysis to inform decisions on day-part bidding and budget strategies.

In that post, I introduce the concepts and provide the scripts, sheet, and instructions to allow anyone to generate the reports by hooking the scripts up to their own account. Once the initial sheet has been created, the script only requires the user to provide a Google Analytics profile number and a goal for which they want to generate heatmaps. In this post, we’ll break down the code a bit.


Querying the API

This is a slight amendment to the code that queries the Core Reporting API. Apart from customising the optArgs dimensions to use day and hour stats, I have modified it to use goal data from the active spreadsheet, because not all users will want to measure the same goals:


function getReportDataForProfile(ProfileId, goalNumber) {
//take goal chosen on spreadsheet and select correct metric
var tableId = 'ga:' + ProfileId;
if (goalNumber === 'eCommerce Trans.') {
var goalId = 'ga:Transactions' ;
} else {
var goalId = 'ga:goal' + goalNumber + 'Completions';
}
// Continue as per example in google documentation ...
}

Pivoting the Data

Once we’ve brought the Google Analytics data into the spreadsheet in raw form, we use a pivot table to plot the hour of the day against the day of the week.

For this type of report, I'd like to use conditional formatting to heatmap the data — but conditional formatting in Google Sheets is based on fixed values, whereas we want the thresholds to change based on cell values. However, thanks to the flexibility of scripts, I was able to achieve dynamic conditional formatting.


Conditional Formatting Using Scripts

The script needs to know the boundaries of our data, so I’ve set up several cells that display the maximums, minimums, and so forth. Once these were in place, the next step was to create a function that loops through the data and calculates the desired background color for each cell:


function formatting() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().
getSheetByName('Heatmap');

var range = sheet.getRange('B2:H25');
range.setBackgroundColor('white');
var values = range.getValues()

//get boundaries values for conditional formatting
var boundaries = sheet.getRange('B30:B35').getValues();

//get range to 'heatmap'
var backgroundColours = range.getBackgroundColors();

for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
// Over 90%
if (values[i][j] > boundaries[1][0]) {
backgroundColours[i][j] = '#f8696b';
}
// Between 80% and 90%
if (values[i][j] < boundaries[1][0]
&& values[i][j] >= boundaries[2][0]) {
backgroundColours[i][j] = '#fa9a9c';
}
// Between 60% and 80%
if (values[i][j] < boundaries[2][0]
&& values[i][j] >= boundaries[3][0]) {
backgroundColours[i][j] = '#fbbec1';
}
// Between 40% and 60%
if (values[i][j] < boundaries[3][0]
&& values[i][j] >= boundaries[4][0]) {
backgroundColours[i][j] = '#fcdde0';
}
// Between 20% and 40%
if (values[i][j] < boundaries[4][0]
&& values[i][j] >= boundaries[5][0]) {
backgroundColours[i][j] = '#ebf0f9';
}
// Less than 20%
if (values[i][j] < boundaries[5][0]) {
backgroundColours[i][j] = '#dce5f3';
}
}
}
// set background colors as arranged above
range.setBackgroundColors(backgroundColours);
}

Calling the functions based on the profile ID and goal number specified in the main sheet gives us a quick, actionable report that can easily be adapted for use across multiple accounts.


function generateHeatmap() {
try {
var profileId = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('Heatmap').getRange(4,10).getValue();
var goalNumber = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('Heatmap').getRange(7,10).getValue();
if (profileId === '') {
Browser.msgBox('Please enter a valid Profile ID');
} else {
var results = getReportDataForProfile(profileId, goalNumber);
outputToSpreadsheet(results);
formatting();
}
} catch(error) {
Browser.msgBox(error.message);
}
}

This was my first foray into the slick integration between the Core Reporting API and spreadsheets, but has proven a valuable test case for how effective it will be to roll this method of reporting into our daily process of managing accounts.

We have now started the next steps, which involves building out “client dashboards” that will allow account managers access to useful reports at the press of a button. This moves us toward the goal of minimizing the time gathering and collating data, freeing it up to add further value to client projects.

Editor's Note: If you're interested in further scripting your AdWords accounts, take a look at AdWords Scripts, a version of Apps Script that's embedded right into the AdWords interface.

David Fothergill   profile | twitter | LinkedIn

Guest author David Fothergill is a Project Director at the search marketing agency QueryClick, focusing on Paid Search and Conversion Optimisation. He has been working in the field for around 8 years and currently handles a range of clients for the company, in verticals ranging from fashion and retail through to industrial services.


URL: http://googleappsdeveloper.blogspot.com/2012/12/adwords-analysis-in-google-apps-script.html

Wednesday, December 12, 2012

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


The Beta channel has been updated to 24.0.1312.40  for Windows, Mac, Linux, and Chrome Frame.  This build contains stability fixes. 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/12/beta-channel-update_12.html

[Gd] Beta Channel Update for Chrome OS

| More

Chrome Releases: Beta Channel Update for Chrome OS


The Beta channel has been updated to 23.0.1271.99 (Platform version: 2913.260.0) for all Chrome OS devices. This build contains a number of stability fixes  

Some highlights of these changes are:
  • Fixed an issue in which device was taken to out-of-box state after restarting 
  • Fixed occasional hang on boot after update for Acer AC700 
Known Issues:
  • Black screen screen on resume occasionally (Issue: 37057)

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...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia & Ben Henry
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/beta-channel-update-for-chrome-os_12.html

[Gd] Faster, simpler search in Chrome

| More

Chromium Blog: Faster, simpler search in Chrome

Since we launched Chrome, the team has continued to work on ways to make it fast and simple for people to use. To that end, we’re going to begin testing variations of Chrome’s New Tab page (NTP) in which a user’s default search provider will be able to add a search box or otherwise customize the NTP. While you can search straight from the omnibox in Chrome, we’ve found that many people still navigate to their search engine's home page to initiate a search instead. The goal is to save people time by helping them search and navigate the web faster.

We’ll also allow search engines to display the user’s search terms right in the omnibox, which avoids the need for a second search box on the results page. This new capability, along with other ways to improve search suggestions, are exposed in a new Embedded Search API, an extension of the existing SearchBox API. Search engines can implement any part of the specification if they’d like their users to experience a customized variation of the NTP experience.

Starting today, a small set of users on Dev channel on Windows and Chrome OS, who have Google selected as their search provider, will begin seeing variations of the new experience. Mac will be coming soon. We look forward to your feedback and bug reports, which you can file against the InstantExtended feature on crbug.com.

Posted by David Holloway, Software Engineer
URL: http://blog.chromium.org/2012/12/faster-simpler-search-in-chrome.html

[Gd] Introducing Data Highlighter for event data

| More

Official Google Webmaster Central Blog: Introducing Data Highlighter for event data

Webmaster Level: All

At Google we're making more and more use of structured data to provide enhanced search results, such as rich snippets and event calendars, that help users find your content. Until now, marking up your site's HTML code has been the only way to indicate structured data to Google. However, we recognize that markup may be hard for some websites to deploy.

Today, we're offering webmasters a simpler alternative: Data Highlighter. At initial launch, it's available in English only and for structured data about events, such as concerts, sporting events, exhibitions, shows, and festivals. We'll make Data Highlighter available for more languages and data types in the months ahead.

Data Highlighter is a point-and-click tool that can be used by anyone authorized for your site in Google Webmaster Tools. No changes to HTML code are required. Instead, you just use your mouse to highlight and "tag" each key piece of data on a typical event page of your website:

Events markup with Data Highlighter

If your page lists multiple events in a consistent format, Data Highlighter will "learn" that format as you apply tags, and help speed your work by automatically suggesting additional tags. Likewise, if you have many pages of events in a consistent format, Data Highlighter will walk you through a process of tagging a few example pages so it can learn about their format variations. Usually, 5 or 10 manually tagged pages are enough for our sophisticated machine-learning algorithms to understand the other, similar pages on your site.

When you're done, you can review a sample of all the event data that Data Highlighter now understands. If it's correct, click "Publish."

From then on, as Google crawls your site, it will recognize your latest event listings and make them eligible for enhanced search results. You can inspect the crawled data on the Structured Data Dashboard, and unpublish at any time if you're not happy with the results.

Here’s a short video explaining how the process works:

To get started with Data Highlighter, visit Webmaster Tools, select your site, click the "Optimization" link in the left sidebar, and click "Data Highlighter".

If you have any questions, please read our Help Center article or ask us in the Webmaster Help Forum. Happy Highlighting!

Posted by , Product Manager

URL: http://googlewebmastercentral.blogspot.com/2012/12/introducing-data-highlighter-for-event.html

[Gd] Helping Webmasters with Hacked Sites

| More

Official Google Webmaster Central Blog: Helping Webmasters with Hacked Sites

Webmaster Level : Intermediate/Advanced

Having your website hacked can be a frustrating experience and we want to do everything we can to help webmasters get their sites cleaned up and prevent compromises from happening again. With this post we wanted to outline two common types of attacks as well as provide clean-up steps and additional resources that webmasters may find helpful.

To best serve our users it’s important that the pages that we link to in our search results are safe to visit. Unfortunately, malicious third-parties may take advantage of legitimate webmasters by hacking their sites to manipulate search engine results or distribute malicious content and spam. We will alert users and webmasters alike by labeling sites we’ve detected as hacked by displaying a “This site may be compromised” warning in our search results:



We want to give webmasters the necessary information to help them clean up their sites as quickly as possible. If you’ve verified your site in Webmaster Tools we’ll also send you a message when we’ve identified your site has been hacked, and when possible give you example URLs.

Occasionally, your site may compromised to facilitate the distribution of malware. When we recognize that, we’ll identify the site in our search results with a label of “This site may harm your computer” and browsers such as Chrome may display a warning when users attempt to visit. In some cases, we may share more specific information in the Malware section of Webmaster Tools. We also have specific tips for preventing and removing malware from your site in our Help Center.

Two common ways malicious third-parties may compromise your site are the following:

Injected Content


Hackers may attempt to influence search engines by injecting links leading to sites they own. These links are often hidden to make it difficult for a webmaster to detect this has occurred. The site may also be compromised in such a way that the content is only displayed when the site is visited by search engine crawlers.



Example of injected pharmaceutical content

If we’re able to detect this, we’ll send a message to your Webmaster Tools account with useful details. If you suspect your site has been compromised in this way, you can check the content your site returns to Google by using the Fetch as Google tool. A few good places to look for the source of such behavior of such a compromise are .php files, template files and CMS plugins.

Redirecting Users


Hackers might also try to redirect users to spammy or malicious sites. They may do it to all users or target specific users, such as those coming from search engines or those on mobile devices. If you’re able to access your site when visiting it directly but you experience unexpected redirects when coming from a search engine, it’s very likely your site has been compromised in this manner.

One of the ways hackers accomplish this is by modifying server configuration files (such as Apache’s .htaccess) to serve different content to different users, so it’s a good idea to check your server configuration files for any such modifications.



This malicious behavior can also be accomplished by injecting JavaScript into the source code of your site. The JavaScript may be designed to hide its purpose so it may help to look for terms like “eval”, “decode”, and “escape”.



Cleanup and Prevention


If your site has been compromised, it’s important to not only clean up the changes made to your site but to also address the vulnerability that allowed the compromise to occur. We have instructions for cleaning your site and preventing compromises while your hosting provider and our Malware and Hacked sites forum are great resources if you need more specific advice.

Once you’ve cleaned up your site you should submit a reconsideration request that if successful will remove the warning label in our search results.

As always, if you have any questions or feedback, please tell us in the Webmaster Help Forum.

Posted by Oliver Barrett, Search Quality Team
URL: http://googlewebmastercentral.blogspot.com/2012/12/helping-webmasters-with-hacked-sites.html

Tuesday, December 11, 2012

[Gd] ClientLogin using Google Accounts

| More

YouTube API Blog: ClientLogin using Google Accounts

Long-time readers might remember a blog post from a while back entitled “ClientLogin #FAIL”, in which we covered the myriad ways in which your ClientLogin authorization attempts might result in an error. Even though ClientLogin has been officially deprecated since April 2012, and even though we’ve been recommending that developers switch to OAuth 2 for longer than that, we know there are still a good number of legacy applications out there that still rely on ClientLogin.

If you are a developer of such an application, there’s another thing that you (and your users) will need to start watching out for: at some point in the future, we will start requiring that the username parameter passed to ClientLogin (i.e. what’s referred to as the Email= value in the ClientLogin request) correspond to the full email address of the Google Account that’s associated with an underlying YouTube channel. We’ve supported using Google Account email addresses with ClientLogin for many years now, ever since we started linking Google Accounts to YouTube channels, but old habits die hard, and many users still use YouTube usernames.

We haven’t yet determined a date for when we still stop supporting ClientLogin with YouTube usernames and will provide additional details when we know more about when it will take place. However, if you use ClientLogin, it’s not too early to start encouraging your application’s users to start providing their Google Account email addresses instead of their YouTube usernames when logging in. If you have the ability to update your existing application’s user interface, we recommend doing so to indicate that the username field should take a Google Account email address. If you have any online help materials or technical support for your software, update them to ensure that users know to provide their Google Account email address.

Users who log in via the YouTube.com web interface, or who go through the AuthSub, OAuth 1, or OAuth 2 web authorization flows will soon be required to use their Google Account email address instead of their YouTube username as well. This web-based transition will take place well before we deprecate YouTube usernames for ClientLogin, and it should be transparent to developers since Google controls the user interface for these flows. For more information, see this help center article.

As mentioned, we’ll have a follow-up post in coming months with more details about exactly when we’ll stop supporting YouTube usernames with ClientLogin. That post will also communicate the exact error message that ClientLogin will return when a YouTube username is used. We’d like to close with one more plea: ClientLogin is deprecated, and is technically inferior to OAuth 2 in a number of important ways. Our new Google APIs client libraries provide first-class OAuth 2 integration that developers can take advantage of in their new code, or back port to their existing code. You will be doing your users a service and making their accounts more secure by transitioning from ClientLogin to OAuth 2.

Cheers,
Jeff Posnick, YouTube API Team
URL: http://apiblog.youtube.com/2012/12/clientlogin-using-google-accounts.html

[Gd] Stable Channel Update

| More

Chrome Releases: Stable Channel Update

The Stable channel has been updated to 23.0.1271.97 for Windows, Mac, Linux, and ChromeFrame platforms. This build contains the following fixes:

  • Some texts in a Website Settings popup are trimmed (Issue: 159156)
  • Linux: <input> selection renders white text on white bg in apps (Issue: 158422)
  • some plugins stopped working (Issue: 159896)
  • Fixed a known crash (Issue:161854)
  • Windows8: Unable to launch system level chrome after self destructing user-level chrome (Issue: 158632)
Security fixes and rewards:
Please see the Chromium security page for more detail. Note that the referenced bugs may be kept private until a majority of our users are up to date with the fix.

  • [$1500] [158204] High CVE-2012-5139: Use-after-free with visibility events. Credit to Chamal de Silva.
  • [$1000] [159429] High CVE-2012-5140: Use-after-free in URL loader. Credit to Chamal de Silva.
  • [160456] Medium CVE-2012-5141: Limit Chromoting client plug-in instantiation. Credit to Google Chrome Security Team (Jüri Aedla).
  • [160803] Critical CVE-2012-5142: Crash in history navigation. Credit to Michal Zalewski of Google Security Team.
  • [160926] Medium CVE-2012-5143: Integer overflow in PPAPI image buffers. Credit to Google Chrome Security Team (Cris Neckar).
  • [$2000] [161639] High CVE-2012-5144: Stack corruption in AAC decoding. Credit to pawlkt.


This build also has a new version of Adobe Flash. You can find the details here.

Full details about what changes are in this release are available in the SVN revision log.  Interested in hopping on the stable 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/12/stable-channel-update.html

[Gd] GTAC: Call for Proposals & Attendance

| More

Google Testing Blog: GTAC: Call for Proposals & Attendance

By The GTAC Committee

We are happy to announce that the application process is now open for presentation proposals and attendance for the seventh GTAC (Google Test Automation Conference) to be held at the Google New York office on April 23 - 24th, 2013.

GTAC brings together engineers from many organizations to discuss test automation. It is a great opportunity to present, learn, and challenge modern testing technologies and strategies. GTAC will be streamed live on YouTube this year, so even if you can’t attend, you’ll be able to watch the conference from your computer.

Speakers
Presentations are targeted at student, academic, and experienced engineers working on test automation. Full presentations and lightning talks are 45 minutes and 15 minutes respectively. Speakers should be prepared for a question and answer session following their presentation. As mentioned in our recent post, the main theme is on testing media and mobile, however, we will consider proposals on other topics.

Application
For presentation proposals and/or attendance, complete this form. We will be selecting about 200 applicants for the event.

Deadline
The due date for both presentation and attendance applications is Jan 23rd, 2013.

Fees
There are no registration fees. We will send out detailed registration instructions to each invited applicant. We will provide meals. Attendees must arrange their own travel and accommodations.

URL: http://googletesting.blogspot.com/2012/12/gtac-call-for-proposals-attendance.html

[Gd] The 2012 Android Developer Survey

| More

Android Developers Blog: The 2012 Android Developer Survey


The Android Developer Relations team is passionate about making Android app development a great experience, so we're asking all of you involved in building Android apps -- from engineers, to product managers, and distribution and support folks -- to let us know what you think.







We want to better understand the challenges you face when planning, designing, writing, and distributing your Android apps, so we've put together a brief (10-15min) survey that will help us test our assumptions and allow us to create better tools and resources for you.




We've had a great response from thousands of Android developers who have already responded - thank you! If you haven't yet filled in the survey, you can find it here: 2012 Android Developer Survey.



We'll be closing this year's survey this Sunday (December 17th) at 12pm Pacific Time, so be sure to get your responses in before then.



To keep the survey short and simple, there are no sections for general comments. That's because we want to hear your thoughts, questions, suggestions, and complaints all year. If there's anything you'd like to share with us, you can let us know by posting to us (publicly or privately) on Google+ at +Android Developers or using the hash tag #AndroidDev.



We can't always respond, but we're paying close attention to everything you have to say.



As always, we're looking forward to hearing your thoughts!

URL: http://android-developers.blogspot.com/2012/12/the-2012-android-developer-survey.html

Monday, December 10, 2012

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update

The Dev channel has been updated to 25.0.1354.0 for Windows, Mac, Linux, and Chrome Frame.  This build includes a test of new variations of the New Tab Page for a small set of users.  A full list of changes in this build is 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.

Jason Kersey
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/12/dev-channel-update_10.html

[Gd] In-App Billing Version 3

| More

Android Developers Blog: In-App Billing Version 3

Posted by Posted by Bruno Oliveira of the Android Developer Relations Team



In-app Billing has come a long way since it was first announced on Google Play (then Android Market). One year and a half later, the vast majority of top-grossing apps on Google Play use In-app Billing and thousands of developers monetize apps through try-and-buy, virtual goods, as well as subscriptions.



In-app Billing is expanding again today, making it even more powerful and flexible so you can continue to build successful applications. Version 3 introduces the following new features:

  • An improved design that makes applications simpler to write, debug and maintain. Integrations that previously required several hundred lines of code can now be implemented in as few as 50.

  • More robust architecture resulting in fewer lost transactions.

  • Local caching for faster API calls.

  • Long-anticipated functionality such as the ability to consume managed purchases and query for product information.

In-app Billing version 3 is available to any application that uses in-app items (support for subscriptions is coming shortly). It is supported by Android 2.2+ devices running the latest version of the Google Play store (over 90% of active devices).

Instead of the four different application components required by the asynchronous structure of the previous release, the new version of the API allows developers to make synchronous requests and handle responses directly from within a single Activity, all of which are accomplished with just a few lines of code. The reduced implementation cost makes this a great opportunity for developers who are implementing new in-app billing solutions.



Easier to Implement



In contrast to the earlier model of asynchronous notification through a background service, the new API is now synchronous and reports the result of a purchase immediately to the application. This eliminates the necessity to integrate the handling of asynchronous purchase results into the application's lifecycle, which significantly simplifies the code that a developer must write in order to sell an in-app item.



To launch a purchase, simply obtain a buy Intent from the API and start it:



Bundle bundle = mService.getBuyIntent(3, "com.example.myapp",
MY_SKU, ITEM_TYPE_INAPP, developerPayload);

PendingIntent pendingIntent = bundle.getParcelable(RESPONSE_BUY_INTENT);
if (bundle.getInt(RESPONSE_CODE) == BILLING_RESPONSE_RESULT_OK) {
// Start purchase flow (this brings up the Google Play UI).
// Result will be delivered through onActivityResult().
startIntentSenderForResult(pendingIntent, RC_BUY, new Intent(),
Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
}


Then, handle the purchase result that's delivered to your Activity's onActivityResult() method:



public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RC_BUY) {
int responseCode = data.getIntExtra(RESPONSE_CODE);
String purchaseData = data.getStringExtra(RESPONSE_INAPP_PURCHASE_DATA);
String signature = data.getStringExtra(RESPONSE_INAPP_SIGNATURE);

// handle purchase here (for a permanent item like a premium upgrade,
// this means dispensing the benefits of the upgrade; for a consumable
// item like "X gold coins", typically the application would initiate
// consumption of the purchase here)
}
}


Also, differently from the previous version, all purchases are now managed by Google Play, which means the ownership of a given item can be queried at any time. To implement the same mechanics as unmanaged items, applications can consume the item immediately upon purchase and provision the benefits of the item upon successful consumption.



Local Caching



The API leverages a new feature of the Google Play store application which caches In-app Billing information locally on the device, making it readily available to applications. With this feature, many API calls will be serviced through cache lookups instead of a network connection to Google Play, which significantly speeds up the API's response time. For example, an application could query the owned items using this call:



Bundle bundle = mService.getPurchases(3, mContext.getPackageName(), ITEM_TYPE_INAPP);
if (bundle.getInt(RESPONSE_CODE) == BILLING_RESPONSE_RESULT_OK) {
ArrayList mySkus, myPurchases, mySignatures;
mySkus = bundle.getStringArrayList(RESPONSE_INAPP_ITEM_LIST);
myPurchases = bundle.getStringArrayList(RESPONSE_INAPP_PURCHASE_DATA_LIST);
mySignatures = bundle.getStringArrayList(RESPONSE_INAPP_PURCHASE_SIGNATURE_LIST);

// handle items here
}


Querying for owned items was an expensive server call in previous versions of the API, so developers were discouraged from doing so frequently. However, since the new version implements local caching, applications can now make this query every time they start running, and as often as necessary thereafter.



Product Information



The API also introduces a long-anticipated feature: the ability to query in-app product information directly from Google Play. Developers can now programmatically obtain an item's title, description and price. No currency conversion or formatting is necessary: prices are reported in the user's currency and formatted according to their locale:



Bundle bundle = mService.getSkuDetails(3, "com.example.myapp", 
ITEM_TYPE_INAPP, skus); // skus is a Bundle with the list of SKUs to query
if (bundle.getInt(RESPONSE_CODE) == BILLING_RESPONSE_RESULT_OK) {
List detailsList = bundle.getStringArrayList(RESPONSE_SKU_DETAILS_LIST);
for (String details : detailsList) {
// details is a JSON string with
// SKU details (title, description, price, ...)
}
}


This means that, for example, developers can update prices in Developer Console and then use this API call to show the updated prices in the application (such as for a special promotion or sale) with no need to update the application's code to change the prices displayed to the user.



Sample Application



In addition to the API, we are releasing a new sample application that illustrates how to implement In-app Billing. It also contains helper classes that implement commonly-written boilerplate code such as marshalling and unmarshalling data structures from JSON strings and Bundles, signature verification, as well as utilities that automatically manage background work in order to allow developers to call the API directly from the UI thread of their application. We highly recommend that developers who are new to In-app Billing leverage the code in this sample, as it further simplifies the process of implemention. The sample application is available for download through the Android SDK Manager.



App-Specific Keys



Along with the other changes introduced with In-app Billing Version 3, we have also improved the way Licensing and In-app Billing keys are managed. Keys are now set on a per-app basis, instead of a per-developer basis and are available on the “Services & APIs” page for each application on Google Play Developer Console preview. Your existing applications will continue to work with their current keys.



Get Started!



To implement In-app Billing in your application using the new API, start with the updated In-App Billing documentation and take the Selling In-App Products training class. To use In-App Billing Version 3, you’ll need to use the new Google Play Developer Console preview.

URL: http://android-developers.blogspot.com/2012/12/in-app-billing-version-3.html