Friday, February 18, 2011

[Gd] Beyond Times and Arial - The New Web Safe Fonts

| More

Official Google Webmaster Central Blog: Beyond Times and Arial - The New Web Safe Fonts

Webmaster level: All

In the past, when you created a website or web app, you were largely limited to a few select “web safe” fonts such as Times and Arial. If you deviated from these fonts, you were required to use Adobe Flash or your embed text in images, which introduced a whole new set of trade offs. For example, images aren’t semantic, cannot be translated into other languages automatically, and can be much larger in file size than text. In addition, text in images cannot be copied to a user’s clipboard, read with screen-reading software or easily indexed by search engines.

The good news is, with Google Web Fonts it is now possible to use hundreds of web safe fonts on your web pages. Launched last May, Google Web Fonts allows you to simply choose the font(s) you’d like to use on your webpage, blog, or web app, and embed the snippet of HTML and CSS. In about 30 seconds, you can have beautiful fonts on your pages that will render correctly in the large majority of popular modern web browsers. No longer will you need to use images or Flash to embed the font of your choice.

Unlike Times and Arial, which are references to fonts installed on a user’s local machine, web fonts are served via a browser request (much like an image would be served). That means you can push any web font to a user’s machine. Users will be delighted when they realize these fonts behave just as any other text in Arial would behave.


Some example web fonts, offered by the Google Web Fonts service


The adoption of the web font technology has been rapid. Google Web Fonts now serves roughly 50 million daily requests[1], across roughly 800,000 unique websites[2]. and is growing at about 30% each month. Here at Google, we’re excited about the potential for web fonts to change the very fabric of the web. Beautiful typography makes the web more pleasant to browse, expressive, and interesting.

Here’s to a beautiful Web!

Written by David Wurtz, Product Manager, Google Web Fonts

[1] A request is a single call to the Google Font API for one or more fonts.
[2] We count a unique website as unique domains, except that “www” subdomains are not counted. For example, www.myblog.com and myblog.com would count as one domain. However, sam.myblog.com and sally.myblog.com would count as two domains.
URL: http://googlewebmastercentral.blogspot.com/2011/02/beyond-times-and-arial-new-web-safe.html

[Gd] Native Client: Getting Ready for Takeoff

| More

Chromium Blog: Native Client: Getting Ready for Takeoff

Over the last few months we have been hard at work getting Native Client ready to support the new Pepper plug-in interface. Native Client is an open source technology that allows you to build web applications that seamlessly and safely execute native compiled code inside the browser. Today, we’ve reached an important milestone in our efforts to make Native Client modules as portable and secure as JavaScript, by making available a first release of the revamped Native Client SDK.

The SDK now includes support for a comprehensive set of Pepper interfaces for compute, audio, and 2D Native Client modules. These interfaces are close to being stable, with some important exceptions that are listed in the release notes.

In addition, we’ve focused on improving security. We have enabled auto-update and an outer sandbox. This allowed us to remove the expiration date and localhost security restrictions we had adopted in previous research-focused releases. Beyond security, we’ve also improved the mechanism for fetching Native Client modules based on the instruction set architecture of the target machine, so developers don’t need to worry about this any more.

We are excited to see Native Client progressively evolve into a developer-ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more. We’ll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability.

Until the ABI becomes stable, Native Client will remain off by default. However, given the progress we’ve made, you can now sticky-enable Native Client in Chrome 10+ through the about:flags dialog. Otherwise, you can continue using a command line flag to enable Native Client when you want to.

A big goal of this release is to enable developers to start building Native Client modules for Chrome applications. Please watch this blog for updates and use our discussion group for questions, feedback, and to engage with the Native Client community.

Posted by Christian Stefansen, Product Manager
URL: http://blog.chromium.org/2011/02/native-client-getting-ready-for-takeoff.html

[Gd] Chrome Web Store International Support: Developer Preview

| More

Chromium Blog: Chrome Web Store International Support: Developer Preview

When we recently announced the availability of the Chrome Web Store to Chrome users in the US, we mentioned that we were hard at work making the store available globally. Today we’re excited to announce a preview release of the upload flow for several international markets as a step towards that goal.

