<?xml version="1.0" encoding="ISO-8859-1"?>
<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
<title type="text">Google Code: News</title>

<link type="html" href="http://code.google.com/" />
<updated>2009-11-09T22:01:11</updated>
<id>tag:code.google.com,news</id>

<link rel="self" href="http://feeds.feedburner.com/GoogleCodeNews" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
<title>Use compression to make the web faster</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/XSdHll5Kqg0/use-compression-to-make-web-faster.html" />
<id>tag:blogger.com,1999:blog-11300808.post-3637099642721036094</id>
<published>2009-11-09T12:00:00.000-08:00</published>
<updated>2009-11-09T21:20:21.199-08:00</updated>
<summary type="html">Every day, more than 99 human years are wasted because of uncompressed content . Although support for compression is a standard feature of all modern browsers, there are...</summary>
<content type="html">Every day, more than 99 human years are wasted because of &lt;a href="http://en.wikipedia.org/wiki/File_compression" id="mb4g" target="_blank" title="uncompressed content"&gt;uncompressed content&lt;/a&gt;. Although support for compression is a standard feature of all modern browsers, there are still many cases in which users of these browsers do not receive compressed content. This wastes bandwidth and slows down users' interactions with web pages.&lt;br /&gt;&lt;br /&gt;Uncompressed content hurts all users. For bandwidth-constrained users, it takes longer just to transfer the additional bits. For broadband connections, even though the bits are transferred quickly, it takes several round trips between client and server before the two can communicate at the highest possible speed.&amp;nbsp; For these users the number of round trips is the larger factor in determining the time required to load a web page. Even for well-connected users these round trips often take tens of milliseconds and sometimes well over one hundred milliseconds.&lt;br /&gt;&lt;br /&gt;In Steve Souder's book&amp;nbsp;&lt;i&gt;&lt;a href="http://www.stevesouders.com/blog/2009/04/23/even-faster-web-sites/" id="mwy1" target="_blank" title="Even Faster Web Sites"&gt;Even Faster Web Sites&lt;/a&gt;&lt;/i&gt;, Tony Gentilcore presents data showing the page load time increase with compression disabled.&amp;nbsp; We've reproduced the results for three highest ranked sites from the Alexa top 100 with permission here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTLbNKnhlI/AAAAAAAAC10/SEAqXE4YcDY/s1600-h/compresssion1.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5401165521375168082" src="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTLbNKnhlI/AAAAAAAAC10/SEAqXE4YcDY/s400/compresssion1.png" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 500px; height: 110px; border: 0;" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;font size="1"&gt;Data, with permission, from Steve Souders, "Chapter 9: Going Beyond Gzipping," in &lt;i&gt;&lt;a href="http://www.stevesouders.com/blog/2009/04/23/even-faster-web-sites/" id="s7eq" target="_blank" title="Even Faster Web Sites"&gt;Even Faster Web Sites&lt;/a&gt; &lt;/i&gt;(Sebastapol, CA: O'Reilly, 2009), 122.&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;The data from Google's web search logs show that the average page load time for users getting uncompressed content is 2.0 seconds, whereas the time for users getting compressed content is 1.6 seconds.&amp;nbsp; In a randomized experiment where we forced compression for some users who would otherwise not get compressed content, we measured a latency improvement of 300ms.&amp;nbsp; While this experiment did not capture the full 0.4 second difference, that is probably because users getting forced compression have older computers and older software.&lt;br /&gt;&lt;br /&gt;We have found that there are 4 major reasons why users do not get compressed content: anti-virus software, browser bugs, web proxies, and misconfigured web servers.&amp;nbsp; The first three modify the &lt;a href="http://en.wikipedia.org/wiki/HTTP_request#Request_message" id="i83q" target="_blank" title="web request"&gt;web request&lt;/a&gt; so that the web server does not know that the browser can uncompress content. Specifically, they remove or mangle the Accept-Encoding header that is normally sent with every request.&lt;br /&gt;&lt;br /&gt;Anti-virus software may try to minimize CPU operations by intercepting and altering requests so that web servers send back uncompressed content.&amp;nbsp; But if the CPU is not the bottleneck, the software is not doing users any favors.&amp;nbsp; Some popular antivirus programs interfere with compression.&amp;nbsp; Users can check if their anti-virus software is interfering with compression by visiting the&amp;nbsp;&lt;a href="http://www.browserscope.org/network/test?test_key=gzip" id="dbh7" title="brower compression test page"&gt;browser compression test page&lt;/a&gt; at Browerscope.org.&lt;br /&gt;&lt;br /&gt;Internet Explorer 6 removes the Accept-Encoding request header when it sends requests via a proxy that only supports&amp;nbsp; HTTP 1.0 requests.&amp;nbsp; The table below, generated from Google's web search logs, shows that IE 6 represents 36% of all search results that are sent without compression.&amp;nbsp; This number is far higher than the percentage of people using IE 6.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTL2BJf_QI/AAAAAAAAC18/hxbW9EVp-8o/s1600-h/compression2.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5401165982005722370" src="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTL2BJf_QI/AAAAAAAAC18/hxbW9EVp-8o/s400/compression2.png" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 200px; border: 0;" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;font size="1"&gt;Data from Google Web Search Logs&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;There are a handful of ISPs, &amp;nbsp;where the percentage of uncompressed content is over 95%.&amp;nbsp; One likely hypothesis is that either an ISP or a corporate proxy removes or mangles the Accept-Encoding header.&amp;nbsp; As with anti-virus software, a user who suspects an ISP is interfering with compression should visit the &lt;a href="http://www.browserscope.org/network/tests/gzip" id="ecuz" title="brower compression test page"&gt;brower compression test page&lt;/a&gt; at Browerscope.org.&lt;br /&gt;&lt;br /&gt;Finally, in many cases, users are not getting compressed content because the websites they visit are not compressing their content.&amp;nbsp; The following table shows a few popular websites that do not compress all of their content. If these websites were to compress their content, they could decrease the page load times by hundreds of milliseconds for the average user, and even more for users on modem connections.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EuCTzLdp3vE/SvTMrfWT0fI/AAAAAAAAC2E/oeqUJl1Ts0A/s1600-h/compression3.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5401166900645581298" src="http://3.bp.blogspot.com/_EuCTzLdp3vE/SvTMrfWT0fI/AAAAAAAAC2E/oeqUJl1Ts0A/s400/compression3.png" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 66px; border: 0;" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;font size="1"&gt;&lt;i&gt;Data generated using &lt;a href="http://code.google.com/speed/page-speed/" id="krpp" title="PageSpeed"&gt;Page Speed&lt;/a&gt;&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;To reduce uncompressed content, we all need to work together.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Corporate IT departments and individual users can upgrade their browsers, especially if they are using IE 6 with a proxy. Using the latest version of&amp;nbsp;&lt;a href="http://www.mozilla.com/en-US/firefox/upgrade.html" id="uwkg" target="_blank" title="Firefox"&gt;Firefox&lt;/a&gt;, &lt;a href="http://ie8.msn.com/" target="_blank" title="MSIE"&gt;Internet Explorer&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.opera.com/" id="m-d9" target="_blank" title="Opera"&gt;Opera&lt;/a&gt;, &lt;a href="http://www.apple.com/safari/" id="pg0m" target="_blank" title="Safari"&gt;Safari&lt;/a&gt;, or &lt;a href="http://www.google.com/chrome" target="_blank" title="Chrome"&gt;Google Chrome&lt;/a&gt; will increase the chances of getting compressed content. &amp;nbsp;A recent editorial in &lt;a href="http://www.spectrum.ieee.org/telecom/internet/we-come-to-bury-ie6" id="a7oz" target="_blank" title="IEEE"&gt;IEEE Spectrum&lt;/a&gt;&amp;nbsp;lists additional reasons - besides compression - for upgrading from IE6.&lt;/li&gt;&lt;li&gt;Anti-virus software vendors can start handling compression properly and would need to stop removing or mangling the Accept-Encoding header in upcoming releases of their software.&lt;/li&gt;&lt;li&gt;ISPs that use an HTTP proxy which strips or mangles the Accept-Encoding header can upgrade, reconfigure or install a better proxy which doesn't prevent their users from getting compressed content.&lt;/li&gt;&lt;li&gt;Webmasters can use &lt;a href="http://code.google.com/speed/page-speed/" id="ydqr" target="_blank" title="PageSpeed"&gt;Page Speed&lt;/a&gt; (or other similar tools) to check that the content of their pages is compressed.&lt;/li&gt;&lt;/ul&gt;For more articles on speeding up the web, check out &lt;a href="http://code.google.com/speed/articles/"&gt;http://code.google.com/speed/articles/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author" style="font-style: italic;"&gt;By Arvind Jain, Engineering Director and Jason Glasgow, Staff Software Engineer&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/11300808-3637099642721036094?l=googlecode.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=sTz5JoUTCyw:mVnZnJEAkm0:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=sTz5JoUTCyw:mVnZnJEAkm0:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?i=sTz5JoUTCyw:mVnZnJEAkm0:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/Dcni/~4/sTz5JoUTCyw" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/XSdHll5Kqg0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/blogspot/Dcni/~3/sTz5JoUTCyw/use-compression-to-make-web-faster.html</feedburner:origLink></entry>

