Sunday, November 29, 2009

Google Wave feedback's from user's

(From Google Wave Blog) We're thankful that so many people have been willing to try out Google Wave in a host of different areas: personal, business, government, education and even not-for-profit. We've been glad to see positive responses, especially since we're still in a limited preview and not quite ready to give accounts to everyone who has requested one.

Since we can't talk to all of our users individually (no matter how hard we try!), we've been running an online survey to get some feedback on the Google Wave experience. We distributed the survey through email (to a random sample of those that volunteered to help), a link in our help center and a tweet. While this may not be a completely representative sample of all Google Wave users, the results have been interesting to us, and we'd like to share them. Here's a quick overview of what Wavers have said so far.

What Wavers like most

The wave itself: The concept of a wave as a central place to communicate and collaborate is what people say they like the most.

One place to discuss and work together: The next most popular is the ability to use Google Wave to work together and integrate messages and documents; many respondents have indicated that existing methods and tools don't meet all of their needs.

Extensions: Close behind the collaboration features, survey respondents liked the ability to extend Google Wave's functionality through gadgets and robots.

What Wavers don't like

Invitations: The biggest request so far has been for more invitations to wave with friends and colleagues. We understand it's hard to communicate and collaborate if you have no contacts so we're working hard to make Google Wave scale to a large number of users.

Integration with other tools: People want Google Wave to be more integrated with their existing tools, like email. They also want to be notified when they get a new wave as their current collaboration processes are built around email, instant messaging and other similar systems.

Speed: The next largest issue has been about the speed of the system - people stated that sometimes it is too slow.

What we're doing with the feedback

With these responses and other data, we're organizing our team around the core issues that are important to making waving better. We're working hard to scale our systems so you can invite your friends and colleagues to wave with you. We're also thinking about how to integrate with existing communication and collaboration tools. And since we all know that fast is better than slow, a large portion of the team is working to make Google Wave faster.

Let us know how we're going with these things and if you are waving feel free to take the survey again and again -- we're interested in seeing how people use Google Wave differently over time. We'll start writing about what people are actually doing with waves, so let us know about interesting things you've tried.

Source :

Friday, November 27, 2009

Chrome Tip: New tab from the omnibox

If you've ever wanted to search or navigate without disrupting the page you're currently reading, you've probably opened a new tab to do so. This means either clicking the "new tab" button at the end of the tabstrip, or using the "new tab" menu item or keyboard shortcut (ctrl-t).

A little-known shortcut can help you do this even faster.

If you type something in to the omnibox and hold down the Alt key while you press enter, the resulting page will open as a new tab at the end of your tabstrip, leaving your previous page untouched.

This way you can skip creating a new tab, and go straight to typing in what you want.

Soure :

Wednesday, November 25, 2009

New Search Ad formates on Google

At Google, we're committed to giving you the information you want — regardless of the form in which it might appear.

Text is often useful, but sometimes videos and pictures are a more effective way to receive information. For example, if you want to learn a magic trick, a video showing you how to perform the trick is likely the best result. So over the past few years, we've blended videos, images, maps and more into the search results on

It also makes sense to provide you with richer types of information in the ads. If you're looking to buy your mom a new handbag for the holidays, for instance, you might want to see pictures, prices, the addresses of boutiques in your area and a map of how to get there — all within the ad.

To provide a better search ads experience, we've been developing and testing a variety of new ad formats. These formats are focused on giving you the information you need, while retaining what you love about Google advertising: that the ads are relevant and useful.

If you're in the U.S. you may have already seen a number of these ad formats when searching on Google.

Some of them include visual elements. For example, if you're curious about the movies that are playing this holiday season, you might see an ad with a video that lets you watch a trailer.

You might also see an ad with more links so you can quickly find a specific page in an advertiser's website. If you're researching airfare to visit your relatives for the holidays, it saves time to go directly to Priceline's page about booking flights, rather than the general homepage or rental car page.

Or, if you're trying to find a holiday bouquet to bring to your dinner party hostess, you might see an ad that shows your local florist's location on a map and provides driving directions.

Other new ad formats might help you find all the addresses and locations of a chain store in your area. So if you're vacationing abroad this season and have a craving for something familiar, the ad might show you all the nearby Pizza Huts that can deliver to your hotel.

And starting today, you might spot ads that include images and prices for specific products. When shopping for the ski outfit your nephew has been hinting about all year, you might see pictures from the retailer's inventory to help you quickly determine if they have the color and style you had in mind.

Still other ad formats may introduce new ways of presenting information, such as Comparison Ads, which allow you to specify exactly what you're looking for and to compare rates and prices in a single location. With the approaching new year comes resolutions to get things in order, so you might want an ad that lets you see side-by-side refinancing offers.