Starting today, when you upload an app via the developer dashboard, you’ll have the option of selecting from the following sixteen countries to list your app: Argentina, Australia, Brazil, Canada, France, Germany, India, Italy, Japan, Mexico, Netherlands, Poland, Portugal, Spain, United Kingdom and the United States. If you are using Chrome Web Store Payments to charge for your app, you will also be able to set the app price for each country although if you’re not based in the United States you will not be able to complete your merchant account sign up just yet (this will be enabled soon).

Note that these apps will not yet be published to countries outside the United States. This will happen when the Chrome Web Store opens to consumers in these countries later this year. We are releasing this developer preview ahead of the consumer release so you have enough time to prepare your apps for international users.

We hope you can use this release to get familiar with the app upload process and take time to localize your app listing to make it accessible to more people. If you have additional questions, please take a look at our FAQ or join our developer discussion group.

Posted by Qian Huang, Software Engineer
URL: http://blog.chromium.org/2011/02/chrome-web-store-international-support.html

[Gd] Native Client: Getting ready for takeoff

| More

The official Google Code blog: Native Client: Getting ready for takeoff

(Cross-posted from the Chromium Blog)

Over the last few months we have been hard at work getting Native Client ready to support the new Pepper plug-in interface. Native Client is an open source technology that allows you to build web applications that seamlessly and safely execute native compiled code inside the browser. Today, we’ve reached an important milestone in our efforts to make Native Client modules as portable and secure as JavaScript, by making available a first release of the revamped Native Client SDK.

The SDK now includes support for a comprehensive set of Pepper interfaces for compute, audio, and 2D Native Client modules. These interfaces are close to being stable, with some important exceptions that are listed in the release notes.

In addition, we’ve focused on improving security. We have enabled auto-update and an outer sandbox. This allowed us to remove the expiration date and localhost security restrictions we had adopted in previous research-focused releases. Beyond security, we’ve also improved the mechanism for fetching Native Client modules based on the instruction set architecture of the target machine, so developers don’t need to worry about this any more.

We are excited to see Native Client progressively evolve into a developer-ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more. We’ll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability.

Until the ABI becomes stable, Native Client will remain off by default. However, given the progress we’ve made, you can now sticky-enable Native Client in Chrome 10+ through the about:flags dialog. Otherwise, you can continue using a command line flag to enable Native Client when you want to.

A big goal of this release is to enable developers to start building Native Client modules for Chrome applications. Please watch this blog for updates and use our discussion group for questions, feedback, and to engage with the Native Client community.


By Christian Stefansen, Native Client Team
URL: http://googlecode.blogspot.com/2011/02/native-client-getting-ready-for-takeoff.html

[Gd] Simplifed quota management for Google Project Hosting

| More

The official Google Code blog: Simplifed quota management for Google Project Hosting

We just released a change to simplify how we manage disk space for open source projects hosted on Google Code.

Previously, we enforced disk quota on a component-by-component basis. For example, source code used to have a 2-GB limit and downloads used to have a separate 2-GB limit. As of today, we’re announcing a single disk quota limit of 4 GB for an entire project. From now on, you can decide how to best use the unified quota across your whole project.

Happy hacking!



By Tony Zale, Google Developer Programs
URL: http://googlecode.blogspot.com/2011/02/simplifed-quota-management-for-google.html

[Gd] Who reads this blog?

| More

Google Testing Blog: Who reads this blog?

By Patrick Copeland

Just considering last year...
  • This blog was read in 181 countries/territories.
  • 20% of visitors came to the site at least 4 times.
  • About 50% of the visits came from the United States, India, United Kingdom, Brazil, Canada, and Germany.
  • Within the US, all states are represented, with a majority of visits coming from the significant technology centers.
  • Top 10 world wide cities visiting (outside of the Bay Area): London, Bangalore, New York, Sao Paulo, Chennai, Hyderabad, Tokyo, Redmond, Seoul, Moscow.
  • The average visitors stay about two minutes (enough time to read the post). Although, for some reason people in Switzerland stayed for 12 minutes on average and looked at twice as many pages.
  • We get numerous visits from Central Asia and Melanesia, but the time on site is very small, which indicates from use of bots. As a matter of fact, 30% of the visits are flagged as search engine traffic.
  • The highest read single post was written by Alberto Savoia with 39,778 visits. Followed in (a distant) second place by a post I wrote. BTW, James' recent posts are really catching fire and I think Alberto could be unseated in 2011.