<entry>
<title>Announcing the Worldwide Ning Appathon Competition</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/DIHWa_vMh8I/announcing-worldwide-ning-appathon.html" />
<id>tag:blogger.com,1999:blog-3767917694929724035.post-4096054624152343262</id>
<published>2009-11-06T08:28:00.000-08:00</published>
<updated>2009-11-06T08:34:29.813-08:00</updated>
<summary type="html">Let the games begin! At last night's Ning Appathon kickoff event at the Ning offices in Palo Alto, Ning started a week-long worldwide app development competition for the...</summary>
<content type="html">Let the games begin! At last night's Ning Appathon kickoff event at the Ning offices in Palo Alto, Ning started a week-long worldwide app development competition for the recently launched &lt;a href="http://developer.ning.com/ningapps"&gt;Ning Apps&lt;/a&gt; platform.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHAT:&lt;/strong&gt; The Ning Appathon is a week-long OpenSocial development competition with prizes for both original and ported applications. Judges include Ning Chairman and Co-founder &lt;a href="http://blog.pmarca.com/"&gt;Marc Andreessen&lt;/a&gt;, &lt;em&gt;Wired&lt;/em&gt; magazine Editor-in-Chief &lt;a href="http://www.diydrones.com/"&gt;Chris Anderson&lt;/a&gt; and Managing Director of &lt;em&gt;building43&lt;/em&gt; &lt;a href="http://scobleizer.com/"&gt;Robert Scoble&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHERE:&lt;/strong&gt; The competition is open to participants worldwide. Visit the &lt;a href="http://developer.ning.com/"&gt;Ning Developer Network&lt;/a&gt; for details and Ning Apps documentation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHEN: &lt;/strong&gt;The competition began at our kickoff event on November 5th. &lt;strong&gt;All entries must be submitted via &lt;a href="http://developer.ning.com/appathon"&gt;http://developer.ning.com/appathon&lt;/a&gt; by 10 p.m. Pacific on Thursday, November 12th.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PRIZES:&lt;/strong&gt; The Grand Prize for Best Original App is $5,000 (US). The Grand Prize for Best Ported App is $4,000 (US). Two Original App and Ported App finalists (four total) will each receive $500 (US). All six winners will also receive prominent editorial placement in the Ning Apps directory.&lt;br /&gt;&lt;br /&gt;Please visit the &lt;a href="http://developer.ning.com/"&gt;Ning Developer Network&lt;/a&gt; for more information. Good luck!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Kyle Ford, Director of Partner Design &amp;amp; Development, Ning&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/3767917694929724035-4096054624152343262?l=blog.opensocial.org" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fJ5SDk9SPo4:dHXTogw-c8E:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fJ5SDk9SPo4:dHXTogw-c8E:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=fJ5SDk9SPo4:dHXTogw-c8E:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/fJ5SDk9SPo4" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/DIHWa_vMh8I" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/fJ5SDk9SPo4/announcing-worldwide-ning-appathon.html</feedburner:origLink></entry>