While we experiment with new formats, we'll remain loyal to our core principle: that getting the right ad to the right person at the right time matters. As we continue to think up innovative ways to give you the information you want, you're likely to see even more ad formats until we pinpoint the most useful, relevant and engaging ones. We'll keep trying new things until we discover the "perfect" ads that improve your overall search experience.

Source :

Recent Posts from Google :

So now Send attachments while offline

One of the most requested features for Offline Gmail has been the ability to include attachments in messages composed while offline. Starting today, attachments work just the way you would expect them to whether you are online or offline (with the exception that when you're offline you won't be able to include inline images). Just add the attachment and send your message.

If you have Offline Gmail enabled, you'll notice that all your mail now goes through the outbox, regardless of whether you're online or offline. This allows Gmail to capture all attachments, even if you suddenly get disconnected from network. If you're online, your mail will quickly be sent along to its destination.

If you haven't tried offline access yet, visit the Labs tab and follow these instructions to get started:
  1. Select Enable next to Offline Gmail.
  2. Click Save Changes.
  3. After your browser reloads, you'll see a new "Offline" link in the upper righthand corner of the Gmail page, next to your username. Click this link to start the offline set up process and download Gears if you don't already have it.
Now that you can send attachments while offline, we'd love to see pictures of you using Gmail in unusual places while you're disconnected from the web. Pictures of you using Gmail in an airplane, igloo, or submarine are all welcome. Email your photo to and we'll post the most interesting ones here.

Original Source :

Saturday, November 21, 2009

Learn More About the new Orkut

Given the large number of orkut users, we've decided to gradually roll out the new orkut through an invitation-only system for the next few months. Here's how to get an invitation, and what to expect when you do...

Get an invite

Get an invite, get started!

Want to see the new orkut now? Find a friend who has an invitation and ask him! Those who are using the new orkut will sometimes receive invitations to share with their friends, so they can share the orkut love.

Another way to get an invite is to join Poppy and Shashi on the official community for cool insights into the new orkut and to participate in one of the many activities that will be taking place there. Be sure to check back often as the owners will be regularly announcing new ways to get an invite.

Users must have an invitation before they can access the new version of orkut. If they have invitations to share, they can send them to their friends on orkut; when those friends receive the invitations, they'll see a special icon at the top of their homepage.

New orkut icon To accept the invitation, they just click the icon and they'll then see the new version of orkut. Once they've accepted the invitation, they'll be eligible to receive invitations that they can share with their friends on orkut... and that's how more and more people will be able to get on board the new version. To see how many invitations you have to share with friends, simply look below the friends box on your homepage.

Invite your friends

Invite your friends

Are you already on the new orkut, and want your friends to join you? Well, orkut eventually will give you some invitations and you will have the power to invite your favorite friends. When that happens, look below the friends box for the counter that shows how many invitations you can share. Click "invite your friends" to see a list of your friends who aren't using the new orkut yet - then pick the friends you want to invite and click "send". If you don't see a specific friend in this list then your friend was already invited by someone else.

Invites counter

Get more invites

Get more invites

We'll periodically give you more invitations to share with friends. No need to ask - we'll keep an eye on the number of invitations you've sent, and give you a few more when you seem to need them.

The same orkut

Is this the same orkut my friends are still using?

Yes (sort of). You can still interact with all your friends who are using the old orkut, but you'll be seeing orkut in a whole new light. Both versions share the same information, so anything you do on one version of orkut will be visible to your friends on the other. You can even click at the top of the page to go back and forth between the two versions of orkut to be sure nothing got lost in translation. Or you can just trust us :)

Find an invitation

Can't find an invitation, what do I do?

Hmmm, so you really want to see the new orkut? Well, the best way to get an invitation is to visit your friends profile pages. If you see this icon Invitations icon on their profile next to their name, they probably have an invitation they can share with others - so be bold, and ask them for one!

Inviting other contacts

Want to invite someone who's not on orkut yet?

First, your friend needs to sign up for orkut. Simply use the friend finder "invite" feature and send a note inviting your friend to create an orkut account. Once your request is accepted, you'll see your pal on your friends list. Then, just send your new friend an invitation to try the new orkut.

Related Link : |

Friday, November 20, 2009

SPDY Protocol | From


One of the bottlenecks of current HTTP is that it relies solely on multiple connections for concurrency. This causes several problems, including additional round trips for connection setup, slow-start delays, and a constant rationing by the client where it tries to avoid opening too many connections to a single server. HTTP "pipelining" doesn't help, as each connection may be blocked on the request at the head of the line; in addition, many proxies apparently have poor support for pipelining. Applications, in their desire to create many connections, create many sub-domains to work around browser per-domain connection throttling.

SPDY aims to address this and other application-layer problems associated with modern web applications, while requiring little or no change from the perspective of web application writers.