Below is the view of the traffic by continent...

Thanks for your visits and we welcome your comments.

URL: http://googletesting.blogspot.com/2011/02/who-reads-this-blog.html

[Gd] Google Web Fonts - New Stats, New Name

| More

Google Web Fonts: Google Web Fonts - New Stats, New Name

Web fonts are taking off in a big way. Back in November, the Google Web Fonts team first published stats on the rapid adoption curve of the Google Font API. Then, Google was serving approximately 17 million daily font requests[1] to roughly 400,000 unique websites[2].

And today, less than 4 months later, we’re excited to announce that Google Web Fonts has since grown by another 290%. The Google Font API now serves roughly 50 million daily requests[1], across roughly 800,000 unique websites[2]. This equates to over 30% month over month growth. Amazingly, these stats don’t factor in caching, so the actual views of Google Web Fonts may far exceed these numbers.



Growth picked up considerably after Google Web Fonts announced over 20 new font families for the New Year. From these numbers, it’s clear that web fonts are quickly becoming part of the standard practice of web developers, game developers, and bloggers.

To make it easier for all, we’re also pleased to announce a re-branding of the “Google Font Directory” to “Google Web Fonts.” The service is now available via the simple, memorable URL: www.google.com/webfonts.

Web fonts are on their way to changing the very fabric of the web, and this is very exciting to Google.

Here’s to a beautiful web!

Posted by David Wurtz, Product Manager, Google Web Fonts


[1] A request is a single call to the Google Font API for one or more fonts.
[2] We count a unique website as unique domains, except that “www” subdomains are not counted. For example, www.myblog.com and myblog.com would count as one domain. However, sam.myblog.com and sally.myblog.com would count as two domains.

URL: http://googlewebfonts.blogspot.com/feeds/4781830545937650159/comments/default

[Gd] Chrome Beta Release

| More

Google Chrome Releases: Chrome Beta Release

The Chrome team is happy to announce the arrival of Chrome 10.0.648.82 to the Beta channel for Windows, Mac, and Linux.  Chrome 10 contains some really great improvements including:
  • New version of V8 - Crankshaft - which greatly improves javascript performance
  • New settings pages that open in a tab, rather than a dialog box
  • Improved security with malware reporting and disabling outdated plugins by default
  • Password sync as part of Chrome Sync now enabled by default
  • GPU Accelerated Video
  • Background WebApps
  • webNavigation extension API
More on what's new at the Official Chrome Blog.  You can find full details about the changes that are in Chrome 10 in the SVN revision log. If you find new issues, please let us know by filing a bug. Want to change to another Chrome release channel? Find out how.

Jason Kersey
Google Chrome
URL: http://googlechromereleases.blogspot.com/2011/02/chrome-beta-release.html

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

The Dev channel has been updated to 11.0.672.2 for Mac, Windows and Linux platforms

All
  • Updated V8 - 3.1.4.0
  • Fixed the crash when loading tabbed options in some cases.
  • Fixed a crash triggered when canceling a download. (Issue 70592)
  • Fixed a crash triggered by form resubmissions. (Issue 70315)
  • FTP: fixed a compatibility issue. (Issue 70394)
  • XSS Auditor re-designed and enabled by default. It’s still experimental (and there are known bypasses), but we’re looking for feedback about false positives.
Mac
  • Fixed a crash during plugin shutdown
  • Tab overview mode is on by default.
  • Added unspoofable infobars. (Issue 57106)
  • Accelerometer data is more reliable.
Known Issues
  • Temporarily dropped support for building with system sqlite: (Issues 70589 and 22208)

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

You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.



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/2011/02/dev-channel-update_17.html

[Gd] Google Plugin for Eclipse and GWT 2.2 now available