<entry>
<title>ADC 2 Round 2 Voting Open</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/R8tjpkIzGjg/adc-2-round-2-voting-open.html" />
<id>tag:blogger.com,1999:blog-6755709643044947179.post-7664005808214560319</id>
<published>2009-11-05T21:15:00.000-08:00</published>
<updated>2009-11-05T21:16:41.152-08:00</updated>
<summary type="html">The results from ADC 2 Round 1 are now tabulated and verified. With the top 200 applications identified, it's time to begin the final round judging. Be sure...</summary>
<content type="html">&lt;p&gt;&lt;img align="left" src="http://1.bp.blogspot.com/_8qPyDn7SSew/SrujUM53ojI/AAAAAAAAAAM/yIUzCeuXcP4/s320/icon.png" /&gt;The results from ADC 2 Round 1 are now tabulated and verified. With the &lt;a href="http://code.google.com/android/adc/adc2_top200.html"&gt;top 200 applications&lt;/a&gt; identified, it's time to begin the final round judging. Be sure to download the ADC 2 judging application, or update your existing application, and help us select the final winners!&lt;/p&gt;&lt;p&gt;For the final round, both users and a Google-selected panel of industry judges will provide votes to determine the final winners. Prizes will be distributed to the top 3 entrants in each of the 10 categories, and the top 3 overall entrants will receive additional prizes. Please see our &lt;a href="http://code.google.com/android/adc/"&gt;reference page for full challenge information&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Your vote is critical! We will keep voting open until we have received sufficient votes for all of the applications. We encourage you to download the ADC 2 judging application and evaluate entrants for yourself.&lt;/p&gt;&lt;p&gt;Download &lt;i&gt;Android Developer Challenge 2:&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=230x230&amp;amp;chl=http%3A%2F%2Fmarket.android.com%2Fsearch%3Fq%3Dpname%3Acom.google.android.challenge" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/6755709643044947179-7664005808214560319?l=android-developers.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=J0u8F4frjYA:3wGAaPtXvqo:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=J0u8F4frjYA:3wGAaPtXvqo:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=J0u8F4frjYA:3wGAaPtXvqo:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/J0u8F4frjYA" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/R8tjpkIzGjg" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/blogspot/hsDu/~3/J0u8F4frjYA/adc-2-round-2-voting-open.html</feedburner:origLink></entry>

