<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-699154927936492178</id><updated>2012-01-27T23:50:33.870-08:00</updated><title type="text">Googland [dev]</title><subtitle type="html">&lt;!-- google_ad_section_start --&gt;News from Google for developers&lt;!-- google_ad_section_end --&gt;
&lt;br /&gt;Syndicated posts from all official Google development blogs</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default?start-index=26&amp;max-results=25" /><author><name>Onestone</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>4157</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/googland-dev" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="googland-dev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">googland-dev</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-1864016572208962373</id><published>2012-01-27T23:50:00.001-08:00</published><updated>2012-01-27T23:50:33.882-08:00</updated><title type="text">[Gd] Dev Channel Update for Chromebooks</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_27.html"&gt;Dev Channel Update for Chromebooks&lt;/a&gt;&lt;/h4&gt; &lt;br&gt;&lt;div style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px;padding-bottom:0px"&gt;&lt;span style="font-family:inherit"&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Dev channel has been updated to &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update_24.html"&gt;18.0.1017.3&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;(Platform versions: 1625.0.0) for Chromebooks (&lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Acer AC700, &lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Samsung Series 5, and Cr-48). &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-family:inherit;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-family:inherit;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;This build contains a number of performance, stability and security improvements. Additional changes:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;li&gt;&lt;span style="color:#333333"&gt;&lt;span style="white-space:pre-wrap"&gt;Fixes to login problems that users may have encountered on machines that were shipped with versions R11 and earlier. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#333333"&gt;&lt;span style="white-space:pre-wrap"&gt;Updated Pepper flash version.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:inherit;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Known issues:&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;ul style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px"&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/detail?id=25557"&gt;25557&lt;/a&gt; &amp;amp; &lt;a href="http://code.google.com/p/chromium-os/issues/detail?id=25559"&gt;25559&lt;/a&gt; - Hangouts will not display video of yourself or participants on Chromebooks. Audio does work, and other Hangout participants will be able to see you if video is enabled. This problem does not affect GTalk Video.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/detail?id=25509"&gt;25509&lt;/a&gt; - Occasionally when switching tabs, the screen will not redraw the content to the new tab. &lt;b&gt;Workaround&lt;/b&gt;: Closing all tabs or restarting the machine resolves the issue.&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;b style="background-color:white"&gt;&lt;span style="font-family:inherit"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;If you find new issues, please let us know by visiting our&lt;/span&gt;&lt;a href="http://www.google.com/chromeos/help.html"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; help site&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; or&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/entry"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. Interested in switching channels?&lt;/span&gt;&lt;a href="http://www.google.com/support/chromeos/bin/answer.py?answer=1086915"&gt;&lt;span style="background-color:white;color:black;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how.&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; You can submit feedback using ‘Report an issue’ under the wrench menu.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Danielle Drew&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-5212625863590357531?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_27.html"&gt;http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_27.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-1864016572208962373?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=mwOpYPSvjtE:DfNmrnRpHXo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=mwOpYPSvjtE:DfNmrnRpHXo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=mwOpYPSvjtE:DfNmrnRpHXo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=mwOpYPSvjtE:DfNmrnRpHXo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=mwOpYPSvjtE:DfNmrnRpHXo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/mwOpYPSvjtE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/1864016572208962373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=1864016572208962373" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1864016572208962373" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1864016572208962373" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-dev-channel-update-for-chromebooks_27.html" title="[Gd] Dev Channel Update for Chromebooks" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-1116386164412145687</id><published>2012-01-27T16:39:00.001-08:00</published><updated>2012-01-27T16:39:07.296-08:00</updated><title type="text">[Gd] Fridaygram: faster web, stronger machines, prettier planet</title><content type="html">&lt;h4&gt;&lt;a href="http://googlecode.blogspot.com/"&gt;The official Google Code blog&lt;/a&gt;: &lt;a href="http://googlecode.blogspot.com/2012/01/fridaygram-faster-web-stronger-machines.html"&gt;Fridaygram: faster web, stronger machines, prettier planet&lt;/a&gt;&lt;/h4&gt; &lt;a href="https://profiles.google.com/u/0/105627346610764729807/about"&gt;&lt;img height="80" src="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s1600/scottk-1.png" alt="Author Photo" style="float:right;margin-left:1em;text-align:right"&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;By Scott Knaster, &lt;a href="http://googlecode.blogspot.com/"&gt;Google Code Blog&lt;/a&gt; Editor&lt;/em&gt;&lt;br&gt;&lt;br&gt;Everybody likes a faster web, and that theme has been evident this week here on Google Code Blog. On Monday, Yuchung Cheng wrote about Google’s research into &lt;a href="http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html"&gt;making TCP faster&lt;/a&gt; through various proposals and experiments. Yesterday, Roberto Peon and Will Chan &lt;a href="http://googlecode.blogspot.com/2012/01/making-web-speedier-and-safer-with-spdy.html"&gt;blogged about SPDY&lt;/a&gt; (pronounced &lt;i&gt;speedy&lt;/i&gt;), Google’s protocol for speeding up the web’s application layer historically handled by HTTP. In related news this week, the chairman of the &lt;a href="http://trac.tools.ietf.org/wg/httpbis/trac/wiki"&gt;HTTPbis Working Group&lt;/a&gt; announced &lt;a href="http://lists.w3.org/Archives/Public/ietf-http-wg/2012JanMar/0098.html"&gt;support for SPDY in a public post&lt;/a&gt;.&lt;br&gt;&lt;br&gt;At Google, these projects are part of our Make the Web Faster initiative, although TCP improvements and SPDY are efforts of the whole community. Even if you’re not working on TCP or SPDY, you can find lots of useful resources at our &lt;a href="http://code.google.com/speed/"&gt;Make the Web Faster site&lt;/a&gt;. For example, there are &lt;a href="http://code.google.com/speed/articles/"&gt;articles on compression, caching, metrics, and more&lt;/a&gt;, a set of &lt;a href="http://code.google.com/speed/tools.html"&gt;tools for measuring and optimizing pages&lt;/a&gt;, and several &lt;a href="http://code.google.com/speed/community.html"&gt;discussion forums for communicating with other interested folks&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Sometimes stronger is more important than faster. Scientists looking to improve the durability of machinery have been &lt;a href="http://www.sciencedaily.com/releases/2012/01/120125101950.htm"&gt;studying the yellow fattail scorpion&lt;/a&gt;, which uses bumps on its back to resist damage from sandstorms. Researchers hope to use the scorpion’s design to create erosion-resistant surfaces for blades, pipes, and similar parts. Or maybe they’ll make machines that look like giant yellow scorpions.&lt;br&gt;&lt;br&gt;Finally, take a step back from everything on Earth and have a look at &lt;a href="http://www.nasa.gov/vision/earth/features/blue_marble.html"&gt;NASA’s latest "Blue Marble" images&lt;/a&gt; of our planet. We have a beautiful home.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Let’s say this fast: Fridaygram posts are just for fun. Fridaygrams are designed for your Friday afternoon and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds. That definitely includes speed, space, and scorpions.&lt;/em&gt;&lt;br&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/11300808-1062008903821505125?l=googlecode.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlecode.blogspot.com/2012/01/fridaygram-faster-web-stronger-machines.html"&gt;http://googlecode.blogspot.com/2012/01/fridaygram-faster-web-stronger-machines.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-1116386164412145687?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bfVNvyjX6vQ:GRZgfSrKVvM:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bfVNvyjX6vQ:GRZgfSrKVvM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bfVNvyjX6vQ:GRZgfSrKVvM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=bfVNvyjX6vQ:GRZgfSrKVvM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bfVNvyjX6vQ:GRZgfSrKVvM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/bfVNvyjX6vQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/1116386164412145687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=1116386164412145687" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1116386164412145687" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1116386164412145687" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-fridaygram-faster-web-stronger.html" title="[Gd] Fridaygram: faster web, stronger machines, prettier planet" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s72-c/scottk-1.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-1845243563612661463</id><published>2012-01-27T04:18:00.001-08:00</published><updated>2012-01-27T04:18:00.090-08:00</updated><title type="text">[Gd] Making the web speedier and safer with SPDY</title><content type="html">&lt;h4&gt;&lt;a href="http://blog.chromium.org/"&gt;Chromium Blog&lt;/a&gt;: &lt;a href="http://blog.chromium.org/2012/01/making-web-speedier-and-safer-with-spdy.html"&gt;Making the web speedier and safer with SPDY&lt;/a&gt;&lt;/h4&gt; In the two years since we announced &lt;a href="http://dev.chromium.org/spdy"&gt;SPDY&lt;/a&gt;, we’ve been working with the web community on evolving the spec and getting SPDY deployed on the Web.&lt;br&gt;&lt;br&gt;Chrome, Android Honeycomb devices, and Google's servers have been speaking SPDY for some time, bringing important benefits to users. For example, thanks to SPDY, a significant percentage of Chrome users saw a decrease in search latency when we launched SSL-search. Given that Google search results are some of the most highly optimized pages on the internet, this was a surprising and welcome result.&lt;br&gt;&lt;br&gt;We’ve also seen widespread community uptake and participation. Recently, Firefox has &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=528288"&gt;added SPDY support&lt;/a&gt;, which means that soon half of the browsers in use will support SPDY. On the server front, nginx has announced plans to &lt;a href="http://forum.nginx.org/read.php?2,217299,217302#msg-217302"&gt;implement SPDY&lt;/a&gt;, and we're actively working on a full featured &lt;a href="http://calendar.perfplanet.com/2011/introducing-mod_spdy-a-spdy-module-for-the-apache-http-server/"&gt;mod-spdy for Apache&lt;/a&gt;. In addition, &lt;a href="http://www.strangeloopnetworks.com/news/releases/strangeloop-offers-worlds-first-site-acceleration-product-to-deliver-spdy-benefits/"&gt;Strangeloop&lt;/a&gt;, &lt;a href="http://arstechnica.com/gadgets/news/2011/09/amazons-silk-web-browser-adds-new-twist-to-old-idea.ars"&gt;Amazon&lt;/a&gt;, and &lt;a href="http://velocityconf.com/velocity2011/public/schedule/detail/21089"&gt;Cotendo&lt;/a&gt; have all announced that they’ve been using SPDY.&lt;br&gt;&lt;br&gt;Given SPDY's rapid adoption rate, we’re working hard on acceptance tests to help validate new implementations. Our &lt;a href="http://dev.chromium.org/spdy/spdy-best-practices"&gt;best practices document&lt;/a&gt; can also help website operators make their sites as speedy as possible.&lt;br&gt;&lt;br&gt;With the help of Mozilla and other contributors, we’re pushing hard to finalize and implement SPDY draft-3 in early 2012, as standardization discussions for SPDY will start at the next meeting of the IETF.&lt;br&gt;&lt;br&gt;We look forward to working even closer with the community to improve SPDY and make the Web faster!&lt;br&gt;&lt;br&gt;To learn more about SPDY, see the link to a Tech Talk &lt;a href="http://www.youtube.com/watch?v=TNBkxA313kk&amp;amp;list=PLE0E03DF19D90B5F4&amp;amp;index=2&amp;amp;feature=plpp_video"&gt;here&lt;/a&gt;, with slides &lt;a href="https://docs.google.com/presentation/d/1-LWSvYmXPJ4WIu6GDaDHgHUwT_FkakECfHc0SL7IKOI/edit"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;span&gt;Posted by Roberto Peon and Will Chan, Software Engineers&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/2471378914199150966-612356880519982197?l=blog.chromium.org" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://blog.chromium.org/2012/01/making-web-speedier-and-safer-with-spdy.html"&gt;http://blog.chromium.org/2012/01/making-web-speedier-and-safer-with-spdy.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-1845243563612661463?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ghDsUM8Ah_0:sQJYZBcnyqk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ghDsUM8Ah_0:sQJYZBcnyqk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ghDsUM8Ah_0:sQJYZBcnyqk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=ghDsUM8Ah_0:sQJYZBcnyqk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ghDsUM8Ah_0:sQJYZBcnyqk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/ghDsUM8Ah_0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/1845243563612661463/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=1845243563612661463" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1845243563612661463" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1845243563612661463" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-making-web-speedier-and-safer-with_27.html" title="[Gd] Making the web speedier and safer with SPDY" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-2298987693326115391</id><published>2012-01-26T23:47:00.003-08:00</published><updated>2012-01-26T23:47:13.197-08:00</updated><title type="text">[Gd] More Options for Google+ Badges</title><content type="html">&lt;h4&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/"&gt;Official Google Webmaster Central Blog&lt;/a&gt;: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/new-google-badges.html"&gt;More Options for Google+ Badges&lt;/a&gt;&lt;/h4&gt; Webmaster Level: All&lt;br&gt;&lt;br&gt;When we &lt;a href="http://googleplusplatform.blogspot.com/2011/11/grow-your-audience-with-google.html"&gt;launched Google+ pages&lt;/a&gt; in November, we also &lt;a href="http://googleplusplatform.blogspot.com/2011/11/google-badges-drive-engagement-with.html"&gt;released Google+ badges&lt;/a&gt; to promote your Google+ presence right on your site. Starting today in &lt;a href="http://www.google.com/+/learnmore/platform-preview/#utm_source=blog&amp;amp;utm_medium=wmc&amp;amp;utm_campaign=bbv2"&gt;developer preview&lt;/a&gt; (and soon available to all your users), we're adding more options for integrating the Google+ badge into your website. You can &lt;a href="https://developers.google.com/+/plugins/badge/preview/#utm_source=blog&amp;amp;utm_medium=wmc&amp;amp;utm_campaign=bbv2"&gt;configure a badge&lt;/a&gt; with a width that fits your site design and choose a version that works better on darker sites. You'll also see that Google+ badges now include the unified +1 and circle count that we added to Pages &lt;a href="http://adwords.blogspot.com/2011/12/new-tools-and-controls-to-manage-your.html"&gt;last month&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;div style="text-align:center"&gt;&lt;a href="http://4.bp.blogspot.com/-J0H4sfENRjA/Tx2Klekr_3I/AAAAAAAAAJ4/LJkkRnUB_xM/s1600/android+on+gplus.png" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-J0H4sfENRjA/Tx2Klekr_3I/AAAAAAAAAJ4/LJkkRnUB_xM/s1600/android+on+gplus.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;a href="http://3.bp.blogspot.com/-__W1Dw5viGE/Tx2KuwaWtKI/AAAAAAAAAKA/f_IubNyIW6A/s1600/black+background.png" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-__W1Dw5viGE/Tx2KuwaWtKI/AAAAAAAAAKA/f_IubNyIW6A/s1600/black+background.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;a href="http://3.bp.blogspot.com/-0mZjvQoG3iw/Tx2K0MivD4I/AAAAAAAAAKI/FmTDFmuAuH8/s1600/box.png" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-0mZjvQoG3iw/Tx2K0MivD4I/AAAAAAAAAKI/FmTDFmuAuH8/s1600/box.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;/div&gt;&lt;br&gt;If you’re still considering whether to add a Google+ badge on your website, consider this: We recently looked at top sites using the badge and found that, on average, the badge accounted for an additional 38% of followers. When you add the badge visitors to your website can discover your Google+ page and connect in a variety of ways: they can follow your Google+ page, +1 your site, share your site with their circles, see which of their friends have +1’d your site, and click through to visit your Google+ page.&lt;br&gt;&lt;br&gt;The Google+ Badge makes it easy for your fans to find and follow you on Google+. With these additional options, we hope it's even easier to &lt;a href="https://developers.google.com/+/plugins/badge/preview/#utm_source=blog&amp;amp;utm_medium=wmc&amp;amp;utm_campaign=bbv2"&gt;create a badge&lt;/a&gt; that fits your website.&lt;br&gt;&lt;br&gt;Follow the conversation on &lt;a href="https://plus.google.com/111732915546499031731/posts/hfGuxwPz6UX"&gt;Google+&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;span&gt;Posted by &lt;a href="https://plus.google.com/u/0/111732915546499031731/posts"&gt;Lucy Hadden&lt;/a&gt;, Software Engineer, Google+&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/32069983-3172469708302491944?l=googlewebmastercentral.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/new-google-badges.html"&gt;http://googlewebmastercentral.blogspot.com/2012/01/new-google-badges.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-2298987693326115391?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=eRJSoIY2iWI:UzT7wkO9OkA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=eRJSoIY2iWI:UzT7wkO9OkA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=eRJSoIY2iWI:UzT7wkO9OkA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=eRJSoIY2iWI:UzT7wkO9OkA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=eRJSoIY2iWI:UzT7wkO9OkA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/eRJSoIY2iWI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/2298987693326115391/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=2298987693326115391" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2298987693326115391" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2298987693326115391" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-more-options-for-google-badges.html" title="[Gd] More Options for Google+ Badges" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-J0H4sfENRjA/Tx2Klekr_3I/AAAAAAAAAJ4/LJkkRnUB_xM/s72-c/android+on+gplus.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-758634421740776013</id><published>2012-01-26T23:47:00.001-08:00</published><updated>2012-01-26T23:47:12.595-08:00</updated><title type="text">[Gd] What’s new with Sitemaps</title><content type="html">&lt;h4&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/"&gt;Official Google Webmaster Central Blog&lt;/a&gt;: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/whats-new-with-sitemaps.html"&gt;What’s new with Sitemaps&lt;/a&gt;&lt;/h4&gt; Webmaster level: All&lt;br&gt;&lt;br&gt;Sitemaps are a way to tell Google about pages on your site.  Webmaster Tools’ Sitemaps feature gives you feedback on your submitted Sitemaps, such as how many Sitemap URLs have been indexed, or whether your Sitemaps have any errors. Recently, we’ve added even more information! Let’s check it out:&lt;br&gt;&lt;br&gt;&lt;a href="http://1.bp.blogspot.com/-Sr5zQQ6dBvE/TyGrsqMX8ZI/AAAAAAAAAjg/Z5vWYLEX2IU/s1600/sitemaps.png"&gt;&lt;img style="display:block;margin:0px auto 10px;text-align:center;width:400px;height:271px" src="http://1.bp.blogspot.com/-Sr5zQQ6dBvE/TyGrsqMX8ZI/AAAAAAAAAjg/Z5vWYLEX2IU/s400/sitemaps.png" border="0" alt=""&gt;&lt;/a&gt;&lt;br&gt;The Sitemaps page displays details based on content-type. Now statistics from Web, Videos, Images and News are featured prominently. This lets you see how many items of each type were submitted (if any), and for some content types, we also show how many items have been indexed.  With these enhancements, the new Sitemaps page replaces the Video Sitemaps Labs feature, which will be retired.&lt;br&gt;&lt;br&gt;Another improvement is the ability to test a Sitemap. Unlike an actual submission, testing does not submit your Sitemap to Google as it only checks it for errors. Testing requires a live fetch by Googlebot and usually takes a few seconds to complete. Note that the initial testing is not exhaustive and may not detect all issues; for example, errors that can only be identified once the URLs are downloaded are not be caught by the test.&lt;br&gt;&lt;br&gt;In addition to on-the-spot testing, we’ve got a new way of displaying errors which better exposes what types of issues a Sitemap contains.  Instead of repeating the same kind of error many times for one Sitemap, errors and warnings are now grouped, and a few examples are given. Likewise, for Sitemap index files, we’ve aggregated errors and warnings from the child Sitemaps that the Sitemap index encloses. No longer will you need to click through each child Sitemap one by one.&lt;br&gt;&lt;br&gt;Finally, we’ve changed the way the “Delete” button works. Now, it removes the Sitemap from Webmaster Tools, both from your account and the accounts of the other owners of the site. Be aware that a Sitemap may still be read or processed by Google even if you delete if from Webmaster Tools. For example if you reference a Sitemap in your robots.txt file search engines may still attempt to process the Sitemap. To truly prevent a Sitemap from being processed, remove the file from your server or block it via robots.txt.&lt;br&gt;&lt;br&gt;For more information on Sitemaps in Webmaster Tools and how Sitemaps work, visit our &lt;a href="http://support.google.com/webmasters/bin/answer.py?hl=en&amp;amp;answer=156184"&gt;Help Center&lt;/a&gt;. If you have any questions, go to &lt;a href="http://www.google.com/support/forum/p/Webmasters?hl=en"&gt;Webmaster Help Forum&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;span&gt;Written by &lt;a href="https://plus.google.com/109580420505325614989/"&gt;Kamila Primke&lt;/a&gt;, Software Engineer, Webmaster Tools&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/32069983-8778288711330580372?l=googlewebmastercentral.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/whats-new-with-sitemaps.html"&gt;http://googlewebmastercentral.blogspot.com/2012/01/whats-new-with-sitemaps.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-758634421740776013?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=JXtaulNRMDE:lSj-Wi_DMc8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=JXtaulNRMDE:lSj-Wi_DMc8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=JXtaulNRMDE:lSj-Wi_DMc8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=JXtaulNRMDE:lSj-Wi_DMc8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=JXtaulNRMDE:lSj-Wi_DMc8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/JXtaulNRMDE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/758634421740776013/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=758634421740776013" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/758634421740776013" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/758634421740776013" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-whats-new-with-sitemaps.html" title="[Gd] What’s new with Sitemaps" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Sr5zQQ6dBvE/TyGrsqMX8ZI/AAAAAAAAAjg/Z5vWYLEX2IU/s72-c/sitemaps.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-13527533965337767</id><published>2012-01-26T16:52:00.003-08:00</published><updated>2012-01-26T16:52:15.405-08:00</updated><title type="text">[Gd] Reading Query Results from Calendar in Pages</title><content type="html">&lt;h4&gt;&lt;a href="http://googleappsdeveloper.blogspot.com/"&gt;Google Apps Developer Blog&lt;/a&gt;: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/reading-query-results-from-calendar-in.html"&gt;Reading Query Results from Calendar in Pages&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;What’s the difference between reality and theory?  In theory, there is no difference.  But reality often imposes unanticipated constraints on developers.  These may come in the form of bandwidth restrictions, memory limits, timeouts, or other requirements of the systems that interact with your application.&lt;/p&gt;&lt;p&gt;My team recently built an application that helps us analyze the scheduling and usage of conference rooms at Google.  We use the new &lt;a href="http://code.google.com/apis/calendar/v3/getting_started.html"&gt;Calendar API v3&lt;/a&gt; on &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt; to read the rooms’ schedules, which we combine with actual occupancy data to calculate utilization and other metrics.&lt;/p&gt;&lt;p&gt;As you might imagine, Google has a lot of conference rooms (I believe the last official count was “more than twelve.”)  And many of the rooms seem to be booked fairly solid.  That means we need to read a lot of data from Calendar.  So much, in fact, that our queries time out if we try to read an entire calendar at once.  But the API team anticipated “Google scale” use and designed a mechanism that allows us to retrieve data in batches.&lt;/p&gt;&lt;p&gt;The idea is simple.  When you create a request, you specify the page size: the maximum number of results you’d like Calendar to return in one batch.  Calendar returns the data you requested, along with an opaque page token, which you can think of as a bookmark.  To retrieve the next batch of data, you ask the API for the next page token and include the new token in your next request.  The page token keeps track of the results you’ve already seen, so Calendar can send the next batch each time.  You repeat this process until you’ve exhausted all the results.&lt;/p&gt;&lt;p&gt;Here’s how we did this in Java:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;public void getRoomEvents(String roomEmail) throws IOException {&lt;br&gt;    // Create a request to list this room’s events (see code, below)&lt;br&gt;    Calendar.Events.List listRequest = getListRequest(roomEmail);&lt;br&gt;    do {&lt;br&gt;      // Retrieve one page of events&lt;br&gt;      Events events = executeListRequest(listRequest);&lt;br&gt;      List eventList = events.getItems();&lt;br&gt;&lt;br&gt;      // Process each event&lt;br&gt;      for (Event event : eventList) {&lt;br&gt;        processEvent(event);&lt;br&gt;      }&lt;br&gt;&lt;br&gt;      // Update the page token&lt;br&gt;      listRequest.setPageToken(events.getNextPageToken());&lt;br&gt;&lt;br&gt;    // Stop when all results have been retrieved&lt;br&gt;    } while (listRequest.getPageToken() != null);&lt;br&gt;  }&lt;br&gt;&lt;br&gt;  // Create a request to list the events for a room&lt;br&gt;  private Calendar.Events.List getListRequest(String roomEmail)&lt;br&gt;        throws IOException {&lt;br&gt;    return calendarClient.events().list(roomEmail)&lt;br&gt;        .setMaxResults(1000) // Limit each response to 1000 events&lt;br&gt;        .setPageToken(null)  // Start with the first page of results&lt;br&gt;        // Return an individual event for each instance occurrence of a&lt;br&gt;        // recurring event&lt;br&gt;        .setSingleEvents(true); &lt;br&gt;  }&lt;br&gt;&lt;/pre&gt;&lt;p&gt;We call &lt;code&gt;getRoomEvents()&lt;/code&gt; for each room, using the room’s email address to identify it to Calendar.  (You can retrieve events from your own calendar by substituting your own email address.)  Then &lt;code&gt;getListRequest()&lt;/code&gt; creates a request that we will send to Calendar.  The request asks for a list of up to 1000 events from the room’s calendar.&lt;/p&gt;&lt;p&gt;The remainder of &lt;code&gt;getRoomEvents()&lt;/code&gt; is a loop that executes the request, processes the results, and updates the page token in preparation for the next request.  The loop continues, retrieving and processing each subsequent page of results, until the entire list has been returned.  The call to &lt;code&gt;getNextPageToken()&lt;/code&gt; indicates the end of the results by returning a null value.&lt;/p&gt;&lt;p&gt;By paginating our requests we avoid timeouts and reduce memory requirements.  As an added benefit, each request completes fairly quickly, which means it’s also quick to retry if an error should occur.  And finally, a multithreaded application may be able to process one or more pages of results while it retrieves the next, speeding execution.  These advantages have led developers at Google to adopt pagination as a best practice.  Look for it in our APIs when you need to exchange large amounts of data, and consider adding it to your own services.&lt;/p&gt;&lt;p&gt;If you have questions about our services or APIs, or if you want to see what other developers are doing with Google Calendar, check the discussions and documentation in the &lt;a href="http://code.google.com/apis/calendar/community/forum.html"&gt;Google Apps Calendar API forum&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="background-color:#f2f2f2"&gt;&lt;td&gt;&lt;img width="76px" style="width:76px" src="http://4.bp.blogspot.com/-7KcjLbsjxrg/TyGvWYqnXqI/AAAAAAAAAZc/ecLG4cD4wxU/s200/adamliss.png"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span&gt;Adam Liss&lt;/span&gt;   &lt;a href="https://plus.google.com/u/0/116984609600395690760/about" rel="me"&gt;profile&lt;/a&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;Adam is an engineer who believes that "technical" shouldn't necessarily mean "difficult."  He enjoys building infrastructure and tools that make Googlers more productive.  Before joining Google in 2010, he built network-security appliances and one of the first wireless application delivery platforms.&lt;/div&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/1377183911445147227-8376078335796651701?l=googleappsdeveloper.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/reading-query-results-from-calendar-in.html"&gt;http://googleappsdeveloper.blogspot.com/2012/01/reading-query-results-from-calendar-in.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-13527533965337767?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ZD5LoewKVqo:5jr0awlMhdc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ZD5LoewKVqo:5jr0awlMhdc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ZD5LoewKVqo:5jr0awlMhdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=ZD5LoewKVqo:5jr0awlMhdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=ZD5LoewKVqo:5jr0awlMhdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/ZD5LoewKVqo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/13527533965337767/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=13527533965337767" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/13527533965337767" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/13527533965337767" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-reading-query-results-from-calendar.html" title="[Gd] Reading Query Results from Calendar in Pages" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-7KcjLbsjxrg/TyGvWYqnXqI/AAAAAAAAAZc/ecLG4cD4wxU/s72-c/adamliss.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-8328437421952662745</id><published>2012-01-26T16:52:00.001-08:00</published><updated>2012-01-26T16:52:14.963-08:00</updated><title type="text">[Gd] My summer with the Google App Engine Team</title><content type="html">&lt;h4&gt;&lt;a href="http://googleappengine.blogspot.com/"&gt;Google App Engine Blog&lt;/a&gt;: &lt;a href="http://googleappengine.blogspot.com/2012/01/my-summer-with-google-app-engine-team.html"&gt;My summer with the Google App Engine Team&lt;/a&gt;&lt;/h4&gt; &lt;br&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-family:inherit"&gt;&lt;span style="font-weight:bold"&gt;&lt;span style="font-style:italic;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;Today’s post is contributed by our Summer 2011 team intern, Chris Bunch. Chris did some great work on our Logs and MapReduce APIs and is also the first “App Engine Triple Crown” winner for developing the Experimental Logs Reader API in Python, Java and Go simultaneously. &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;Four years ago, I was a brand-new Ph.D. student at the University of California, Santa Barbara and when our research group (the &lt;/span&gt;&lt;a href="http://www.cs.ucsb.edu/~ckrintz/racelab.html"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;RACELab&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;) heard about Google App Engine, we were intrigued. We thought it presented a new model that enabled apps to scale the right way without severely constricting the types of programs users would write. &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:line-through;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:line-through;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;b&gt;&lt;div style="display:inline!important"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;But we wanted to experiment with the core functionality of App Engine: the APIs, the scheduler, etc., and so we built &lt;/span&gt;&lt;a href="http://appscale.cs.ucsb.edu/"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;AppScale&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;, an open-source implementation of the Google App Engine APIs that allows users to deploy applications written in Python, Java, and Go to the &lt;/span&gt;&lt;a href="http://appscale.cs.ucsb.edu/infrastructure.html"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;infrastructure of their choice&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;. &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:bold"&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; Wherever possible, we implement support for the App Engine APIs with alternative open-source technologies. We’ve added support for &lt;/span&gt;&lt;a href="http://appscale.cs.ucsb.edu/datastores.html"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;nine different databases&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;, database-agnostic transactions, a &lt;/span&gt;&lt;a href="http://active-cloud-db.appspot.com/"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;REST interface&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; that users of any programming language can communicate with (via an App Engine app), and the ability to &lt;/span&gt;&lt;a href="http://www.neptune-lang.org/"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;run high performance computing programs&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; over the whole thing and talk to it from your App Engine app. And here’s my favorite part - it all deploys automatically! You don’t need to tell it what block size you want for the distributed file system, or the size of the read buffers: we configure the necessary services automatically. Since AppScale is completely open source, if you don’t like the defaults, change them!&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;After creating our own system to run Google App Engine apps, I wanted to see how Google does it. Therefore, I decided to become an intern on the App Engine team and see if I could give them (and by extension, the App Engine community) something amazing over the summer. I started off with some work on the MapReduce API, making the &lt;/span&gt;&lt;a href="http://code.google.com/p/appengine-mapreduce/source/browse/#svn%2Ftrunk%2Fpython%2Fdemo"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;sample app&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; much easier to use and prettier all around. I also made a &lt;/span&gt;&lt;a href="http://www.youtube.com/watch?v=3OMH63DDqvc"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;YouTube video&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; showing how it all works and how easy it is to run MapReduce jobs over App Engine. &lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;I then looked at a recurring question that App Engine users encounter: “How can I get my logging information for my application to answer data analytic questions?” It was an excellent problem to tackle, as we have users who want to be able to determine application-specific queries that Google Analytics or the Admin Console don’t answer. Currently users have to use &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;appcfg&lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; to grab all their application’s data to a remote machine and run some analysis script over it.&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;To solve this problem, I created the &lt;/span&gt;&lt;a href="http://code.google.com/appengine/docs/python/logservice/"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Logs API&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;, which gives applications programmatic access to their logs from within App Engine itself. Applications can use it to query small numbers of logs within a single request, and they can utilize the Pipeline, MapReduce, or Backends APIs if they have lots of logs they want to analyze. Logs contain both request-level information (e.g., the URL accessed, the HTTP response code returned) as well as logging info generated by the application (the &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;logging&lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; module in Python, the &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;Logger&lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; class in Java, and the logging methods that Go’s &lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;appengine&lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; package provides). The Logs API is available for use as of App Engine 1.6.1 by programmers using the Python, Java, or Go runtimes, in both the production environment and the local SDK.&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;I had a great time putting the Logs API together, and had a unique experience interning with the App Engine team. Programming in Python, Java, and Go on a daily basis was an exciting new challenge, and I loved it! &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:inherit"&gt;&lt;span style="white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;b&gt;&lt;img height="300" src="https://lh4.googleusercontent.com/FjXi4mIqEZG3qQkf0RP8h6OYC2kTLiiJldofb51knQQOyxbK59Q8TLdsdPJWn3jEx-L9Q9XxUYvATqCqQ9XEszn04VbmW957r_kmAChlUEGkH2JbG6o" width="400"&gt;&lt;/b&gt;&lt;br&gt;&lt;span style="font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-style:italic;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt;Interested in interning with the App Engine team? Check out &lt;/span&gt;&lt;a href="http://google.com/students" style="font-weight:bold"&gt;&lt;span style="color:#000099;font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;google.com/students&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style:italic;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; for more information on internships.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8501956666581132164-6652368267107508213?l=googleappengine.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googleappengine.blogspot.com/2012/01/my-summer-with-google-app-engine-team.html"&gt;http://googleappengine.blogspot.com/2012/01/my-summer-with-google-app-engine-team.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-8328437421952662745?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bA_r4C3bcbw:zi-2ysdPKAE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bA_r4C3bcbw:zi-2ysdPKAE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bA_r4C3bcbw:zi-2ysdPKAE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=bA_r4C3bcbw:zi-2ysdPKAE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=bA_r4C3bcbw:zi-2ysdPKAE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/bA_r4C3bcbw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/8328437421952662745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=8328437421952662745" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/8328437421952662745" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/8328437421952662745" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-my-summer-with-google-app-engine.html" title="[Gd] My summer with the Google App Engine Team" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-7980257863769722738</id><published>2012-01-26T13:08:00.001-08:00</published><updated>2012-01-26T13:08:00.156-08:00</updated><title type="text">[Gd] Say Goodbye to the Menu Button</title><content type="html">&lt;h4&gt;&lt;a href="http://android-developers.blogspot.com/"&gt;Android Developers Blog&lt;/a&gt;: &lt;a href="http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html"&gt;Say Goodbye to the Menu Button&lt;/a&gt;&lt;/h4&gt; &lt;a href="http://4.bp.blogspot.com/-iuj3Ow47b_k/TyG1PTXTodI/AAAAAAAABGo/Z5kHmVtOUF0/s1600/RUNE4057.jpg"&gt;&lt;img style="border:5px solid #ddd;float:left;margin:0 10px 10px 0;width:200px;height:164px" src="http://4.bp.blogspot.com/-iuj3Ow47b_k/TyG1PTXTodI/AAAAAAAABGo/Z5kHmVtOUF0/s200/RUNE4057.jpg" border="0" alt=""&gt;&lt;/a&gt;&lt;p&gt;&lt;i&gt;[This post is by Scott Main, lead tech writer for &lt;a href="http://developer.android.com"&gt;developer.android.com&lt;/a&gt;. — Tim Bray]&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Before Android 3.0 (Honeycomb), all Android-powered devices included a dedicated Menu button. As a developer, you could use the Menu button to display whatever options were relevant to the user, often using the activity’s built-in options menu. Honeycomb removed the reliance on physical buttons, and introduced the &lt;a href="http://developer.android.com/reference/android/app/ActionBar.html"&gt;ActionBar&lt;/a&gt; class as the standard solution to make actions from the user options immediately visible and quick to invoke. In order to provide the most intuitive and consistent user experience in your apps, you should migrate your designs away from using the Menu button and toward using the action bar. This isn’t a new concept — the action bar pattern has been around on Android even before Honeycomb — but as Ice Cream Sandwich rolls out to more devices, it’s important that you begin to migrate your designs to the action bar in order to promote a consistent Android user experience.&lt;/p&gt;&lt;p&gt;You might worry that it’s too much work to begin using the action bar, because you need to support versions of Android older than Honeycomb. However, it’s quite simple for most apps because you can continue to support the Menu button on pre-Honeycomb devices, but also provide the action bar on newer devices with only a few lines of code changes.&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/-KIyVJ4DBLdw/TyGbNsLn4hI/AAAAAAAABFs/xgLPIAaEP6I/s1600/image01.png"&gt;&lt;img style="float:right;margin:0 0 10px 10px;width:230px;height:400px" src="http://1.bp.blogspot.com/-KIyVJ4DBLdw/TyGbNsLn4hI/AAAAAAAABFs/xgLPIAaEP6I/s400/image01.png" border="0" alt=""&gt;&lt;/a&gt;&lt;p&gt;If I had to put this whole post into one sentence, it’d be: Set &lt;a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#target"&gt;&lt;code&gt;targetSdkVersion&lt;/code&gt;&lt;/a&gt; to 14 and, if you use the options menu, surface a few actions in the action bar with &lt;code&gt;showAsAction="ifRoom"&lt;/code&gt;.&lt;/p&gt;&lt;h3&gt;Don’t call it a menu&lt;/h3&gt;&lt;p&gt;Not only should your apps stop relying on the hardware Menu button, but you should stop thinking about your activities using a “menu button” at all. Your activities should provide buttons for important user actions directly in the action bar (or elsewhere on screen). Those that can’t fit in the action bar end up in the &lt;i&gt;action overflow&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;In the screenshot here, you can see an action button for Search and the action overflow on the right side of the action bar.&lt;/p&gt;&lt;p&gt;Even if your app is built to support versions of Android older than 3.0 (in which apps traditionally use the options menu panel to display user options/actions), when it runs on Android 3.0 and beyond, there’s no Menu button. The button that appears in the system/navigation bar represents the action overflow for legacy apps, which reveals actions and user options that have “overflowed off the screen.” &lt;/p&gt;&lt;p&gt;This might seem like splitting hairs over terminology, but the name &lt;i&gt;action overflow&lt;/i&gt; promotes a different way of thinking. Instead of thinking about a menu that serves as a catch-all for various user options, you should think more about which user options you want to display on the screen as actions. Those that don't need to be on the screen can overflow off the screen. Users can reveal the overflow and other options by touching an overflow button that appears alongside the on-screen action buttons.&lt;/p&gt;&lt;h3&gt;Action overflow button for legacy apps&lt;/h3&gt;&lt;p&gt;If you’ve already developed an app to support Android 2.3 and lower, then you might have noticed that when it runs on a device without a hardware Menu button (such as a Honeycomb tablet or Galaxy Nexus), the system adds the action overflow button beside the system navigation. &lt;/p&gt;&lt;a href="http://3.bp.blogspot.com/-OEFZwRHwsFA/TyGbZ_-MsnI/AAAAAAAABF4/rq9uuGlQm8Q/s1600/image00.png"&gt;&lt;img style="display:block;margin:0px auto 10px;text-align:center;width:400px;height:49px" src="http://3.bp.blogspot.com/-OEFZwRHwsFA/TyGbZ_-MsnI/AAAAAAAABF4/rq9uuGlQm8Q/s400/image00.png" border="0" alt=""&gt;&lt;/a&gt;&lt;p&gt;This is a compatibility behavior for legacy apps designed to ensure that apps built to expect a Menu button remain functional. However, this button doesn’t provide an ideal user experience. In fact, in apps that don’t use an options menu anyway, this action overflow button does nothing and creates user confusion. So you should update your legacy apps to remove the action overflow from the navigation bar when running on Android 3.0+ and begin using the action bar if necessary. You can do so all while remaining backward compatible with the devices your apps currently support.&lt;/p&gt;&lt;p&gt;If your app runs on a device without a dedicated Menu button, the system decides whether to add the action overflow to the navigation bar based on which API levels you declare to support in the &lt;a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html"&gt;&lt;code&gt;&amp;lt;uses-sdk&amp;gt;&lt;/code&gt;&lt;/a&gt; manifest element. The logic boils down to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;If you set either &lt;code&gt;minSdkVersion&lt;/code&gt; or &lt;code&gt;targetSdkVersion&lt;/code&gt; to 11 or higher, the system &lt;em&gt;will not&lt;/em&gt; add the legacy overflow button. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Otherwise, the system &lt;em&gt;will&lt;/em&gt; add the legacy overflow button when running on Android 3.0 or higher.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The only exception is that if you set &lt;code&gt;minSdkVersion&lt;/code&gt; to 10 or lower, set &lt;code&gt;targetSdkVersion&lt;/code&gt; to 11, 12, or 13, and you do not use &lt;a href="http://developer.android.com/reference/android/app/ActionBar.html"&gt;ActionBar&lt;/a&gt;, the system &lt;em&gt;will&lt;/em&gt; add the legacy overflow button when running your app &lt;em&gt;on a handset&lt;/em&gt; with Android 4.0 or higher. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;That exception might be a bit confusing, but it’s based on the belief that if you designed your app to support pre-Honeycomb handsets and Honeycomb tablets, it probably expects handset devices to include a Menu button (but it supports tablets that don’t have one).&lt;/p&gt;&lt;p&gt;So, to ensure that the overflow action button never appears beside the system navigation, you should set the &lt;code&gt;targetSdkVersion&lt;/code&gt; to 14. (You can leave &lt;code&gt;minSdkVersion&lt;/code&gt; at something much lower to continue supporting older devices.)&lt;/p&gt;&lt;h3&gt;Migrating to the action bar&lt;/h3&gt;&lt;p&gt;If you have activities that use the options menu (they implement &lt;a href="http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu(android.view.Menu)"&gt;onCreateOptionsMenu()&lt;/a&gt;), then once the legacy overflow button disappears from the system/navigation bar (because you’ve set &lt;code&gt;targetSdkVersion&lt;/code&gt; to 14), you need to provide an alternative means for the user to access the activity’s actions and other options. Fortunately, the system provides such a means by default: the action bar.&lt;/p&gt;&lt;p&gt;Add &lt;code&gt;showAsAction="ifRoom"&lt;/code&gt; to the &lt;code&gt;&amp;lt;item&amp;gt;&lt;/code&gt; elements representing the activity’s most important actions to show them in the action bar when space is available. For help deciding how to prioritize which actions should appear in the action bar, see &lt;cite&gt;Android Design’s&lt;/cite&gt; &lt;a href="http://developer.android.com/design/patterns/actionbar.html"&gt;Action Bar guide&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/-sUzHJNpXDkw/TyGwS1y-asI/AAAAAAAABGc/5_dEJ8DfhCA/s1600/icon_samples.png"&gt;&lt;img style="float:right;margin:0 0 10px 10px;width:315px;height:60px" src="http://1.bp.blogspot.com/-sUzHJNpXDkw/TyGwS1y-asI/AAAAAAAABGc/5_dEJ8DfhCA/s400/icon_samples.png" border="0" alt=""&gt;&lt;/a&gt;&lt;p&gt;To further provide a consistent user experience in the action bar, we suggest that you use action icons designed by the Android UX Team where appropriate. The available icons support common user actions such as Refresh, Delete, Attach, Star, Share and more, and are designed for the light and dark Holo themes.  &lt;a href="http://developer.android.com/design/static/download/action_bar_icons-v4.0.zip"&gt;Here they are!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If these icons don’t accommodate your needs and you need to create your own, you should follow the &lt;a href="http://developer.android.com/design/style/iconography.html"&gt;Iconography design guide&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Removing the action bar&lt;/h3&gt;&lt;p&gt;If you don’t need the action bar, you can remove it from your entire app or from individual activities. This is appropriate for apps that never used the options menu or for apps in which the action bar doesn’t meet design needs (such as games). You can remove the action bar using a theme such as &lt;code&gt;Theme.Holo.NoActionBar&lt;/code&gt; or &lt;code&gt;Theme.DeviceDefault.NoActionBar&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;In order to use such a theme and remain backward compatible, you can use Android’s resource system to define different themes for different platform versions, as described by Adam Powell’s post, &lt;a href="http://android-developers.blogspot.com/2012/01/holo-everywhere.html"&gt;Holo Everywhere&lt;/a&gt;. All you need is your own theme, which you define to inherit different platform themes depending on the current platform version.&lt;/p&gt;&lt;p&gt;For example, here’s how you can declare a custom theme for your application:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;application android:theme=&amp;quot;@style/NoActionBar&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Or you can instead declare the theme for individual &lt;code&gt;&amp;lt;activity&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;&lt;p&gt;For pre-Honeycomb devices, include the following theme in &lt;code&gt;res/values/themes.xml&lt;/code&gt; that inherits the standard platform theme:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;resources&amp;gt;&lt;br /&gt;    &amp;lt;style name=&amp;quot;NoActionBar&amp;quot; parent=&amp;quot;@android:style/Theme&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;!-- Inherits the default theme for pre-HC (no action bar) --&amp;gt;&lt;br /&gt;    &amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/resources&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For Honeycomb and beyond, include the following theme in &lt;code&gt;res/values-v11/themes.xml&lt;/code&gt; that inherits a &lt;code&gt;NoActionBar&lt;/code&gt; theme:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;resources&amp;gt;&lt;br /&gt;    &amp;lt;style name=&amp;quot;NoActionBar&amp;quot; parent=&amp;quot;@android:style/Theme.Holo.NoActionBar&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;!-- Inherits the Holo theme with no action bar; no other styles needed. --&amp;gt;&lt;br /&gt;    &amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/resources&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;At runtime, the system applies the appropriate version of the &lt;code&gt;NoActionBar&lt;/code&gt; theme based on the system’s API version.&lt;/p&gt;&lt;h3&gt;Summary&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Android no longer requires a dedicated Menu button, some devices don’t have one, and you should migrate away from using it. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Set &lt;a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#target"&gt;&lt;code&gt;targetSdkVersion&lt;/code&gt;&lt;/a&gt; to 14, then test your app on Android 4.0. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Add &lt;code&gt;showAsAction="ifRoom"&lt;/code&gt; to menu items you’d like to surface in the action bar.&lt;/p&gt;&lt;/li&gt;&lt;p&gt;&lt;li&gt;If the ActionBar doesn’t work for your app, you can remove it with &lt;code&gt;Theme.Holo.NoActionBar&lt;/code&gt; or &lt;code&gt;Theme.DeviceDefault.NoActionBar&lt;/code&gt;.&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;p&gt;For information about how you should design your action bar, see &lt;cite&gt;Android Design’s&lt;/cite&gt; &lt;a href="http://developer.android.com/design/patterns/actionbar.html"&gt;Action Bar guide&lt;/a&gt;. More information about implementing the action bar is also available in the &lt;a href="http://developer.android.com/guide/topics/ui/actionbar.html"&gt;Action Bar developer guide&lt;/a&gt;.&lt;/p&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6755709643044947179-7750059148144062785?l=android-developers.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html"&gt;http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-7980257863769722738?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=y_Y1_pvcUx8:_D4ybngxm3Q:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=y_Y1_pvcUx8:_D4ybngxm3Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=y_Y1_pvcUx8:_D4ybngxm3Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=y_Y1_pvcUx8:_D4ybngxm3Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=y_Y1_pvcUx8:_D4ybngxm3Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/y_Y1_pvcUx8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/7980257863769722738/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=7980257863769722738" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/7980257863769722738" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/7980257863769722738" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-say-goodbye-to-menu-button.html" title="[Gd] Say Goodbye to the Menu Button" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-iuj3Ow47b_k/TyG1PTXTodI/AAAAAAAABGo/Z5kHmVtOUF0/s72-c/RUNE4057.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-6761011732773199354</id><published>2012-01-26T13:07:00.001-08:00</published><updated>2012-01-26T13:07:59.699-08:00</updated><title type="text">[Gd] Making the web speedier and safer with SPDY</title><content type="html">&lt;h4&gt;&lt;a href="http://googlecode.blogspot.com/"&gt;The official Google Code blog&lt;/a&gt;: &lt;a href="http://googlecode.blogspot.com/2012/01/making-web-speedier-and-safer-with-spdy.html"&gt;Making the web speedier and safer with SPDY&lt;/a&gt;&lt;/h4&gt; &lt;table cellpadding="0" cellspacing="0" style="float:right;margin-left:1em;text-align:right"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align:center"&gt;&lt;img height="80" src="http://2.bp.blogspot.com/-vaFoG2iNrFI/TyD0PNJbNzI/AAAAAAAAA98/CfxrFLMfqMw/s1600/willchan.png" style="margin-left:auto;margin-right:auto;text-align:right"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center"&gt;Will&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" style="float:right;margin-left:1em;text-align:right"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align:center"&gt;&lt;img height="80" src="http://1.bp.blogspot.com/-D4gLR1g2xaM/TyD0PKiiuwI/AAAAAAAAA-E/3siZDTCQYx8/s1600/roberto.png" style="margin-left:auto;margin-right:auto;text-align:right"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center"&gt;Roberto&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;em&gt;By Roberto Peon and Will Chan, Software Engineers&lt;/em&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Cross-posted with the &lt;a href="http://blog.chromium.org/"&gt;Chromium Blog&lt;/a&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;In the two years since we announced &lt;a href="http://dev.chromium.org/spdy"&gt;SPDY&lt;/a&gt;, we’ve been working with the web community on evolving the spec and getting SPDY deployed on the Web. &lt;br&gt;&lt;br&gt;Chrome, Android Honeycomb devices, and Google's servers have been speaking SPDY for some time, bringing important benefits to users. For example, thanks to SPDY, a significant percentage of Chrome users saw a decrease in search latency when we launched SSL-search. Given that Google search results are some of the most highly optimized pages on the internet, this was a surprising and welcome result. &lt;br&gt;&lt;br&gt;We’ve also seen widespread community uptake and participation. Recently, Firefox has &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=528288"&gt;added SPDY support&lt;/a&gt;, which means that soon half of the browsers in use will support SPDY. On the server front, nginx has announced plans to &lt;a href="http://forum.nginx.org/read.php?2,217299,217302#msg-217302"&gt;implement SPDY&lt;/a&gt;, and we're actively working on a full featured &lt;a href="http://calendar.perfplanet.com/2011/introducing-mod_spdy-a-spdy-module-for-the-apache-http-server/"&gt;mod-spdy for Apache&lt;/a&gt;. In addition, &lt;a href="http://www.strangeloopnetworks.com/news/releases/strangeloop-offers-worlds-first-site-acceleration-product-to-deliver-spdy-benefits/"&gt;Strangeloop&lt;/a&gt;, &lt;a href="http://arstechnica.com/gadgets/news/2011/09/amazons-silk-web-browser-adds-new-twist-to-old-idea.ars"&gt;Amazon&lt;/a&gt;, and &lt;a href="http://velocityconf.com/velocity2011/public/schedule/detail/21089"&gt;Cotendo&lt;/a&gt; have all announced that they’ve been using SPDY. &lt;br&gt;&lt;br&gt;Given SPDY's rapid adoption rate, we’re working hard on acceptance tests to help validate new implementations. Our &lt;a href="http://dev.chromium.org/spdy/spdy-best-practices"&gt;best practices document&lt;/a&gt; can also help website operators make their sites as speedy as possible. &lt;br&gt;&lt;br&gt;With the help of Mozilla and other contributors, we’re pushing hard to finalize and implement SPDY draft-3 in early 2012, as standardization discussions for SPDY will start at the next meeting of the IETF. &lt;br&gt;&lt;br&gt;We look forward to working even more closely with the community to improve SPDY and make the Web faster!&lt;br&gt;&lt;br&gt;To learn more about SPDY, see the link to a Tech Talk &lt;a href="http://www.youtube.com/watch?v=TNBkxA313kk&amp;amp;list=PLE0E03DF19D90B5F4&amp;amp;index=2&amp;amp;feature=plpp_video"&gt;here&lt;/a&gt;, with slides &lt;a href="https://docs.google.com/presentation/d/1-LWSvYmXPJ4WIu6GDaDHgHUwT_FkakECfHc0SL7IKOI/edit"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Roberto Peon and Will Chan co-lead the SPDY effort at Google. Roberto leads SPDY server efforts and continues to tell people to be unafraid of trying to change the world for the better. Will works on the Chrome network stack and leads the Chrome SPDY efforts. Outside of work, Will enjoys traveling the world in search of cheap beer and absurd situations.&lt;/em&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Posted by &lt;a href="https://profiles.google.com/u/0/105627346610764729807/about"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/11300808-9069190441953858290?l=googlecode.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlecode.blogspot.com/2012/01/making-web-speedier-and-safer-with-spdy.html"&gt;http://googlecode.blogspot.com/2012/01/making-web-speedier-and-safer-with-spdy.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-6761011732773199354?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=sRkFRZ7PU04:_meGLpllpWE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=sRkFRZ7PU04:_meGLpllpWE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=sRkFRZ7PU04:_meGLpllpWE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=sRkFRZ7PU04:_meGLpllpWE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=sRkFRZ7PU04:_meGLpllpWE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/sRkFRZ7PU04" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/6761011732773199354/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=6761011732773199354" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/6761011732773199354" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/6761011732773199354" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-making-web-speedier-and-safer-with.html" title="[Gd] Making the web speedier and safer with SPDY" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-vaFoG2iNrFI/TyD0PNJbNzI/AAAAAAAAA98/CfxrFLMfqMw/s72-c/willchan.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-4814696787132284758</id><published>2012-01-26T03:18:00.003-08:00</published><updated>2012-01-26T03:18:43.585-08:00</updated><title type="text">[Gd] Beta Channel Update for Chromebooks</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/beta-channel-update-for-chromebooks_25.html"&gt;Beta Channel Update for Chromebooks&lt;/a&gt;&lt;/h4&gt; &lt;span&gt;&lt;span style="color:#333333;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Beta channel has been updated to 17.0.963.43&lt;/span&gt;&lt;span style="font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#333333;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;(Platform versions: 1412.142) for Chromebooks (Samsung Series 5 , and Cr-48). &lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:13px;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;Highlights&lt;/span&gt;&lt;span style="font-family:Arial;font-size:13px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;ul&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;This update fixes a number of stability and UI issues.&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="background-color:transparent;color:#333333;vertical-align:baseline;white-space:pre-wrap"&gt;Introduces new Verizon activation and top-up portal featuring many user-requested improvements:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:circle;vertical-align:baseline"&gt;&lt;span style="background-color:transparent;color:#333333;vertical-align:baseline;white-space:pre-wrap"&gt;Enables recurring billing as the default for pre-paid monthly plans&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:circle;vertical-align:baseline"&gt;&lt;span style="background-color:transparent;color:#333333;vertical-align:baseline;white-space:pre-wrap"&gt;Greatly simplifies the Verizon activation and top-up process&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:circle;vertical-align:baseline"&gt;&lt;span style="background-color:transparent;color:#333333;vertical-align:baseline;white-space:pre-wrap"&gt;Allows purchase of additional data prior to current bundle expiration&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color:white;font-family:Arial;font-size:12px;list-style-type:circle;vertical-align:baseline"&gt;&lt;span style="background-color:transparent;color:#333333;vertical-align:baseline;white-space:pre-wrap"&gt;Eliminates credit card requirement for free 100MB plan&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="background-color:yellow;font-family:Arial;font-size:12px;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;If you find new issues, please let us know by visiting our&lt;/span&gt;&lt;a href="http://www.google.com/chromeos/help.html" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; help site&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; or&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/entry" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. Interested in switching channels?&lt;/span&gt;&lt;a href="http://www.google.com/support/chromeos/bin/answer.py?answer=1086915" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:black;font-family:Arial;font-size:12px;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how.&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; You can submit feedback using ‘Report an issue’ under the wrench menu.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Orit Mazor&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-7766230707156164602?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/beta-channel-update-for-chromebooks_25.html"&gt;http://googlechromereleases.blogspot.com/2012/01/beta-channel-update-for-chromebooks_25.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-4814696787132284758?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=XB8SS22IZ80:1cTzm0JSOqQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=XB8SS22IZ80:1cTzm0JSOqQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=XB8SS22IZ80:1cTzm0JSOqQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=XB8SS22IZ80:1cTzm0JSOqQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=XB8SS22IZ80:1cTzm0JSOqQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/XB8SS22IZ80" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/4814696787132284758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=4814696787132284758" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4814696787132284758" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4814696787132284758" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-beta-channel-update-for-chromebooks_26.html" title="[Gd] Beta Channel Update for Chromebooks" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-4704121748092594164</id><published>2012-01-26T03:18:00.001-08:00</published><updated>2012-01-26T03:18:39.221-08:00</updated><title type="text">[Gd] Beta Channel Update</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/beta-channel-update_25.html"&gt;Beta Channel Update&lt;/a&gt;&lt;/h4&gt; &lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;,Arial,Helvetica,sans-serif"&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Beta channel has been updated to 17.0.963.44 for all platforms other than Chrome OS.  This update fixes a number of stability and UI issues.  &lt;/span&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Full details about what changes are in this build are available in the &lt;/span&gt;&lt;a href="http://build.chromium.org/buildbot/perf/dashboard/ui/changelog.html?url=/branches/963/src&amp;amp;range=118989:118053&amp;amp;mode=html"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;SVN revision log&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.  Interested in switching release channels?  &lt;/span&gt;&lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.  If you find a new issue, please let us know by &lt;/span&gt;&lt;a href="http://new.crbug.com/"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Jason Kersey&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-7079234962249488062?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/beta-channel-update_25.html"&gt;http://googlechromereleases.blogspot.com/2012/01/beta-channel-update_25.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-4704121748092594164?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=RQ89w8nW1TE:-Rgb20NWflk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=RQ89w8nW1TE:-Rgb20NWflk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=RQ89w8nW1TE:-Rgb20NWflk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=RQ89w8nW1TE:-Rgb20NWflk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=RQ89w8nW1TE:-Rgb20NWflk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/RQ89w8nW1TE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/4704121748092594164/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=4704121748092594164" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4704121748092594164" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4704121748092594164" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-beta-channel-update_26.html" title="[Gd] Beta Channel Update" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-7578117439039262801</id><published>2012-01-25T23:41:00.001-08:00</published><updated>2012-01-25T23:41:23.139-08:00</updated><title type="text">[Gd] Making form-filling faster, easier and smarter</title><content type="html">&lt;h4&gt;&lt;a href="http://blog.chromium.org/"&gt;Chromium Blog&lt;/a&gt;: &lt;a href="http://blog.chromium.org/2012/01/making-form-filling-faster-easier-and.html"&gt;Making form-filling faster, easier and smarter&lt;/a&gt;&lt;/h4&gt; One of my favorite features of Chrome got a boost earlier today, as &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/making-form-filling-faster-easier-and.html"&gt;we announced support&lt;/a&gt; for an experimental new “autocomplete type” attribute for form fields. The new attribute will allow web developers to unambiguously label &lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;text&lt;/span&gt; and &lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select&lt;/span&gt; fields with common data types such as ‘full-name’ or ‘street-address’ and guarantee that their site’s forms work correctly with Chrome Autofill and other form-filling providers.&lt;br&gt;&lt;br&gt;We’ve been working on this design in collaboration with several other autofill vendors. Like any early stage proposal we expect this will change and evolve as the web standards community provides feedback, but we believe this will serve as a good starting point for the discussion on how to best support autofillable forms in the HTML5 spec. For now, this new attribute is implemented in Chrome as &lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;x-autocompletetype&lt;/span&gt; to indicate that this is still experimental and not yet a standard, similar to the &lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;webkitspeech&lt;/span&gt; attribute we &lt;a href="http://chrome.blogspot.com/2011/04/everybodys-talking-and-translating-with.html"&gt;released&lt;/a&gt; last summer.&lt;br&gt;&lt;br&gt;For more information, you can read the &lt;a href="http://wiki.whatwg.org/wiki/Autocompletetype"&gt;full text&lt;/a&gt; of the proposed specification, ask questions on the Webmaster &lt;a href="http://www.google.com/support/forum/p/Webmasters?hl=en"&gt;help forum&lt;/a&gt;, or you can share your feedback in the &lt;a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-December/034198.html"&gt;standardization discussion&lt;/a&gt;!&lt;br&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;Posted by Ilya Sherman, Software Engineer &lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/2471378914199150966-6572397424487075591?l=blog.chromium.org" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://blog.chromium.org/2012/01/making-form-filling-faster-easier-and.html"&gt;http://blog.chromium.org/2012/01/making-form-filling-faster-easier-and.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-7578117439039262801?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=py-vYtvAYd4:whHsSWmzvuU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=py-vYtvAYd4:whHsSWmzvuU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=py-vYtvAYd4:whHsSWmzvuU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=py-vYtvAYd4:whHsSWmzvuU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=py-vYtvAYd4:whHsSWmzvuU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/py-vYtvAYd4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/7578117439039262801/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=7578117439039262801" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/7578117439039262801" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/7578117439039262801" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-making-form-filling-faster-easier_25.html" title="[Gd] Making form-filling faster, easier and smarter" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-4223279789475833609</id><published>2012-01-25T20:03:00.001-08:00</published><updated>2012-01-25T20:03:53.421-08:00</updated><title type="text">[Gd] Update to Top Search Queries data</title><content type="html">&lt;h4&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/"&gt;Official Google Webmaster Central Blog&lt;/a&gt;: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/update-to-top-search-queries-data.html"&gt;Update to Top Search Queries data&lt;/a&gt;&lt;/h4&gt; Webmaster level: All&lt;br&gt;&lt;br&gt;Starting today, we’re updating our Top Search Queries feature to make it better match expectations about search engine rankings. Previously we reported the average position of all URLs from your site for a given query. As of today, we’ll instead average only the top position that a URL from your site appeared in.&lt;br&gt;&lt;br&gt;&lt;b&gt;An example&lt;/b&gt;&lt;br&gt;Let’s say Nick searched for [bacon] and URLs from your site appeared in positions 3, 6, and 12. Jane also searched for [bacon] and URLs from your site appeared in positions 5 and 9. Previously, we would have averaged all these positions together and shown an Average Position of 7. Going forward, we’ll only average the highest position your site appeared in for each search (3 for Nick’s search and 5 for Jane’s search), for an Average Position of 4.&lt;br&gt;&lt;br&gt;We anticipate that this new method of calculation will more accurately match your expectations about how a link's position in Google Search results should be reported.&lt;br&gt;&lt;br&gt;&lt;b&gt;How will this affect my Top Search Queries data?&lt;/b&gt;&lt;br&gt;This change will affect your Top Search Queries data going forward. &lt;b&gt;Historical data will not change.&lt;/b&gt; Note that the change in calculation means that the Average Position metric will usually stay the same or decrease, as we will no longer be averaging in lower-ranking URLs.&lt;br&gt;&lt;br&gt;&lt;a href="http://google.com/webmasters/tools/home?utm_source=wmc&amp;amp;utm_medium=blog&amp;amp;utm_campaign=topqueries"&gt;Check out the updated Top Search Queries data&lt;/a&gt; in the Your site on the web section of Webmaster Tools. And remember, you can also &lt;a href="http://googlewebmastercentral.blogspot.com/2011/12/download-search-queries-data-using.html"&gt;download Top Search Queries data programmatically&lt;/a&gt;!&lt;br&gt;&lt;br&gt;We look forward to providing you a more representative picture of your Google Search data. Let us know what you think in our &lt;a href="http://www.google.com/support/forum/p/Webmasters?hl=en"&gt;Webmaster Forum&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;span&gt;Posted by &lt;a href="https://plus.google.com/107151885064924654655/about" rel="author"&gt;Chris Anderson&lt;/a&gt;, Google Analytics team, and &lt;a href="https://profiles.google.com/SusanMoskwa" rel="author"&gt;Susan Moskwa&lt;/a&gt;, Webmaster Trends Analyst&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/32069983-1601408254194811828?l=googlewebmastercentral.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/update-to-top-search-queries-data.html"&gt;http://googlewebmastercentral.blogspot.com/2012/01/update-to-top-search-queries-data.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-4223279789475833609?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=SCLnmSsajLo:fi09Emt0Vv8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=SCLnmSsajLo:fi09Emt0Vv8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=SCLnmSsajLo:fi09Emt0Vv8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=SCLnmSsajLo:fi09Emt0Vv8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=SCLnmSsajLo:fi09Emt0Vv8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/SCLnmSsajLo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/4223279789475833609/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=4223279789475833609" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4223279789475833609" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/4223279789475833609" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-update-to-top-search-queries-data.html" title="[Gd] Update to Top Search Queries data" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-1985221187542056849</id><published>2012-01-25T12:34:00.007-08:00</published><updated>2012-01-25T12:34:46.085-08:00</updated><title type="text">[Gd] Making form-filling faster, easier and smarter</title><content type="html">&lt;h4&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/"&gt;Official Google Webmaster Central Blog&lt;/a&gt;: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/making-form-filling-faster-easier-and.html"&gt;Making form-filling faster, easier and smarter&lt;/a&gt;&lt;/h4&gt; Webmaster Level: Intermediate&lt;br&gt;&lt;br&gt;One of the biggest bottlenecks on any conversion funnel is filling out an online form – shopping and registration flows all rely on forms as a crucial and demanding step in accomplishing the goals of your site. For many users, online forms mean repeatedly typing common information like our names and addresses on different sites across the web – a tedious task that causes many to give up and abandon the flow entirely.&lt;br&gt;&lt;br&gt;Chrome’s Autofill and other form-filling providers help to break down this barrier by remembering common profile information and pre-populating the form with those values. Unfortunately, up to now it has been difficult for webmasters to ensure that Chrome and other form-filling providers can parse their form correctly. Some &lt;a href="http://tools.ietf.org/rfc/rfc4112.txt"&gt;standards exist&lt;/a&gt;; but they put onerous burdens on the implementation of the website, so they’re not used much in practice.&lt;br&gt;&lt;br&gt;Today we’re pleased to announce support in Chrome for an experimental new “autocomplete type” attribute for form fields that allows web developers to unambiguously label &lt;code&gt;text&lt;/code&gt; and &lt;code&gt;select&lt;/code&gt; fields with common data types such as ‘full-name’ or ‘street-address’. With this attribute, web developers can drive conversions on their sites by marking their forms for auto-completion without changing the user interface or the backend.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://2.bp.blogspot.com/-ehBmhE11Tic/Tx9PVKSQyeI/AAAAAAAAHjM/2tiVU_uOSaQ/s1600/Sherlock%2BScreenshot.png"&gt;&lt;img border="0" height="141" width="400" src="http://2.bp.blogspot.com/-ehBmhE11Tic/Tx9PVKSQyeI/AAAAAAAAHjM/2tiVU_uOSaQ/s400/Sherlock%2BScreenshot.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;Just add an attribute to the input element, for example an email address field might look like:&lt;br&gt;&lt;br&gt;&lt;code&gt;&amp;lt;input type=”text” name=”field1” x-autocompletetype=”email” /&amp;gt;&lt;/code&gt;&lt;br&gt;&lt;br&gt;We’ve been working on this design in collaboration with several other autofill vendors. Like any early stage proposal we expect this will change and evolve as the web standards community provides feedback, but we believe this will serve as a good starting point for the discussion on how to best support autofillable forms in the HTML5 spec. For now, this new attribute is implemented in Chrome as &lt;code&gt;x-autocompletetype&lt;/code&gt; to indicate that this is still experimental and not yet a standard, similar to the &lt;code&gt;webkitspeech&lt;/code&gt; attribute we &lt;a href="http://chrome.blogspot.com/2011/04/everybodys-talking-and-translating-with.html"&gt;released&lt;/a&gt; last summer.&lt;br&gt;&lt;br&gt;For more information, you can read the &lt;a href="http://wiki.whatwg.org/wiki/Autocompletetype"&gt;full text of the proposed specification&lt;/a&gt;, ask questions on the &lt;a href="http://www.google.com/support/forum/p/Webmasters?hl=en"&gt;Webmaster help forum&lt;/a&gt;, or you can share your feedback in the &lt;a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-December/034198.html"&gt;standardization discussion&lt;/a&gt;!&lt;br&gt;&lt;br&gt;&lt;span&gt;Posted by Ilya Sherman, Software Engineer&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/32069983-7936189290836523708?l=googlewebmastercentral.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlewebmastercentral.blogspot.com/2012/01/making-form-filling-faster-easier-and.html"&gt;http://googlewebmastercentral.blogspot.com/2012/01/making-form-filling-faster-easier-and.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-1985221187542056849?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=qiYvhKTBjI8:1JhhXae0EJo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=qiYvhKTBjI8:1JhhXae0EJo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=qiYvhKTBjI8:1JhhXae0EJo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=qiYvhKTBjI8:1JhhXae0EJo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=qiYvhKTBjI8:1JhhXae0EJo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/qiYvhKTBjI8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/1985221187542056849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=1985221187542056849" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1985221187542056849" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1985221187542056849" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-making-form-filling-faster-easier.html" title="[Gd] Making form-filling faster, easier and smarter" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ehBmhE11Tic/Tx9PVKSQyeI/AAAAAAAAHjM/2tiVU_uOSaQ/s72-c/Sherlock%2BScreenshot.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-2040479191244981679</id><published>2012-01-25T12:34:00.005-08:00</published><updated>2012-01-25T12:34:45.635-08:00</updated><title type="text">[Gd] Dev Channel Update</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update_24.html"&gt;Dev Channel Update&lt;/a&gt;&lt;/h4&gt; &lt;div dir="ltr" style="text-align:left"&gt;&lt;span style="text-align:-webkit-auto"&gt;&lt;span style="font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Dev channel has been updated to 18.0.1017.2 for Windows, Mac, Linux and Chrome Frame.  This build contains the following updates:&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;All&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;ul&gt;&lt;li style="font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Updated V8 - 3.8.7.1&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Enable linear scaling for Chrome Remote Desktop’s scale-to-fit feature. (issue &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=93451"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;93451&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Fixed popup windows issue (Issue: &lt;/span&gt;&lt;a href="http://crbug.com/106967"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;106967&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Fixed crashes in extension binding (Issue: &lt;/span&gt;&lt;a href="http://crbug.com/110694"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;110694&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family:Arial;font-size:12px;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;When Strict Transport Security mandates that HTTPS certificate errors must be fatal, add a string telling the user why. (Issue: &lt;/span&gt;&lt;a href="http://crbug.com/110191"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;110191&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Mac&lt;/span&gt;&lt;ul style="font-weight:bold"&gt;&lt;li style="font-family:Arial;font-size:12px;font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Fixed flashing window while deleting profile (Issue: &lt;/span&gt;&lt;a href="http://crbug.com/108801"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;108801&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Full details about what changes are in this build are available in the &lt;/span&gt;&lt;a href="http://build.chromium.org/buildbot/perf/dashboard/ui/changelog.html?url=/trunk/src&amp;amp;range=118793:117846&amp;amp;mode=html" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;SVN revision log&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. Interested in switching release channels?  &lt;/span&gt;&lt;a href="http://dev.chromium.org/getting-involved/dev-channel" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.  If you find a new issue, please let us know by&lt;/span&gt;&lt;a href="http://new.crbug.com/" style="font-weight:bold"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Dharani Govindan&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-size:12px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-7630189579171245070?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update_24.html"&gt;http://googlechromereleases.blogspot.com/2012/01/dev-channel-update_24.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-2040479191244981679?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=PdVXW5gTtzs:0BmdYXOlHAw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=PdVXW5gTtzs:0BmdYXOlHAw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=PdVXW5gTtzs:0BmdYXOlHAw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=PdVXW5gTtzs:0BmdYXOlHAw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=PdVXW5gTtzs:0BmdYXOlHAw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/PdVXW5gTtzs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/2040479191244981679/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=2040479191244981679" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2040479191244981679" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2040479191244981679" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-dev-channel-update_25.html" title="[Gd] Dev Channel Update" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-2438400326567839394</id><published>2012-01-25T12:34:00.003-08:00</published><updated>2012-01-25T12:34:42.745-08:00</updated><title type="text">[Gd] Stable Channel Update for Chromebooks</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/stable-channel-update-for-chromebooks_24.html"&gt;Stable Channel Update for Chromebooks&lt;/a&gt;&lt;/h4&gt; &lt;span style="font-family:Arial,Helvetica,sans-serif"&gt;&lt;span style="background-color:white;font-size:12px;line-height:15px"&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Dev channel has been updated to &lt;a href="http://googlechromereleases.blogspot.com/2012/01/stable-channel-update_23.html"&gt;16.0.912.77&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;(Platform versions: 1193.194.0) for Chromebooks (&lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Acer AC700, &lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Samsung Series 5, and Cr-48). &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="background-color:white;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;br style="background-color:white;font-size:12px;line-height:15px"&gt;&lt;b style="background-color:white;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;This build contains a number of performance, stability and security improvements. Additional fixes include:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#333333;font-family:Arial,Helvetica,sans-serif"&gt;&lt;span style="font-size:12px;line-height:15px;white-space:pre-wrap"&gt;&lt;a href="http://crosbug.com/24748"&gt;24748&lt;/a&gt; - Device not scanning for networks&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#333333;font-family:Arial,Helvetica,sans-serif"&gt;&lt;span style="font-size:12px;line-height:15px;white-space:pre-wrap"&gt;&lt;a href="http://crosbug.com/23518"&gt;23518&lt;/a&gt; - No UI notification given on connection timeout&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="font-family:inherit"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;If you find new issues, please let us know by visiting our&lt;/span&gt;&lt;a href="http://www.google.com/chromeos/help.html"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; help site&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; or&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/entry"&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. Interested in switching channels?&lt;/span&gt;&lt;a href="http://www.google.com/support/chromeos/bin/answer.py?answer=1086915"&gt;&lt;span style="background-color:white;color:black;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="background-color:white;color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how.&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; You can submit feedback using ‘Report an issue’ under the wrench menu.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white"&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Danielle Drew&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-3073940197712983267?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/stable-channel-update-for-chromebooks_24.html"&gt;http://googlechromereleases.blogspot.com/2012/01/stable-channel-update-for-chromebooks_24.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-2438400326567839394?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=6L7f8vXsPhc:qaMAbwJkzDM:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=6L7f8vXsPhc:qaMAbwJkzDM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=6L7f8vXsPhc:qaMAbwJkzDM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=6L7f8vXsPhc:qaMAbwJkzDM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=6L7f8vXsPhc:qaMAbwJkzDM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/6L7f8vXsPhc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/2438400326567839394/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=2438400326567839394" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2438400326567839394" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2438400326567839394" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-stable-channel-update-for_25.html" title="[Gd] Stable Channel Update for Chromebooks" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-9186981734851672249</id><published>2012-01-25T12:34:00.001-08:00</published><updated>2012-01-25T12:34:41.490-08:00</updated><title type="text">[Gd] Watch History Comes to the API</title><content type="html">&lt;h4&gt;&lt;a href="http://apiblog.youtube.com/"&gt;YouTube API Blog&lt;/a&gt;: &lt;a href="http://apiblog.youtube.com/2012/01/watch-history-comes-to-api.html"&gt;Watch History Comes to the API&lt;/a&gt;&lt;/h4&gt; &lt;b&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;There’s a new entry in the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html"&gt;&lt;span style="color:#000099;font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;growing list&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; of video feeds supported by the YouTube Data API: the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html#User_Watch_History_Feed"&gt;&lt;span style="color:#000099;font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;watch history feed&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. This feed allows authenticated API users to retrieve their own YouTube viewing histories—retrieving the watch history of any other user is not allowed. The information in this new feed corresponds to the &lt;/span&gt;&lt;a href="http://support.google.com/youtube/bin/answer.py?hl=en&amp;amp;answer=95725"&gt;&lt;span style="color:#000099;font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;viewing history exposed on the YouTube website&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The feed could enable interesting new functionality in your applications. If your site displays a list of recommended videos for an authenticated user to watch, you might consider excluding those videos that have been already viewed, for instance. Or you might want to include a video that you discover the user has been watching over and over again. Knowing the sorts of videos that a user watches makes it easier for your application to &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html#Related_Feeds"&gt;&lt;span style="color:#000099;font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;algorithmically suggest&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; other videos that might interest your users.&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;As with any functionality related to the YouTube API, the best place to ask questions about the new watch history feed is the YouTube API &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/"&gt;&lt;span style="color:#000099;font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Cheers,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:Arial;font-size:15px;font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/2443724041307041823-3168212921653900498?l=apiblog.youtube.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://apiblog.youtube.com/2012/01/watch-history-comes-to-api.html"&gt;http://apiblog.youtube.com/2012/01/watch-history-comes-to-api.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-9186981734851672249?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=5WgPTEepQY4:k6VFbBJDNvE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=5WgPTEepQY4:k6VFbBJDNvE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=5WgPTEepQY4:k6VFbBJDNvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=5WgPTEepQY4:k6VFbBJDNvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=5WgPTEepQY4:k6VFbBJDNvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/5WgPTEepQY4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/9186981734851672249/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=9186981734851672249" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/9186981734851672249" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/9186981734851672249" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-watch-history-comes-to-api.html" title="[Gd] Watch History Comes to the API" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-2386737549678087615</id><published>2012-01-25T03:48:00.001-08:00</published><updated>2012-01-25T03:48:47.708-08:00</updated><title type="text">[Gd] A new and easy way to add new pages to your Custom Search Engine’s
index</title><content type="html">&lt;h4&gt;&lt;a href="http://googlecustomsearch.blogspot.com/"&gt;Google Custom Search&lt;/a&gt;: &lt;a href="http://googlecustomsearch.blogspot.com/2012/01/new-and-easy-way-to-add-new-pages-to.html"&gt;A new and easy way to add new pages to your Custom Search Engine’s index&lt;/a&gt;&lt;/h4&gt; &lt;br&gt;&lt;div&gt;Our users have been telling us that while they love the concept of &lt;a href="http://googlecustomsearch.blogspot.com/2008/11/on-demand-indexing-for-fast-moving-web.html"&gt;on-demand indexing&lt;/a&gt;, manually entering URLs or keeping a Sitemap up to date is too cumbersome.  A new year brings a new and improved solution.  If you are a &lt;a href="http://www.google.com/webmastertools"&gt;&lt;span&gt;Webmaster Tools&lt;/span&gt;&lt;/a&gt; verified site owner and have a page that links to your site’s latest content, simply provide us with that page’s URL and we will periodically visit it to discover your site’s new content.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For example, as the owners of this blog, we can provide the URL of the blog’s landing page, googlecustomsearch.blogspot.com, to our CSE.  It will then periodically visit that URL and add any new links to content on this blog to our CSE’s index.  Since this URL automatically links to all new content on this blog, our CSE’s index will always automatically get updated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You can provide a URL(s) to your CSE via the &lt;b&gt;URLs linked from a page&lt;/b&gt; feature in the &lt;b&gt;Indexing&lt;/b&gt; page of your CSE’s &lt;b&gt;Control Panel&lt;/b&gt;.  Note that this feature is only for the discovery of new content and does not refresh content that has already been indexed.  &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To learn more about &lt;span&gt;URLs linked from a page&lt;/span&gt;, please visit our &lt;a href="http://support.google.com/customsearch/bin/answer.py?hl=en&amp;amp;answer=115957"&gt;&lt;span&gt;help center&lt;/span&gt;&lt;/a&gt;. Let us know what you think in our &lt;a href="http://www.google.com/support/forum/p/customsearch"&gt;&lt;span&gt;discussion forum&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Posted by: Liqian Luo, Software Engineer&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/36703406-7861195805001166378?l=googlecustomsearch.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlecustomsearch.blogspot.com/2012/01/new-and-easy-way-to-add-new-pages-to.html"&gt;http://googlecustomsearch.blogspot.com/2012/01/new-and-easy-way-to-add-new-pages-to.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-2386737549678087615?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=pNDgPYNCCww:A30wq0qqgVk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=pNDgPYNCCww:A30wq0qqgVk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=pNDgPYNCCww:A30wq0qqgVk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=pNDgPYNCCww:A30wq0qqgVk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=pNDgPYNCCww:A30wq0qqgVk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/pNDgPYNCCww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/2386737549678087615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=2386737549678087615" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2386737549678087615" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/2386737549678087615" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-new-and-easy-way-to-add-new-pages-to.html" title="[Gd] A new and easy way to add new pages to your Custom Search Engine’s&#xA;index" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-6770935674792904100</id><published>2012-01-25T00:17:00.001-08:00</published><updated>2012-01-25T00:17:01.368-08:00</updated><title type="text">[Gd] Tips on using the APIs Discovery Service</title><content type="html">&lt;h4&gt;&lt;a href="http://googleappsdeveloper.blogspot.com/"&gt;Google Apps Developer Blog&lt;/a&gt;: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/tips-on-using-apis-discovery-service.html"&gt;Tips on using the APIs Discovery Service&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Our newest set of APIs - &lt;a href="http://code.google.com/apis/tasks/v1/getting_started.html"&gt;Tasks&lt;/a&gt;, &lt;a href="http://code.google.com/apis/calendar/v3/getting_started.html"&gt;Calendar v3&lt;/a&gt;, &lt;a href="https://developers.google.com/+/api/"&gt;Google+&lt;/a&gt; to name a few - are supported by the &lt;a href="http://code.google.com/apis/discovery/"&gt;Google APIs Discovery Service&lt;/a&gt;. The Google APIs Discovery service offers an interface that allows developers to programmatically get API metadata such as:&lt;/p&gt;&lt;ul&gt; &lt;li&gt;A directory of supported APIs.&lt;/li&gt; &lt;li&gt;A list of API resource schemas based on JSON Schema.&lt;/li&gt; &lt;li&gt;A list of API methods and parameters for each method and their inline documentation.&lt;/li&gt; &lt;li&gt;A list of available OAuth 2.0 scopes.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The APIs Discovery Service is especially useful when building developer tools, as you can use it to automatically generate certain features. For instance we are using the APIs Discovery Service in &lt;a href="http://code.google.com/apis/discovery/libraries.html"&gt;our client libraries&lt;/a&gt; and in our &lt;a href="https://code.google.com/apis/explorer/"&gt;APIs Explorer&lt;/a&gt; but also to generate some of our &lt;a href="https://code.google.com/apis/tasks/v1/reference.html"&gt;online API reference&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Because the APIs Discovery Service is itself an API, you can use features such as &lt;a href="http://googlecode.blogspot.com/2010/03/making-apis-faster-introducing-partial.html"&gt;partial response&lt;/a&gt; which is a way to get only the information you need. Let’s look at some of the useful information that is available using the APIs Discovery Service and the partial response feature.&lt;/p&gt;&lt;h3&gt;List the supported APIs&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;You can get the list of all the APIs that are supported by the discovery service by sending a &lt;code&gt;GET&lt;/code&gt; request to the following endpoint:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;https://www.googleapis.com/discovery/v1/apis?fields=items(title,discoveryLink)&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Which will return a JSON feed that looks like this:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;{&lt;br&gt;    "items": [&lt;br&gt;        …&lt;br&gt;        {&lt;br&gt;            "title": "Google+ API",&lt;br&gt;            "discoveryLink": "./apis/plus/v1/rest"&lt;br&gt;        },&lt;br&gt;        {&lt;br&gt;            "title": "Tasks API",&lt;br&gt;            "discoveryLink": "./apis/tasks/v1/rest"&lt;br&gt;        },&lt;br&gt;        {&lt;br&gt;            "title": "Calendar API",&lt;br&gt;            "discoveryLink": "./apis/calendar/v3/rest"&lt;br&gt;        },&lt;br&gt;        …&lt;br&gt;    ]&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Using the &lt;code&gt;discoveryLink&lt;/code&gt; attribute in the resources part of the feed above you can access the discovery document of each API. This is where a lot of useful information about the API can be accessed.&lt;/p&gt;&lt;h3&gt;Get the OAuth 2.0 scopes of an API&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Using the API-specific endpoint you can easily get the OAuth 2.0 scopes available for that API. For example, here is how to get the scopes of the Google Tasks API:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;https://www.googleapis.com/discovery/v1/apis/tasks/v1/rest?fields=auth(oauth2(scopes))&lt;br&gt;&lt;/pre&gt;&lt;p&gt;This method returns the JSON output shown below, which indicates that &lt;code&gt;https://www.googleapis.com/auth/tasks&lt;/code&gt; and &lt;code&gt;https://www.googleapis.com/auth/tasks.readonly&lt;/code&gt; are the two scopes associated with the Tasks API.&lt;/p&gt;&lt;pre&gt;&lt;br&gt;{&lt;br&gt;    "auth": {&lt;br&gt;        "oauth2": {&lt;br&gt;            "scopes": {&lt;br&gt;                "https://www.googleapis.com/auth/tasks": {&lt;br&gt;                    "description": "Manage your tasks"&lt;br&gt;                },&lt;br&gt;                "https://www.googleapis.com/auth/tasks.readonly": {&lt;br&gt;                    "description": "View your tasks"&lt;br&gt;                }&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Using requests of this type you could detect which APIs do not support OAuth 2.0. For example, the Translate API does not support OAuth 2.0, as it does not provide access to OAuth protected resources such as user data.  Because of this, a &lt;code&gt;GET&lt;/code&gt; request to the following endpoint:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;https://www.googleapis.com/discovery/v1/apis/translate/v2/rest?fields=auth(oauth2(scopes))&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Returns:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;{}&lt;br&gt;&lt;/pre&gt;&lt;h3&gt;Getting scopes required for an API’s endpoints and methods&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Using the API-specific endpoints again, you can get the lists of operations and API endpoints, along with the scopes required to perform those operations. Here is an example querying that information for the Google Tasks API:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;https://www.googleapis.com/discovery/v1/apis/tasks/v1/rest?fields=resources/*/methods(*(path,scopes,httpMethod))&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Which returns:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;{&lt;br&gt;    "resources": {&lt;br&gt;        "tasklists": {&lt;br&gt;            "methods": {&lt;br&gt;                "get": {&lt;br&gt;                    "path": "users/@me/lists/{tasklist}",                         &lt;br&gt;                    "httpMethod": "GET",&lt;br&gt;                    "scopes": [&lt;br&gt;                        "https://www.googleapis.com/auth/tasks",&lt;br&gt;                        "https://www.googleapis.com/auth/tasks.readonly"&lt;br&gt;                    ]&lt;br&gt;                },&lt;br&gt;                "insert": {&lt;br&gt;                    "path": "users/@me/lists",&lt;br&gt;                    "httpMethod": "POST",&lt;br&gt;                    "scopes": [&lt;br&gt;                        "https://www.googleapis.com/auth/tasks"&lt;br&gt;                    ]&lt;br&gt;                },&lt;br&gt;                …&lt;br&gt;            }&lt;br&gt;        },&lt;br&gt;        "tasks": {&lt;br&gt;            …&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;This tells you that to perform a &lt;code&gt;POST&lt;/code&gt; request to the &lt;code&gt;users/@me/lists&lt;/code&gt; endpoint (to insert a new task) you need to have been authorized with the scope &lt;code&gt;https://www.googleapis.com/auth/tasks&lt;/code&gt; and that to be able to do a &lt;code&gt;GET&lt;/code&gt; request to the &lt;code&gt;users/@me/lists/{tasklist}&lt;/code&gt; endpoint you need to have been authorized with either of the two Google Tasks scopes.&lt;/p&gt;&lt;p&gt;You could use this to do some automatic discovery of the scopes you need to authorize to perform all the operations that your applications does.&lt;/p&gt;&lt;p&gt;You could also use this information to detect which operations and which endpoints you can access given a specific authorization token ( OAuth 2.0, OAuth 1.0 or Authsub token).  First, use either the Authsub Token Info service or the OAuth 2.0 Token Info Service to determine which scopes your token has access to (see below); and then deduct from the feed above which endpoints and operations requires access to these scopes.&lt;/p&gt;&lt;pre&gt;                        &lt;br&gt;&lt;b&gt;[Access Token]&lt;/b&gt; -----(Token Info)----&amp;gt; &lt;b&gt;[Scopes]&lt;/b&gt; -----(APIs Discovery)----&amp;gt; &lt;b&gt;[Operations/API Endpoints]&lt;/b&gt;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Example of using the OAuth 2.0 Token Info service:&lt;p&gt;&lt;p&gt;Request:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;GET /oauth2/v1/tokeninfo?access_token= HTTP/1.1&lt;br&gt;Host: www.googleapis.com&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Response:&lt;/p&gt;&lt;pre&gt;&lt;br&gt;HTTP/1.1 200 OK&lt;br&gt;Content-Type: application/json; charset=UTF-8&lt;br&gt;…&lt;br&gt;&lt;br&gt;{&lt;br&gt;    "issued_to": "1234567890.apps.googleusercontent.com",&lt;br&gt;    "audience": "1234567890.apps.googleusercontent.com",&lt;br&gt;    "scope": "https://www.google.com/m8/feeds/ &lt;br&gt;              https://www.google.com/calendar/feeds/",&lt;br&gt;    "expires_in": 1038&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;There is a lot more you can do with the APIs Discovery Service so I invite you to have a deeper look at the documentation to find out more.&lt;/p&gt;&lt;br&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="background-color:#f2f2f2"&gt;&lt;td&gt;&lt;img src="http://sites.google.com/site/developeradvocates/image/nicolas_garnier.png"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span&gt;Nicolas Garnier&lt;/span&gt;   &lt;a href="http://www.google.com/profiles/Nivco.las" rel="me"&gt;profile&lt;/a&gt; | &lt;a href="http://twitter.com/nivco" rel="me"&gt;twitter&lt;/a&gt; | &lt;a href="http://code.google.com/events/#&amp;amp;speaker=nivco"&gt;events&lt;/a&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;Nicolas joined Google’s Developer Relations in 2008. Since then he's worked on commerce oriented products such as Google Checkout and Google Base.  Currently, he is working on Google Apps with a focus on the Google Calendar API, the Google Contacts API, and the Tasks API. Before joining Google, Nicolas worked at Airbus and at the French Space Agency where he built web applications for scientific researchers.&lt;/div&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/1377183911445147227-4033892497175955537?l=googleappsdeveloper.blogspot.com" alt=""&gt;&lt;/div&gt;&lt;/p&gt;&lt;/p&gt; &lt;h6&gt;URL: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/tips-on-using-apis-discovery-service.html"&gt;http://googleappsdeveloper.blogspot.com/2012/01/tips-on-using-apis-discovery-service.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-6770935674792904100?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=rpcn7cu9Dsk:nx7LtvivnU8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=rpcn7cu9Dsk:nx7LtvivnU8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=rpcn7cu9Dsk:nx7LtvivnU8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=rpcn7cu9Dsk:nx7LtvivnU8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=rpcn7cu9Dsk:nx7LtvivnU8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/rpcn7cu9Dsk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/6770935674792904100/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=6770935674792904100" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/6770935674792904100" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/6770935674792904100" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-tips-on-using-apis-discovery-service.html" title="[Gd] Tips on using the APIs Discovery Service" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-3752105446228177862</id><published>2012-01-23T21:38:00.001-08:00</published><updated>2012-01-23T21:38:13.266-08:00</updated><title type="text">[Gd] Stable Channel Update</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/stable-channel-update_23.html"&gt;Stable Channel Update&lt;/a&gt;&lt;/h4&gt; &lt;br&gt;&lt;div&gt;&lt;span style="color:#333333"&gt;&lt;span style="font-family:inherit"&gt;The Stable channel has been updated to 16.0.912.77 for Windows, Mac, Linux and Chrome Frame&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="background-color:white;line-height:15px"&gt;&lt;span style="white-space:pre-wrap"&gt;&lt;b&gt;&lt;span style="font-family:inherit"&gt;&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color:white;line-height:15px"&gt;&lt;div&gt;&lt;span&gt;&lt;span style="font-family:inherit"&gt;&lt;b style="line-height:normal"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Security fixes and rewards:&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Please see&lt;/span&gt;&lt;a href="http://sites.google.com/a/chromium.org/dev/Home/chromium-security"&gt;&lt;span style="color:black;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;the Chromium security page&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; for more detail. Note that the referenced bugs may be kept private until a majority of our users are up to date with the fix.&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;ul&gt;&lt;span&gt;&lt;span style="font-family:inherit"&gt;&lt;b style="line-height:normal"&gt;&lt;li style="font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;[$&lt;/span&gt;&lt;span style="color:lime;vertical-align:baseline;white-space:pre-wrap"&gt;1000&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] [&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=106484"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;106484&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] &lt;/span&gt;&lt;span style="font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;High&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt; CVE-2011-3924: Use-after-free in DOM selections. &lt;/span&gt;&lt;span style="font-style:italic;vertical-align:baseline;white-space:pre-wrap"&gt;Credit to Arthur Gerkis.&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;[$&lt;/span&gt;&lt;span style="color:#ff9900;vertical-align:baseline;white-space:pre-wrap"&gt;3133.7&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] [&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=107182"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;107182&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] &lt;/span&gt;&lt;span style="font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;Critical&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt; CVE-2011-3925: Use-after-free in Safe Browsing navigation. &lt;/span&gt;&lt;span style="font-style:italic;vertical-align:baseline;white-space:pre-wrap"&gt;Credit to Chamal de Silva. *&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;[&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=108461"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;108461&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] &lt;/span&gt;&lt;span style="font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;High&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt; CVE-2011-3928: Use-after-free in DOM handling. &lt;/span&gt;&lt;span style="font-style:italic;vertical-align:baseline;white-space:pre-wrap"&gt;Credit to wushi of team509 reported through ZDI (ZDI-CAN-1415).&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;[$&lt;/span&gt;&lt;span style="color:lime;vertical-align:baseline;white-space:pre-wrap"&gt;1000&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] [&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=108605"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;108605&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] &lt;/span&gt;&lt;span style="font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;High&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt; CVE-2011-3927: Uninitialized value in Skia. &lt;/span&gt;&lt;span style="font-style:italic;vertical-align:baseline;white-space:pre-wrap"&gt;Credit to miaubiz.&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight:normal;list-style-type:disc;vertical-align:baseline"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;[$&lt;/span&gt;&lt;span style="color:lime;vertical-align:baseline;white-space:pre-wrap"&gt;1000&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] [&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=109556"&gt;&lt;span style="color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;109556&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;] &lt;/span&gt;&lt;span style="font-weight:bold;vertical-align:baseline;white-space:pre-wrap"&gt;High&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt; CVE-2011-3926: Heap-buffer-overflow in tree builder. &lt;/span&gt;&lt;span style="font-style:italic;vertical-align:baseline;white-space:pre-wrap"&gt;Credit to Arthur Gerkis.&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span&gt;&lt;span style="font-family:inherit"&gt;&lt;b style="line-height:normal"&gt;&lt;span style="font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;span style="background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The bugs &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=106484"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;106484&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;, &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=107182"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;107182&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;, &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=108461"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;108461&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;, and &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=109556"&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;109556&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; were &lt;/span&gt;&lt;span style="background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;detected using&lt;/span&gt;&lt;a href="http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer"&gt;&lt;span style="background-color:transparent;color:black;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#000099;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;AddressSanitizer&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:transparent;font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;* Bug &lt;/span&gt;&lt;a href="http://code.google.com/p/chromium/issues/detail?id=107182"&gt;&lt;span style="color:#000099;font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;107182&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style:italic;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; was fixed in 16.0.912.75 but accidentally excluded from the release notes. &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;span style="font-family:inherit"&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="background-color:white;line-height:15px"&gt;&lt;span style="font-family:inherit"&gt;&lt;span style="background-color:transparent;vertical-align:baseline;white-space:pre-wrap"&gt;Full details about what changes have been made in this release are available in the &lt;/span&gt;&lt;a href="http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=/branches/912/src&amp;amp;range=113337:116452&amp;amp;mode=html"&gt;&lt;span style="background-color:transparent;color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;SVN revisions log&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:transparent;vertical-align:baseline;white-space:pre-wrap"&gt;. &lt;/span&gt;&lt;span style="background-color:transparent;vertical-align:baseline;white-space:pre-wrap"&gt;Interested in switching to another channel?  &lt;/span&gt;&lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;&lt;span style="background-color:transparent;color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:transparent;vertical-align:baseline;white-space:pre-wrap"&gt;.  &lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;If you find a new issue, please let us know by &lt;/span&gt;&lt;a href="http://new.crbug.com/" style="background-color:white"&gt;&lt;span style="background-color:transparent;color:#000099;vertical-align:baseline;white-space:pre-wrap"&gt;filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;.&lt;/span&gt;&lt;br style="background-color:white"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Anthony Laforge&lt;/span&gt;&lt;br style="background-color:white"&gt;&lt;span style="vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-6544226877294442514?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/stable-channel-update_23.html"&gt;http://googlechromereleases.blogspot.com/2012/01/stable-channel-update_23.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-3752105446228177862?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=wIrfl3Ox-v8:46J9JRwZoQo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=wIrfl3Ox-v8:46J9JRwZoQo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=wIrfl3Ox-v8:46J9JRwZoQo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=wIrfl3Ox-v8:46J9JRwZoQo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=wIrfl3Ox-v8:46J9JRwZoQo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/wIrfl3Ox-v8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/3752105446228177862/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=3752105446228177862" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/3752105446228177862" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/3752105446228177862" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-stable-channel-update_23.html" title="[Gd] Stable Channel Update" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-3962325644957991677</id><published>2012-01-23T17:05:00.001-08:00</published><updated>2012-01-23T17:05:57.505-08:00</updated><title type="text">[Gd] Let's make TCP faster</title><content type="html">&lt;h4&gt;&lt;a href="http://googlecode.blogspot.com/"&gt;The official Google Code blog&lt;/a&gt;: &lt;a href="http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html"&gt;Let&amp;#39;s make TCP faster&lt;/a&gt;&lt;/h4&gt; &lt;img width="80" src="http://1.bp.blogspot.com/-_I42LEylT9A/Tx2V3xAa9HI/AAAAAAAAA9w/GIlm8NggSnU/s1600/yuchung.png" alt="Author Photo" style="float:right;margin-left:1em;text-align:right"&gt;&lt;br&gt;&lt;em&gt;By Yuchung Cheng, Make The Web Faster Team&lt;/em&gt;&lt;br&gt;&lt;br&gt;Transmission Control Protocol (TCP), the workhorse of the Internet, is designed to deliver all the Web’s content and operate over a huge range of network types. To deliver content effectively, Web browsers typically open &lt;a href="http://www.browserscope.org/?category=network&amp;amp;v=top"&gt;several dozen parallel TCP connections&lt;/a&gt; ahead of making actual requests. This strategy overcomes inherent TCP limitations but results in high latency in many situations and is not scalable.&lt;br&gt;&lt;br&gt;Our research shows that the key to reducing latency is saving round trips. We’re experimenting with several improvements to TCP. Here’s a summary of some of our recommendations to make TCP faster:&lt;br&gt;&lt;br&gt;1. &lt;a href="http://code.google.com/speed/protocols/tcpm-IW10.html"&gt;Increase TCP initial congestion window to 10 (IW10)&lt;/a&gt;. The amount of data sent at the beginning of a TCP connection is currently 3 packets, implying 3 round trips (RTT) to deliver a tiny 15KB-sized content. Our &lt;a href="http://research.google.com/pubs/pub36640.html"&gt;experiments&lt;/a&gt; indicate that IW10 reduces the network latency of Web transfers by over 10%.&lt;br&gt;&lt;br&gt;2. &lt;a href="http://tools.ietf.org/html/rfc6298"&gt;Reduce the initial timeout from 3 seconds to 1 second&lt;/a&gt;. An RTT of 3 seconds was appropriate a couple of decades ago, but today’s Internet requires a much smaller timeout. Our rationale for this change is well documented &lt;a href="http://www.ietf.org/proceedings/75/slides/tcpm-1.pdf"&gt;here&lt;/a&gt;. &lt;br&gt;&lt;br&gt;3. Use TCP Fast Open (TFO). For 33% of all HTTP requests, the browser needs to first spend one RTT to establish a TCP connection with the remote peer. Most HTTP responses fit in the initial TCP congestion window of 10 packets, doubling response time.  TFO removes this overhead by including the HTTP request in the initial TCP SYN packet. We’ve demonstrated TFO reducing Page Load time by 10% on average, and over 40% in many situations. Our &lt;a href="http://research.google.com/pubs/pub37517.html"&gt;research paper&lt;/a&gt; and &lt;a href="https://datatracker.ietf.org/doc/draft-cheng-tcpm-fastopen/"&gt;internet-draft&lt;/a&gt; address concerns such as dropped packets and DOS attacks when using TFO.&lt;br&gt;&lt;br&gt;4. Use Proportional Rate Reduction for TCP (PRR). Packet losses indicate the network is in disorder or is congested. &lt;a href="http://research.google.com/pubs/pub37486.html"&gt;PRR&lt;/a&gt;, a new loss recovery algorithm, retransmits smoothly to recover losses during network congestion. The algorithm is faster than the current mechanism by adjusting the transmission rate according to the degree of losses. PRR is now part of the Linux kernel and is in the process of becoming part of the TCP &lt;a href="http://tools.ietf.org/html/draft-ietf-tcpm-proportional-rate-reduction-00"&gt;standard&lt;/a&gt;.&lt;br&gt;&lt;br&gt;In addition, we are developing algorithms to recover faster on noisy mobile networks, as well as a guaranteed 2-RTT delivery during startup. All our work on TCP is open-source and publicly available. We disseminate our innovations through the Linux kernel, IETF standards proposals, and research publications. Our goal is to partner with industry and academia to improve TCP for the whole Internet. Please watch this blog and &lt;a href="http://code.google.com/speed/"&gt;http://code.google.com/speed/&lt;/a&gt; for further information.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Yuchung Cheng works on the transport layer to make the Web faster. He believes the current transport layer badly needs an overhaul to catch up with other (networking) technologies. He can be reached at &lt;a href="mailto:ycheng@google.com"&gt;ycheng@google.com&lt;/a&gt;.&lt;/em&gt;&lt;br&gt;&lt;br&gt;&lt;em&gt;Posted by &lt;a href="https://profiles.google.com/u/0/105627346610764729807/about"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/11300808-2138172111681265307?l=googlecode.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html"&gt;http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-3962325644957991677?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=UZ9fE3AzEdo:JaVv7417n3k:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=UZ9fE3AzEdo:JaVv7417n3k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=UZ9fE3AzEdo:JaVv7417n3k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=UZ9fE3AzEdo:JaVv7417n3k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=UZ9fE3AzEdo:JaVv7417n3k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/UZ9fE3AzEdo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/3962325644957991677/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=3962325644957991677" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/3962325644957991677" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/3962325644957991677" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-let-make-tcp-faster.html" title="[Gd] Let&amp;#39;s make TCP faster" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-_I42LEylT9A/Tx2V3xAa9HI/AAAAAAAAA9w/GIlm8NggSnU/s72-c/yuchung.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-8472086597801076901</id><published>2012-01-22T15:49:00.003-08:00</published><updated>2012-01-22T15:49:25.177-08:00</updated><title type="text">[Gd] Google Apps EMEA Developer Tour (continued)</title><content type="html">&lt;h4&gt;&lt;a href="http://googleappsdeveloper.blogspot.com/"&gt;Google Apps Developer Blog&lt;/a&gt;: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/google-apps-emea-developer-tour.html"&gt;Google Apps EMEA Developer Tour (continued)&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Two months ago &lt;a href="http://googlecode.blogspot.com/2011/11/google-apps-emea-developer-tour.html"&gt;we announced&lt;/a&gt; that a few of us from the Google Apps Developer Relations team would be going around EMEA to meet with developers and talk about Google Apps technologies. We have met great developers from Germany, France, Russia, Czech Republic, Egypt, Switzerland, Israel, and Spain during Google Developer Days, hackathons, developer conferences and GTUG meetings.&lt;/p&gt;&lt;p&gt;This year we are continuing the tour with a series of Google Apps Script hackathons taking place in &lt;a href="http://apps-dev-tour.appspot.com/agenda.html#Vienna"&gt;Vienna&lt;/a&gt;, &lt;a href="http://apps-dev-tour.appspot.com/agenda.html#Milan"&gt;Milan&lt;/a&gt;, &lt;a href="http://apps-dev-tour.appspot.com/agenda.html#Madrid"&gt;Madrid&lt;/a&gt;, &lt;a href="http://apps-dev-tour.appspot.com/agenda.html#Munich"&gt;Munich&lt;/a&gt; and &lt;a href="http://apps-dev-tour.appspot.com/agenda.html#Dublin"&gt;Dublin&lt;/a&gt; over the next few months. These hackathons provide a fun and hands-on way to learn about Google Apps Script and a good opportunity to give us your feedback on this technology.&lt;/p&gt;&lt;p&gt;For more information about the tour and to register for these events, please visit the &lt;a href="http://apps-dev-tour.appspot.com/"&gt;Google Apps EMEA Developer Tour&lt;/a&gt; website.&lt;/p&gt;&lt;iframe width="530" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" style="margin-top:20px;border-radius:5px" src="http://maps.google.com/maps/ms?z=4&amp;amp;t=t&amp;amp;vpsrc=5&amp;amp;msa=0&amp;amp;msid=212740107356106824507.0004b09b4f5a62b1c5bfb&amp;amp;ie=UTF8&amp;amp;ll=48.516604,8.369141&amp;amp;spn=17.888665,46.538086&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;p&gt;We plan to organize many other Google Apps events close to you in the near future. Look for updates on the &lt;a href="http://apps-dev-tour.appspot.com/"&gt;Google Apps EMEA Developer Tour&lt;/a&gt; website or keep an eye out for further announcements on this blog.&lt;/p&gt;&lt;br&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="background-color:#f2f2f2"&gt;&lt;td&gt;&lt;img src="http://sites.google.com/site/developeradvocates/image/nicolas_garnier.png"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span&gt;Nicolas Garnier&lt;/span&gt;   &lt;a href="http://www.google.com/profiles/Nivco.las" rel="me"&gt;profile&lt;/a&gt; | &lt;a href="http://twitter.com/nivco" rel="me"&gt;twitter&lt;/a&gt; | &lt;a href="http://code.google.com/events/#&amp;amp;speaker=nivco"&gt;events&lt;/a&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;Nicolas joined Google’s Developer Relations in 2008. Since then he's worked on commerce oriented products such as Google Checkout and Google Base.  Currently, he is working on Google Apps with a focus on the Google Calendar API, the Google Contacts API, and the Tasks API. Before joining Google, Nicolas worked at Airbus and at the French Space Agency where he built web applications for scientific researchers.&lt;/div&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/1377183911445147227-8042533873388026453?l=googleappsdeveloper.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/google-apps-emea-developer-tour.html"&gt;http://googleappsdeveloper.blogspot.com/2012/01/google-apps-emea-developer-tour.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-8472086597801076901?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=G7FtbVFl_ss:-D7_6LyWigU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=G7FtbVFl_ss:-D7_6LyWigU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=G7FtbVFl_ss:-D7_6LyWigU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=G7FtbVFl_ss:-D7_6LyWigU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=G7FtbVFl_ss:-D7_6LyWigU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/G7FtbVFl_ss" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/8472086597801076901/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=8472086597801076901" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/8472086597801076901" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/8472086597801076901" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-google-apps-emea-developer-tour_22.html" title="[Gd] Google Apps EMEA Developer Tour (continued)" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-5407230031755005077</id><published>2012-01-22T15:49:00.001-08:00</published><updated>2012-01-22T15:49:24.695-08:00</updated><title type="text">[Gd] Calendar API v3 Best Practices: Reminders</title><content type="html">&lt;h4&gt;&lt;a href="http://googleappsdeveloper.blogspot.com/"&gt;Google Apps Developer Blog&lt;/a&gt;: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/calendar-api-v3-best-practices.html"&gt;Calendar API v3 Best Practices: Reminders&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;We recently posted some best practices for working with recurring events in Google Calendar API v3. In this blog post we’ll highlight another improved area in the v3 API: event reminders.&lt;/p&gt;&lt;h2&gt;Reminders&lt;/h2&gt;&lt;p&gt;Google Calendar API v3 offers developers flexible control over event reminders, including per-calendar default settings and custom overrides for individual events.&lt;/p&gt;&lt;p&gt;The user’s default reminders for events on a given calendar can be found in the corresponding entry in the Calendar List collection. The Calendar List collection acts a bit like a list of bookmarks, containing entries for the calendars that the user owns or has looked at in the past (it corresponds to the content of the "My Calendars" and "Other Calendars" list on the bottom left in the Web version of Google Calendar). Each entry is annotated with user-specific settings for the individual calendar, such as the preferred color in the UI and the default reminders.&lt;/p&gt;&lt;p&gt;Google Calendar currently supports three ways of reminding its users of events: "popup", prompting a message directly in the browser, mobile phone or desktop client, as well as "email" and "sms" for messages sent through the respective channels. To change the defaults, update the Calendar List entry and include the reminder method and how many minutes in advance the user should be alerted. In the following example, we set an email reminder to be sent 60 minutes before an event, and a popup reminder 10 minutes before.&lt;/p&gt;&lt;pre&gt;{&lt;br&gt; "summary": "Work Calendar",&lt;br&gt; ...&lt;br&gt; "defaultReminders": [&lt;br&gt;   {&lt;br&gt;     "method": "email",&lt;br&gt;     "minutes": 60&lt;br&gt;   },&lt;br&gt;   {&lt;br&gt;     "method": "popup",&lt;br&gt;     "minutes": 10&lt;br&gt;   }&lt;br&gt; ]&lt;br&gt;}&lt;/pre&gt;&lt;center&gt;&lt;i&gt;A Calendar List entry with title and default reminders.&lt;/i&gt;&lt;/center&gt;&lt;p&gt;The default reminders will be applied to all existing and future events on this calendar, provided they don’t have custom reminders set already. In contrast to earlier versions of the API, newly created events will also have reminders set by default.&lt;/p&gt;&lt;p&gt;Sometimes, there are events that we want a special reminder for, or none at all. To override the defaults for a specific event, switch the &lt;code&gt;useDefault&lt;/code&gt; flag in the &lt;code&gt;reminders&lt;/code&gt; section to &lt;code&gt;false&lt;/code&gt;, and include a set of custom reminders, or leave the list empty. When you define a set of override reminders for a recurring series, they are automatically applied to each of its occurrences, unless they have been overridden explicitly. Like the default reminders on the calendar, these are personal reminders for the user that is logged in, and will not influence the settings others might have for the same calendar or event.  Here is an example that overrides the default reminders with a 15 minute SMS reminder for that specific event.&lt;/p&gt;&lt;pre&gt;{&lt;br&gt; "summary": "API Office Hours",&lt;br&gt; ...&lt;br&gt; "reminders": {&lt;br&gt;   "useDefault": false,&lt;br&gt;   "overrides": [&lt;br&gt;     {&lt;br&gt;       "method": "sms",&lt;br&gt;       "minutes": 15&lt;br&gt;     }&lt;br&gt;   ]&lt;br&gt; }&lt;br&gt;}&lt;/pre&gt;&lt;center&gt;&lt;i&gt;An event representation with title and reminder overrides.&lt;/i&gt;&lt;/center&gt;&lt;p&gt;The defaults for the given calendar are included at the top of any event listing result. This way, reminder settings for all events in the result can be determined by the client without having to make the additional API call to the corresponding entry in the Calendar List collection.&lt;/p&gt;&lt;p&gt;In this post and an earlier post about best practices with recurring events, we have covered some improved areas of the latest version of the Google Calendar API. Have a look at the &lt;a href="http://code.google.com/apis/calendar/v3/migration_guide.html"&gt;migration guide&lt;/a&gt; for a more complete view of other changes we made in the new version, and let us know what you think.&lt;/p&gt;&lt;p&gt;If you have any questions about handling reminders or other features of the new Calendar API, post them on the &lt;a href="http://code.google.com/apis/calendar/community/forum.html"&gt;Calendar API forum&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="background-color:#f2f2f2"&gt;&lt;td&gt;&lt;img src="http://1.bp.blogspot.com/-_FQ5XomCjpw/TuI5FxjR9-I/AAAAAAAAAV4/UKg5HiFmTcs/s400/image01.jpg"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span&gt;Peter Lundblad&lt;/span&gt;    &lt;a href="http://plus.google.com/104780772893555468975" rel="me"&gt;profile&lt;/a&gt; &lt;br&gt;&lt;div&gt;&lt;br&gt;Peter joined Google in 2006.  He's been leading the Calendar API team for the last 2 years. He's previously worked on video uploads for YouTube.&lt;/div&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="background-color:#f2f2f2"&gt;&lt;td&gt;&lt;img src="http://2.bp.blogspot.com/-_Khy5lbHDWA/TuI5d7WabOI/AAAAAAAAAWE/i5QKiVnk2YU/s400/image00.png"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span&gt;Fabian Schlup&lt;/span&gt;    &lt;a href="http://www.google.com/profiles/fschlup" rel="me"&gt;profile&lt;/a&gt; &lt;br&gt;&lt;div&gt;&lt;br&gt;Fabian is a Software Engineer at Google in Zürich, working on Calendar and Tasks, with a focus on APIs.&lt;/div&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/1377183911445147227-645475526053634190?l=googleappsdeveloper.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googleappsdeveloper.blogspot.com/2012/01/calendar-api-v3-best-practices.html"&gt;http://googleappsdeveloper.blogspot.com/2012/01/calendar-api-v3-best-practices.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-5407230031755005077?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=HXoVHxVbxXo:VUwglESLpjg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=HXoVHxVbxXo:VUwglESLpjg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=HXoVHxVbxXo:VUwglESLpjg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=HXoVHxVbxXo:VUwglESLpjg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=HXoVHxVbxXo:VUwglESLpjg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/HXoVHxVbxXo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/5407230031755005077/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=5407230031755005077" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/5407230031755005077" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/5407230031755005077" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-calendar-api-v3-best-practices.html" title="[Gd] Calendar API v3 Best Practices: Reminders" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-_FQ5XomCjpw/TuI5FxjR9-I/AAAAAAAAAV4/UKg5HiFmTcs/s72-c/image01.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-5800006189631198422</id><published>2012-01-21T11:55:00.001-08:00</published><updated>2012-01-21T11:55:51.491-08:00</updated><title type="text">[Gd] Real-time Communications in Chrome</title><content type="html">&lt;h4&gt;&lt;a href="http://blog.chromium.org/"&gt;Chromium Blog&lt;/a&gt;: &lt;a href="http://blog.chromium.org/2012/01/real-time-communications-in-chrome.html"&gt;Real-time Communications in Chrome&lt;/a&gt;&lt;/h4&gt; Since we &lt;a href="http://www.webrtc.org/blog/introducingwebrtc-anopenreal-timecommunicationsproject"&gt;open sourced&lt;/a&gt; WebRTC this past summer, we’ve been working hard with browser vendors to integrate WebRTC technology in their products. Today, we reached an important milestone: WebRTC is now integrated in the Chrome browser available on the dev channel.&lt;br&gt;&lt;br&gt;Building industry-leading voice and video capabilities into the browser makes it easier for web developers to incorporate real time communications in their apps. Instead of relying on custom, OS specific, proprietary plug-ins, they can now easily build and maintain their apps using a few simple JavaScript APIs and have the browser do the heavy lifting.&lt;br&gt;&lt;br&gt;Even though WebRTC is still evolving, we are receiving feedback from the standards process in &lt;a href="http://www.w3.org/"&gt;W3C&lt;/a&gt; and &lt;a href="http://www.ietf.org/"&gt;IETF&lt;/a&gt; and there are already plenty of apps in development. For example, companies like Polycom, Vonage, Vehix.com, Firespotter, Siemens, Nimbuzz and PCCW are currently actively developing browser based solutions using WebRTC.If you are interested to learn more on how you can use WebRTC in your app, review our &lt;a href="http://www.webrtc.org/home"&gt;documentation&lt;/a&gt;, join our &lt;a href="https://groups.google.com/group/discuss-webrtc"&gt;developer discussion group&lt;/a&gt; and go to the &lt;a href="http://www.webrtc.org/blog"&gt;WebRTC blog&lt;/a&gt; for more details. We are looking forward to seeing what you come up with!&lt;br&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;Posted by Niklas Enbom, Software Engineer &lt;/span&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/2471378914199150966-2584474481623285730?l=blog.chromium.org" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://blog.chromium.org/2012/01/real-time-communications-in-chrome.html"&gt;http://blog.chromium.org/2012/01/real-time-communications-in-chrome.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-5800006189631198422?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=2svG4KGODss:Ktge2GQ0qyw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=2svG4KGODss:Ktge2GQ0qyw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=2svG4KGODss:Ktge2GQ0qyw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=2svG4KGODss:Ktge2GQ0qyw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=2svG4KGODss:Ktge2GQ0qyw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/2svG4KGODss" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/5800006189631198422/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=5800006189631198422" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/5800006189631198422" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/5800006189631198422" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-real-time-communications-in-chrome.html" title="[Gd] Real-time Communications in Chrome" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-699154927936492178.post-1635931941778050123</id><published>2012-01-21T02:38:00.003-08:00</published><updated>2012-01-21T02:38:03.949-08:00</updated><title type="text">[Gd] Dev Channel Update for Chromebooks</title><content type="html">&lt;h4&gt;&lt;a href="http://googlechromereleases.blogspot.com/"&gt;Chrome Releases&lt;/a&gt;: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_20.html"&gt;Dev Channel Update for Chromebooks&lt;/a&gt;&lt;/h4&gt; &lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;The Dev channel has been updated to &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update_17.html"&gt;18.0.1010.2&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;(Platform versions: 1590.2.0) for Chromebooks (&lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Acer AC700, &lt;/span&gt;&lt;/b&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Samsung Series 5, and Cr-48). &lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;This build contains a number of performance, stability and security improvements. Additional changes:&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#333333;font-family:Arial"&gt;&lt;span style="font-size:12px;line-height:15px;white-space:pre-wrap"&gt;Improvement to wifi stability.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#333333;font-family:Arial"&gt;&lt;span style="font-size:12px;line-height:15px;white-space:pre-wrap"&gt;Improved system hardening [Yama support, etc]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="color:#333333;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Known issues:&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#222222;font-family:Arial,Helvetica,sans-serif;font-size:x-small"&gt;&lt;span style="line-height:18px"&gt;&lt;a href="http://crosbug.com/25144"&gt;25144&lt;/a&gt; - External storage devices fail to automount. &lt;b&gt;Workaround&lt;/b&gt;: Login using Guest mode and automount of the device will work.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#222222;font-family:Arial,Helvetica,sans-serif;font-size:x-small"&gt;&lt;span style="line-height:18px"&gt;Machines shipped with R11 and earlier versions may encounter problems with users being able to login to the machine. This may also occur after the user changes their password. &lt;b&gt;Workaround:&lt;/b&gt; You may recover either from erasing the stateful partition or performing a machine recovery. &lt;a href="http://support.google.com/chromeos/a/bin/answer.py?hl=en&amp;amp;answer=1319163"&gt;Instructions can be found here.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b style="background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:15px"&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;If you find new issues, please let us know by visiting our&lt;/span&gt;&lt;a href="http://www.google.com/chromeos/help.html"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; help site&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; or&lt;/span&gt;&lt;a href="http://code.google.com/p/chromium-os/issues/entry"&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; filing a bug&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;. Interested in switching channels?&lt;/span&gt;&lt;a href="http://www.google.com/support/chromeos/bin/answer.py?answer=1086915"&gt;&lt;span style="background-color:white;color:black;font-family:Arial;font-weight:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"&gt; &lt;/span&gt;&lt;span style="background-color:white;color:#000099;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Find out how.&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt; You can submit feedback using ‘Report an issue’ under the wrench menu.&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white"&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Danielle Drew&lt;/span&gt;&lt;br&gt;&lt;span style="background-color:white;font-family:Arial;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"&gt;Google Chrome&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8982037438137564684-3773986738249004765?l=googlechromereleases.blogspot.com" alt=""&gt;&lt;/div&gt; &lt;h6&gt;URL: &lt;a href="http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_20.html"&gt;http://googlechromereleases.blogspot.com/2012/01/dev-channel-update-for-chromebooks_20.html&lt;/a&gt;&lt;/h6&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=304724&amp;bid=749373&amp;PHS=304724749373&amp;rssimage=1&amp;rsrc=3" border="0"//&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/699154927936492178-1635931941778050123?l=googland-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=oINRivPXn9o:3aILV8djyxE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=oINRivPXn9o:3aILV8djyxE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=oINRivPXn9o:3aILV8djyxE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?i=oINRivPXn9o:3aILV8djyxE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/googland-dev?a=oINRivPXn9o:3aILV8djyxE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/googland-dev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/googland-dev/~4/oINRivPXn9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googland-dev.blogspot.com/feeds/1635931941778050123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=699154927936492178&amp;postID=1635931941778050123" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1635931941778050123" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/699154927936492178/posts/default/1635931941778050123" /><link rel="alternate" type="text/html" href="http://googland-dev.blogspot.com/2012/01/gd-dev-channel-update-for-chromebooks_21.html" title="[Gd] Dev Channel Update for Chromebooks" /><author><name>X</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry></feed>