| More

Google Web Toolkit Blog: Google Plugin for Eclipse and GWT 2.2 now available


Google Plugin for Eclipse and GWT 2.2 are now available with several new features that we’re excited to share with you. First, Google Plugin for Eclipse 2.2 directly integrates GWT Designer, a powerful WYSIWYG Ajax user interface (UI) designer that makes it much easier to quickly build UIs. Second, developers can take advantage of the modern web with the first round of HTML5 support within the GWT SDK. Additionally, GWT’s CellTable widget now offers new functionality, such as default column sorting and the ability to set column widths. These new features make it even easier to build best in breed web apps using Java-based tools and Eclipse. And while these apps can be run on any platform, Google Plugin for Eclipse makes it very easy to deploy, and run, on Google App Engine.




Instructions for installing this new release of the Google Plugin for Eclipse and GWT SDK can be found here: Getting Started with Google Plugin for Eclipse.




If you’re simply looking for the GWT 2.2 SDK, you can find it here: GWT SDK Download.




GWT Designer


Directly integrating GWT Designer into the Google Plugin for Eclipse has been a top priority for us over the past few months. We’ve had some very positive feedback from the community early on, and for this release we not only wanted to provide the best developer experience when using GWT Designer, we also wanted a seamless experience across GWT Designer and GPE.











HTML5 features


GWT 2.2 includes support for HTML5-specific features, such as the Canvas element, which allows for dynamic, scriptable rendering of 2D shapes and bitmap images, and the embedding of Audio/Video tags. These APIs are still experimental and may change a bit over the next couple releases, but we feel that they're stable enough to deserve some real mileage (by you). Below is a demo that one of the GWT team members, Philip Rogers, one of the GWT team members, put together this demo to showcase the new Canvas support in the GWT SDK. You can find the code for this demo here: http://code.google.com/p/gwtcanvasdemo/.






New CellTable APIs


With GWT 2.1, we found that developers were often times incorporating a CellTable widget into their project, and immediately adding the boilerplate code to add sorting, and then having to jump through hoops to set column widths. With the GWT SDK 2.2 release, this functionality is now part of the CellTable widget itself. Where we can, we want to improve the native GWT widgets, adding features and functionality that minimize the custom code that developers have to write.




If you would like to see these updates in action, checkout out the CellTable example with the GWT Showcase app.










A note about Java 1.5


GWT version 2.2 will only have deprecated support for Java 1.5, resulting in warnings when building applications. While Java 1.5 will still work for this release of GWT, developers should upgrade their version of Java to correct these warnings and ensure compatibility with future versions of GWT.




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




Chris Ramsdale, on behalf of the Google Developer Tools Team


cramsdale@google.com

URL: http://googlewebtoolkit.blogspot.com/2011/02/google-plugin-for-eclipse-and-gwt-22.html

Thursday, February 17, 2011

[Gd] New Free-Busy feed for the Google Calendar API

| More

Google Apps Developer Blog: New Free-Busy feed for the Google Calendar API

There is now a convenient way to query free-busy information from Google Calendar. The new Google Calendar free-busy feed allows you to query blocks of busy time for one or multiple users, or for all the users subscribed to a Google Group in a single request.

This new Google Data feed is accessible through the URL pattern
https://www.google.com/calendar/feeds/default/freebusy/busy-times/userID
where “userID” is the email of the calendar you’d like to request the free-busy information of. The response will be an entry containing temporal blocks indicating the periods when the user is marked as busy in their Google Calendar. Visit our Developer’s Guide for more details and code samples about the free-busy feed.

You can also query free-busy information for multiple users in a single query using a batch request. The URL to use for such a batch request is:
https://www.google.com/calendar/feeds/default/freebusy/busy-times/batch