<entry>
<title>Audrey Roy Wins the App Engine + Twilio Developer Contest</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/n4OGy0AK7Bo/audrey-roy-wins-app-engine-twilio.html" />
<id>tag:blogger.com,1999:blog-8501956666581132164.post-8444605373238202162</id>
<published>2009-11-05T18:03:00.000-08:00</published>
<updated>2009-11-05T18:21:38.637-08:00</updated>
<summary type="html">Congratulations to Audrey Roy -- her " Price It By Phone " application won the Google App Engine + Twilio developer contest that ran from September 21st to...</summary>
<content type="html">&lt;a href="http://1.bp.blogspot.com/_dLfQMJsmsaI/SvOH7cdymPI/AAAAAAAAADI/EMu0kmdhvNA/s1600-h/audrey-roy-1.jpg"&gt;&lt;img alt="Audrey Roy" border="0" id="BLOGGER_PHOTO_ID_5400809833470531826" src="http://1.bp.blogspot.com/_dLfQMJsmsaI/SvOH7cdymPI/AAAAAAAAADI/EMu0kmdhvNA/s320/audrey-roy-1.jpg" style="cursor: pointer; cursor: hand; width: 132px; height: 132px;" /&gt;&lt;/a&gt;
&lt;p&gt;Congratulations to Audrey Roy -- her "&lt;a href="http://price-it.appspot.com/"&gt;Price It By Phone&lt;/a&gt;" application won the Google App Engine + &lt;a href="http://www.twilio.com/"&gt;Twilio&lt;/a&gt; &lt;a href="http://contests.twilio.com/"&gt;developer contest&lt;/a&gt; that ran from September 21st to October 4th.  Audrey will receive $1000 in Google App Engine credit, and a Dell Netbook from Twilio.&lt;/p&gt;&lt;p&gt;Audrey hacked together her contest submission in under 48 hours after going to an art museum and discovering that the $60 box she wanted was only $37 on Amazon.com.  She used the &lt;a href="https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html"&gt;Amazon Product Advertising API&lt;/a&gt; to look up the best used and new prices for books by ISBN number, using any touch tone phone.&lt;/p&gt;&lt;p&gt;Look up Amazon.com book prices by calling (877) 265-8137. Enter the book's 10-digit ISBN number after the prompt.  The voice will tell you Amazon.com's lowest new and used prices for the book.  Then, to see the list of books that you've already price-checked, with links to their Amazon detail pages, enter your phone number at &lt;a href="http://price-it.appspot.com/"&gt;http://price-it.appspot.com&lt;/a&gt;.&lt;/p&gt;
&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bLxs36gW0oA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed height="340" src="http://www.youtube.com/v/bLxs36gW0oA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;You can find &lt;a href="http://contests.twilio.com/2009/11/twilio-google-app-engine.html"&gt;an interview of Audrey on Twilio's blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Thank you to everyone who participated in the contest.&lt;/p&gt;&lt;p&gt;Twilio runs &lt;a href="http://contests.twilio.com/"&gt;weekly developer contests&lt;/a&gt; to encourage developers to explore the many use cases, technologies, and industries where voice applications can provide useful solutions.  They announce a new category each Monday along with the previous week's winner.  This week's category is "Twilio for Salesforce, with Appirio" and the deadline is midnight on November 19th.&lt;/p&gt;&lt;p&gt;Questions?  Drop us a line at help@twilio.com&lt;/p&gt;&lt;span class="byline-author"&gt;Guest Post by Danielle Morrill, Director of Marketing, Twilio&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/8501956666581132164-8444605373238202162?l=googleappengine.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/3lXAaEjgrM4" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/n4OGy0AK7Bo" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/3lXAaEjgrM4/audrey-roy-wins-app-engine-twilio.html</feedburner:origLink></entry>