In a nutshell, SPDY adds a framing layer for multiplexing multiple, concurrent streams across a single TCP connection.  The framing layer is optimized for HTTP-like request-response streams.

The SPDY session offers three basic improvements over HTTP:

  • Multiplexed requests. There is no limit to the number of requests that can be issued concurrently over a single SPDY connection.  Because requests are interleaved on a single channel, the efficiency of TCP is much higher.
  • Prioritized requests. Clients can request certain resources to be delivered first.  This avoids the problem of congesting the network channel with non-critical resources when a high-priority request is pending.
  • Compressed headers.  Clients today send a significant amount of redundant data in the form of HTTP headers.  Because a single web page may require 50 or 100 subrequests, this data is significant. Compressing the headers saves a significant amount of latency and bandwidth compared to HTTP.
Note that for the most part, SPDY attempts to preserve the existing semantics of HTTP features.  All features such as cookies, etags, vary headers, content-encoding negotiations, etc work exactly as they do with HTTP; SPDY only replaces the way the data is written to the network.


  • connection: A TCP-level connection between two endpoints.
  • endpoint: Either the client or server of a connection.
  • session: A framed sequence of data chunks. Frames are defined as SPDY frames; see Framing below.
  • stream: A bi-directional flow of bytes across a virtual channel within a SPDY session.

Main differences from HTTP

SPDY is intended to be as compatible as possible with current web-based applications. This means that, from the perspective of the server business logic or application API, nothing has changed. To achieve this, all of the application request and response header semantics are preserved.  SPDY introduces a "session" which resides between the HTTP application layer and the TCP transport to regulate the flow of data. This "session" is akin to an HTTP request-response pair. The following changes represent the differences between SPDY and HTTP:

The request

To initiate a new request, clients first create a new SPDY session.  Once the session is created, the client can create a new SPDY stream to carry the request.  Part of creating the stream is sending the HTTP header block.  The HTTP header block in SPDY is almost unchanged from today's HTTP header block, with the following differences:

  • The first line of the request is unfolded into name/value pairs like other HTTP headers.  The names of the first line fields are method, url, and version.  These keys are required to be present.  The 'url' is the fully-qualified URL, containing protocol, host, port, and path.
  • Duplicate header names are not allowed.
  • Header names are all lowercase.
  • The Connection and Keep-Alive headers are no longer valid and are ignored if present.
  • Clients are assumed to support Accept-Encoding: gzip.  Clients that do not specify any body encodings receive gzip-encoded data from the server.
  • HTTP request headers are compressed.  This is accomplished by compressing all data sent by the client with gzip encoding.
  • The "host" header is ignored.  The host:port portion of the HTTP URL is the definitive host.
  • POST-specific changes:
    • POST requests are expected to contain a data stream as part of the post; see Data flow below.
    • Content-length is only advisory for length (so that progress meters can work).
    • Chunked encoding is no longer valid.
    • The POST data stream is terminated by a zero-length data frame.

The response

When responding to a HTTP request, servers will send data frames using the SPDY stream created by the client.  The response is similar to HTTP/1.1 in that it consists of a header block followed by a body. However, there are a few notable changes:

  • The response status line is unfolded into name/value pairs like other HTTP headers.  The names of the status line are status and version.  These keys are required to be present
  • If the SPDY reply happens before a SYN_STREAM, then it includes parameters that inform the client regarding the request that would have been made to receive this response, by including url and method keys. 
  • All header names must be lowercase.
  • The Connection and Keep-alive response headers are no longer valid.
  • Content-length is only advisory for length.
  • Chunked encoding is no longer valid.
  • Duplicate header names are not allowed.


The first implementation of the SPDY session runs atop TCP, similarly to how HTTP works today. The client is expected to be the TCP connection initiator. Because it runs on TCP, we have a reliable transport. Unlike HTTP, all connections with SPDY are persistent connections. The HTTP connection header does not apply.

For best performance, it is expected that clients will not close open connections until the user navigates away from all web pages referencing a connection, or until the server closes the connection. Servers are encouraged to leave connections open for as long as possible, but can terminate idle connections after some amount of inactivity if necessary.


Once the TCP connection is established, clients and servers exchange framed messages. There are two types of frames: control frames and data frames.  Frames always have a common header which is 8 bytes.

The first bit is a control bit indicating whether a frame is a control frame or data frame. Control frames carry a version number, a frame type, flags, and a length. Data frames contain the stream ID, flags, and the length for the payload carried after the common header. The simple header is designed to make reading and writing of frames easy.

All integer values, included length, version, and type, are in network byte order.  SPDY does not enforce alignment of types in dynamically sized frames.

And More about SPDY :

Thursday, November 19, 2009

Follow your waves on Google Wave