Below is a sample batch request, requesting free-busy information for Liz, Bob and Luke:
<feed xmlns='http://www.w3.org/2005/Atom'
xmlns:app='http://www.w3.org/2007/app'
xmlns:batch='http://schemas.google.com/gdata/batch'
xmlns:gCal='http://schemas.google.com/gCal/2005'
xmlns:gd='http://schemas.google.com/g/2005'>
<batch:operation type='query'/>
<entry>
<id>http://www.google.com/calendar/feeds/default/freebusy/busy-times/liz%40example.com</id>
</entry>
<entry>
<id>http://www.google.com/calendar/feeds/default/freebusy/busy-times/bob%40example.com</id>
</entry>
<entry>
<id>http://www.google.com/calendar/feeds/default/freebusy/busy-times/luke%40example.com</id>
</entry>
</feed>

This allows you, for example, to find common free time between multiple users in one single request to the Google Calendar API, which was not possible with previously existing feeds.

For example, the response from the batch request above would look like:
<feed xmlns="http://www.w3.org/2005/Atom" …>
<id>https://www.google.com/calendar/feeds/default/freebusy/batch/1234</id>
<updated>2010-03-13T00:00:00.000Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/gCal/2005#freebusy"/>
<title>Batch Feed</title>
<entry xmlns:batch="http://schemas.google.com/gdata/batch" …>
<id>http://www.google.com/calendar/feeds/default/freebusy/liz%40example.com</id>
… updated, category, self link, author and batch info …
<gCal:timeRange>
<gd:when startTime='2010-03-13T00:00:00Z' endTime='2010-03-14T00:00:00Z'/>
<gCal:timeRange>
<gCal:busy>
<gd:when startTime='2010-03-13T14:00Z' endTime='2010-03-13T14:30Z'/>
</gCal:busy>
<gCal:busy>
<gd:when startTime='2010-03-13T16:00Z' endTime='2010-03-13T16:30Z'/>
</gCal:busy>
</entry>
<entry …>
<id>http://www.google.com/calendar/feeds/default/freebusy/bob%40example.com</id>
… Free-busy entry content for Bob …
</entry>
<entry …>
<id>http://www.google.com/calendar/feeds/default/freebusy/luke%40example.com</id>
… Free-busy entry content for Luke …
</entry>
</feed>

The response contains an entry for each requested calendar’s free-busy feed. Each of these entries contains blocks of time where the user is marked as busy in his Calendar for the next 24 hours.

Google Apps for Business domain users are also able to query free-busy information for all the members of a given Google Group in a single request. This feature is available through the following URL pattern:
https://www.google.com/calendar/feeds/default/freebusy/group/groupID/busy-times where “groupID” is the email of the Google Group.

The response will be a feed containing the free-busy entries of each member of the group. To learn more about querying free-busy for groups please visit our Developer’s Guide.

Posted by Alain Vongsouvanh and Nicolas Garnier, Google Calendar API Team

Want to weigh in on this topic? Discuss on Buzz

URL: http://googleappsdeveloper.blogspot.com/2011/02/new-free-busy-feed-for-google-calendar.html

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

The Chrome Dev channel has been updated to 10.0.648.82 for all platforms.  This release primarily contains stability fixes from the last dev channel. Full details about the Chrome changes are available in the SVN revision log. If you find new issues, please let us know by filing a bug. Want to change to another Chrome release channel? Find out how.

Jason Kersey
Google Chrome
URL: http://googlechromereleases.blogspot.com/2011/02/dev-channel-update_16.html

Wednesday, February 16, 2011

[Gd] Visualize your own data in the Google Public Data Explorer

| More

The official Google Code blog: Visualize your own data in the Google Public Data Explorer

(Cross-posted from the Official Google Blog)

Over the past two years, we’ve made public data easier to find, explore and understand in several ways, providing unemployment figures, population statistics and world development indicators in search results, and introducing the Public Data Explorer tool. Together with our data provider partners, we’ve curated 27 datasets including more than 300 data metrics. You can now use the Public Data Explorer to visualize everything from labor productivity (OECD) to Internet speed (Ookla) to gender balance in parliaments (UNECE) to government debt levels (IMF) to population density by municipality (Statistics Catalonia), with more data being added every week.

Today, we’re opening the Public Data Explorer to your data. We’re making a new data format, the Dataset Publishing Language (DSPL), openly available, and providing an interface for anyone to upload their datasets. DSPL is an XML-based format designed from the ground up to support rich, interactive visualizations like those in the Public Data Explorer. The DSPL language and upload interface are available in Google Labs.