<entry>
<title>Introducing Closure Tools</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/UQKT9DgFVnw/introducing-closure-tools.html" />
<id>tag:blogger.com,1999:blog-11300808.post-3771887164161872998</id>
<published>2009-11-05T10:30:00.000-08:00</published>
<updated>2009-11-05T11:11:58.937-08:00</updated>
<summary type="html">Millions of Google users worldwide use JavaScript-intensive applications such as Gmail , Google Docs , and Google Maps . Like developers everywhere, Googlers want great web apps to...</summary>
<content type="html">&lt;a href="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s1600-h/closure.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400432335439902754" src="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s200/closure.png" style="float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 72px; height: 72px; border: 0;" /&gt;&lt;/a&gt;Millions of Google users worldwide use JavaScript-intensive applications such as &lt;a href="http://mail.google.com/" id="nlv9" title="Gmail"&gt;Gmail&lt;/a&gt;, &lt;a href="http://docs.google.com/" id="zq_3" title="Google Docs"&gt;Google Docs&lt;/a&gt;, and &lt;a href="http://maps.google.com/" id="lh23" title="Google Maps"&gt;Google Maps&lt;/a&gt;. Like developers everywhere, Googlers want great web apps to be easier to create, so we've built many tools to help us develop these (and many other) apps. We're happy to announce the open sourcing of these tools, and proud to make them available to the web development community.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Compiler&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/closure/compiler" title="Closure Compiler"&gt;Closure Compiler&lt;/a&gt; is a JavaScript optimizer that compiles web apps down into compact, high-performance JavaScript code. The compiler removes dead code, then rewrites and minimizes what's left so that it will run fast on browsers' JavaScript engines. The compiler also checks syntax, variable references, and types, and warns about other common JavaScript pitfalls. These checks and optimizations help you write apps that are less buggy and easier to maintain. You can use the compiler with &lt;a href="http://code.google.com/closure/compiler/docs/inspector.html" title="Closure Inspector"&gt;Closure Inspector&lt;/a&gt;, a Firebug extension that makes debugging the obfuscated code almost as easy as debugging the human-readable source. &lt;br /&gt;&lt;br /&gt;Because JavaScript developers are a diverse bunch, we've set up a number of ways to run the Closure Compiler. We've open-sourced a&amp;nbsp;&lt;a href="http://code.google.com/p/closure-compiler/downloads/list" title="command-line tool"&gt;command-line tool&lt;/a&gt;. We've created a&amp;nbsp;&lt;a href="http://closure-compiler.appspot.com/" title="web application"&gt;web application&lt;/a&gt;&amp;nbsp;that accepts your code for compilation through a text box or a RESTful API. We are also offering a Firefox extension that you can use with &lt;a href="http://code.google.com/speed/page-speed/download.html" title="Page Speed"&gt;Page Speed&lt;/a&gt; to conveniently see the performance benefits for your web pages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Library&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/closure/library" id="qnzg" title="Closure Library"&gt;Closure Library&lt;/a&gt;&amp;nbsp;is a broad, well-tested, modular, and cross-browser JavaScript library. Web developers can pull just what they need from a wide set of reusable UI widgets and controls, as well as lower-level utilities for the DOM, server communication, animation, data structures, unit testing, rich-text editing, and much, much more. (Seriously. Check&amp;nbsp;&lt;a href="http://closure-library.googlecode.com/svn/trunk/closure/goog/docs/index.html" id="q11v" title="the docs"&gt;the docs&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;JavaScript lacks a standard class library like the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Standard_Template_Library" id="novt" title="STL"&gt;STL&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Java_Development_Kit" id="lrab" title="JDK"&gt;JDK&lt;/a&gt;. At Google, Closure Library serves as our "standard JavaScript library" for creating large, complex web applications. It's purposely server-agnostic and intended for use with the Closure Compiler. You can make your project big and complex (with namespacing and type checking), yet small and fast over the wire (with compilation). The Closure Library provides clean utilities for common tasks so that you spend your time writing your app rather than writing utilities and browser abstractions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Templates&lt;/b&gt; &lt;br /&gt;&lt;a href="http://code.google.com/closure/templates" id="j_2h" title="Closure Templates"&gt;Closure Templates&lt;/a&gt;&amp;nbsp;grew out of a desire for web templates that are precompiled to efficient JavaScript. &amp;nbsp;Closure Templates have a simple syntax that is natural for programmers. &amp;nbsp;Unlike traditional templating systems, you can think of Closure Templates as small components that you compose to form your user interface, instead of having to create one big template per page.&lt;br /&gt;&lt;br /&gt;Closure Templates are implemented for both JavaScript and Java, so you can use the same templates both on the server and client side.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Closure Compiler, Closure Library, Closure Templates, and Closure Inspector all started as &lt;a href="http://googleblog.blogspot.com/2006/05/googles-20-percent-time-in-action.html" id="ghae" title="20% projects"&gt;20% projects&lt;/a&gt;&amp;nbsp;and hundreds of Googlers have contributed thousands of patches. Today, each Closure Tool has grown to be a key part of the JavaScript infrastructure behind web apps at Google. &amp;nbsp;That's why we're particularly excited (and humbled) to open source them to encourage and support web development outside Google. We want to hear what you think, but more importantly, we want to see what you make. So have at it and have fun!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author" style="font-style: italic;"&gt;By the Closure Tools team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/11300808-3771887164161872998?l=googlecode.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=hknf8RP9JBQ:rf9_bL6k3j8:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=hknf8RP9JBQ:rf9_bL6k3j8:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?i=hknf8RP9JBQ:rf9_bL6k3j8:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/Dcni/~4/hknf8RP9JBQ" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/UQKT9DgFVnw" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/blogspot/Dcni/~3/hknf8RP9JBQ/introducing-closure-tools.html</feedburner:origLink></entry>