We've received lots of feedback from Wavers that the public waves they read were clogging up their inboxes. Today, we've introduced a new concept to Google Wave--"following" waves. Now, clicking on a public wave no longer causes it to appear (and stay) in your inbox; you have to explicitly choose to "follow" the wave.

Here's how following works: When someone adds you directly to a wave, or if you contribute to a wave, you will automatically be following that wave. When you see a public wave that you would like to get updates on, you can chose to follow it by hitting the follow button in the wave panel toolbar. You can remove these waves from your inbox by hitting the "archive" button, but when there is an update they will pop back in. You can switch between following and unfollowing a wave as much and as often as you like.

Public waves that are in your inbox simply because you opened them at some point in the past will start to leave your inbox as they get updated. You can also manually remove them with the "archive" feature, and they will no longer return. We hope this will help with clearing a backlog of unwanted waves.

Please note that the new "unfollow" feature replaces mute. If you no longer want a wave you are on for any reason (whether you created it, added to it or followed it), to show up in your inbox, use "unfollow". You can still find waves that you are not following by searching for themor if you have organized them into saved searches or folders.

Following is the first step towards a set of new tools for managing waves in your inbox. In the future, there will be more control over what kinds of changes will cause a wave to appear in your inbox, and we will soon introduce better support for groups of wave users. We're also thinking of expanding the following concept to let you follow people, groups, and searches. In the meantime, let us know what you think of following, check out some other ways to organize your inbox and share your own #wavetips on Twitter.

Happy following!

Recent Posts Links :

New in GMail Labs : New robot icon for indicates if your friends are online!

Gmail chat status (those green, orange, and red bubbles) indicates if your friends are online or not. But sometimes my buddies appear green when they're not really "online online" — they just have chat open on their Android phones.

Turn on Green Robot, a new experiment in Gmail Labs, and you'll see a robot icon next to people who are currently using Android phones. In the case below, Shirley is online with Android, Nicolle R. is using regular Gmail chat, and Chris I. is currently away but also on Android. Slatka is not an angry robot — she's online with Android but currently busy.

These icons can help you decide whether to tailor your conversation to the type of device that your chat buddy is using. For example, when you know the guy on the other end is using his Android phone, you may decide to send shorter, more concise chat messages.

When your chat buddies log into Gmail, their presence icons will revert to the traditional red, green, and orange status bubbles. In addition, if your chat buddy happens to be logged into both Gmail and Android chat then the traditional Gmail status icons will be shown. Try it out and let us know what you think.

Saturday, November 14, 2009

New Feature Spotlight: Google Analytics Intelligence

How would you like to have 24-hour a day access to a dedicated assistant who is focused exclusively on your site's analytics? Your assistant would be so diligent and detailed that they wouldn't miss a thing. Sound too good to be true? We're giving you one. Say "Hello" to Analytics Intelligence.

Your new hardworking assistant, Analytics Intelligence, can't replace you or a professional analyst. But, it can find key information for you and your professional analysts -- so that your team can focus on making strategic decisions, instead of sifting through an endless sea of data.

Analytics Intelligence constantly monitors your website's traffic. Anytime something significant happens, it adds an automatic alert in your Intelligence reports. If your bounce rate suddenly jumps on one of your referrals, Analytics Intelligence creates an alert. Of course, it's up to you to go find out that the bounce rate jumped because someone inadvertently changed the landing page. But you might not have noticed that there was a problem that needed fixing if your trusty assistant hadn't alerted you.

Behind Analytics Intelligence is a sophisticated algorithmic intelligence engine that detects any anomalies in your traffic patterns. That means it's smart enough to know the difference between a change that's actually part of a larger trend versus a change that you might need to look into. But, from a user perspective, Analytics Intelligence couldn't be simpler.

Navigate to the Intelligence reports and you'll see three reports -- Daily Alerts, Weekly Alerts, Monthly Alerts. Daily Alerts contains all the alerts that are based on daily data. Weekly Alerts contains alerts based on weekly data. Monthly Alerts contains, you guessed it, alerts based on monthly data.

When you look at your alerts, you'll notice that your trusty assistant has already gone through your historical data and posted alerts. This highlights a key feature of Analytics Intelligence: you don't have to do anything -- alerts automatically get posted to your account.

The best way to come up to speed on Analytics Intelligence is to take a look at the alerts that are being created for your data. You can learn everything you need to know about how to interpret your alerts in this 2-minute video.

You can also instruct your assistant to be on the lookout for specific things that you want to monitor. Let's say you are running a billboard campaign in New York's Times Square. You want to be proactively informed regarding how the campaign is impacting traffic from New York. To do this, go the Manage Intelligence Alerts page,

and set up a custom alert (see the example, below).