To upload a dataset, click on the “My Datasets” link on the left-hand side of the Public Data Explorer. Once imported, a dataset can be visualized, embedded in external websites, shared with others and published. If you’re an official provider, you can request that your datasets appear in the Public Data Explorer directory; please contact us to discuss this process.

With this new capability, we hope more datasets can come to life through Public Data Explorer visualisations and enable people to better understand the world around them and make more informed, data-driven decisions. Stay tuned for more datasets, visualization features and DSPL extensions in the future.


By Omar Benjelloun, Google Public Data Team
URL: http://googlecode.blogspot.com/2011/02/visualize-your-own-data-in-google.html

[Gd] Google Plugin for Eclipse and GWT 2.2 now available

| More

The official Google Code blog: Google Plugin for Eclipse and GWT 2.2 now available

(Cross-posted from the Google Web Toolkit Blog)

Google Plugin for Eclipse and GWT 2.2 are now available with several new features that we’re excited to share with you. First, Google Plugin for Eclipse 2.2 directly integrates GWT Designer, a powerful WYSIWYG Ajax user interface (UI) designer that makes it much easier to quickly build UIs. Second, developers can take advantage of the modern web with the first round of HTML5 support within the GWT SDK. Additionally, GWT’s CellTable widget now offers new functionality, such as default column sorting and the ability to set column widths. These new features make it even easier to build best in breed web apps using Java-based tools and Eclipse. And while these apps can be run on any platform, Google Plugin for Eclipse makes it very easy to deploy, and run, on Google App Engine.

Instructions for installing this new release of the Google Plugin for Eclipse and GWT SDK can be found here: Getting Started with Google Plugin for Eclipse.

If you’re simply looking for the GWT 2.2 SDK, you can find it here: GWT SDK Download.

GWT Designer
Directly integrating GWT Designer into the Google Plugin for Eclipse has been a top priority for us over the past few months. We’ve had some very positive feedback from the community early on, and for this release we not only wanted to provide the best developer experience when using GWT Designer, we also wanted a seamless experience across GWT Designer and GPE.


HTML5 features
GWT 2.2 includes support for HTML5-specific features, such as the Canvas element, which allows for dynamic, scriptable rendering of 2D shapes and bitmap images, and the embedding of Audio/Video tags. These APIs are still experimental and may change a bit over the next couple releases, but we feel that they're stable enough to deserve some real mileage (by you). Below is a demo that one of the GWT team members, Philip Rogers, put together to showcase the new Canvas support in the GWT SDK. You can find the code for this demo here: http://code.google.com/p/gwtcanvasdemo/.


New CellTable APIs
With GWT 2.1, we found that developers were often times incorporating a CellTable widget into their project, and immediately adding the boilerplate code to add sorting, and then having to jump through hoops to set column widths. With the GWT SDK 2.2 release, this functionality is now part of the CellTable widget itself. Where we can, we want to improve the native GWT widgets, adding features and functionality that minimize the custom code that developers have to write.

If you would like to see these updates in action, checkout out the CellTable example with the GWT Showcase app.


A note about Java 1.5
GWT version 2.2 will only have deprecated support for Java 1.5, resulting in warnings when building applications. While Java 1.5 will still work for this release of GWT, developers should upgrade their version of Java to correct these warnings and ensure compatibility with future versions of GWT.

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


By Chris Ramsdale, Google Developer Tools Team
URL: http://googlecode.blogspot.com/2011/02/google-plugin-for-eclipse-and-gwt-22.html

[Gd] How Google Tests Software - Part Three

| More

Google Testing Blog: How Google Tests Software - Part Three

By James Whittaker

Lots of questions in the comments to the last two posts. I am not ignoring them. Hopefully many of them will be answered here and in following posts. I am just getting started on this topic.

At Google, quality is not equal to test. Yes I am sure that is true elsewhere too. “Quality cannot be tested in” is so cliché it has to be true. From automobiles to software if it isn’t built right in the first place then it is never going to be right. Ask any car company that has ever had to do a mass recall how expensive it is to bolt on quality after-the-fact.