<entry>
<title>London Open Source Jam 14</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/X4T-Jg3vuU4/london-open-source-jam-14.html" />
<id>tag:blogger.com,1999:blog-8698702854482141883.post-926463678034569826</id>
<published>2009-11-04T16:31:00.000-08:00</published>
<updated>2009-11-04T16:46:57.668-08:00</updated>
<summary type="html">We held the 14th Google London Open Source Jam at our Victoria HQ on September 24th. The topic this time was "Video and Sound", and our Jammers had...</summary>
<content type="html">We held the &lt;a href="http://osjam.appspot.com/jam/"&gt;14th&lt;/a&gt; Google London Open Source Jam at our Victoria HQ on September 24th. The topic this time was "Video and Sound", and our Jammers had some real treats to share.&lt;br /&gt;&lt;br /&gt;Steven Goodwin told us how his open source &lt;a href="http://www.sgxengine.com/"&gt;SGX 3D graphics engine&lt;/a&gt; deals with three key problems of other computer game engines. On a similar theme, Themis Bourdenas discussed the &lt;a href="http://www.doc.ic.ac.uk/~tbourden/vine/"&gt;vine engine&lt;/a&gt;, a modular game engine for 2d and 3d games.&lt;br /&gt;&lt;br /&gt;Borys Musielak presented &lt;a href="http://filmaster.com/"&gt;Filmaster&lt;/a&gt;, an open source film recommendation engine. Neil Harris told us about an attempt by the &lt;a href="http://www.kendra.org.uk/"&gt;Kendra Initiative&lt;/a&gt; to foster a common meta data format for content discovery on the semantic web.&lt;br /&gt;&lt;br /&gt;In an Open Source Jam first, Jagannathan gave a performance of his &lt;a href="http://code.google.com/p/din/"&gt;Din&lt;/a&gt; software musical instrument. Din is designed for playing live Indian music, is based on Bezier curves and really has to be heard to be fully appreciated.&lt;br /&gt;&lt;br /&gt;Sam Mbale gave us an update on his projects to help Africans build online communities using open source. &lt;a href="http://softwareas.com/"&gt;Mike Mahemoff&lt;/a&gt; discussed some web tools frameworks for intranets, bookmarklets and trails in &lt;a href="http://scrumptious.tv/"&gt;Scrumptious&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The UK government has plans to introduce a law to allow content-owners to force ISPs to disconnect the internet connection of users suspected of file sharing, without any proof. Glyn Wintel gave us an overview of how the proposed law will affect us, how the &lt;a href="http://www.openrightsgroup.org/"&gt;Open Rights Group&lt;/a&gt; is campaigning against it, and how we can help.&lt;br /&gt;&lt;br /&gt;Douglas Squirrel talked about the difficulty blind people have in finding information on websites, and presented &lt;a href="http://blindpages.com/"&gt;BlindPages.com&lt;/a&gt; - a new project to reformat the web in a screen-reader friendly way. He also demoed a prototype telephone interface to the service.&lt;br /&gt;&lt;br /&gt;Much pizza was eaten and free beer drunk, and we all ended up in the pub next door to continue our discussions. A big thank you to all our speakers and attendees, and we hope to see you at the next Jam!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author" style="font-style: italic;"&gt;By Matt Godbolt, Mobile Engineering&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/8698702854482141883-926463678034569826?l=google-opensource.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZBr7xqycxD8:AbeYTNljWM8:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZBr7xqycxD8:AbeYTNljWM8:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=ZBr7xqycxD8:AbeYTNljWM8:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/ZBr7xqycxD8" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/X4T-Jg3vuU4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/ZBr7xqycxD8/london-open-source-jam-14.html</feedburner:origLink></entry>

<entry>
<title>Upcoming US Events with Google Wave Presentations</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/9iQpWW_Ms-4/upcoming-us-events-with-google-wave.html" />
<id>tag:blogger.com,1999:blog-7938035922388048219.post-3376960696328429146</id>
<published>2009-11-04T15:26:00.000-08:00</published>
<updated>2009-11-04T15:31:00.620-08:00</updated>
<summary type="html">Similiar to the Google Wave European tour , we're stopping by several developer events in the states: LISA 2009 Nov. 1-6, 2009, in Baltimore MD Nov. 4 (today...</summary>
<content type="html">&lt;p&gt;Similiar to the &lt;a href="http://googlewavedev.blogspot.com/2009/10/google-wave-is-headed-to-europe-join-us.html"&gt;Google Wave European tour&lt;/a&gt;, we're stopping by several developer events in the states: &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.usenix.org/event/lisa09/"&gt;LISA 2009&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Nov. 1-6, 2009, in Baltimore MD&lt;/li&gt;&lt;li&gt;Nov. 4 (today!) - "Google Wave Federation Protocol" with Joe Gregorio&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.sfjava.org/calendar/11573532/?eventId=11573532&amp;amp;action=detail"&gt;SF Java User Group&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Nov. 10, 2009, in San Francisco, CA&lt;/li&gt;&lt;li&gt;"Google Wave APIs: Now &amp;amp; Beyond" with Marcel Prasetya&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.salesforce.com/dreamforce/DF09/site/"&gt;Dreamforce&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Nov. 17-20, 2009, in San Francisco, CA&lt;/li&gt;&lt;li&gt;Nov. 19 - "Ready to Ride the Google Wave?" with Dan Peterson&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://massgtug.gtugs.org/news/wave-hackaton"&gt;Massachusetts GTUG Wave Hackathon&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Nov. 21, 2009, in Boston, MA&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;All of these events are still open for registration - so grab a seat while you still can. See you there!&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;Posted by Pamela Fox, Developer Relations&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/7938035922388048219-3376960696328429146?l=googlewavedev.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleWaveDeveloperBlog/~4/zF52DvLiDzY" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/9iQpWW_Ms-4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/GoogleWaveDeveloperBlog/~3/zF52DvLiDzY/upcoming-us-events-with-google-wave.html</feedburner:origLink></entry>

