Friday, August 10, 2012

[Gd] Behind the scenes: visualizing the evolution of the web

| More

Google Developers Blog: Behind the scenes: visualizing the evolution of the web

Deroy
Sergio

This guest post is by Sergio Alvarez, Vizzuality, and Deroy Peraza, Hyperakt, in collaboration with Min Li Chan, Chrome Team

At Google I/O this year, we launched a new version of The Evolution of the Web, a project visualizing the history and pace of innovation in web technologies and browsers. The Evolution of the Web traces how web technologies have evolved in the last two decades and highlights the web community’s continuous efforts to improve the web platform and enable developers to create new generations of immersive web experiences. In collaboration with the Google Chrome team, the team at Hyperakt designed the interactive visualization while Vizzuality built it using HTML5, SVG, and CSS3.


The visualization included 43 web technology "strands" across 7 browser timelines to represent major developments on the web platform. On hover or tap, each strand is highlighted to reveal intersections that tell the story of when browser support was implemented for each new web technology. To provide additional context, we developed a secondary visualization to illustrate the growth of Internet users and traffic.


In addition, this year's design includes the option for viewing the visualization in both day and night mode, making it ideal for large-screen projection.


For the teams working on this site, it was interesting to note that we used roughly 60% of the technologies highlighted in the timeline to build this visualization:
  • We used HTML5, SVG, and canvas to draw the visualization, alongside CSS3 transforms, rotation, and perspective for immersive animation and data interaction.
  • We used CSS3 to kick off the timeline with a 3D-like animation, as well as the panning and zooming functions, toggling between day and night modes.
  • Additionally, we took advantage of the D3 JavaScript library’s interaction and visual frameworks.
In working closely with the Chrome team, we tested multiple approaches to find the best way to bring to life initial design concepts and build a sleek, responsive visualization. In fact, during the project's development, the Vizzuality team came across an SVG rendering issue that prevented the animation from running smoothly. The Chrome team looked into this bug immediately and promptly enabled a fix the following day – a glimpse at the web evolving in real-time, if you will!

We're amazed at how much the web has advanced over the last several years, and the pace of development is only accelerating. Never in the web's history has it been as exciting to be a designer or web developer, and we hope that this visualization captures some of that spirit.


Deroy Peraza is a founding partner and creative director at Hyperakt, a New York City design firm that helps change-makers tell their stories. He was born in Havana, Cuba, and lives in Brooklyn with his wife Jenna and his son Luco.

Sergio Alvarez is co-founder and lead designer at Vizzuality and CartoDB, a NYC-based company working on data analysis and visualization on stories that matter, such as climate change or biodiversity loss. He is a good runner and loves to ride his long board.

Posted by Scott Knaster, Editor
URL: http://googledevelopers.blogspot.com/2012/08/behind-scenes-visualizing-evolution-of.html

[Gd] The evolution of Chrome packaged apps

| More

Chromium Blog: The evolution of Chrome packaged apps

Just over a month ago, at Google I/O, we announced significant changes to Chrome’s packaged application platform. These changes are intended to allow apps to break out of the browser, work offline by default, and enable richer, more immersive experiences.


Check out our overview video for a quick intro to the new platform. 

With the latest version of Chrome in the developer channel, you can build, load, debug and test your apps without command-line flags, although you may need to enable experimental APIs in some cases. Because we’re still in developer preview mode, the Chrome Web Store doesn’t yet accept uploads of these new packaged apps. We’ll enable web store support later this year, and when we flip that switch, users will be able to discover and download your apps directly from the store.

In order to get started building apps, visit our developer documentation at developer.chrome.com/apps and check out our growing list of sample applications on Github (thanks for the pull requests; keep them coming). If you’d like to reach us while you’re building apps, you can join us on the #chromium-apps Freenode IRC channel, join the chromium-apps group or report an issue.