You might even want to set up a second alert that checks for decreasing New York traffic, so you can see if the campaign is starting to wind down.

You'll then receive a custom alert, posted in your Daily Alerts, whenever one of these things happens. You can be notified by email as well, so you'll know what's going on even if you're not checking your reports.

If you're ever unsure about how to set up an alert, try starting with one of the templates on the Manage Intelligence Alerts page. Just click Copy, and then modify and rename the alert to fit your needs.

As with automatic alerts, the best way to learn about custom alerts is to try them out on your own data. You can also refer to the articles on Analytics Intelligence in the Google Analytics Help Center.

Sign in to your account to try it out. It's time to meet your new assistant!

Thursday, November 12, 2009

Congratulations to our 2009 Doodle 4 Google winners! | From Google (Australia)

What an amazing day we had at Google's Australia headquarters on Tuesday. Thirty-two talented young artists from every state and territory in Australia flew to join us for a day of celebrating their achievement at being selected as the winners of the 2009 Doodle 4 Google Australia competition, which asked kids to draw a Google doodle showing their 'Wish for Australia'.

From more than 5,500 individual entries, our 32 wonderful winners had first been selected as one of 320 finalists, and then impressed our judges (Ken Done, Anne Geddes, and Hugh Evans) enough to be selected to come to Sydney for a day of Googley fun.

Every one of the young artists impressed us with both their obvious artistic talent, but also their wonderful attitudes and interest and passion for Australia's future. They asked fantastic questions throughout the day, as they learned about the history of the Sydney Opera House in a fun behind-the scenes tour; heard from inspiring humanitarian Hugh Evans about his wish for Australia and the world; and saw first hand the way that Google's original doodler Dennis Hwang creates his iconic artworks.

Nearly 80,000 Australians voted for their favourite Google Doodles over the last few weeks, and we revealed the winners after a jaunty trip down from Google HQ led by gypsy band Kush.

The four national age group winners are:
  • Ferryn Sutantio, Mill Park Heights Primary School, Mill Park VIC (Years 1-3)
  • Jessie Du, Rydalmere East Public School, Ermington NSW (Years 4-6)
  • Darcy McBean, Kormilda College, Katherine NT (Years 7-8)
  • Emilie Tan, St Ursula's College, Toowoomba QLD (Years 9-10)

Then came one of the big moments of the day ... finding out which Google doodle would be seen by millions of people around Australia and the world on Australia Day next year. Dennis Hwang, selected Jessie Du's doodle "Australia Forever" to appear on the page, and he complemented her on the real warmth in her drawing. We can't wait to see it on the homepage next year in all its glory - congratulations Jessie.

To everyone who entered Doodle 4 Google Australia 2009 - thank you for sharing your talent and enthusiasm with us. Doodle 4 Google is one of the highlights of our year, and you guys really made it special for us. Keep doodling!

Wednesday, November 11, 2009

Save more space from Google (Gmail | Picasa)

More extra storage for less

When Gmail launched five years ago, it came with a gigabyte of storage space. A gigabyte doesn't seem like very much any more, and now every Gmail account comes with more than seven gigs of space (and growing). Still, some people manage to use up all of this (that's a lot of email...), so for over two years we've offered the option to purchase even more storage. This extra storage acts as an overflow that you only start using when you reach the limit of your free storage, and is shared for use between Gmail and Picasa Web Albums. Picasa has always come with a gigabyte of free storage to share photos, but people need even more storage as they start taking more pictures and moving full resolution backups of their photo collection into the cloud.

While storage costs have been dropping naturally, we've also been working hard to improve our infrastructure to reduce costs even further. Today, we're dramatically lowering our prices to make extra storage more affordable. You can now buy 20 GB for only $5 a year, twice as much storage for a quarter of the old price, and enough space for more than 10,000 full resolution pictures taken with a five megapixel camera. And if you need more than 20 GB, you can purchase up to 16 terabytes!

So if you're running out of space in your overflowing inbox, or want to keep full resolution copies of thousands of photos, visit to see all the plans and to buy more storage.

Source :


Twice the storage for a quarter of the price

People today have more personal data online than ever before. More and more people are starting to move the bulk of their data off the desktop and into servers "in the cloud," where it's accessible from any computer or mobile device and easily shareable with friends and family. At the same time, digital photo technology is making it easier and cheaper than ever to take a lot of pictures, and client software like Picasa 3.5 makes it easier than ever to move photos from your camera to the cloud. That's why we've always given you lots of free storage in products like Picasa Web Albums and Gmail, and why for the past two years we've offered additional storage you can purchase if you need even more space.

