aboutsummaryrefslogtreecommitdiffstats
path: root/perf
diff options
context:
space:
mode:
authorMisko Hevery2010-08-13 09:50:03 -0700
committerMisko Hevery2010-08-13 09:50:03 -0700
commit5c14a35e6210fb8500456b3b4ca026cfeb889776 (patch)
treedadd3a95413f72fb6b15728785fcc0769e9569b7 /perf
parent0bd7e4fe75bc02fa1cf67a0c66255db35bfbfe8f (diff)
downloadangular.js-5c14a35e6210fb8500456b3b4ca026cfeb889776.tar.bz2
initial perf testing
Diffstat (limited to 'perf')
-rw-r--r--perf/blank.html (renamed from perf/startup.html)1
-rw-r--r--perf/buzz.css89
-rw-r--r--perf/buzz.html86
-rw-r--r--perf/buzz_raw.html548
4 files changed, 724 insertions, 0 deletions
diff --git a/perf/startup.html b/perf/blank.html
index 91a46898..f38c368b 100644
--- a/perf/startup.html
+++ b/perf/blank.html
@@ -22,6 +22,7 @@
<script type="text/javascript" src="../angular-minified.js" ng:autobind ng:css="css/angular.css"></script>
<script type="text/javascript">
window.browser.lap('parse');
+
</script>
</head>
<body ng:init="$window.$scope = this; $window.browser.lap('ready')" style="display:none;" ng:show="true">
diff --git a/perf/buzz.css b/perf/buzz.css
new file mode 100644
index 00000000..5fd5763d
--- /dev/null
+++ b/perf/buzz.css
@@ -0,0 +1,89 @@
+body {
+ background: -webkit-gradient(linear, left top, left 100, from(#bbb), to(#fff));
+ background-repeat: no-repeat;
+ margin: 0px;
+ font-family: sans-serif;
+ font-size: 12px;
+}
+
+body > div {
+ border-top: 1px solid white;
+ border-bottom: 1px solid black;
+ text-align: center;
+ background: -webkit-gradient(linear, left top, left bottom, from(#CCC), to(#888));
+ -webkit-background-origin: padding; -webkit-background-clip: content;
+}
+body > div button {
+ margin: 5px;
+}
+
+body > div span:FIRST-CHILD {
+ float: left;
+ font-family: monospace;
+ font-size: 1.5em;
+ color: black;
+ padding: 2px 5px;
+}
+
+body > div span:last-child {
+ float: right;
+}
+
+ul {
+ list-style: none;
+ padding: 10px;
+ margin: 0;
+}
+
+body > ul > li {
+ border: 1px solid black;
+ margin: 15px 5px;
+ padding: 0;
+ -webkit-box-shadow: 5px 5px 5px #888;
+}
+
+body > ul > li > h1 {
+ margin: 0;
+ background: -webkit-gradient(linear, left top, left bottom, from(#ddd), to(#999));
+ font-size: 13px;
+ border-bottom: 1px solid black;
+}
+
+h1 > img,
+li > img {
+ max-height: 30px;
+ max-width: 30px;
+ vertical-align: middle;
+ padding: 3px;
+}
+
+a > img {
+ margin-right: 5px;
+ margin-top: 5px;
+}
+
+body > ul > li > h1 > a:last-child {
+ float: right;
+ margin: 10px;
+}
+
+body > ul > li > div {
+ background-color: white;
+ background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ddd));
+ margin: 0;
+ padding: 10px;
+}
+
+body > ul > li ul {
+ margin: 0;
+ padding: 0;
+ margin-left: 5px;
+ border-left: 5px solid lightgray;
+}
+
+body > ul > li ul > li {
+ margin: 0;
+ padding: 10px;
+ background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ddd));
+}
+
diff --git a/perf/buzz.html b/perf/buzz.html
new file mode 100644
index 00000000..1d0e155c
--- /dev/null
+++ b/perf/buzz.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <link rel="stylesheet" type="text/css" href="buzz.css"/>
+ <script type="text/javascript">
+ function time(timerName){
+ var started = new Date().getTime();
+ return {
+ name: timerName,
+ started: started,
+ lapped: started,
+ lastLap: {duration:0, name:'BEGIN', time:started},
+ lap: function(lapName){
+ var totalDuration = (this.lapped = new Date().getTime()) - this.started;
+ var lapDuration = this.lapped - this.lastLap.time;
+ var lastName = this.lastLap.name;
+ this.lastLap = {duration:lapDuration, name:lapName, time:this.lapped};
+ console.log(timerName, lapName + ': ' + this.lastLap.duration + ' ms.', '(' + totalDuration + ' ms.)');
+ }
+ };
+ }
+ window.browser = time('boot:');
+ </script>
+ <script type="text/javascript" src="../angular-minified.js" ng:autobind ng:css="css/angular.css"></script>
+ <script type="text/javascript">
+ window.browser.lap('parse <angular/>');
+ function onInit() {
+ window.browser.lap('compile DOM');
+ window.setTimeout(function(){
+ window.browser.lap('DOM render');
+ }, 1);
+ }
+ </script>
+ <script>
+ // 60kb JSON
+ window.googlebuzz = {"data":{"kind":"buzz#activityFeed","links":{"next":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self?alt\u003djson&max-results\u003d20&c\u003dCJPT45zJwKECSL72gt20sqMC"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self?alt\u003djson","type":"application/json"}]},"title":"Google Buzz Self Feed for Google Buzz Team","updated":"2010-08-10T05:08:40.954Z","id":"tag:google.com,2010:buzz-feed:self:posted:111062888259659218284","items":[{"kind":"buzz#activity","title":"AutoShare from YouTube to Buzz If you use YouTube a lot, you may be familiar with AutoShare (see ...","published":"2010-07-01T01:00:37.000Z","updated":"2010-07-01T01:00:38.218Z","id":"tag:google.com,2010:buzz:z132tjxxinrhyz4pz04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132tjxxinrhyz4pz04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":91}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/YyNSUbbuV1N","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132tjxxinrhyz4pz04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":26,"updated":"2010-08-10T05:08:40.954Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132tjxxinrhyz4pz04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eAutoShare from YouTube to Buzz\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eIf you use YouTube a lot, you may be familiar with AutoShare (see \u003ca href\u003d\"http://help.youtube.com/support/youtube/bin/answer.py?hl\u003den&amp;answer\u003d157215\" \u003ehttp://help.youtube.com/support/youtube/bin/answer.py?hl\u003den&amp;answer\u003d157215\u003c/a\u003e) which you can use to automatically share your favorites, likes, uploads, or comments on videos to Facebook. Twitter, and Google Reader. Now you can choose to automatically share from YouTube to Google Buzz as well.\r\u003cbr /\u003e\r\u003cbr /\u003eYou can still keep YouTube as a connected site in Buzz if you hooked it up previously, but that only automatically posts your uploads for now.","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/YyNSUbbuV1N","type":"text/html"}]},"attachments":[{"type":"article","title":"AutoShare : Learn More - YouTube Help","links":{"alternate":[{"href":"http://help.youtube.com/support/youtube/bin/answer.py?hl\u003den&answer\u003d157215","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Google Buzz API talks and hackathons Come join us to talk about how you can build on Google Buzz ...","published":"2010-07-02T02:56:27.000Z","updated":"2010-07-02T02:56:28.031Z","id":"tag:google.com,2010:buzz:z13xe5wwtnyqelxkw22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13xe5wwtnyqelxkw22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":96}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/5qbwA75RRr1","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13xe5wwtnyqelxkw22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":62,"updated":"2010-08-08T10:48:37.665Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13xe5wwtnyqelxkw22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eGoogle Buzz API talks and hackathons\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eCome join us to talk about how you can build on Google Buzz -- check out the list below to see if weÕll be in a city near you. We&#39;ll cover several open standards (Activity Streams, OAuth, PubSubHubbub, and Salmon) and go in depth with the Google Buzz API and libraries. In some locations weÕll have extended time for hacking with Googlers on hand to answer your questions.\r\u003cbr /\u003e\r\u003cbr /\u003eHereÕs the schedule (weÕll add links for the Cambridge, Kiev, and Moscow sessions soon):\r\u003cbr /\u003e\r\u003cbr /\u003eSydney, Australia - July 1: \u003ca href\u003d\"http://code.google.com/events/devfests/2010/sydney4.html\" \u003ehttp://code.google.com/events/devfests/2010/sydney4.html\u003c/a\u003e\r\u003cbr /\u003eManila, Philippines - July 6: \u003ca href\u003d\"http://code.google.com/events/devfests/2010/asia1.html\" \u003ehttp://code.google.com/events/devfests/2010/asia1.html\u003c/a\u003e\r\u003cbr /\u003eSingapore - July 9: \u003ca href\u003d\"http://code.google.com/events/devfests/2010/asia2.html\" \u003ehttp://code.google.com/events/devfests/2010/asia2.html\u003c/a\u003e\r\u003cbr /\u003eKuala Lumpur, Malaysia - July 16: \u003ca href\u003d\"http://code.google.com/events/devfests/2010/asia3.html\" \u003ehttp://code.google.com/events/devfests/2010/asia3.html\u003c/a\u003e\r\u003cbr /\u003eNew York, NY, USA - July 21: \u003ca href\u003d\"http://www.meetup.com/NYC-GTUG/calendar/13899003/\" \u003ehttp://www.meetup.com/NYC-GTUG/calendar/13899003/\u003c/a\u003e\r\u003cbr /\u003eCambridge, MA, USA - August 7\r\u003cbr /\u003eStockholm, Sweden - July 12: \u003ca href\u003d\"http://sites.google.com/site/stockholmgtug/extra-gtug-mte-juli\" \u003eextra gtug mte juli\u003c/a\u003e\r\u003cbr /\u003eBerlin, Germany - July 15: \u003ca href\u003d\"http://www.berlin-gtug.org/2010/06/july-2010-berlin-gtug-meeting.html\" \u003ehttp://www.berlin-gtug.org/2010/06/july-2010-berlin-gtug-meeting.html\u003c/a\u003e\r\u003cbr /\u003eKiev, Ukraine - July 17\r\u003cbr /\u003eMoscow, Russia - July 19\r\u003cbr /\u003eLisbon, Portugal - July 28th: \u003ca href\u003d\"https://spreadsheets.google.com/a/google.com/viewform?formkey\u003ddFd5aFo3WVVUX2xaeUZOVDJJVlo1ekE6MQ\" \u003ehttps://spreadsheets.google.com/a/google.com/viewform?formkey\u003ddFd5aFo3WVVUX2xaeUZOVDJJVlo1ekE6MQ\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/5qbwA75RRr1","type":"text/html"}]}},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"When Google Buzz launched, it was only available for devices running Android 2.0+ and iPhone. Not...","published":"2010-05-27T19:17:26.000Z","updated":"2010-05-27T19:17:27.039Z","id":"tag:google.com,2010:buzz:z12gybujdnrxufdwu04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gybujdnrxufdwu04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":199}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/SoyLF1PRQhn","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gybujdnrxufdwu04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":87,"updated":"2010-08-04T22:16:13.927Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gybujdnrxufdwu04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"When Google Buzz launched, it was only available for devices running Android 2.0+ and iPhone. Not any more! Today weÕre a releasing an XHTML version of the Buzz website which can be accessed from many other mobile devices, including those running Android pre-2.0, Blackberry, Nokia S60, and Windows Mobile.\r\u003cbr /\u003e\r\u003cbr /\u003eRead more at \u003ca href\u003d\"http://googlemobile.blogspot.com/2010/05/google-buzz-for-mobile-now-available-on.html\" \u003ehttp://googlemobile.blogspot.com/2010/05/google-buzz-for-mobile-now-available-on.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/SoyLF1PRQhn","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F1.bp.blogspot.com%2F_SS18DlBSIQ8%2FS_6tBXefeGI%2FAAAAAAAAGr4%2FRXnIdiSgYPI%2Fs400%2Fbuzz%2Bpic%2B1.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://1.bp.blogspot.com/_SS18DlBSIQ8/S_6tBXefeGI/AAAAAAAAGr4/RXnIdiSgYPI/s400/buzz+pic+1.jpg","type":"image/jpeg"}]}},{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F2.bp.blogspot.com%2F_SS18DlBSIQ8%2FS_6t8CKFnSI%2FAAAAAAAAGsA%2FU6qdmKc_6G0%2Fs400%2Fbuzz%2Bpic%2B2.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://2.bp.blogspot.com/_SS18DlBSIQ8/S_6t8CKFnSI/AAAAAAAAGsA/U6qdmKc_6G0/s400/buzz+pic+2.jpg","type":"image/jpeg"}]}},{"type":"article","title":"Google Buzz for mobile now available on more devices - Official Google Mobile Blog","links":{"alternate":[{"href":"http://googlemobile.blogspot.com/2010/05/google-buzz-for-mobile-now-available-on.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"New! Comments and likes tabs on your profile Many of you have asked for an easy way to refer back...","published":"2010-07-14T23:45:20.000Z","updated":"2010-07-14T23:45:21.182Z","id":"tag:google.com,2010:buzz:z12kcpb5uknazjs1022fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12kcpb5uknazjs1022fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":326}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/6UndwSjNpoH","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12kcpb5uknazjs1022fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":96,"updated":"2010-07-30T18:32:33.815Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12kcpb5uknazjs1022fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eNew! Comments and likes tabs on your profile\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eMany of you have asked for an easy way to refer back to the posts you&#39;ve commented on and/or liked. Some of you have also requested a way to see what other people have commented on or liked -- a great way to discover posts that may interest you too. \r\u003cbr /\u003e\r\u003cbr /\u003eStarting today, you&#39;ll see new tabs on your profile that show all the posts you&#39;ve commented on or liked. By default, these tabs are only visible to you. If you want to share your comments and likes tabs, you can choose to make them publicly visible to others from the Buzz tab under Settings. This won&#39;t change who can see each post; private posts stay private.","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/6UndwSjNpoH","type":"text/html"}]},"attachments":[{"type":"photo","content":"comments&likes.png","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/July142010?authkey\u003dGv1sRgCKbByv6M3ougAw#5493911882110402178","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttps%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTD5Lv7B8_oI%2FAAAAAAAAACk%2Fdc1Ndqi_gfQ%2Fs288%2Fcomments%2526likes.png","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttps%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTD5Lv7B8_oI%2FAAAAAAAAACk%2Fdc1Ndqi_gfQ%2Fs288%2Fcomments%2526likes.png","type":"image/jpeg"}],"enclosure":[{"href":"https://lh6.googleusercontent.com/_f0qVMWvWkZQ/TD5Lv7B8_oI/AAAAAAAAACk/dc1Ndqi_gfQ/comments%26likes.png","type":"image/jpeg","height":90,"width":380}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Fighting follower spam Any web service that involves following has to fight \"follower spam\" -- ac...","published":"2010-02-24T03:53:53.000Z","updated":"2010-02-24T03:53:54.067Z","id":"tag:google.com,2010:buzz:z12szhgawszuxjyd222fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12szhgawszuxjyd222fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":171}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/6r4ntDbUSet","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12szhgawszuxjyd222fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":187,"updated":"2010-07-23T15:23:13.585Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12szhgawszuxjyd222fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eFighting follower spam\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eAny web service that involves following has to fight &quot;follower spam&quot; -- accounts that follow lots and lots of people in the hopes that some of them will click through to their profiles and a few might even end up buying whatever it is they&#39;re selling. Buzz is no different. If you&#39;re getting following notices from Buzz users with names that sound suspiciously like spammy marketing scams, the chances are that&#39;s exactly what they are -- and we&#39;re after them. Just like we work hard to protect your Gmail accounts from email spam, we&#39;re working to protect Buzz from follower spam. We look at lots of factors when determining whether to disable an account for follower spam including the number of people it attempts to follow and whether people are blocking it. And just as we&#39;re constantly tweaking the algorithms which detect Gmail spam, the same goes for follower spam in Buzz.\r\u003cbr /\u003e\r\u003cbr /\u003eIf you&#39;re followed by any suspicious looking users, you can report them by clicking the &quot;Report this profile&quot; link on their profile. If they aren&#39;t really suspicious but you just don&#39;t want them following you, you can always block them.","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/6r4ntDbUSet","type":"text/html"}]}},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"New Google Buzz API features We just launched the Google Buzz firehose (our top developer feature...","published":"2010-07-19T22:01:39.000Z","updated":"2010-07-19T22:01:40.673Z","id":"tag:google.com,2010:buzz:z13mvpwqktjyf11be04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13mvpwqktjyf11be04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":155}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/g9Rfei3F6C4","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13mvpwqktjyf11be04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":31,"updated":"2010-07-22T05:38:04.392Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13mvpwqktjyf11be04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eNew Google Buzz API features\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eWe just launched the Google Buzz firehose (our top developer feature request) which makes all public activities available as they are published, along with new feeds including comments, likes, and shared counts. \r\u003cbr /\u003e\r\u003cbr /\u003eRead more on the Code Blog: \r\u003cbr /\u003e\u003ca href\u003d\"http://googlecode.blogspot.com/2010/07/new-google-buzz-api-features-including.html\" \u003ehttp://googlecode.blogspot.com/2010/07/new-google-buzz-api-features-including.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/g9Rfei3F6C4","type":"text/html"}]},"attachments":[{"type":"article","title":"Google Code Blog: New Google Buzz API features, including a hose of fire","content":"The official Google developer blog. The latest news on Google APIs and developer tools.","links":{"alternate":[{"href":"http://googlecode.blogspot.com/2010/07/new-google-buzz-api-features-including.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Two quick Buzz for mobile updates Yesterday we rolled out a new design for rendering location att...","published":"2010-05-30T05:14:00.000Z","updated":"2010-05-30T05:14:01.345Z","id":"tag:google.com,2010:buzz:z132yb4zzlnlgn24h04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132yb4zzlnlgn24h04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":105}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/QbXYavQL7ja","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132yb4zzlnlgn24h04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":45,"updated":"2010-07-19T14:39:55.321Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z132yb4zzlnlgn24h04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eTwo quick Buzz for mobile updates\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eYesterday we rolled out a new design for rendering location attached to posts, including a better place icon, a bigger map, and an easy way to get directions from the post itself.\r\u003cbr /\u003e\r\u003cbr /\u003eIn addition, you can now disable comments from Buzz for mobile. (Look for this option under &quot;More Actions&quot;).","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/QbXYavQL7ja","type":"text/html"}]},"attachments":[{"type":"photo","content":"buzz_maps_image.jpg","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/May292010?authkey\u003dGv1sRgCJOL7KHU942H6gE#5476926467976674802","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTAHzmsivPfI%2FAAAAAAAAACM%2FvdqRNwY1Z6Y%2Fs288%2Fbuzz_maps_image.jpg","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTAHzmsivPfI%2FAAAAAAAAACM%2FvdqRNwY1Z6Y%2Fs288%2Fbuzz_maps_image.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://lh3.ggpht.com/_f0qVMWvWkZQ/TAHzmsivPfI/AAAAAAAAACM/vdqRNwY1Z6Y/buzz_maps_image.jpg","type":"image/jpeg","height":800,"width":480}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Read about the updates we're making to the Google Buzz API (http://googlecode.blogspot.com/2010/0...","published":"2010-05-19T20:48:14.000Z","updated":"2010-05-19T20:48:14.902Z","id":"tag:google.com,2010:buzz:z12gehl4pqamhv1cc22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gehl4pqamhv1cc22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":299}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/2M3ZjDfQoMZ","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gehl4pqamhv1cc22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":89,"updated":"2010-07-18T21:29:59.234Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12gehl4pqamhv1cc22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"Read about the updates we&#39;re making to the Google Buzz API (\u003ca href\u003d\"http://googlecode.blogspot.com/2010/05/introducing-google-buzz-api.html\" \u003ehttp://googlecode.blogspot.com/2010/05/introducing-google-buzz-api.html\u003c/a\u003e) and check out some of the initial apps developers have created so far (\u003ca href\u003d\"http://www.google.com/buzz/apps\" \u003ehttp://www.google.com/buzz/apps\u003c/a\u003e)!","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/2M3ZjDfQoMZ","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F4.bp.blogspot.com%2F_WryZsbWA8Vs%2FS_NyVvGdpQI%2FAAAAAAAAAGY%2F6Z3vfWpVSoo%2Fs1600%2FBuzzAPI-logosall.png","type":"image/jpeg"}],"enclosure":[{"href":"http://4.bp.blogspot.com/_WryZsbWA8Vs/S_NyVvGdpQI/AAAAAAAAAGY/6Z3vfWpVSoo/s1600/BuzzAPI-logosall.png","type":"image/jpeg"}]}},{"type":"article","title":"Google Code Blog: Introducing the Google Buzz API","content":"The official Google developer blog. The latest news on Google APIs and developer tools.","links":{"alternate":[{"href":"http://googlecode.blogspot.com/2010/05/introducing-google-buzz-api.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"If you started using Google Buzz before we changed the start-up experience from auto-following to...","published":"2010-04-05T22:44:41.000Z","updated":"2010-04-05T22:44:41.835Z","id":"tag:google.com,2010:buzz:z13ac1fi2nycghz3h22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ac1fi2nycghz3h22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":88}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/KPspNYN1ZLF","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ac1fi2nycghz3h22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":61,"updated":"2010-07-18T11:42:47.231Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ac1fi2nycghz3h22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"If you started using Google Buzz before we changed the start-up experience from auto-following to suggestions for people to follow, we want to help you ensure that Buzz is set up the way you want. So the next time you click into the Buzz tab you&#39;ll see a page asking you to confirm your Buzz settings -- you can review and edit your settings from here, or at anytime from the Buzz tab of Gmail Settings. \r\u003cbr /\u003e\r\u003cbr /\u003eFor more info, check out this post on the Gmail blog: \u003ca href\u003d\"http://gmailblog.blogspot.com/2010/04/confirm-your-buzz-settings.html\" \u003ehttp://gmailblog.blogspot.com/2010/04/confirm-your-buzz-settings.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/KPspNYN1ZLF","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F1.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS7ZUkxT141I%2FAAAAAAAAAjA%2FgEdS8783dFE%2FbuzzConfirmSetup.png","type":"image/jpeg"}],"enclosure":[{"href":"http://1.bp.blogspot.com/_JE4qNpFW6Yk/S7ZUkxT141I/AAAAAAAAAjA/gEdS8783dFE/buzzConfirmSetup.png","type":"image/jpeg"}]}},{"type":"article","title":"Official Gmail Blog: Confirm your Buzz settings","links":{"alternate":[{"href":"http://gmailblog.blogspot.com/2010/04/confirm-your-buzz-settings.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Hey all -- this is the account for the Google Buzz team. We'll post all sorts of updates here abo...","published":"2010-02-20T03:16:48.000Z","updated":"2010-02-20T03:16:49.134Z","id":"tag:google.com,2010:buzz:z12pi5ppytr0gtxgj04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12pi5ppytr0gtxgj04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":335}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/R5C8pdDfLvD","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12pi5ppytr0gtxgj04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":495,"updated":"2010-07-15T15:23:34.937Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12pi5ppytr0gtxgj04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"Hey all -- this is the account for the Google Buzz team. We&#39;ll post all sorts of updates here about what we&#39;re working on. Feel free to give us feedback and ideas on Google Buzz!\r\u003cbr /\u003e\r\u003cbr /\u003eHere&#39;s a photo of our launch &quot;war room&quot; from last week. :-)","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/R5C8pdDfLvD","type":"text/html"}]},"attachments":[{"type":"photo","content":"buzzLaunchRoom.jpg","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/20100219?authkey\u003dGv1sRgCPzGzaipscnZqQE#5440159301699698322","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FS39UD8tY_pI%2FAAAAAAAAAAM%2FCTneAri7FGY%2Fs288%2FbuzzLaunchRoom.jpg","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FS39UD8tY_pI%2FAAAAAAAAAAM%2FCTneAri7FGY%2Fs288%2FbuzzLaunchRoom.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://lh3.ggpht.com/_f0qVMWvWkZQ/S39UD8tY_pI/AAAAAAAAAAM/CTneAri7FGY/buzzLaunchRoom.jpg","type":"image/jpeg","height":682,"width":1024}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"The Buzz layer in Google Maps for mobile is now available on BlackBerry phones: http://googlemobi...","published":"2010-04-07T20:31:27.000Z","updated":"2010-04-07T20:31:27.548Z","id":"tag:google.com,2010:buzz:z12dij1z2m2exdr3e22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12dij1z2m2exdr3e22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":76}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/JrMcYEeKdJh","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12dij1z2m2exdr3e22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":52,"updated":"2010-07-14T11:12:23.216Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12dij1z2m2exdr3e22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"The Buzz layer in Google Maps for mobile is now available on BlackBerry phones:\r\u003cbr /\u003e\u003ca href\u003d\"http://googlemobile.blogspot.com/2010/04/google-maps-40-for-blackberry-adds.html\" \u003ehttp://googlemobile.blogspot.com/2010/04/google-maps-40-for-blackberry-adds.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/JrMcYEeKdJh","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F1.bp.blogspot.com%2F_16aYP83FzVs%2FS7zAh47PpZI%2FAAAAAAAAACU%2FUXotejzuskY%2Fs320%2Fbuzz3_cropped.png","type":"image/jpeg"}],"enclosure":[{"href":"http://1.bp.blogspot.com/_16aYP83FzVs/S7zAh47PpZI/AAAAAAAAACU/UXotejzuskY/s320/buzz3_cropped.png","type":"image/jpeg"}]}},{"type":"article","title":"Official Google Mobile Blog: Google Maps 4.0 for BlackBerry adds Search by Voice, Google Buzz, Starring, Labs, and More","links":{"alternate":[{"href":"http://googlemobile.blogspot.com/2010/04/google-maps-40-for-blackberry-adds.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"New! View entire photo albums in Buzz Tired of only being able to view a handful of photos from a...","published":"2010-04-30T22:31:10.000Z","updated":"2010-04-30T22:31:11.329Z","id":"tag:google.com,2010:buzz:z13hspshcvuug3zlt22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13hspshcvuug3zlt22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":266}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/AhZUBLUsFcN","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13hspshcvuug3zlt22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":81,"updated":"2010-07-14T17:23:11.990Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13hspshcvuug3zlt22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eNew! View entire photo albums in Buzz\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eTired of only being able to view a handful of photos from a given Flickr or Picasa album in Buzz&#39;s photo viewer? Now you can view the entire thing. \r\u003cbr /\u003e\r\u003cbr /\u003e@\u003ca href\u003d\"http://www.google.com/profiles/104987932455782713675\" class\u003d\"proflink\" oid\u003d\"104987932455782713675\"\u003eThomas Hawk\u003c/a\u003e -- we thought you&#39;d appreciate this ;)","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/AhZUBLUsFcN","type":"text/html"}]}},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Need a refresher on how to post by email? Want an easy way to show your mom how to share privatel...","published":"2010-04-05T18:00:35.000Z","updated":"2010-04-05T18:00:35.941Z","id":"tag:google.com,2010:buzz:z12zy3sgbvabwdr4504cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12zy3sgbvabwdr4504cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":199}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/PNHDxf73hqG","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12zy3sgbvabwdr4504cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":59,"updated":"2010-07-10T16:37:30.481Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12zy3sgbvabwdr4504cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"Need a refresher on how to post by email? Want an easy way to show your mom how to share privately? Check out the 7 tips videos we just added to the Google Buzz YouTube Channel.\r\u003cbr /\u003e\r\u003cbr /\u003eFollowing: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003dMFo2WvPPgfE\" \u003ehttp://www.youtube.com/watch?v\u003dMFo2WvPPgfE\u003c/a\u003e\r\u003cbr /\u003eComments &amp; likes: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003d3H0or0Tnrt8\" \u003ehttp://www.youtube.com/watch?v\u003d3H0or0Tnrt8\u003c/a\u003e\r\u003cbr /\u003ePhotos, links &amp; videos: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003dsDZAPBy-ups\" \u003ehttp://www.youtube.com/watch?v\u003dsDZAPBy-ups\u003c/a\u003e\r\u003cbr /\u003eConnect sites: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003d2G9ZRBGWQc4\" \u003ehttp://www.youtube.com/watch?v\u003d2G9ZRBGWQc4\u003c/a\u003e\r\u003cbr /\u003ePublic/private posting: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003d-IZyk9ECvb8\" \u003ehttp://www.youtube.com/watch?v\u003d-IZyk9ECvb8\u003c/a\u003e\r\u003cbr /\u003e@replies: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003d9LS7MsuHLMI\" \u003ehttp://www.youtube.com/watch?v\u003d9LS7MsuHLMI\u003c/a\u003e\r\u003cbr /\u003ePost via email: \u003ca href\u003d\"http://www.youtube.com/watch?v\u003dJGjj4IGSGQw\" \u003ehttp://www.youtube.com/watch?v\u003dJGjj4IGSGQw\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/PNHDxf73hqG","type":"text/html"}]},"attachments":[{"type":"article","title":"\n\t\tYouTube\n\t\t\t\t- googlebuzz's Channel\n\t","content":"Share your videos with friends, family, and the world","links":{"alternate":[{"href":"http://www.youtube.com/googlebuzz","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Reshare from your mobile device For the last month or so, you've been able to reshare interesting...","published":"2010-06-28T22:10:22.000Z","updated":"2010-06-28T22:10:22.748Z","id":"tag:google.com,2010:buzz:z13fczd5coyswbnk522fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13fczd5coyswbnk522fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":133}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/1wTZFmh3Sso","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13fczd5coyswbnk522fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":52,"updated":"2010-07-10T15:55:04.477Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13fczd5coyswbnk522fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eReshare from your mobile device\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eFor the last month or so, you&#39;ve been able to reshare interesting buzz posts from your computer (see \u003ca href\u003d\"http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html\" \u003ehttp://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html\u003c/a\u003e for more info).\r\u003cbr /\u003e\r\u003cbr /\u003eToday, we&#39;re excited to announce that we&#39;ve enabled this feature for \u003ca href\u003d\"http://buzz.google.com\" \u003ebuzz.google.com\u003c/a\u003e on Android and iPhone as well. (If you don&#39;t see it right away, try clearing your cache/cookies.)","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/1wTZFmh3Sso","type":"text/html"}]},"attachments":[{"type":"photo","content":"Reshare2.png","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/June282010?authkey\u003dGv1sRgCLntwPqm-dqTqQE#5487950223732620306","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTCkdpu6bvBI%2FAAAAAAAAACc%2FIxE12VFPTDI%2Fs288%2FReshare2.png","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTCkdpu6bvBI%2FAAAAAAAAACc%2FIxE12VFPTDI%2Fs288%2FReshare2.png","type":"image/jpeg"}],"enclosure":[{"href":"http://lh3.ggpht.com/_f0qVMWvWkZQ/TCkdpu6bvBI/AAAAAAAAACc/IxE12VFPTDI/Reshare2.png","type":"image/jpeg","height":771,"width":489}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"In San Francisco or Toronto? Come chat with the Buzz for mobile team and other Buzz users. Google...","published":"2010-06-19T18:09:22.000Z","updated":"2010-06-19T18:09:23.449Z","id":"tag:google.com,2010:buzz:z12xznrqjlqoix2ja04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12xznrqjlqoix2ja04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":85}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/fV34ajxduiJ","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12xznrqjlqoix2ja04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":101,"updated":"2010-07-03T05:14:31.118Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12xznrqjlqoix2ja04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eIn San Francisco or Toronto? Come chat with the Buzz for mobile team and other Buzz users.\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eGoogle Buzz can be a great place to have a conversation, but we all know face-to-face interactions are still invaluable. Many of you have suggested in person meet ups to mingle and chat with other people using Google Buzz, so we&#39;re having our first meet ups focused on Buzz for mobile next week in San Francisco and Toronto. Join @\u003ca href\u003d\"http://www.google.com/profiles/111499908439497508351\" class\u003d\"proflink\" oid\u003d\"111499908439497508351\"\u003ePunit Soni\u003c/a\u003e and @\u003ca href\u003d\"http://www.google.com/profiles/117841284165024027243\" class\u003d\"proflink\" oid\u003d\"117841284165024027243\"\u003eRobin Norvell\u003c/a\u003e from the Buzz for mobile team as well as other users for what promises to be an interesting discussion. \r\u003cbr /\u003e\r\u003cbr /\u003eSan Francisco meet up\r\u003cbr /\u003eTuesday, June 22nd 6pm\r\u003cbr /\u003eAxis Cafe\r\u003cbr /\u003e1201 8th Street\r\u003cbr /\u003eSan Francisco, CA 94107\r\u003cbr /\u003e\r\u003cbr /\u003eToronto meet up*\r\u003cbr /\u003eTuesday, June 29th 7pm\r\u003cbr /\u003elinuxcaffe\r\u003cbr /\u003e326 Harbord Street\r\u003cbr /\u003eToronto, ON M6G 1H3\r\u003cbr /\u003e\r\u003cbr /\u003e* \u003cb\u003eUpdated with new Toronto location\u003c/b\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/fV34ajxduiJ","type":"text/html"}]}},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Two quick Google Buzz for mobile updates Today we released two new features for buzz.google.com o...","published":"2010-06-23T18:33:13.000Z","updated":"2010-06-23T18:33:14.046Z","id":"tag:google.com,2010:buzz:z135ftr5ssyqtxcft22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z135ftr5ssyqtxcft22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":141}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/MHNVs7XYWho","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z135ftr5ssyqtxcft22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":62,"updated":"2010-06-28T19:07:38.888Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z135ftr5ssyqtxcft22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eTwo quick Google Buzz for mobile updates\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eToday we released two new features for \u003ca href\u003d\"http://buzz.google.com\" \u003ebuzz.google.com\u003c/a\u003e on your phone. \r\u003cbr /\u003e\r\u003cbr /\u003e\u003cb\u003eAddress auto-complete for @replies:\u003c/b\u003e Just type @ and the first few letters of the person&#39;s name and you&#39;ll be prompted with email addresses to choose from. Less typing on tiny mobile keyboards \u003d good ;) You may notice that the first time you do this it seems a little slow to load, but it should get faster after that.\r\u003cbr /\u003e\r\u003cbr /\u003e\u003cb\u003eFull rendering of Google Reader shared items:\u003c/b\u003e You&#39;ll now see more details from blogs/Reader shared items right in the post.\r\u003cbr /\u003e\r\u003cbr /\u003eTry these out and let us know what you think in the comments.","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/MHNVs7XYWho","type":"text/html"}]},"attachments":[{"type":"photo","content":"IMG_0224.PNG","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/June232010?authkey\u003dGv1sRgCPzDyajUrvy2gAE#5486038443960949314","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttps%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTCJS5gRt2kI%2FAAAAAAAAACU%2FXONANxYRpXU%2Fs288%2FIMG_0224.PNG","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttps%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTCJS5gRt2kI%2FAAAAAAAAACU%2FXONANxYRpXU%2Fs288%2FIMG_0224.PNG","type":"image/jpeg"}],"enclosure":[{"href":"https://lh6.googleusercontent.com/_f0qVMWvWkZQ/TCJS5gRt2kI/AAAAAAAAACU/XONANxYRpXU/IMG_0224.PNG","type":"image/jpeg","height":480,"width":320}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"In case you missed it, videos of the Google I/O talks are now all live: http://code.google.com/ev...","published":"2010-06-10T23:23:57.000Z","updated":"2010-06-10T23:23:58.082Z","id":"tag:google.com,2010:buzz:z13agfwgdxamvdm4d04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13agfwgdxamvdm4d04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":98}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/Q1ZTGaJVjvK","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13agfwgdxamvdm4d04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":14,"updated":"2010-06-16T10:30:51.495Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13agfwgdxamvdm4d04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"In case you missed it, videos of the Google I/O talks are now all live: \u003ca href\u003d\"http://code.google.com/events/io/2010/sessions.html\" \u003ehttp://code.google.com/events/io/2010/sessions.html\u003c/a\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eAnd for those of you interested in learning more about how to use the Buzz APIs, here&#39;s @\u003ca href\u003d\"http://www.google.com/profiles/108189587050871927619\" class\u003d\"proflink\" oid\u003d\"108189587050871927619\"\u003eChris Chabot\u003c/a\u003e&#39;s talk:\r\u003cbr /\u003e\u003ca href\u003d\"http://www.youtube.com/watch?v\u003dqmzXVSvA7W0\" \u003eGoogle I/O 2010 - What&#39;s the hubbub about Google Buzz APIs?\u003c/a\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eThanks @\u003ca href\u003d\"http://www.google.com/profiles/112443892461436166386\" class\u003d\"proflink\" oid\u003d\"112443892461436166386\"\u003eGoogle I/O 2010\u003c/a\u003e!","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/Q1ZTGaJVjvK","type":"text/html"}]},"attachments":[{"type":"video","title":"Google I/O 2010 - What's the hubbub about Google Buzz APIs?","content":"Google I/O 2010 - What's the hubbub about Google Buzz APIs? \r\n\r\nSocial Web 101 \r\n\r\nChris Chabot, Marco Kaiser (Seesmic), Ming Yong (Socialwok) \r\n\r\nGoogle Buzz is a new way to share updates, photos, videos and more, and start conversations about the things you find interesting. In this session, we'll take a deep dive into building with the Buzz APIs and the open standards it uses, such as ActivityStrea.ms, PubSubHubbub, OAuth, Salmon and WebFinger. \r\n\r\nFor all I/O 2010 sessions, please go to http://code.google.com/events/io/2010/sessions.html","links":{"alternate":[{"href":"http://www.youtube.com/watch?v\u003dqmzXVSvA7W0","type":"text/html"},{"href":"http://www.youtube.com/v/qmzXVSvA7W0&hl\u003den&fs\u003d1&autoplay\u003d1","type":"application/x-shockwave-flash"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2FqmzXVSvA7W0%2Fdefault.jpg","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2FqmzXVSvA7W0%2Fdefault.jpg","type":"image/jpeg"}]}},{"type":"article","title":"Google I/O 2010","links":{"alternate":[{"href":"","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Nice Google Maps previews in Google Buzz Now when you paste a Google Maps link into the post box,...","published":"2010-06-07T23:12:58.000Z","updated":"2010-06-07T23:12:59.726Z","id":"tag:google.com,2010:buzz:z13isldjrtq4thodv22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13isldjrtq4thodv22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":139}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/AyXWdwLdJua","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13isldjrtq4thodv22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":26,"updated":"2010-06-14T09:15:11.316Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13isldjrtq4thodv22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eNice Google Maps previews in Google Buzz\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eNow when you paste a Google Maps link into the post box, Buzz will automatically fetch a preview of the location you can associate with your post. More info here: \u003ca href\u003d\"http://gmailblog.blogspot.com/2010/06/google-maps-previews-in-gmail-and.html\" \u003ehttp://gmailblog.blogspot.com/2010/06/google-maps-previews-in-gmail-and.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/AyXWdwLdJua","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F1.bp.blogspot.com%2F_JE4qNpFW6Yk%2FTAhWHBGK22I%2FAAAAAAAAAnQ%2FiAZeq1C8ZRc%2Fmaps_in_buzz.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://1.bp.blogspot.com/_JE4qNpFW6Yk/TAhWHBGK22I/AAAAAAAAAnQ/iAZeq1C8ZRc/maps_in_buzz.jpg","type":"image/jpeg"}]}},{"type":"article","title":"Google Maps previews in Gmail and Google Buzz - Official Gmail Blog","links":{"alternate":[{"href":"http://gmailblog.blogspot.com/2010/06/google-maps-previews-in-gmail-and.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Reshare - coming out today! When you find an interesting buzz post you want to reshare, instead o...","published":"2010-05-27T16:07:16.000Z","updated":"2010-05-27T16:07:17.116Z","id":"tag:google.com,2010:buzz:z12giviqawz3wjsgg04cdjyb3mjeulcwv3c","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12giviqawz3wjsgg04cdjyb3mjeulcwv3c/@liked?alt\u003djson","type":"application/json","count":436}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/QYa2iFCXzy5","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12giviqawz3wjsgg04cdjyb3mjeulcwv3c/@comments?alt\u003djson","type":"application/json","count":205,"updated":"2010-06-07T16:23:28.974Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z12giviqawz3wjsgg04cdjyb3mjeulcwv3c?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eReshare - coming out today!\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eWhen you find an interesting buzz post you want to reshare, instead of copying and pasting it (and maybe attributing the original poster with an @reply along the way), you&#39;ll now be able to reshare posts with two clicks. If you don&#39;t see the &quot;Reshare&quot; link quite yet, hang tight. It should be on for everyone by the end of the day. \r\u003cbr /\u003e\r\u003cbr /\u003eLearn more at: \u003ca href\u003d\"http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html\" \u003ehttp://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html\u003c/a\u003e","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/QYa2iFCXzy5","type":"text/html"}]},"attachments":[{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F2.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3OkIMCMYI%2FAAAAAAAAAmQ%2FjzyvdUVnk1A%2Freshare1.png","type":"image/jpeg"}],"enclosure":[{"href":"http://2.bp.blogspot.com/_JE4qNpFW6Yk/S_3OkIMCMYI/AAAAAAAAAmQ/jzyvdUVnk1A/reshare1.png","type":"image/jpeg"}]}},{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F2.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3Oxy3zb1I%2FAAAAAAAAAmY%2FLgpdu9uY_pA%2Freshare2.png","type":"image/jpeg"}],"enclosure":[{"href":"http://2.bp.blogspot.com/_JE4qNpFW6Yk/S_3Oxy3zb1I/AAAAAAAAAmY/Lgpdu9uY_pA/reshare2.png","type":"image/jpeg"}]}},{"type":"photo","links":{"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2F3.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3O5_z4SMI%2FAAAAAAAAAmg%2FZDEoHIDXaE0%2Freshare3.png","type":"image/jpeg"}],"enclosure":[{"href":"http://3.bp.blogspot.com/_JE4qNpFW6Yk/S_3O5_z4SMI/AAAAAAAAAmg/ZDEoHIDXaE0/reshare3.png","type":"image/jpeg"}]}},{"type":"article","title":"\"Reshare\" in Google Buzz - Official Gmail Blog","links":{"alternate":[{"href":"http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html","type":"text/html"}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}},{"kind":"buzz#activity","title":"Tweets with location now showing with Buzz on the map If you've added Twitter as a connected site...","published":"2010-05-11T17:12:43.000Z","updated":"2010-05-11T17:12:45.087Z","id":"tag:google.com,2010:buzz:z13ri1dioqjtjpmur22fzlswnuqoebasu","links":{"liked":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ri1dioqjtjpmur22fzlswnuqoebasu/@liked?alt\u003djson","type":"application/json","count":218}],"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/FemS5bvnLMb","type":"text/html"}],"replies":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ri1dioqjtjpmur22fzlswnuqoebasu/@comments?alt\u003djson","type":"application/json","count":100,"updated":"2010-05-21T21:10:34.279Z"}],"self":[{"href":"https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13ri1dioqjtjpmur22fzlswnuqoebasu?alt\u003djson","type":"application/json"}]},"actor":{"id":"111062888259659218284","name":"Google Buzz Team","profileUrl":"http://www.google.com/profiles/googlebuzz","thumbnailUrl":"http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g"},"verbs":["post"],"object":{"type":"note","content":"\u003cb\u003eTweets with location now showing with Buzz on the map\u003c/b\u003e\r\u003cbr /\u003e\r\u003cbr /\u003eIf you&#39;ve added Twitter as a connected site in Google Buzz and your tweets have a location (via Twitter or other services), they&#39;ll now appear in the mobile \u003ca href\u003d\"http://buzz.google.com\" \u003ebuzz.google.com\u003c/a\u003e &quot;Nearby&quot; view and on the Buzz layer in Google Maps (both mobile and desktop). Check out one of these views to see buzz posts, tweets and more around you.","links":{"alternate":[{"href":"http://www.google.com/buzz/111062888259659218284/FemS5bvnLMb","type":"text/html"}]},"attachments":[{"type":"photo","content":"buzz_twitter_traffic.jpg","links":{"alternate":[{"href":"http://picasaweb.google.com/111062888259659218284/20100511?authkey\u003dGv1sRgCJio0JmzpvCI9QE#5470061328611656498","type":"text/html"}],"preview":[{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh4.ggpht.com%2F_f0qVMWvWkZQ%2FS-mPy_d_wzI%2FAAAAAAAAACE%2FtRh1_oH8W04%2Fs288%2Fbuzz_twitter_traffic.jpg","type":"image/jpeg"},{"href":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container\u003dfocus&gadget\u003da&resize_h\u003d100&url\u003dhttp%3A%2F%2Flh4.ggpht.com%2F_f0qVMWvWkZQ%2FS-mPy_d_wzI%2FAAAAAAAAACE%2FtRh1_oH8W04%2Fs288%2Fbuzz_twitter_traffic.jpg","type":"image/jpeg"}],"enclosure":[{"href":"http://lh4.ggpht.com/_f0qVMWvWkZQ/S-mPy_d_wzI/AAAAAAAAACE/tRh1_oH8W04/buzz_twitter_traffic.jpg","type":"image/jpeg","height":322,"width":521}]}}]},"source":{"title":"Buzz"},"visibility":{"entries":[{"id":"tag:google.com,2010:buzz-group:@me:@public","title":"Public"}]}}]}};
+ </script>
+ <script type="text/javascript">
+ window.browser.lap('parse model');
+ </script>
+ </head>
+ <body ng:init="$window.$scope = this;$window.onInit(); activities = $window.googlebuzz" style="display:none;" ng:show="true">
+ <a href="{{$location.href}}">reload</a>
+ <hr/>
+ <div>
+ <span>&lt;angular/&gt; Buzz</span>
+ <span>
+ filter:
+ <input type="text" name="filterText"/>
+ </span>
+ <span>
+ user:
+ <input type="text" name="userId" ng:required/>
+ <button>fetch</button>
+ </span>
+ </div>
+ <ul>
+ <li ng:repeat="item in activities.data.items.$filter(filterText)">
+ <h1>
+ <img ng:attr-bind="{src:'{{item.actor.thumbnailUrl}}'}"/>
+ <a href="{{item.actor.profileUrl}}">{{item.actor.name}}</a>
+ <a href="#" ng:click="expandReplies(item)">Replies: {{item.links.replies[0].count}}</a>
+ </h1>
+ <div>
+ {{item.object.content | html}}
+ <div>
+ <a href="{{attachment.links.enclosure[0].href}}" ng:repeat="attachment in item.object.attachments">
+ <img ng:attr-bind="{src:'{{attachment.links.preview[0].href}}'}"/>
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <li ng:repeat="reply in item.replies.data.items">
+ <img ng:attr-bind="{src:'{{reply.actor.thumbnailUrl}}'}"/>
+ <a href="{{reply.actor.profileUrl}}">{{reply.actor.name}}</a>:
+ {{reply.content | html}}
+ </li>
+ </ul>
+ </my:expand>
+ </li>
+ </ul>
+
+ <div ng:eval="$window.browser.lap('DOM created')"></div>
+ </body>
+ </html>
diff --git a/perf/buzz_raw.html b/perf/buzz_raw.html
new file mode 100644
index 00000000..fb1144af
--- /dev/null
+++ b/perf/buzz_raw.html
@@ -0,0 +1,548 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <link rel="stylesheet" type="text/css" href="buzz.css"/>
+ <script type="text/javascript">
+ function time(timerName){
+ var started = new Date().getTime();
+ return {
+ name: timerName,
+ started: started,
+ lapped: started,
+ lastLap: {duration:0, name:'BEGIN', time:started},
+ lap: function(lapName){
+ var totalDuration = (this.lapped = new Date().getTime()) - this.started;
+ var lapDuration = this.lapped - this.lastLap.time;
+ var lastName = this.lastLap.name;
+ this.lastLap = {duration:lapDuration, name:lapName, time:this.lapped};
+ console.log(timerName, lapName + ': ' + this.lastLap.duration + ' ms.', '(' + totalDuration + ' ms.)');
+ }
+ };
+ }
+ window.browser = time('boot:');
+ </script>
+ <script type="text/javascript">
+ window.browser.lap('parse <angular/>');
+ function onInit() {
+ window.browser.lap('compile DOM');
+ window.setTimeout(function(){
+ window.browser.lap('DOM render');
+ }, 1);
+ }
+ onInit();
+ </script>
+ <script type="text/javascript">
+ window.browser.lap('parse model');
+ </script>
+ </head>
+ <body>
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{$location.href}}&quot;}" href="buzz_raw.html">reload</a>
+ <hr>
+ <div>
+ <span>&lt;angular/&gt; Buzz</span>
+ <span>
+ filter:
+ <input type="text" name="filterText" class="">
+ </span>
+ <span>
+ user:
+ <input type="text" name="userId" ng:required="" class="ng-validation-error" ng-validation-error="Required">
+ <button>fetch</button>
+ </span>
+ </div>
+ <ul>
+ <!--ng:repeat: item in activities.data.items.$filter(filterText)--><li ng:repeat-index="0">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">26</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>AutoShare from YouTube to Buzz</b>
+<br>
+<br>If you use YouTube a lot, you may be familiar with AutoShare (see <a href="http://help.youtube.com/support/youtube/bin/answer.py?hl=en&amp;answer=157215">http://help.youtube.com/support/youtube/bin/answer.py?hl=en&amp;answer=157215</a>) which you can use to automatically share your favorites, likes, uploads, or comments on videos to Facebook. Twitter, and Google Reader. Now you can choose to automatically share from YouTube to Google Buzz as well.
+<br>
+<br>You can still keep YouTube as a connected site in Buzz if you hooked it up previously, but that only automatically posts your uploads for now.</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="1">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">62</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Google Buzz API talks and hackathons</b>
+<br>
+<br>Come join us to talk about how you can build on Google Buzz -- check out the list below to see if weÍll be in a city near you. We'll cover several open standards (Activity Streams, OAuth, PubSubHubbub, and Salmon) and go in depth with the Google Buzz API and libraries. In some locations weÍll have extended time for hacking with Googlers on hand to answer your questions.
+<br>
+<br>HereÍs the schedule (weÍll add links for the Cambridge, Kiev, and Moscow sessions soon):
+<br>
+<br>Sydney, Australia - July 1: <a href="http://code.google.com/events/devfests/2010/sydney4.html">http://code.google.com/events/devfests/2010/sydney4.html</a>
+<br>Manila, Philippines - July 6: <a href="http://code.google.com/events/devfests/2010/asia1.html">http://code.google.com/events/devfests/2010/asia1.html</a>
+<br>Singapore - July 9: <a href="http://code.google.com/events/devfests/2010/asia2.html">http://code.google.com/events/devfests/2010/asia2.html</a>
+<br>Kuala Lumpur, Malaysia - July 16: <a href="http://code.google.com/events/devfests/2010/asia3.html">http://code.google.com/events/devfests/2010/asia3.html</a>
+<br>New York, NY, USA - July 21: <a href="http://www.meetup.com/NYC-GTUG/calendar/13899003/">http://www.meetup.com/NYC-GTUG/calendar/13899003/</a>
+<br>Cambridge, MA, USA - August 7
+<br>Stockholm, Sweden - July 12: <a href="http://sites.google.com/site/stockholmgtug/extra-gtug-mte-juli">extra gtug mte juli</a>
+<br>Berlin, Germany - July 15: <a href="http://www.berlin-gtug.org/2010/06/july-2010-berlin-gtug-meeting.html">http://www.berlin-gtug.org/2010/06/july-2010-berlin-gtug-meeting.html</a>
+<br>Kiev, Ukraine - July 17
+<br>Moscow, Russia - July 19
+<br>Lisbon, Portugal - July 28th: <a href="https://spreadsheets.google.com/a/google.com/viewform?formkey=dFd5aFo3WVVUX2xaeUZOVDJJVlo1ekE6MQ">https://spreadsheets.google.com/a/google.com/viewform?formkey=dFd5aFo3WVVUX2xaeUZOVDJJVlo1ekE6MQ</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments-->
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="2">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">87</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">When Google Buzz launched, it was only available for devices running Android 2.0+ and iPhone. Not any more! Today weÍre a releasing an XHTML version of the Buzz website which can be accessed from many other mobile devices, including those running Android pre-2.0, Blackberry, Nokia S60, and Windows Mobile.
+<br>
+<br>Read more at <a href="http://googlemobile.blogspot.com/2010/05/google-buzz-for-mobile-now-available-on.html">http://googlemobile.blogspot.com/2010/05/google-buzz-for-mobile-now-available-on.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://1.bp.blogspot.com/_SS18DlBSIQ8/S_6tBXefeGI/AAAAAAAAGr4/RXnIdiSgYPI/s400/buzz+pic+1.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F1.bp.blogspot.com%2F_SS18DlBSIQ8%2FS_6tBXefeGI%2FAAAAAAAAGr4%2FRXnIdiSgYPI%2Fs400%2Fbuzz%2Bpic%2B1.jpg'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="http://2.bp.blogspot.com/_SS18DlBSIQ8/S_6t8CKFnSI/AAAAAAAAGsA/U6qdmKc_6G0/s400/buzz+pic+2.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F2.bp.blogspot.com%2F_SS18DlBSIQ8%2FS_6t8CKFnSI%2FAAAAAAAAGsA%2FU6qdmKc_6G0%2Fs400%2Fbuzz%2Bpic%2B2.jpg'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="2" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="3">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">96</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>New! Comments and likes tabs on your profile</b>
+<br>
+<br>Many of you have asked for an easy way to refer back to the posts you've commented on and/or liked. Some of you have also requested a way to see what other people have commented on or liked -- a great way to discover posts that may interest you too.
+<br>
+<br>Starting today, you'll see new tabs on your profile that show all the posts you've commented on or liked. By default, these tabs are only visible to you. If you want to share your comments and likes tabs, you can choose to make them publicly visible to others from the Buzz tab under Settings. This won't change who can see each post; private posts stay private.</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="https://lh6.googleusercontent.com/_f0qVMWvWkZQ/TD5Lv7B8_oI/AAAAAAAAACk/dc1Ndqi_gfQ/comments%26likes.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=https%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTD5Lv7B8_oI%2FAAAAAAAAACk%2Fdc1Ndqi_gfQ%2Fs288%2Fcomments%2526likes.png'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="4">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">187</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Fighting follower spam</b>
+<br>
+<br>Any web service that involves following has to fight "follower spam" -- accounts that follow lots and lots of people in the hopes that some of them will click through to their profiles and a few might even end up buying whatever it is they're selling. Buzz is no different. If you're getting following notices from Buzz users with names that sound suspiciously like spammy marketing scams, the chances are that's exactly what they are -- and we're after them. Just like we work hard to protect your Gmail accounts from email spam, we're working to protect Buzz from follower spam. We look at lots of factors when determining whether to disable an account for follower spam including the number of people it attempts to follow and whether people are blocking it. And just as we're constantly tweaking the algorithms which detect Gmail spam, the same goes for follower spam in Buzz.
+<br>
+<br>If you're followed by any suspicious looking users, you can report them by clicking the "Report this profile" link on their profile. If they aren't really suspicious but you just don't want them following you, you can always block them.</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments-->
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="5">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">31</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>New Google Buzz API features</b>
+<br>
+<br>We just launched the Google Buzz firehose (our top developer feature request) which makes all public activities available as they are published, along with new feeds including comments, likes, and shared counts.
+<br>
+<br>Read more on the Code Blog:
+<br><a href="http://googlecode.blogspot.com/2010/07/new-google-buzz-api-features-including.html">http://googlecode.blogspot.com/2010/07/new-google-buzz-api-features-including.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="6">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">45</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Two quick Buzz for mobile updates</b>
+<br>
+<br>Yesterday we rolled out a new design for rendering location attached to posts, including a better place icon, a bigger map, and an easy way to get directions from the post itself.
+<br>
+<br>In addition, you can now disable comments from Buzz for mobile. (Look for this option under "More Actions").</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://lh3.ggpht.com/_f0qVMWvWkZQ/TAHzmsivPfI/AAAAAAAAACM/vdqRNwY1Z6Y/buzz_maps_image.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTAHzmsivPfI%2FAAAAAAAAACM%2FvdqRNwY1Z6Y%2Fs288%2Fbuzz_maps_image.jpg'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="7">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">89</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">Read about the updates we're making to the Google Buzz API (<a href="http://googlecode.blogspot.com/2010/05/introducing-google-buzz-api.html">http://googlecode.blogspot.com/2010/05/introducing-google-buzz-api.html</a>) and check out some of the initial apps developers have created so far (<a href="http://www.google.com/buzz/apps">http://www.google.com/buzz/apps</a>)!</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://4.bp.blogspot.com/_WryZsbWA8Vs/S_NyVvGdpQI/AAAAAAAAAGY/6Z3vfWpVSoo/s1600/BuzzAPI-logosall.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F4.bp.blogspot.com%2F_WryZsbWA8Vs%2FS_NyVvGdpQI%2FAAAAAAAAAGY%2F6Z3vfWpVSoo%2Fs1600%2FBuzzAPI-logosall.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="8">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">61</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">If you started using Google Buzz before we changed the start-up experience from auto-following to suggestions for people to follow, we want to help you ensure that Buzz is set up the way you want. So the next time you click into the Buzz tab you'll see a page asking you to confirm your Buzz settings -- you can review and edit your settings from here, or at anytime from the Buzz tab of Gmail Settings.
+<br>
+<br>For more info, check out this post on the Gmail blog: <a href="http://gmailblog.blogspot.com/2010/04/confirm-your-buzz-settings.html">http://gmailblog.blogspot.com/2010/04/confirm-your-buzz-settings.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://1.bp.blogspot.com/_JE4qNpFW6Yk/S7ZUkxT141I/AAAAAAAAAjA/gEdS8783dFE/buzzConfirmSetup.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F1.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS7ZUkxT141I%2FAAAAAAAAAjA%2FgEdS8783dFE%2FbuzzConfirmSetup.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="9">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">495</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">Hey all -- this is the account for the Google Buzz team. We'll post all sorts of updates here about what we're working on. Feel free to give us feedback and ideas on Google Buzz!
+<br>
+<br>Here's a photo of our launch "war room" from last week. :-)</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://lh3.ggpht.com/_f0qVMWvWkZQ/S39UD8tY_pI/AAAAAAAAAAM/CTneAri7FGY/buzzLaunchRoom.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FS39UD8tY_pI%2FAAAAAAAAAAM%2FCTneAri7FGY%2Fs288%2FbuzzLaunchRoom.jpg'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="10">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">52</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">The Buzz layer in Google Maps for mobile is now available on BlackBerry phones:
+<br><a href="http://googlemobile.blogspot.com/2010/04/google-maps-40-for-blackberry-adds.html">http://googlemobile.blogspot.com/2010/04/google-maps-40-for-blackberry-adds.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://1.bp.blogspot.com/_16aYP83FzVs/S7zAh47PpZI/AAAAAAAAACU/UXotejzuskY/s320/buzz3_cropped.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F1.bp.blogspot.com%2F_16aYP83FzVs%2FS7zAh47PpZI%2FAAAAAAAAACU%2FUXotejzuskY%2Fs320%2Fbuzz3_cropped.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="11">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">81</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>New! View entire photo albums in Buzz</b>
+<br>
+<br>Tired of only being able to view a handful of photos from a given Flickr or Picasa album in Buzz's photo viewer? Now you can view the entire thing.
+<br>
+<br>@<a href="http://www.google.com/profiles/104987932455782713675" class="proflink" oid="104987932455782713675">Thomas Hawk</a> -- we thought you'd appreciate this ;)</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments-->
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="12">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">59</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">Need a refresher on how to post by email? Want an easy way to show your mom how to share privately? Check out the 7 tips videos we just added to the Google Buzz YouTube Channel.
+<br>
+<br>Following: <a href="http://www.youtube.com/watch?v=MFo2WvPPgfE">http://www.youtube.com/watch?v=MFo2WvPPgfE</a>
+<br>Comments &amp; likes: <a href="http://www.youtube.com/watch?v=3H0or0Tnrt8">http://www.youtube.com/watch?v=3H0or0Tnrt8</a>
+<br>Photos, links &amp; videos: <a href="http://www.youtube.com/watch?v=sDZAPBy-ups">http://www.youtube.com/watch?v=sDZAPBy-ups</a>
+<br>Connect sites: <a href="http://www.youtube.com/watch?v=2G9ZRBGWQc4">http://www.youtube.com/watch?v=2G9ZRBGWQc4</a>
+<br>Public/private posting: <a href="http://www.youtube.com/watch?v=-IZyk9ECvb8">http://www.youtube.com/watch?v=-IZyk9ECvb8</a>
+<br>@replies: <a href="http://www.youtube.com/watch?v=9LS7MsuHLMI">http://www.youtube.com/watch?v=9LS7MsuHLMI</a>
+<br>Post via email: <a href="http://www.youtube.com/watch?v=JGjj4IGSGQw">http://www.youtube.com/watch?v=JGjj4IGSGQw</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="13">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">52</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Reshare from your mobile device</b>
+<br>
+<br>For the last month or so, you've been able to reshare interesting buzz posts from your computer (see <a href="http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html">http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html</a> for more info).
+<br>
+<br>Today, we're excited to announce that we've enabled this feature for <a href="http://buzz.google.com">buzz.google.com</a> on Android and iPhone as well. (If you don't see it right away, try clearing your cache/cookies.)</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://lh3.ggpht.com/_f0qVMWvWkZQ/TCkdpu6bvBI/AAAAAAAAACc/IxE12VFPTDI/Reshare2.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2Flh3.ggpht.com%2F_f0qVMWvWkZQ%2FTCkdpu6bvBI%2FAAAAAAAAACc%2FIxE12VFPTDI%2Fs288%2FReshare2.png'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="14">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">101</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>In San Francisco or Toronto? Come chat with the Buzz for mobile team and other Buzz users.</b>
+<br>
+<br>Google Buzz can be a great place to have a conversation, but we all know face-to-face interactions are still invaluable. Many of you have suggested in person meet ups to mingle and chat with other people using Google Buzz, so we're having our first meet ups focused on Buzz for mobile next week in San Francisco and Toronto. Join @<a href="http://www.google.com/profiles/111499908439497508351" class="proflink" oid="111499908439497508351">Punit Soni</a> and @<a href="http://www.google.com/profiles/117841284165024027243" class="proflink" oid="117841284165024027243">Robin Norvell</a> from the Buzz for mobile team as well as other users for what promises to be an interesting discussion.
+<br>
+<br>San Francisco meet up
+<br>Tuesday, June 22nd 6pm
+<br>Axis Cafe
+<br>1201 8th Street
+<br>San Francisco, CA 94107
+<br>
+<br>Toronto meet up*
+<br>Tuesday, June 29th 7pm
+<br>linuxcaffe
+<br>326 Harbord Street
+<br>Toronto, ON M6G 1H3
+<br>
+<br>* <b>Updated with new Toronto location</b></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments-->
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="15">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">62</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Two quick Google Buzz for mobile updates</b>
+<br>
+<br>Today we released two new features for <a href="http://buzz.google.com">buzz.google.com</a> on your phone.
+<br>
+<br><b>Address auto-complete for @replies:</b> Just type @ and the first few letters of the person's name and you'll be prompted with email addresses to choose from. Less typing on tiny mobile keyboards = good ;) You may notice that the first time you do this it seems a little slow to load, but it should get faster after that.
+<br>
+<br><b>Full rendering of Google Reader shared items:</b> You'll now see more details from blogs/Reader shared items right in the post.
+<br>
+<br>Try these out and let us know what you think in the comments.</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="https://lh6.googleusercontent.com/_f0qVMWvWkZQ/TCJS5gRt2kI/AAAAAAAAACU/XONANxYRpXU/IMG_0224.PNG">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=https%3A%2F%2Flh6.googleusercontent.com%2F_f0qVMWvWkZQ%2FTCJS5gRt2kI%2FAAAAAAAAACU%2FXONANxYRpXU%2Fs288%2FIMG_0224.PNG'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="16">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">14</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html">In case you missed it, videos of the Google I/O talks are now all live: <a href="http://code.google.com/events/io/2010/sessions.html">http://code.google.com/events/io/2010/sessions.html</a>
+<br>
+<br>And for those of you interested in learning more about how to use the Buzz APIs, here's @<a href="http://www.google.com/profiles/108189587050871927619" class="proflink" oid="108189587050871927619">Chris Chabot</a>'s talk:
+<br><a href="http://www.youtube.com/watch?v=qmzXVSvA7W0">Google I/O 2010 - What's the hubbub about Google Buzz APIs?</a>
+<br>
+<br>Thanks @<a href="http://www.google.com/profiles/112443892461436166386" class="proflink" oid="112443892461436166386">Google I/O 2010</a>!</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2FqmzXVSvA7W0%2Fdefault.jpg'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="17">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">26</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Nice Google Maps previews in Google Buzz</b>
+<br>
+<br>Now when you paste a Google Maps link into the post box, Buzz will automatically fetch a preview of the location you can associate with your post. More info here: <a href="http://gmailblog.blogspot.com/2010/06/google-maps-previews-in-gmail-and.html">http://gmailblog.blogspot.com/2010/06/google-maps-previews-in-gmail-and.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://1.bp.blogspot.com/_JE4qNpFW6Yk/TAhWHBGK22I/AAAAAAAAAnQ/iAZeq1C8ZRc/maps_in_buzz.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F1.bp.blogspot.com%2F_JE4qNpFW6Yk%2FTAhWHBGK22I%2FAAAAAAAAAnQ%2FiAZeq1C8ZRc%2Fmaps_in_buzz.jpg'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="18">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">205</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Reshare - coming out today!</b>
+<br>
+<br>When you find an interesting buzz post you want to reshare, instead of copying and pasting it (and maybe attributing the original poster with an @reply along the way), you'll now be able to reshare posts with two clicks. If you don't see the "Reshare" link quite yet, hang tight. It should be on for everyone by the end of the day.
+<br>
+<br>Learn more at: <a href="http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html">http://gmailblog.blogspot.com/2010/05/reshare-in-google-buzz.html</a></span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://2.bp.blogspot.com/_JE4qNpFW6Yk/S_3OkIMCMYI/AAAAAAAAAmQ/jzyvdUVnk1A/reshare1.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F2.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3OkIMCMYI%2FAAAAAAAAAmQ%2FjzyvdUVnk1A%2Freshare1.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="1" href="http://2.bp.blogspot.com/_JE4qNpFW6Yk/S_3Oxy3zb1I/AAAAAAAAAmY/Lgpdu9uY_pA/reshare2.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F2.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3Oxy3zb1I%2FAAAAAAAAAmY%2FLgpdu9uY_pA%2Freshare2.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="2" href="http://3.bp.blogspot.com/_JE4qNpFW6Yk/S_3O5_z4SMI/AAAAAAAAAmg/ZDEoHIDXaE0/reshare3.png">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2F3.bp.blogspot.com%2F_JE4qNpFW6Yk%2FS_3O5_z4SMI%2FAAAAAAAAAmg%2FZDEoHIDXaE0%2Freshare3.png'}">
+ </a><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="3" href="">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:''}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li><li ng:repeat-index="19">
+ <h1>
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{item.actor.thumbnailUrl}}'}&quot;}" ng:attr-bind="{src:'http://www.google.com/s2/photos/public/AIbEiAIAAABECOz6ztaiyNHDmQEiC3ZjYXJkX3Bob3RvKigyYTBkYmNlNDgyOGI0NDViOTRlYTlkZjVmNzIxZTllNjMzMWFhODljMAEgSk99ukLxRAAHhTbzhgNkGnE-8g'}">
+ <a ng:bind-attr="{&quot;href&quot;:&quot;{{item.actor.profileUrl}}&quot;}" href="http://www.google.com/profiles/googlebuzz"><span ng:bind="item.actor.name">Google Buzz Team</span></a>
+ <a href="#" ng:click="expandReplies(item)">Replies: <span ng:bind="item.links.replies[0].count">100</span></a>
+ </h1>
+ <div>
+ <span ng:bind="item.object.content | html"><b>Tweets with location now showing with Buzz on the map</b>
+<br>
+<br>If you've added Twitter as a connected site in Google Buzz and your tweets have a location (via Twitter or other services), they'll now appear in the mobile <a href="http://buzz.google.com">buzz.google.com</a> "Nearby" view and on the Buzz layer in Google Maps (both mobile and desktop). Check out one of these views to see buzz posts, tweets and more around you.</span>
+ <div>
+ <!--ng:repeat: attachment in item.object.attachments--><a ng:bind-attr="{&quot;href&quot;:&quot;{{attachment.links.enclosure[0].href}}&quot;}" ng:repeat-index="0" href="http://lh4.ggpht.com/_f0qVMWvWkZQ/S-mPy_d_wzI/AAAAAAAAACE/tRh1_oH8W04/buzz_twitter_traffic.jpg">
+ <img ng:bind-attr="{&quot;ng:attr-bind&quot;:&quot;{src:'{{attachment.links.preview[0].href}}'}&quot;}" ng:attr-bind="{src:'http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&amp;gadget=a&amp;resize_h=100&amp;url=http%3A%2F%2Flh4.ggpht.com%2F_f0qVMWvWkZQ%2FS-mPy_d_wzI%2FAAAAAAAAACE%2FtRh1_oH8W04%2Fs288%2Fbuzz_twitter_traffic.jpg'}">
+ </a>
+ </div>
+ </div>
+ <my:expand expand="item.replies.show">
+ <ul>
+ <!--ng:repeat: reply in item.replies.data.items-->
+ </ul>
+ </my:expand>
+ </li>
+ </ul>
+
+ <div ng:eval="$window.browser.lap('DOM created')"></div>
+ </body>
+ </html>