We’re also starting a regular weekly hangout every Tuesday at 9:30am (Pacific Time). Our first one will take place on Tuesday, August 14th. You can add a reminder to your calendar and then tune in at Google Developers Live. And be sure to add +Google Chrome Developers to your circles to keep up on the latest from the Chrome team.

Posted by Mike Tsao, Evolved Software Engineer
URL: http://blog.chromium.org/2012/08/the-evolution-of-chrome-packaged-apps.html

[Gd] Beta Channel Update for Chrome OS

| More

Chrome Releases: Beta Channel Update for Chrome OS


The Beta channel has been updated to 21.0.1180.78 (Platform versions: 2465.116.0) for Chromebooks (Acer AC700, Samsung Series 5 550, Samsung Chromebook Series 3, and Cr-48) and Samsung Chromebox Series 3. This build contains a number of UI, stability & security improvements. 

Highlights of these changes are:
  • Update Adobe Flash to version 11.3.31.226
  • Update GTalk Plug-In to version 3.3.3
  • Wifi/3G stability fixes
  • Audio fixes

Known Issues:
  • 29198 - Built-in Ethernet link cycles up & down sometimes  
  • 141717 - 3G: Clicking 'Buy Plan' not working if Wifi disabled
  • 141737  - Tab hangs when playing a Vimeo playlist in the couch mode

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.

Josafat Garcia

Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/08/beta-channel-update-for-chrome-os_9.html

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update

The Dev channel has been updated to 22.0.1229.2 for Windows, Mac, and Linux.  A complete log of what changed can be found in the svn revision log.  Instructions and download links for our different release channels are available on the Chromium wiki.  If you find what you think is a new bug, please file it in our issue tracker.

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

[Gd] Dev Channel Update for Chrome OS

| More

Chrome Releases: Dev Channel Update for Chrome OS


The Dev channel has been updated to 22.0.1229.0 (Platform versions: 2723.0.0) for Chromebooks (Acer AC700, Samsung Series 5 550, Samsung Chromebook Series 3, and Cr-48) and Samsung Chromebox Series 3. This build contains a number of UI, stability & security improvements. 

Known issues:
  • 141182 - NBC streaming videos have been observed to occasionally consume too much memory. Workaround: Close tab or reboot machine. 
  • 33388Screen flickers every 5-6 seconds on DP to VGA connection
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/08/dev-channel-update-for-chrome-os_9.html

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update

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

This build fixes a problem with an item in Node::attributes disappearing (Issue 140473). 


If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Karen Grunberg
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/08/beta-channel-update_9.html

[Gd] Website testing & Google search

| More

Official Google Webmaster Central Blog: Website testing & Google search

Webmaster level: Advanced

We’ve gotten several questions recently about whether website testing—such as A/B or multivariate testing—affects a site’s performance in search results. We’re glad you’re asking, because we’re glad you’re testing! A/B and multivariate testing are great ways of making sure that what you’re offering really appeals to your users.

Before we dig into the implications for search, a brief primer:
Website testing is when you try out different versions of your website (or a part of your website), and collect data about how users react to each version. You use software to track which version causes users to do-what-you-want-them-to-do most often: which one results in the most purchases, or the most email signups, or whatever you’re testing for. After the test is finished you can update your website to use the “winner” of the test—the most effective content.

A/B testing is when you run a test by creating multiple versions of a page, each with its own URL. When users try to access the original URL, you redirect some of them to each of the variation URLs and then compare users’ behaviour to see which page is most effective.

Multivariate testing is when you use software to change differents parts of your website on the fly. You can test changes to multiple parts of a page—say, the heading, a photo, and the ‘Add to Cart’ button—and the software will show variations of each of these sections to users in different combinations and then statistically analyze which variations are the most effective. Only one URL is involved; the variations are inserted dynamically on the page.