While the cost of hard drive storage has continued to drop in these two years, we've also been working hard to improve our infrastructure to reduce your costs even further. Today we're dramatically lowering our prices to make extra storage even more affordable. You can now buy 20 GB for only $5 a year — that's twice as much storage for a quarter of the old price, and enough space for more than 10,000 full resolution pictures taken with a five megapixel camera. Since most people have less than 10 GB of photos, chances are you can now save all your memories online for a year for the cost of a triple mocha. If you need more than 20 GB, plans range all the way up to 16 TB, which is enough room for 8 million full resolution photos! And Google paid storage offers an extra level of security, protection and accessibility that you can't get with an external drive — at a similar cost per gigabyte.

As always, extra storage acts as an overflow that you only start using when you reach the limit of your free storage, and people who have extra storage will be automatically upgraded. So if you need more space for thousands of photos of your toddler, or if you're running out of room in your overflowing inbox, visit to see all the plans and to buy more storage.

Source : |

Sunday, November 8, 2009

The Making of the Sudoku Gadget | Google Wave

If you watched the Google I/O keynote, you may have seen Lars and Stephanie playing each other in a furious game of competitive Sudoku - and Lars failing miserably (well, he has to fail at something). I originally wrote this as a single-player game, but when I joined the Google Wave team, I realized it would make a perfect fit for a Wave-enabled Gadget.


To make a game or app take advantage of the real-time Wave experience, you need to have a good understanding of how the gadget data is shared and propagated among all the Wave participants. Shared gadget data is stored as states, which are simply name/values pairs - like an associative array or hash map. So, when designing the Sudoku Gadget, I first had to decide what data needed to be stored, how to store it, and how to detect their changes.

When the Sudoku game first begins, we need states to remember the sequences of numbers that represents the puzzle and the solution. Since state data can only be of type string, I elected to store the JavaScript array of the puzzle and solution as JSON literals:

var PUZZLE = "[0,8,2,4,0,5,7,0,3,0,1,0,6,8,3,5,0,0,5,3,9,7,0,0,6,4,8,0,7,4,3,5,6,1,8,9,8,0,0,9,0,7,0,0,6,9,6,3,1,2,8,4,7,0,7,4,5,0,0,9,2,3,1,0,0,8,5,3,4,0,6,0,3,0,6,2,0,1,8,5,0]";
var SOLUTION = "[6,8,2,4,9,5,7,1,3,4,1,7,6,8,3,5,9,2,5,3,9,7,1,2,6,4,8,2,7,4,3,5,6,1,8,9,8,5,1,9,4,7,3,2,6,9,6,3,1,2,8,4,7,5,7,4,5,8,6,9,2,3,1,1,2,8,5,3,4,9,6,7,3,9,6,2,7,1,8,5,4]"

You can easily generate or parse the JSON literals of JavaScript arrays or objects with the library from Then use the method submitDelta() to submit this data as gadget states to the server:

var states = {};
var states["PUZZLE"] = puzzle;
var states["SOLUTION"] = solutoin;

As soon as this call is made, each Wave participant that has registered a state update callback via setStateCallback() will receive a callback. In the callback, the gadget can use the value of the "PUZZLE" state to display the same Sudoku puzzle to all its participants, and uses the value of the "SOLUTION" state to determine if an input is correct.

To make the game competitive, I also needed to maintain state data to keep track of the correct answers for each participant. When a correct answer is verified, the gadget will submit a "cell_INDEX" state, where INDEX is the position of the board, with the value set as the username. So, if I answered the third square on the first row of the sudoku correctly, I would set this gadget state:

var states = {};
var states["cell_2"] = "Austin Chau"

The setting of this state would again trigger the state callback method for each participant. The callback has logic to detect state updates that have names beginning with "cell_" (using this RegEx: /^cell_([0-9]+)$/ to do that) and then updates the UI to reflect a square being correctly filled.

A similar approach can be applied to other types of collaborative gadgets. In fact, I know there are plenty of variants to make collaborative sudoku. How about "Speed Sudoku" where all users get to play with the same puzzle and see who can finish first? Or maybe "Team Sudoku" where you can really work with other participants to complete the puzzle? Please check out the documentation for the Google Wave Gadgets API, we can't wait to see what you guys can come up with!

The Complete Guide to Google Wave |

This book's contents are freely available to view online. Click on a chapter to read it.

Table of Contents

This book's contents are freely available to view online. Click on a chapter to read it.
Chapter 1
Meet Google Wave

Find out what Google Wave is and what problems it solves.
Chapter 2
Get Started with Wave

Set up your Wave account and create your first wave.
Chapter 3
Manage Your Wave Contacts

Find and add people and groups to collaborate with in Wave.
Chapter 4
Find and Organize Waves

Tag, file, search, and filter waves.
Chapter 5
Dive Deeper into Wave

Add rich content to your waves like maps and photo slide shows.
Chapter 6
Master Wave's Interface