<entry>
<title>Final Decommission Notice for the Legacy YouTube API</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/l0huiYZ-yAY/final-decommission-notice-for-legacy.html" />
<id>tag:blogger.com,1999:blog-2443724041307041823.post-7803136323596501160</id>
<published>2009-11-04T13:03:00.000-08:00</published>
<updated>2009-11-04T13:05:03.984-08:00</updated>
<summary type="html">It's been several years since we've released the Google Data-based YouTube API , and in that time we've been encouraging developers who used the legacy YouTube API to...</summary>
<content type="html">&lt;span class="Apple-style-span"&gt;&lt;div&gt;It's been several years since we've released the &lt;a href="http://code.google.com/apis/youtube/getting_started.html#data_api" id="te:6" target="_blank" title="GData-based YouTube API"&gt;Google Data-based YouTube API&lt;/a&gt;, and in that time we've been encouraging developers who used the legacy YouTube API to upgrade before we pull the metaphoric plug on that older version. At this point, all but a handful of holdouts have upgraded, and as of November 11, 2009, the legacy YouTube API will cease operation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're using one of our &lt;a href="http://code.google.com/apis/youtube/code.html" id="vsbi" target="_blank" title="YouTube API client libraries"&gt;YouTube API client libraries&lt;/a&gt;, then you're definitely making use of the modern Google Data YouTube API. If you're manually making HTTP requests to a URL whose hostname contains &lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;gdata.youtube.com&lt;/span&gt;, then you're also good to go. If you think you might still be using the legacy YouTube API but aren't sure, take a look at some of the example legacy API calls in this &lt;a href="http://code.google.com/apis/youtube/migration.html" id="i4.-" target="_blank" title="migration guide"&gt;migration guide&lt;/a&gt;. If it turns out that you are still using the older API, then the migration guide will give you the information you need to upgrade &#x2013; and be sure to do so before November 11!&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/2443724041307041823-7803136323596501160?l=apiblog.youtube.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/Exju6MBKS8s" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/l0huiYZ-yAY" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/YoutubeApiBlog/~3/Exju6MBKS8s/final-decommission-notice-for-legacy.html</feedburner:origLink></entry>

<entry>
<title>New insights into web application performance</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/lgVK_Z55mvc/new-insights-into-web-application.html" />
<id>tag:blogger.com,1999:blog-28098389.post-4775442492850243785</id>
<published>2009-11-04T10:23:00.000-08:00</published>
<updated>2009-11-04T10:28:59.468-08:00</updated>
<summary type="html">I've sometimes thought that optimizing web applications is as much a science as dowsing. (No offense intended, dowsers of the world &amp;mdash; but you have to admit it's...</summary>
<content type="html">&lt;p&gt;
I've sometimes thought that optimizing web applications is as much a science as dowsing. (No offense intended, dowsers of the world &amp;mdash; but you have to admit it's a hard thing to explain even when it does work out.) Even when you are completely willing to invest time and energy into optimizing an application, how do you actually go about it?
&lt;/p&gt;

&lt;p&gt;
Our team, along with everyone else in the world who cares about web application performance, has had to essentially guess at where time goes inside the browser. We've spent countless hours debating each others' wild-eyed speculations as to the true sources of latency afflicting a wide variety of applications. Indeed, web apps can be slow for all sorts of opaque and unintuitive reasons. Don't be fooled into thinking that bloated, slow JavaScript is the only culprit. We've seen pathological situations in which a few seemingly insignificant CSS tweaks can improve performance by a factor of 5 or more. Another dark gem: rearranging a mere few lines of JavaScript that were inadvertently calling DOM-related methods in an unfortunate sequence (which caused multiple redundant layouts) turned a life-negating 5 second operation into a sprightly 50 millisecond blink of an eye. That one took 5 days to find the offending 4 lines of JavaScript and then about 3 seconds to actually make the code change. &lt;a href="http://twitter.com/#search?q=%23nowiamwaybehindingooglereader"&gt;#nowiamwaybehindingooglereader&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
We couldn't take it anymore. We decided we had to find a way to transform the witchcraft of optimizing web apps into a legitimate engineering task, once and for all.
&lt;/p&gt;