So how does this affect what Googlebot sees on your site? Will serving different content variants change how your site ranks? Below are some guidelines for running an effective test with minimal impact on your site’s search performance.
  • No cloaking.
    Cloaking—showing one set of content to humans, and a different set to Googlebot—is against our Webmaster Guidelines, whether you’re running a test or not. Make sure that you’re not deciding whether to serve the test, or which content variant to serve, based on user-agent. An example of this would be always serving the original content when you see the user-agent “Googlebot.” Remember that infringing our Guidelines can get your site demoted or removed from Google search results—probably not the desired outcome of your test.
  • Use rel=“canonical”.
    If you’re running an A/B test with multiple URLs, you can use the rel=“canonical” link attribute on all of your alternate URLs to indicate that the original URL is the preferred version. We recommend using rel=“canonical” rather than a noindex meta tag because it more closely matches your intent in this situation. Let’s say you were testing variations of your homepage; you don’t want search engines to not index your homepage, you just want them to understand that all the test URLs are close duplicates or variations on the original URL and should be grouped as such, with the original URL as the canonical. Using noindex rather than rel=“canonical” in such a situation can sometimes have unexpected effects (e.g., if for some reason we choose one of the variant URLs as the canonical, the “original” URL might also get dropped from the index since it would get treated as a duplicate).
  • Use 302s, not 301s.
    If you’re running an A/B test that redirects users from the original URL to a variation URL, use a 302 (temporary) redirect, not a 301 (permanent) redirect. This tells search engines that this redirect is temporary—it will only be in place as long as you’re running the experiment—and that they should keep the original URL in their index rather than replacing it with the target of the redirect (the test page). JavaScript-based redirects are also fine.
  • Only run the experiment as long as necessary.
    The amount of time required for a reliable test will vary depending on factors like your conversion rates, and how much traffic your website gets; a good testing tool should tell you when you’ve gathered enough data to draw a reliable conclusion. Once you’ve concluded the test, you should update your site with the desired content variation(s) and remove all elements of the test as soon as possible, such as alternate URLs or testing scripts and markup. If we discover a site running an experiment for an unnecessarily long time, we may interpret this as an attempt to deceive search engines and take action accordingly. This is especially true if you’re serving one content variant to a large percentage of your users.
The recommendations above should result in your tests having little or no impact on your site in search results. However, depending on what types of content you’re testing, it may not even matter much if Googlebot crawls or indexes some of your content variations while you’re testing. Small changes, such as the size, color, or placement of a button or image, or the text of your “call to action” (“Add to cart” vs. “Buy now!”), can have a surprising impact on users’ interactions with your webpage, but will often have little or no impact on that page’s search result snippet or ranking. In addition, if we crawl your site often enough to detect and index your experiment, we’ll probably index the eventual updates you make to your site fairly quickly after you’ve concluded the experiment.

To learn more about website testing, check out these articles on Content Experiments, our free testing tool in Google Analytics. You can also ask questions about website testing in the Analytics Help Forum, or about search impact in the Webmaster Help Forum.

Posted by , Webmaster Trends Analyst
URL: http://googlewebmastercentral.blogspot.com/2012/08/website-testing-google-search.html

[Gd] Access Google APIs with Dart

| More

Google Developers Blog: Access Google APIs with Dart

Author PhotoBy Sam McCall, Software Engineer

Ever since we launched Dart, the structured web programming language, we've heard developers asking for a way to use Dart to connect to Google's most popular APIs and services. Thanks to Google's 20% time policy, I’m working on an open source library that helps Dart developers connect to Google APIs such as Google+, YouTube, URL Shortener, and many more.

My favorite sample showing you how to build web apps with Dart and Google APIs is roulette. This little app will shorten your URL, or if you're lucky, rickroll you.

This library is currently alpha and under active development. Please report all bugs in the issue tracker and ask questions in the discussion forum. Thanks for the feedback, and have fun!


Sam McCall is an engineer in Google’s Corporate Engineering Team in Munich, and is a part-time Dart tinkerer.