Navigate Wave from the keyboard and customize your Wave interface.
Chapter 7
Wave Gadgets

Add interactive content to your waves with gadgets.
Chapter 8
Wave Bots

Automatically update the contents of your waves with bots.
Appendix A
What Wave Can't Do

It's not just you. See what's NOT working in the current version of Wave, and what features the Wave team has promised are coming.
Appendix B
Contribute to The Complete Guide to Google Wave

In the spirit of Google Wave, this guide is a collaborative effort. We need you (yes, you) to help revise and expand this guide as Wave evolves.
If you just can't get enough of Wave, see also our growing compilation of Wave-related links and video clips from across the web.

The Complete Guide to Google Wave is a comprehensive user manual by Gina Trapani with Adam Pash.

Friday, November 6, 2009

Login With Google Friend Connect [Now Powering Discuz!]

We are excited to announce the release of the Google Friend Connect Plugin for Discuz! 7.0. This project is hosted at

Google Friend Connect allows simple user authentication using any OpenID account such as Google, Yahoo, or AIM. Instead of filling in yet another profile form, your users can connect to their existing identities, showing current profile pictures and information. The ability to easily integrate profiles increases user engagement and activity on Google Friend Connect enabled sites.

Google Friend Connect plugins are currently available for WordPress, phpBB and Drupal. Today, we're very pleased to announce a new plugin that will make it easy for webmasters to use Google Friend Connect on their Discuz! sites. Discuz! is one of the most popular forum platforms, so we think a lot of users and site-owners will benefit from this new tool.

Example page: after installing Google Friend Connect Plugin

Example page: user successfully logged into forum using Google Friend Connect Plugin


  • Based on the latest release of Discuz! (Discuz! 7.0).
  • Multi-language support: English, Simplified Chinese(UTF8, GBK) and Traditional Chinese(UTF8, BIG5).
  • Support for various templates in Discuz!. Even if you use your own customized templates, it will not require extra effort to install this plugin.
  • Easy to install. Just download the plugin, upload it to your server directory, and edit the configuration files according to the installation instructions.
  • Use Google Friend Connect profile information, such as your profile picture and your personal bio, in your Discuz! profile. The plugin can also propagate changes from your Google Friend Connect profile to Discuz!, keeping your information current.

To see the plugin in action, please visit the demo sites (in English and Chinese). If you are a Discuz! forum administrator, you can download the plugin as a zip archive and follow the instructions for installation to deploy it on your site. The code is open sourced under Apache License 2.0, and contributions are not only welcomed, but encouraged. This project hosts an issue tracker which will be populated with known issues and requested enhancements, so please use the tracker to report any new bugs or incompatibilities you find, or to request new features.

For more information, please check the user manual.

Recent posts from Google blog's :

Google Friend Connect, now more personalized :-)

On the subway, I bump elbows with a guy for 20 city blocks without exchanging a single word. Forty-five minutes later, I find the same guy at the local guitar shop, and we start to talk — turns out he plays a Gibson Les Paul just like I do. We may have been strangers on the train, but in the guitar shop, we discover our shared passion for guitars.

Often, the web can feel like that subway. There are probably people commuting to the places you regularly visit, but you don’t know who those people are, and your paths may never cross. With Google Friend Connect, we've been helping millions of website owners make their sites more like that guitar shop — a social place where visitors can get to know each other — and less like the anonymous subway ride.

With this in mind, we're thrilled to introduce a new set of Friend Connect features that let site owners help their visitors get to know each other and personalize their site's experience and content.

Break the ice
Visitors to your site can get to know each other better by sharing details about themselves that are relevant to the site they're on. As a site owner, you can help them do this by visiting the new "Interests" section of your Friend Connect account, where you can add site-relevant questions that people can answer when joining your website or via the poll gadget. For instance, if you have a music website, you might ask people to share their favorite bands, the last concert they attended, or where they discover new music. Or if you run a hiking site, you can ask them about a favorite hike or national park. The details people share are added to their Friend Connect public profiles for your site, which are seen by other site visitors. This way, your visitors can learn more about each other in the context of the interests that bring them to your website.

We've also added the ability for people to send private messages to each other. That way, when a user discovers someone who shares their interests, they can send a message to that person via their Friend Connect profile to start a dialogue.

And as with any data you collect on Friend Connect, you can use open export tools and APIs to integrate this information with any other systems you might use. The interests people share on your website are also made available in the new "Community data" section of your account in the form of easy-to-read charts.