However, this is neither as simple nor as accurate as it sounds. While it is true that quality cannot be tested in, it is equally evident that without testing it is impossible to develop anything of quality. How does one decide if what you built is high quality without testing it?

The simple solution to this conundrum is to stop treating development and test as separate disciplines. Testing and development go hand in hand. Code a little and test what you built. Then code some more and test some more. Better yet, plan the tests while you code or even before. Test isn’t a separate practice, it’s part and parcel of the development process itself. Quality is not equal to test; it is achieved by putting development and testing into a blender and mixing them until one is indistinguishable from the other.

At Google this is exactly our goal: to merge development and testing so that you cannot do one without the other. Build a little and then test it. Build some more and test some more. The key here is who is doing the testing. Since the number of actual dedicated testers at Google is so disproportionately low, the only possible answer has to be the developer. Who better to do all that testing than the people doing the actual coding? Who better to find the bug than the person who wrote it? Who is more incentivized to avoid writing the bug in the first place? The reason Google can get by with so few dedicated testers is because developers own quality. In fact, teams that insist on having a large testing presence are generally assumed to be doing something wrong. Having too large a test team is a very strong sign that the code/test mix is out of balance. Adding more testers is not going to solve anything.

This means that quality is more an act of prevention than it is detection. Quality is a development issue, not a testing issue. To the extent that we are able to embed testing practice inside development, we have created a process that is hyper incremental where mistakes can be rolled back if any one increment turns out to be too buggy. We’ve not only prevented a lot of customer issues, we have greatly reduced the number of testers necessary to ensure the absence of recall-class bugs. At Google, testing is aimed at determining how well this prevention method is working. TEs are constantly on the lookout for evidence that the SWE-SET combination of bug writers/preventers are screwed toward the latter and TEs raise alarms when that process seems out of whack.

Manifestations of this blending of development and testing are all over the place from code review notes asking ‘where are your tests?’ to posters in the bathrooms reminding developers about best testing practices, our infamous Testing On The Toilet guides. Testing must be an unavoidable aspect of development and the marriage of development and testing is where quality is achieved. SWEs are testers, SETs are testers and TEs are testers.

If your organization is also doing this blending, please share your successes and challenges with the rest of us. If not, then here is a change you can help your organization make: get developers fully vested in the quality equation. You know the old saying that chickens are happy to contribute to a bacon and egg breakfast but the pig is fully committed? Well, it's true...go oink at one of your developer and see if they oink back. If they start clucking, you have a problem.
URL: http://googletesting.blogspot.com/2011/02/how-google-tests-software-part-three.html

Sunday, February 13, 2011

[Gd] App Engine 1.4.2 SDK - API Updates and Additions Edition

| More

The official Google Code blog: App Engine 1.4.2 SDK - API Updates and Additions Edition

Google App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. There are no servers to maintain, and we keep the SDK up to date with regular releases. Today’s SDK release, 1.4.2 focuses on improving and updating a few existing App Engine APIs.

Improved XMPP API to help applications better interact with users. Notifications are sent when users sign in and out and when their status changes, and the application can now set presence details to be returned to the user. Subscription and Presence notifications are enabled as inbound services in the application configuration.

Task Queue performance and Task Queue API improvements. First, we’ve increased the maximum rate at which tasks can be processed to 100 tasks/second. Applications can also specify the maximum number of concurrent requests allowed per queue in their queue’s configuration file. This can help you more easily manage how many resources your task queue is consuming. We’ve also added an API that allows you to programmatically delete tasks, instead of managing this manually from the Admin Console.

As always, there are more minor features and issue fixes such as support for JAX-WS complete with a new article on how to build SOAP enabled App Engine apps, as well as support for Django 1.2, so be sure to read the release notes for Java and Python. We’ve also updated the App Engine Roadmap with a few new projects so take a look. And if you have any feedback, please visit the App Engine Groups.


By The App Engine Team
URL: http://googlecode.blogspot.com/2011/02/app-engine-142-sdk-api-updates-and.html