Posted by Scott Knaster, Editor
URL: http://googledevelopers.blogspot.com/2012/08/access-google-apis-with-dart.html

[Gd] Preview fonts with the new Poster mode

| More

Google Web Fonts: Preview fonts with the new Poster mode

Selecting just the right font for your website or application is a personal decision, and making sure the font harmonizes with your content is often time consuming. To help you narrow down your font choices, last week we announced a new tool to compare individual characters in a pair of fonts side by side. Today, we’re introducing Poster Images, which allows you to easily see what a font looks like with different effects, on a variety of different backgrounds.

To start, visit the Google Web Fonts directory and select the Poster tab at the top.




Change the font size or the appearance of the poster to check out how different styles look. When you find a font you like, hover over it to see more details and add it to your collection.
















We hope this makes choosing the right font easier and more fun!

Posted by Sang Tian, Software Engineering Intern
URL: http://googlewebfonts.blogspot.com/2012/08/preview-fonts-with-new-poster-tool.html

Thursday, August 9, 2012

[Gd] The road to safer, more stable, and flashier Flash

| More

Chromium Blog: The road to safer, more stable, and flashier Flash

A little more than two years ago, engineers on the Chrome team began a very ambitious project. In coordination with Adobe, we started porting Flash from the aging NPAPI architecture to our sandboxed PPAPI platform. With last week’s Chrome Stable release, we were finally able to ship PPAPI Flash to all Windows Chrome users, so they can now experience dramatically improved security and stability as well as improved performance down the line.

To appreciate just what a big step forward this is, it helps to understand a bit more about the history and architecture of NPAPI plug-ins. At its core, NPAPI is a thin layer of glue between the web browser and a native application. In the early days of the Web this provided a tremendous advantage, because it allowed third-party plug-ins to evolve rapidly and implement new capabilities, moving the whole web forward.

Unfortunately, as the web evolved, the past benefits of NPAPI became liabilities. The thinness allowed legacy browser and OS behavior to bleed through and crystallize to the point that it hamstrung future improvements. As browsers add compelling features like sandboxing, GPU acceleration, and a multi-process architecture, the legacy of NPAPI severely impedes or outright prevents us from extending those improvements to any pages with plug-in content.

By porting Flash to PPAPI we’ve been able to achieve what was previously impossible with NPAPI for the 99.9% of Chrome users that rely on Flash. Windows Flash is now inside a sandbox that’s as strong as Chrome’s native sandbox, and dramatically more robust than anything else available. And for the first time ever, Windows XP users (specifically, over 100 million Chrome users) have a sandboxed Flash—which is critical given the absence of OS support for security features like ASLR and integrity levels.

Beyond the security benefits, PPAPI has allowed us to move plug-ins forward in numerous other ways. By eliminating the complexity and legacy code associated with NPAPI, we’ve reduced Flash crashes by about 20%. We can also composite Flash content on the GPU, allowing faster rendering and smooth scrolling (with more improvements to come). And because PPAPI doesn’t let the OS bleed through, it’s the only way to use all Flash features on any site in Windows 8 Metro mode.

Moving forward, we’re finishing off the PPAPI Flash port for Mac OS X and hope to ship it soon. And Linux users have already been benefiting from PPAPI Flash since Chrome 20, along with Chrome OS users who have been running it for almost a year. Soon all Chrome users will have access to the improved security, stability, and performance of PPAPI Flash.

Posted by Justin Schuh, Software Engineer and Boring Security Guy
URL: http://blog.chromium.org/2012/08/the-road-to-safer-more-stable-and.html

[Gd] Stable Channel Update

| More

Chrome Releases: Stable Channel Update

The Stable channel has been updated to 21.0.1180.75 for Mac, Linux, Windows and Chrome Frame