Personalize your website experience
The ice-breaking isn't limited to your visitors; you'll learn more about them too. The interests people share make it possible for you to create a more personalized experience on your website in a number of ways:
  • Send custom newsletters: The new "Newsletter" section of your account lets you create, send and manage newsletters. And with the help of "Interests," you can either send out newsletters to all your subscribers, or send out custom newsletters to different segments of your subscribers, based on the interest responses they submit.
  • Personalized content gadget: This new Friend Connect gadget automatically presents a dynamic personalized set of links to your site's content that matches each visitor's specific interests. Is a visitor learning how to play swing music? Links to articles your site has published about playing swing are presented to him or her.
  • Google ads: For those of you who display ads on your website, your Friend Connect account now includes an "AdSense" section that lets you enable Google ad units that are matched both to your site's content and to the interests users publicly share on your website.
All these new features are easy to implement and require no coding whatsoever. Here's a quick tour of what Friend Connect now has to offer:

If you'd like to see the new features in action, check out some of our partners' sites, like,,, and

We're excited to see the web evolve into a place where visitors of all websites can get to know each other — to share and discuss the things they care about most. To get started with Friend Connect, visit

Thursday, November 5, 2009

New From Gmail Blog | Choose which messages get downloaded for offline use

Like an increasing number of people these days, I like to stay productive during my flights (even those without wifi access). A long flight is a perfect opportunity to go through everything in my inbox and catch up on older mail. I use Offline Gmail in Gmail Labs to access my mail while disconnected. However, up until now, Offline Gmail heuristically picked which messages get downloaded for offline use. This meant that sometimes not enough mail from my Inbox would be available, but the Chat logs that I certainly didn't need on the flight would be there.

From now on, once you enable Offline Gmail from the Labs tab under Settings, you can choose which messages get downloaded. On the Offline tab under Settings, you'll see your current settings and be able to set how much mail you want to download from each of your labels. I chose to download everything in my Inbox and important labels, as well as recent messages from the last month from other labels.

When you hit save, Gmail will synchronize new messages you didn't have downloaded before and remove the ones you're not planning to read from your hard drive. You can always change your settings back to keep fewer or more messages later on -- fewer messages means Offline Gmail runs faster. Questions or comments? Let us know!

Wednesday, November 4, 2009

Holiday Logos and Events – Google style! 2009 [October - November]

Nov 02, 2009

Loy Krathong - (Thailand)

Loy Krathong

Nov 02, 2009

Day of the Dead - (Mexico)

Day of the Dead

Oct 31, 2009

Happy Halloween! - (Selected Countries)

Happy Halloween!

Oct 31, 2009

Happy Halloween! - (Selected Countries)

Happy Halloween!

Oct 31, 2009

Happy Halloween! - (Selected Countries)

Happy Halloween!

Oct 31, 2009

Happy Halloween! - (Selected Countries)

Happy Halloween!

Oct 29, 2009

Asterix Comic's 50th Anniversary ©2009 Goscinny - Uderzo - (Selected Countries)

Asterix Comic's 50th Anniversary ©2009 Goscinny - Uderzo

Oct 29, 2009

Turkish National Day - (Turkey)

Turkish National Day

Oct 26, 2009

Austrian National Day - (Austria)

Austrian National Day

Oct 22, 2009

Mei Lanfang's Birthday - (China)

Mei Lanfang's Birthday

Oct 21, 2009

Rampo Edogawa's Birthday - (Japan)

Rampo Edogawa's Birthday

Oct 15, 2009

Mikhail Lermontov's Birthday - (Russia)

Mikhail Lermontov's Birthday

Oct 14, 2009

Teacher's Day - (Poland)

Teacher's Day

Oct 13, 2009

150 Years Since Multatuli - (Netherlands)

150 Years Since Multatuli

Oct 12, 2009

Canadian Thanksgiving - (Canada)

Canadian Thanksgiving

Oct 10, 2009

Giuseppe Verdi's Birthday - (Italy)

Giuseppe Verdi's Birthday

Oct 09, 2009

Hangul Proclamation Day - (Korea)

Hangul Proclamation Day

Oct 07, 2009

Invention of the Bar Code - (Global)

Invention of the Bar Code

Oct 03, 2009

Moon Viewing Day (Tsukimi) - (Japan)

Moon Viewing Day (Tsukimi)

Oct 03, 2009

Korean Thanksgiving - (Korea)

Korean Thanksgiving

Oct 03, 2009

Mid-Autumn Festival - (China, Hong Kong, Singapore, Taiwan)

Mid-Autumn Festival

Oct 03, 2009

Doodle 4 Google Winner Germany - (Germany)

Doodle 4 Google Winner Germany

Oct 02, 2009

Mahatma Gandhi's Birthday - (Selected Countries)

Mahatma Gandhi's Birthday

Oct 02, 2009

Brazil Wins 2016 Olympics - (Brazil)

Brazil Wins 2016 Olympics

Oct 01, 2009

China's National Day - (China)

China's National Day

Oct 04, 2009

40th Anniversary of Sesame Street

China's National Day