&lt;p&gt;
My team began working on a series of changes to WebKit and Chrome to collect precise metrics on where time is, in fact, going within the browser. When, exactly, does layout occur? How long does each layout take? Can layout happen synchronously while my JavaScript is executing, or is it deferred? How much time is spent on CSS selector matching? How long does parsing (versus executing) JavaScript take? Does the process of actually painting pixels on the screen take much time? We instrumented the browser way deep down inside to produce a stream of such metrics, being very careful to keep observer effects to a minimum.
&lt;/p&gt;

&lt;p&gt;
Happily, we've managed to land these changes into both WebKit and Chrome over the last several weeks. Soon you'll see the first examples of tools that make these metrics available to web developers using WebKit-based browsers. Of course, we have a lot more instrumentation planned, but the ball is really rolling now thanks to lots of help from the friendly folks on the WebKit and Chrome teams (especially Pavel Feldman and Timothy Hatcher). We've gained many new insights, some of which I mentioned in my &lt;a href="http://code.google.com/events/io/2009/sessions/MeasureMillisecondsPerformanceTipsWebToolkit.html"&gt;Measure in Milliseconds&lt;/a&gt; talk at Google I/O earlier this year. When you see these metrics yourself for your own web apps, you'll likely be surprised &amp;mdash; and you'll almost certainly wonder how anyone tried to write high-performance code without this sort of insight. Be sure to keep an eye on the &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;Chrome Dev Channel&lt;/a&gt; and the &lt;a href="http://nightly.webkit.org/"&gt;WebKit nightly builds&lt;/a&gt; for new Inspector features based on our work.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/28098389-4775442492850243785?l=googlewebtoolkit.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/NWLT?a=12ZBLwGiW8g:r1ZVMg9Ekyg:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/NWLT?a=12ZBLwGiW8g:r1ZVMg9Ekyg:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/NWLT?i=12ZBLwGiW8g:r1ZVMg9Ekyg:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/NWLT/~4/12ZBLwGiW8g" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/lgVK_Z55mvc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/blogspot/NWLT/~3/12ZBLwGiW8g/new-insights-into-web-application.html</feedburner:origLink></entry>

<entry>
<title>New personalization features in Google Friend Connect</title>
<link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/VJqoP9_R78c/new-personalization-features-in-google.html" />
<id>tag:blogger.com,1999:blog-11300808.post-1864423490001668537</id>
<published>2009-11-04T08:50:00.000-08:00</published>
<updated>2009-11-04T08:51:30.632-08:00</updated>
<summary type="html">Today, we're excited to announce several new features for Google Friend Connect that make it possible for website owners to get to know their users, encourage users to...</summary>
<content type="html">Today, we're excited to announce several new features for &lt;a href="http://www.google.com/friendconnect" id="fuwf" title="Google Friend Connect"&gt;Google Friend Connect&lt;/a&gt; that make it possible for website owners to get to know their users, encourage users to get to know each other, and match their site content (including Google ads) to visitors' interests. Check out the &lt;a href="http://googlesocialweb.blogspot.com/2009/11/google-friend-connect-now-more.html"&gt;Google Social Web Blog&lt;/a&gt; for an overview of these new features.&lt;br /&gt;&lt;br /&gt;We also want to point out that there are APIs for developers who want to play with the interests data programmatically. With the new interest data described on the Social Web Blog, developers can write custom polls and access the interests data directly.&amp;nbsp;&lt;a href="http://code.google.com/apis/friendconnect/interests.html" id="hqnx" title="Friend Connect provides API level access"&gt;Friend Connect provides API level access&lt;/a&gt; to both individual interests information as well as aggregate information for all users of a site. Interests information can be added programmatically for the signed-in user or via the poll gadget, and it can be accessed via both the &lt;a href="http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#profile" id="ehrf" title="JavaScript API"&gt;JavaScript API&lt;/a&gt; and the &lt;a href="http://code.google.com/apis/friendconnect/opensocial_rest_rpc.html#endpoints" id="ndw4" title="OpenSocial REST API"&gt;OpenSocial REST API&lt;/a&gt;. The &lt;a href="http://www.ossamples.com/guitar-universe/" id="olt1" title="Guitar Universe example site"&gt;Guitar Universe example site&lt;/a&gt; should give you an idea of some of the things that are possible with this new launch.&lt;br /&gt;&lt;br /&gt;As always, feel free to ask technical questions related to the Friend Connect APIs in the &lt;a href="http://groups.google.com/group/google-friend-connect-developers?pli=1"&gt;developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author" style="font-style: italic;"&gt;By Mussie Shore, Product Manager, Google Friend Connect&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img height="1" src="https://blogger.googleusercontent.com/tracker/11300808-1864423490001668537?l=googlecode.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=vuwrCaSZlIs:F2dR8AZIIVs:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=vuwrCaSZlIs:F2dR8AZIIVs:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?i=vuwrCaSZlIs:F2dR8AZIIVs:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/Dcni/~4/vuwrCaSZlIs" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/VJqoP9_R78c" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://feedproxy.google.com/~r/blogspot/Dcni/~3/vuwrCaSZlIs/new-personalization-features-in-google.html</feedburner:origLink></entry>

</feed>