This build fixes:

  • Flash videos not longer remaining in fullscreen when clicking a secondary monitor while the video is playing  (Issue: 140366). 
  • Flash video full screen displays on wrong monitor (Issue: 137523)
  • REGRESSION: Rendering difference in Chrome 21 and 22 that affected on Persian Wikipedia (Issue: 139502)
  • Some known crashes (Issues: 137498138552128652140140)
  • Audio objects are not "switched" immediately (Issue: 140247)
  • Print and Print Preview ignore paper size default in printer config (Issue: 135374)
  • Candidate windows is shown in wrong place in Retina display (Issue: 139108)
  • more of the choppy and distorted audio issues  (Issue: 136624)
  • Japanese characters showing in Chinese font (Issue: 140432)
  • Video playback issues with flash-based sites (Issue: 139953)
  • Sync invalidation notification broken after restart (Issue: 139424)
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.

  • [136643] [137721] [137957] High CVE-2012-2862: Use-after-free in PDF viewer. Credit to Mateusz Jurczyk of Google Security Team, with contributions by Gynvael Coldwind of Google Security Team.
  • [136968] [137361] High CVE-2012-2863: Out-of-bounds writes in PDF viewer. Credit to Mateusz Jurczyk of Google Security Team, with contributions by Gynvael Coldwind of Google Security Team.

All of the above bugs were detected using AddressSanitizer.

If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Karen Grunberg
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/08/stable-channel-update.html

Wednesday, August 8, 2012

[Gd] Dev Channel Update

| More

Chrome Releases: Dev Channel Update

The Dev channel has been updated to 22.0.1229.0 for Windows, Mac, and Linux.  A complete log of what changed can be found in the svn revision log.  Instructions and download links for our different release channels are available on the Chromium wiki.  If you find what you think is a new bug, please file it in our issue tracker.

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

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update

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

This build fixes:
  • Flash videos not longer remaining in fullscreen when clicking a secondary monitor while the video is playing  (Issue: 140366). 
  • Flash video full screen displays on wrong monitor (Issue: 137523)
  • REGRESSION: Rendering difference in Chrome 21 and 22 that affected on Persian Wikipedia (Issue: 139502)
  • Some known crashes (Issues: 137498138552128652)
  • Audio objects are not "switched" immediately (Issue: 140247)
  • Print and Print Preview ignore paper size default in printer config (Issue: 135374)
  • Candidate windows is shown in wrong place in Retina display (Issue: 139108)
  • We've also fixed the issue with no webpages loading (Issue: 140982)
If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Karen Grunberg
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/08/beta-channel-update.html

Tuesday, August 7, 2012

[Gd] Allowing the user to select Google Drive files from your application

| More

Google Apps Developer Blog: Allowing the user to select Google Drive files from your application

If your application needs a way to let users easily choose a file from their Drive, this is for you.

Users can browse and select files from their Drive file list using the Google Picker API. The Google Picker API provides a user interface containing a list of all the user's files in Google Drive.

Since the user interface is generated by the Picker API, there is very little effort in adding the Picker to an existing site. This article will show how to use the picker for your application, and discuss some of the configuration options.

First create a view on the data describing the type of Picker that we will be using. In this case, we’ll use google.picker.ViewId.DOCS. For more types of Picker, see the documentation.


 
var view = new google.picker.View(google.picker.ViewId.DOCS);
 

You can set the MIME types to filter the list of files. This allows you to specify your application’s specific file types to display to the user.


 
view.setMimeTypes("text/plain,text/html");
 

Use a PickerBuilder to set the required configuration parameters for your Picker.


 
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.setAppId("your app id")
.addView(view)
.setTitle("Select a Text File")
.setCallback(pickerCallback).build();
 

Once configured, the picker can be popped up to the user as often as you like, using


 
picker.setVisible(true)
 

When a user selects a file with the Picker, the callback set in setCallback is called with the data from the dialog. Pass this callback as the action to perform when a user selects a file in the Picker.


 
function pickerCallback(data) {
if (data.action == google.picker.Action.PICKED) {
var fileId = data.docs[0].id;
alert('The user selected: ' + fileId);
}
}
 

Check the data’s action, in this case google.picker.action.PICKED, and if it is appropriate, access the file ID as the the first element of the docs attribute.

Here are some additional tips on customizing your Picker.

  • You can allow the user to select multiple files. There will be more than one element in the data’s docs array, each representing a selected file.

     
    var picker = new google.picker.PickerBuilder()
    .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
     
  • You can hide the navigation bar.

     
    var picker = new google.picker.PickerBuilder()
    .enableFeature(google.picker.Feature.NAV_HIDDEN)
     

For a complete example, including how to load the Picker library, please visit our the Drive SDK documentation. Also, see the Picker API documentation for more information.



Ali Afshar profile | twitter

Ali is a Developer Programs engineer at Google, working on Google Docs and the Shopping APIs which help shopping-based applications upload and search shopping content. As an eternal open source advocate, he contributes to a number of open source applications, and is the author of the PIDA Python IDE. Once an intensive care physician, he has a special interest in all aspects of technology for healthcare.

URL: http://googleappsdeveloper.blogspot.com/2012/08/allowing-user-to-select-google-drive.html

[Gd] Neural Network for Breast Cancer Data Built on Google App Engine

| More

Google App Engine Blog: Neural Network for Breast Cancer Data Built on Google App Engine

Today’s guest blog post comes from 17-year-old Brittany Wenger, the winner of this year’s Google Science Fair. Brittany built an application on Google App Engine called the "Global Neural Network Cloud Service for Breast Cancer." This artificial neural network can detect complex patterns in data, learning how to classify malignant or cancerous cells it hasn’t seen before. Learn more about her project







When a patient has a palpable breast lump, the first step a doctor takes is to determine whether the mass is malignant or benign. One relatively simple diagnostic procedure is a form of biopsy called fine needle aspiration (FNA). Though these tests are less invasive than others, they are historically less accurate as well. My goal was to create a tool for doctors to use when interpreting test results from these procedures.



For this project, I decided to create a neural network built on Google App Engine, using data published to the Machine Learning Repository by the University of Wisconsin. A neural network attempts to replicate the brain as a form of artificial intelligence through networks of computers and can be used to detect extremely complex patterns. It learns from its mistakes, so it can classify a case it hasn’t seen before as malignant or cancerous based on specific criteria like clump thickness or bland chromatin. Because the diagnostic power of the network improves the more data it has, building on App Engine is a way to ensure the app can continue to scale easily, no matter how much information goes into the system.

         

I got started integrating my neural network application code, written in Java, with App Engine in a few hours using the SDK’s Greeting Service sample code as a starting point. The application has two main parts, a training module, that implements the neural network itself and runs the training process over the input data stored in static files, and a web interface that takes input data and returns the network’s analysis.



Google App Engine provides the scalable infrastructure I need to collect information from every hospital in the world and run when there are many concurrent requests, as usage of my application increases. Because my network is built as a cloud service, not only is my app working on the web, but mobile tablets, smartphones, old PC systems, or new technologies can also easily access the service from any hospital with an internet connection.



The neural network I developed is 99.11% sensitive to malignancy when using leave-one-out testing with original data. Thus far, I have run 7.6 million trials. Moving forward my goal is to make the application accessible to the global medical community so more data can be deposited and used to improve the diagnostic power of the network.
URL: http://googleappengine.blogspot.com/2012/08/neural-network-for-breast-cancer-data.html

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update

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

This build fixes:
  • more of the choppy and distorted audio issues  (Issue: 136624). 
  • Some known crashes (Issue: 140140)
  • Japanese characters showing in Chinese font (Issue: 140432)
  • Video playback issues with flash-based sites (Issue: 139953)
  • Sync invalidation notification broken after restart (Issue: 139424)

If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Karen Grunberg
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/08/the-beta-channel-has-been-updated-to-21.html