<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-8869606213361684992</id><updated>2008-07-18T16:48:32.767-07:00</updated><title type='text'>orkut Developer Blog</title><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default'/><author><name>amarg</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1700752423095819205</id><published>2008-07-18T15:26:00.000-07:00</published><updated>2008-07-18T16:48:32.777-07:00</updated><title type='text'>OpenSocial apps now available to all users</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, orkut team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We've finished our rollout of OpenSocial apps to all orkut users, and we've seen more interest in apps than ever before.  Several apps experienced extremely high usage, but after utilizing the &lt;a href="http://orkutdeveloper.blogspot.com/2008/06/rewriting-returns-to-sandbox.html"&gt;URL rewriter&lt;/a&gt; and other &lt;a href="http://code.google.com/apis/orkut/articles/latency.html"&gt;caching techniques&lt;/a&gt; the load on their servers returned to manageable levels.  During the rollout, we saw over 5 million app installs on orkut and usage of the platform continues to grow.  But we're not done yet...&lt;br /&gt;&lt;br /&gt;In the next few months, we'll be focused on increasing the capabilities of the platform and enabling developers to build better apps.  Among our top priorities are finishing support for OpenSocial v0.8, including the RESTful API, and allowing access to albums and photos by extending the JavaScript API.  Please continue to use the &lt;a href="http://code.google.com/p/opensocial-resources/issues/list"&gt;public issue tracker&lt;/a&gt; to report bugs and star the feature requests that are important to you.&lt;br /&gt;&lt;br /&gt;On behalf of the entire orkut team, I'd like to thank all the developers who have contributed to the apps running on orkut.  Now that your apps can reach the full set of orkut users, we look forward to seeing what you'll build next.&lt;br /&gt;&lt;br /&gt;Happy Coding!</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/opensocial-apps-now-available-to-all.html' title='OpenSocial apps now available to all users'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1700752423095819205/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1700752423095819205'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1700752423095819205'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-8692396690945414236</id><published>2008-07-11T16:55:00.000-07:00</published><updated>2008-07-11T17:07:00.805-07:00</updated><title type='text'>New way of identifying message bundles</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A recent push introduced a subtle but important distinction concerning how message bundles are specified, and your apps need updating to reflect this change.&lt;br /&gt;&lt;br /&gt;Instead of identifying message bundles using language-country combination codes, you must now specify the language code only (pt vs. pt-BR). If you need to distinguish your bundles by country (e.g. U.S. English vs. U.K. English), you can add a 'country' element to your Locale element with the appropriate country code. The &lt;a href="http://code.google.com/p/opensocial-resources/wiki/OrkutLocalization"&gt;article on localization&lt;/a&gt; has more information as well as examples.&lt;br /&gt;&lt;br /&gt;Message bundles for app meta information such as title and description are still identified using language-country combination codes. This is a bug which should be fixed in a future update. In the meantime, you can specify two Locale elements per language as in the set below. Notice that both reference the same bundle:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Locale lang="pt" messages="http://www.example.com/pt_ALL.xml"/&amp;gt;&lt;br /&gt;&amp;lt;Locale lang="pt-BR" messages="http://www.example.com/pt_ALL.xml"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will ensure that both your application text as well as its meta information are displayed correctly.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/new-way-of-identifying-message-bundles.html' title='New way of identifying message bundles'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/8692396690945414236/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8692396690945414236'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8692396690945414236'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15004963690374214326</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-8299305412246695746</id><published>2008-07-09T17:15:00.000-07:00</published><updated>2008-07-09T17:26:59.974-07:00</updated><title type='text'>The final push begins tomorrow</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The big day is almost here! Tomorrow marks the beginning of the final stage of the application roll-out to orkut users, giving you several hours to get your apps in tip-top shape in order to handle the expected traffic increase ahead.&lt;br /&gt;&lt;br /&gt;If you haven't already, it is absolutely imperative that you read the &lt;a href="http://code.google.com/apis/orkut/articles/latency.html"&gt;Latency Tips for orkut&lt;/a&gt;. It presents a number of techniques and best practices that you can take advantage of, even within the next few hours, to get your application up to speed.&lt;br /&gt;&lt;br /&gt;Among the techniques listed is the use of Preload elements in your app spec. Preload elements allow for makeRequest responses to be preloaded while the gadget is rendering. If you use a lot of static makeRequest calls in your application (e.g. retrieving a user's high score or a list of gifts that have been sent from your app), taking advantage of pre-loading can make a big difference in the response time of your application. More information on pre-loading is available &lt;a href="http://code.google.com/apis/orkut/articles/latency.html#preload"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One other technique that you may find useful is automatic URL rewriting. During preprocessing, orkut can automatically replace the URLs for static content (e.g. JavaScript files, style sheets, images, etc.) with proxied URLs, significantly reducing both the load on your servers and the loading time for your users. While rewriting is automatically enabled in the sandbox, you will have to opt-in in www.orkut.com. Instructions on how to do this are provided &lt;a href="http://code.google.com/apis/orkut/articles/latency.html#static"&gt;here&lt;/a&gt;. Make sure to thoroughly test your application if you opt in to rewriting, although you shouldn't run into any problems if you specify absolute URLs to your resources.&lt;br /&gt;&lt;br /&gt;As a final note, please make sure that caching is enabled for your application's resources, particularly images and other large files that your app loads frequently. Due to a caching bug that affected many apps last week, you may have opted out of caching completely. This bug was patched last week, and orkut's caching infrastructure now honors both the Cache-Control and Expires headers returned by your application's host with a minimum refresh rate of five minutes. Please make the necessary changes to your server configuration to set your cache to expire at most once per hour (the default duration if no cache control headers are set). Not only will this take some strain off of your own servers, but your users' experience will improve greatly as a result.&lt;br /&gt;&lt;br /&gt;We'll be monitoring the performance of your applications. If we see your servers buckle under the increased traffic, we will suspend your application by removing it from the directory and user profiles until your host can be updated to accommodate the traffic. We really don't want to do this, so use the next several hours to read the &lt;a href="http://code.google.com/apis/orkut/articles/latency.html"&gt;tips&lt;/a&gt; and get your apps ready.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/final-push-begins-tomorrow.html' title='The final push begins tomorrow'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/8299305412246695746/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8299305412246695746'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8299305412246695746'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15004963690374214326</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-6303224528567671272</id><published>2008-07-07T19:34:00.001-07:00</published><updated>2008-07-07T19:34:49.771-07:00</updated><title type='text'>...and we're back!</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Orkut sandbox is back to normal.&lt;br /&gt;&lt;br /&gt;If you're still experiencing problems, please post in the appropriate thread in the Orkut developer forum.&lt;br /&gt;&lt;br /&gt;Happy coding!</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/and-were-back.html' title='...and we&apos;re back!'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/6303224528567671272/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6303224528567671272'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6303224528567671272'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-7429960294658192972</id><published>2008-07-07T14:27:00.000-07:00</published><updated>2008-07-07T14:37:20.854-07:00</updated><title type='text'>Bad, bad server.  No donut for you</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The sandbox is currently being updated, which is preventing all applications from loading (applications are continuing to load as expected on www.orkut.com). We expect things to return to normal fairly soon and will update the blog when the sandbox is back to its normal self. We apologize for any inconvenience in the meantime.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/bad-bad-server-no-donut-for-you.html' title='Bad, bad server.  No donut for you'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/7429960294658192972/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/7429960294658192972'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/7429960294658192972'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-3555817663954303792</id><published>2008-07-02T10:42:00.000-07:00</published><updated>2008-07-02T10:51:22.683-07:00</updated><title type='text'>Preparing for the final push...</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, orkut team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The orkut team has been hard at work, making improvements to the performance and user experience of the application platform, preparing to complete our launch and enable OpenSocial apps for all users.  We're going to perform this final roll out over the course of a few days, starting on July 10th, to help distribute the expected increase in traffic to your applications. &lt;br /&gt;&lt;br /&gt;If you haven't already, now is the time to implement some of the caching and performance techniques that will help your servers survive this ramp up of new traffic.  Here are a few strategies you should be using:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Render your profile view based on appData, not on data you receive from your server.&lt;/strong&gt;&lt;br /&gt;Profile views make up the lion's share of application renders.  You can drastically reduce the number of requests hitting your server if you store information in appData so that you can render the profile view without pinging your third party server.  It's also much faster to request data from the container - so your app will be the first to load on a user's profile.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Let orkut cache images and other static content for you.&lt;/strong&gt;&lt;br /&gt;You can use &lt;code&gt;getProxyUrl&lt;/code&gt; to fetch a URL for the cached version of a static resource.  Be sure to re-enable &lt;a href="http://orkutdeveloper.blogspot.com/2008/06/rewriting-returns-to-sandbox.html"&gt;URL rewriting&lt;/a&gt; if you previously opted out.  Also, be sure to use Cache-Control headers to maximize the benefits of caching.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Use &amp;lt;Preload&amp;gt; tags to fetch data from your server.&lt;/strong&gt;&lt;br /&gt;You can now send signed requests to your servers before your app is even finished loading&amp;mdash;just add the &lt;code&gt;authz&lt;/code&gt; parameter to your &amp;lt;Preload&amp;gt; tags.  Orkut will also respect the cache headers you include in the response, which can greatly reduce the load on your servers.&lt;br /&gt;&lt;br /&gt;You can find details on these and other best practices for performance in the &lt;a href="http://code.google.com/apis/orkut/articles/latency.html"&gt;Latency Tips for orkut&lt;/a&gt; article.  Also, remember that a large percentage of orkut users speak Portuguese, so check out this &lt;a href="http://code.google.com/p/opensocial-resources/wiki/OrkutLocalization"&gt;article on localization&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/07/preparing-for-final-push.html' title='Preparing for the final push...'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/3555817663954303792/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/3555817663954303792'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/3555817663954303792'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-264350932635245608</id><published>2008-06-26T12:25:00.000-07:00</published><updated>2008-06-26T13:45:26.626-07:00</updated><title type='text'>requestSendMessage now in production</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, orkut team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After several weeks of testing on the sandbox, the &lt;code&gt;opensocial.requestSendMessage&lt;/code&gt; method, which enables users to send messages to other users straight from your application, has made its way to www.orkut.com.&lt;br /&gt;&lt;br /&gt;This method has a quota of 10 invocations per user, per day.  This means that a user can use the send message functionality 10 times per day across all apps.  If a user enters multiple people in the 'to' field, that counts as a single invocation.  Once a user reaches his or her quota, invoking &lt;code&gt;requestSendMessage&lt;/code&gt; will result in a 'limitExceeded' e&lt;span style="font-family: monospace;"&gt;&lt;/span&gt;rror.  If this happens, orkut will notify the user that their message wasn't sent.&lt;br /&gt;&lt;br /&gt;For a recap of how to use this method, refer to &lt;a href="http://orkutdeveloper.blogspot.com/2008/05/new-users-and-new-interactions.html"&gt;this previous post&lt;/a&gt;.  As always, please send us feedback in the &lt;a href="http://groups.google.com/group/opensocial-orkut"&gt;orkut developer forum&lt;/a&gt; and report any issues in the &lt;a href="http://code.google.com/p/opensocial-resources/issues/list"&gt;public issue tracker&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Clarified details around users exceeding their quota.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/06/requestsendmessage-now-in-production.html' title='requestSendMessage now in production'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/264350932635245608/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/264350932635245608'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/264350932635245608'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-8997349844962978915</id><published>2008-06-17T16:49:00.000-07:00</published><updated>2008-06-17T16:52:18.959-07:00</updated><title type='text'>Introducing formal IRC office hours</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of our ongoing effort to offer top-notch support to OpenSocial developers, we're formally introducing reoccurring IRC "office hours." Just point your favorite IRC client to &lt;strong&gt;irc.freenode.net&lt;/strong&gt; and join the &lt;strong&gt;#opensocial&lt;/strong&gt; channel to chat about all things OpenSocial -- container support, the latest and greatest development techniques, upcoming changes to the specification, and more.&lt;br /&gt;&lt;br /&gt;Our formal office hour block will be every Tuesday and Thursday from 1:00 p.m. to 3:00 p.m. PST. During these times, one or more Googlers are guaranteed to be available in the #opensocial channel (look for the nicks &lt;strong&gt;kurrik&lt;/strong&gt;, &lt;strong&gt;jasonacooper&lt;/strong&gt;, &lt;strong&gt;rohitghatol&lt;/strong&gt;, and &lt;strong&gt;api_dwh&lt;/strong&gt;). In addition, we'll try to make ourselves available during other days and times as our schedules permit, so feel free to ping us if you see us.&lt;br /&gt;&lt;br /&gt;Of course, we'll continue to answer questions in the forum as well, so you can choose the support mechanism that works best for you!</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/06/introducing-formal-irc-office-hours.html' title='Introducing formal IRC office hours'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/8997349844962978915/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8997349844962978915'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/8997349844962978915'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1202277076634905609</id><published>2008-06-06T16:07:00.000-07:00</published><updated>2008-07-16T18:52:54.664-07:00</updated><title type='text'>Rewriting returns to the sandbox</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One technique introduced recently to help combat latency is automatic URL rewriting -- during preprocessing, orkut will automatically replace the URLs for static content (e.g. JavaScript files, style sheets, images, etc.) with proxied URLs.&lt;br /&gt;&lt;br /&gt;Yesterday, we pushed a new version of the rewriting mechanism to the sandbox as well as a more granular method of disabling rewriting during testing (when these static resources are likely to be in flux). Once your application is polished and ready for deployment, you should re-enable rewriting so that your app can take advantage of the automatic proxying, which reduces both the load on your servers and the loading time for your users.&lt;br /&gt;&lt;br /&gt;To customize rewriting for your test applications, place the following block in your app spec's ModulePrefs element, replacing the [REGULAR_EXPRESSION] blocks with your custom expressions:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Optional feature="content-rewrite"&amp;gt;&lt;br /&gt;  &amp;lt;Param name="include-urls"&amp;gt;[REGULAR_EXPRESSION]&amp;lt;/Param&amp;gt;&lt;br /&gt;  &amp;lt;Param name="exclude-urls"&amp;gt;[REGULAR_EXPRESSION]&amp;lt;/Param&amp;gt;&lt;br /&gt;  &amp;lt;Param name="include-tags"&amp;gt;[COMMA SEPARATED LIST OF HTML TAG NAMES]&amp;lt;/Param&amp;gt;&lt;br /&gt;&amp;lt;/Optional&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The first parameter above is where you should place full or partial URLs (using standard regular expression syntax) to be automatically proxied. The second parameter accepts URLs that should be explicitly excluded from the automatic proxying. Finally, the third row contains element names that the preprocessor targets for rewriting.&lt;br /&gt;&lt;br /&gt;For example, to disable rewriting completely (for testing only!), you can use the following block. Notice the .* in the second parameter -- this is a common regular expression for matching all characters, meaning that all URLs will effectively be excluded here:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Optional feature="content-rewrite"&amp;gt;&lt;br /&gt;  &amp;lt;Param name="include-urls"&amp;gt;&amp;lt;/Param&amp;gt;&lt;br /&gt;  &amp;lt;Param name="exclude-urls"&amp;gt;.*&amp;lt;/Param&amp;gt;&lt;br /&gt;  &amp;lt;Param name="include-tags"&amp;gt;&amp;lt;/Param&amp;gt;&lt;br /&gt;&amp;lt;/Optional&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After your application is polished, you should include all URLs that aren't delivered via a CDN such as Akamai. Since the exclude-urls parameter is applied after include-urls, you can filter these special resources by placing an appropriate expression in 'exclude-urls' -- this will be honored even if you specified .* in the first parameter.&lt;br /&gt;&lt;br /&gt;One final note: if you don't include the snippet above, orkut will automatically include all URLs that it encounters as well as all script, link, img, embed, and style elements.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Updated 7/16/2008:&lt;/strong&gt; Corrected the "include-tags" parameter description.  Instead of being a regular expression, this should just be a comma-separated list of tags that should be rewritten.  For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Param name="include-tags"&amp;gt;img,script,link,embed&amp;lt;/Param&amp;gt;&lt;br /&gt;&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/06/rewriting-returns-to-sandbox.html' title='Rewriting returns to the sandbox'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1202277076634905609/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1202277076634905609'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1202277076634905609'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-2131909160934916218</id><published>2008-05-28T11:50:00.000-07:00</published><updated>2008-05-28T11:54:13.056-07:00</updated><title type='text'>Planned maintenance for app directory</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We'll be performing maintenance on the app directory this evening, Wednesday, May 28, beginning at 11pm PST (that's Thursday, May 29, at 11:30am India Standard Time).  The directory itself will continue to function normally for users, but as a developer you will not be able to submit any new apps during this maintenance period.  If you receive an error indicating that your app submission was not successful, please try again on Thursday morning (or later in the evening, if you're in India :)).</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/05/planned-maintenance-for-app-directory.html' title='Planned maintenance for app directory'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/2131909160934916218/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2131909160934916218'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2131909160934916218'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-9171070712457994818</id><published>2008-05-27T09:15:00.000-07:00</published><updated>2008-05-27T09:26:45.255-07:00</updated><title type='text'>New Feature: Disable automatic URL rewriting for easier development</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Arne Roomann-Kurrik, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In our &lt;a href="http://orkutdeveloper.blogspot.com/2008/05/latency-optimizations-feel-need-need.html"&gt;last post about latency optimizations&lt;/a&gt;, we introduced a new feature of the orkut sandbox - automatic URL rewriting for remote content such as JavaScript, CSS, and images.  The response to this feature has been favorable, and our users have seen decreased latency and improved application performance across the board.&lt;br /&gt;&lt;br /&gt;However, since caching can make development difficult, some developers have asked for a way to turn off this behavior.  The orkut team has just pushed a new feature to the sandbox that addresses these requests.  Now, if you really need to disable this automatic rewriting,  you can use the following code inside the &amp;lt;ModulePrefs&amp;gt; section of your gadget spec:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Optional feature="content-rewrite"&amp;gt;&lt;br /&gt;     &amp;lt;Param name="include"&amp;gt;NONE&amp;lt;/Param&amp;gt;&lt;br /&gt;&amp;lt;/Optional&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="background-color: rgb(255, 255, 255);"&gt;&lt;span&gt;Keep in mind that this should only be used to help develop your application.  Your production apps should not rely on this feature!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(255, 255, 255);"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(255, 255, 255);"&gt;&lt;span&gt; As usual, appending &lt;span style="font-family:Courier New;"&gt;&amp;amp;bpc=1&lt;/span&gt; to the end of any URL you visit will bypass the cache on the rendered page, including rewritten links.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(255, 255, 255);"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(255, 255, 255);"&gt;&lt;span&gt; Happy coding!&lt;/span&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/05/new-feature-disable-automatic-url.html' title='New Feature: Disable automatic URL rewriting for easier development'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/9171070712457994818/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/9171070712457994818'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/9171070712457994818'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-6445051609076819305</id><published>2008-05-14T11:42:00.000-07:00</published><updated>2008-05-14T11:48:43.853-07:00</updated><title type='text'>New users and new interactions</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We recently enabled OpenSocial apps for new set of users across the globe, increasing traffic by another 10%.  Not only does this increase the number of users with access to your apps, it opens up new possibilities for apps with localized features and content.  Keep in mind that we expect traffic to increase 5-10 times the current load once we've launched to all users, so start planning to scale now.&lt;br /&gt;&lt;br /&gt;Today we enabled &lt;a href="http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial.html#requestSendMessage"&gt;opensocial.requestSendMessage&lt;/a&gt; on the sandbox, creating a new way for your apps to let users communicate.  The messages created with this method will be delivered as email or as &lt;a href="http://www.orkut.com/Messages.aspx"&gt;orkut messages&lt;/a&gt; depending on the user's &lt;a href="http://www.orkut.com/NotificationSettings.aspx"&gt;settings&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here's some sample code to get you started:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function sendEmail() {&lt;br /&gt;  var params = [];&lt;br /&gt;  params[opensocial.Message.Field.TITLE]="Hola!";&lt;br /&gt;  var body="Como estas?";   &lt;br /&gt;  var message = opensocial.newMessage(body, params);&lt;br /&gt;  var recipient = opensocial.DataRequest.PersonId.OWNER;&lt;br /&gt;  opensocial.requestSendMessage(recipient, message);&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;When invoked, the requestSendMessage method will cause orkut to display a dialog with the title, body, and recipient defined in your code, along with a text area where the user can add text themselves and then click a 'send' button.  Note that you can also specify a specific user's OpenSocial ID instead of OWNER or VIEWER.&lt;br /&gt;&lt;br /&gt;You can also use VIEWER_FRIENDS or OWNER_FRIENDS for the recipients parameter.  In this case the user can determine which of the friends should received the message using an auto-complete friend picker form.&lt;br /&gt;&lt;br /&gt;Note that on www.orkut.com each user will be able to send up to 10 messages per day.  We'll be more lenient in the sandbox so you can test and tweak your messages.&lt;br /&gt;&lt;br /&gt;Happy coding!</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/05/new-users-and-new-interactions.html' title='New users and new interactions'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/6445051609076819305/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6445051609076819305'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6445051609076819305'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-701954281181553355</id><published>2008-05-14T11:06:00.000-07:00</published><updated>2008-05-14T12:18:08.220-07:00</updated><title type='text'>Latency optimizations: Feel the need... the need for speed!</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Arne Roomann-Kurrik, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the social application space, speed is king.  Is your application providing a poor user experience by taking too long to load?  The &lt;a href="http://www.getfirebug.com/"&gt;Firebug extension&lt;/a&gt; for Firefox has support for &lt;a href="http://www.getfirebug.com/net.html"&gt;measuring the &lt;span class="nfakPe"&gt;latency&lt;/span&gt; of your orkut applications&lt;/a&gt;.   You can obtain the measurements for your application by loading your application and checking Firebug's "Net" tab to see how long your application takes to load completely.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;If you're seeing loading times of: &lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 255, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Less than 5 seconds on the canvas and less than 2 seconds on the profile&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;- your application is doing great!&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(191, 144, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Between 5 and 10 seconds on the canvas and between 2 and 5 seconds on the profile&lt;/span&gt;&lt;/span&gt; - your application should be tweaked to reduce &lt;span class="nfakPe"&gt;latency&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Over 10 seconds on the canvas and over 5 seconds on the profile&lt;/span&gt;&lt;/span&gt; - you MUST improve the performance of your application.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;  If your app falls in the latter two categories, we've got some techniques you need to use to ensure a better user experience.  Since our last &lt;a href="http://orkutdeveloper.blogspot.com/2008/04/latency-lurks-around-every-cornerdefend.html"&gt;post about reducing application &lt;span class="nfakPe"&gt;latency&lt;/span&gt;&lt;/a&gt;, the orkut team has been hard at work identifying areas where application load times can be significantly reduced and has made some improvements to the sandbox.  Some of these changes will improve your application &lt;span class="nfakPe"&gt;latency&lt;/span&gt; automatically, and others will require a bit of extra work to take advantage of.  All of these techniques will help your applications load faster, reduce the load on your servers, and help increase the stability and reliability of the application platform as a whole.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;  For a complete list of approaches you can use on orkut to decrease application &lt;span class="nfakPe"&gt;latency&lt;/span&gt;, make sure that you check out the &lt;a href="http://code.google.com/p/opensocial-resources/wiki/LatencyCombatFieldManual"&gt;&lt;span class="nfakPe"&gt;Latency&lt;/span&gt; Combat Field Manual&lt;/a&gt;, which has been updated to include the approaches listed here.  These changes are currently live on the sandbox and will be rolling out to production soon, so be sure to start using the following as soon as possible:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Preload for makeRequest calls&lt;/span&gt;&lt;br /&gt;Many applications wait for a &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;registerOnLoadHandler&lt;/span&gt;&lt;/span&gt; callback before executing a &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;makeRequest&lt;/span&gt;&lt;/span&gt; call, which slows down render time considerably.  To combat this, orkut now allows for an extra &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;preload&gt;&lt;/preload&gt;&lt;/span&gt;&lt;/span&gt; parameter in your ModulePrefs which will instruct orkut to make a signed request while the application IFRAME is loading.  If your &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;makeRequest&lt;/span&gt;&lt;/span&gt; call looks like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var params = {};&lt;br /&gt;params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;&lt;br /&gt;params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;&lt;br /&gt;gadgets.io.makeRequest("http://www.example.com", response, params);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You can preload the request by adding a &lt;span style=";font-family:courier new;font-size:78%;"  &gt;&amp;lt;Preload&amp;gt;&lt;/span&gt; tag:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;ModulePrefs title="Demo Preloads" description="Demo Preloads"&amp;gt;&lt;br /&gt;  &amp;lt;Require feature="opensocial-0.7" /&amp;gt;&lt;br /&gt;  &amp;lt;Require feature="views" /&amp;gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;&amp;lt;Preload href="http://www.example.com" authz="signed" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/ModulePrefs&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;When your application IFRAME loads, the response from example.com will be available inline in the HTML surrounding your application.  When your application executes the makeRequest&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="Ih2E3d"&gt; call, this content will be returned instantly, without needing to hit your server again.   Notice that this approach supports signed requests through the use of the authz parameter, so your data can load fast AND be verifiable. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;There are additional things you can do with the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;preload&gt;&lt;/preload&gt;&lt;/span&gt;&lt;/span&gt; element-- make sure that you read the updated &lt;a href="http://code.google.com/p/opensocial-resources/wiki/LatencyCombatFieldManual"&gt;&lt;span class="nfakPe"&gt;Latency&lt;/span&gt; Combat Field Manual&lt;/a&gt; section on preloads for additional information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What are the benefits?&lt;/span&gt;&lt;br /&gt;Users no longer need to wait for your application to finish loading on orkut before executing a &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;makeRequest&lt;/span&gt;&lt;/span&gt; call.  Orkut will make the request and insert the response directly into the application as it renders your application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Improved respect for cache headers&lt;br /&gt;&lt;/span&gt;&lt;div&gt;  Orkut now offers better support for the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Cache-Control&lt;/span&gt;&lt;/span&gt; HTTP header.  You have server-side control over how your resources are cached, so be sure to set your headers appropriately for maximum benefit.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;The &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Cache-Control&lt;/span&gt;&lt;/span&gt; header is best described in the &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9"&gt;HTTP/1.1 specification&lt;/a&gt; but there are some &lt;a href="http://www.mnot.net/cache_docs/#CACHE-CONTROL"&gt;simpler descriptions available&lt;/a&gt; as well.  If you're not sure about the cache headers your server is currently sending, you can try some &lt;a href="http://www.mnot.net/cacheability/"&gt;publicly available tools&lt;/a&gt; to examine the cache headers on your files and see if they need to be tweaked.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; Be aware that the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Cache-Control&lt;/span&gt;&lt;/span&gt; header will be examined for all content coming from your server, including XML application specs, responses from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;makeRequest&lt;/span&gt;&lt;/span&gt; (both prefetched and not) and proxied images.  Be sure to set caching headers for everything!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;A note for Apache users&lt;/strong&gt;:  Apache defaults to using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Last-Modified&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ETag&lt;/span&gt;&lt;/span&gt; headers to control caching for static files, rather than the recommended &lt;span style=";font-family:courier new;font-size:85%;"  &gt;Expires&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Cache-Control: max-age&lt;/span&gt;&lt;/span&gt; headers.  If you are using Apache, change your cache headers to &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Expires&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;max-age&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What are the benefits?&lt;/span&gt;&lt;br /&gt;Your server has much more control over how orkut caches its content.  You can set a low cache expiration for content that changes often, and a high cache timeout for content that does not change.  Caching will become much more efficient once you set the appropriate headers.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-weight: bold;"&gt;Reducing the number of fetches&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;  Some internet browsers (like IE7) will only download two files from a given server at a time,  shared amongst all HTML, XML, image, CSS, and JavaScript files.  To reduce the number of connections that a user has to make back to your server, consolidate and inline as much code as possible.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;If your JavaScript includes look like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script src="http://www.example.com/javascript.core.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src="http://www.example.com/javascript.extra.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You should combine each file into one master JavaScript file:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script src="http://www.example.com/javascript.all.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Better yet, inline your code if at all possible:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;  function1() {&lt;br /&gt;    ...&lt;br /&gt;  };&lt;br /&gt;  ...&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will save server connections for other assets.  Remember that this approach can be used for CSS, as well.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;  To decrease the number of image files your application needs to load, you can use image spriting to combine all your image files into a single master "sprite" file.  Check out &lt;a href="http://www.alistapart.com/articles/sprites"&gt;A List Apart's CSS Spriting article&lt;/a&gt; for a good description of this technique.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Generally speaking, concatenating your files is a great performance improvement you can make. Because of the aggressive caching that orkut performs, even using a relatively slow server-side script to automatically concatenate files will still wind up performing better than separate files (once the automatically concatenated file is cached). &lt;strong&gt;Aim for a single CSS and a single JS file in production.&lt;/strong&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What are the benefits?&lt;/span&gt;&lt;br /&gt;This approach keeps the number of server connections low, and reduces the total number of HTTP requests that each user of your application has to make.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Automatic remote file caching&lt;/span&gt;&lt;br /&gt;You probably already know how to get proxy URLs for dynamically inserted page elements using the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;getProxyUrl&lt;/span&gt;&lt;/span&gt; function.  However, this technique does not help cache image, script, or style tags that are directly embedded in the source of your application.  Orkut will now rewrite the href attributes on these elements as proxied URLs, meaning that all non-dynamic references to remote content will automatically get the benefit of caching. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;If your source contains an image tag which looks like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;img src="http://www.example.com/i_heart_apis.png" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;orkut will render the image tag as&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;img src="http://www.gmodules.com/ig/proxy?url=http%3A%2F%2Fwww.example.com%2Fi_heart_apis.png" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that any HTML fetched using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;makeRequest&lt;/span&gt;&lt;/span&gt; or otherwise passed through the proxy will also have its links rewritten in this manner. Caching is now automatic throughout your entire application.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:Courier New;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What are the benefits?&lt;/span&gt;&lt;br /&gt;This approach can dramatically reduce the load on your server for image, CSS, and JavaScript resources that are directly included in your application source, without you needing to change any code at all.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;Additional Ideas&lt;br /&gt;&lt;/span&gt;You should now have a wealth of techniques to use to speed up your application on orkut.  For an updated list of optimizations your applications may use, check out the updated &lt;a href="http://code.google.com/p/opensocial-resources/wiki/LatencyCombatFieldManual"&gt;&lt;span class="nfakPe"&gt;Latency&lt;/span&gt; Combat Field Manual&lt;/a&gt;.  If you want additional suggestions, please check out the &lt;a href="http://developer.yahoo.com/yslow/"&gt;YSlow tool for Firebug&lt;/a&gt;&lt;a href="http://developer.yahoo.com/yslow/" target="_blank"&gt;&lt;/a&gt;, which can analyze your application and give suggestions on areas for improvement.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;Remember, every little bit counts when you're tuning an application for millions of potential users!  Use as many of these techniques as possible to decrease load times and keep your users (and servers) happy.  Be sure to &lt;a href="http://groups.google.com/group/opensocial-orkut"&gt;join us in the groups&lt;/a&gt; or in the #opensocial channel on Freenode IRC if you have further questions.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/05/latency-optimizations-feel-need-need.html' title='Latency optimizations: Feel the need... the need for speed!'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/701954281181553355/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/701954281181553355'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/701954281181553355'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-9185644193210497818</id><published>2008-04-25T10:47:00.000-07:00</published><updated>2008-04-25T10:53:56.900-07:00</updated><title type='text'>New wiki article on localization</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With &lt;a href="http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html"&gt;stage one&lt;/a&gt; of the orkut launch process behind us, it's time to start looking forward to the even bigger stage ahead—Brazil. Building applications for Brazilian users poses a special challenge for non-native developers. Since most of the Brazilian user base speaks Portuguese, most apps will have to be localized or translated so they can be understood.&lt;br /&gt;&lt;br /&gt;Fortunately, the gadget specification (which all OpenSocial apps use) makes it easy to define localizations without duplicating any application logic using a mechanism called message bundles. To help you get started, we have released a new &lt;a href="http://code.google.com/p/opensocial-resources/wiki/OrkutLocalization"&gt;article&lt;/a&gt; on the OpenSocial wiki specifically on techniques you can use to localize your apps not only for Brazilian Portuguese but any language or country you please.&lt;br /&gt;&lt;br /&gt;Enjoy! As always, if you have any questions, please stop by the &lt;a href="http://groups.google.com/group/opensocial-orkut"&gt;discussion forum&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/new-wiki-article-on-localization.html' title='New wiki article on localization'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/9185644193210497818/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/9185644193210497818'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/9185644193210497818'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1915448009359484807</id><published>2008-04-24T16:47:00.000-07:00</published><updated>2008-04-24T16:51:14.377-07:00</updated><title type='text'>New directory on sandbox</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We're pushing a new release to the sandbox today that includes a new component for running the app directory.  The new directory system will provide dynamic ranking of apps, based on a number of factors including the locale of the user and the popularity of the app.  Like search results on google.com, the order of apps will be determined by the directory's ranking algorithm and we won't have the ability to move individual apps around within the directory.&lt;br /&gt;&lt;br /&gt;We're aiming to ship this new directory system to www.orkut.com next week.  In the meantime, we'll be adding apps to the directory on the sandbox.  The new directory speeds up our review process, so you'll start seeing a lot of new apps in the directory on the sandbox soon.  We don't plan to add any new apps to the directory on www.orkut.com until we move the new directory system from the sandbox into production.  At that point, any apps in the sandbox directory will go live in production.&lt;br /&gt;&lt;br /&gt;Last but not least, today's release also includes a couple fixes to &lt;code&gt;requestNavigateTo&lt;/code&gt; that popped up in the last few days.  If you're still seeing problems, please &lt;a href="http://code.google.com/p/opensocial-resources/wiki/IssuesTab?tm=3"&gt;file an issue&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/new-directory-on-sandbox.html' title='New directory on sandbox'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1915448009359484807/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1915448009359484807'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1915448009359484807'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1546417487060241825</id><published>2008-04-21T18:20:00.000-07:00</published><updated>2008-04-21T18:22:19.458-07:00</updated><title type='text'>...and we're back!</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Arne Roomann-Kurrik, Google Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span id="qiz5" style="background-color: rgb(255, 255, 255);"&gt;The Orkut sandbox is back to normal.  &lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span id="j64h" style="background-color: rgb(255, 255, 255);"&gt;If you're still experiencing problems, please post in the appropriate thread in the &lt;a href="http://groups.google.com/group/opensocial-orkut"&gt;Orkut developer forum&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span id="zuex" style="background-color: rgb(255, 255, 255);"&gt;Happy coding!&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/and-were-back.html' title='...and we&apos;re back!'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1546417487060241825/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1546417487060241825'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1546417487060241825'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-7509060229599118617</id><published>2008-04-21T18:03:00.000-07:00</published><updated>2008-04-21T18:05:36.307-07:00</updated><title type='text'>Bad, bad server.  No donut for you</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="z_ug" style="background-color: rgb(255, 255, 255);"&gt;Well, it's not "the donut error," but the sandbox is currently serving up 502's while we perform some updates.&lt;/span&gt;&lt;span id="a26j" style="background-color: rgb(255, 255, 255);"&gt;&lt;/span&gt;&lt;span id="e31h" style="background-color: rgb(255, 255, 255);"&gt;  We expect things to return to normal later this evening. Please stay tuned for further updates.&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/bad-bad-server-no-donut-for-you.html' title='Bad, bad server.  No donut for you'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/7509060229599118617/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/7509060229599118617'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/7509060229599118617'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1459949145866813481</id><published>2008-04-21T14:20:00.000-07:00</published><updated>2008-04-21T14:23:22.616-07:00</updated><title type='text'>Chat with the team this week!</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="yuyi" style="background-color: rgb(255, 255, 255);"&gt;&lt;span id="k1gw0"&gt;Now that the orkut development platform is live in India and new apps are being added to the directory daily, we want to make sure any questions you have related to the &lt;a title="multi-stage launch process" href="http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html" id="a9z3"&gt;multi-stage launch process&lt;/a&gt; and app development in general are answered.&lt;br /&gt;&lt;br /&gt;With this objective in mind, we'll be holding IRC office hours this week. Several members of the OpenSocial team will be available in the official OpenSocial IRC channel this coming Tuesday from 10:00 a.m. to 3:00 p.m. PDT to field any questions you have related to the orkut platform and OpenSocial in general.&lt;br /&gt;&lt;br /&gt;To recap:&lt;br /&gt;What: IRC office hours&lt;br /&gt;When: April 22nd, 10:00 a.m. - 3:00 p.m. PDT&lt;br /&gt;Where: irc.freenode.com#opensocial&lt;br /&gt;&lt;br /&gt;See you there!&lt;/span&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/chat-with-team-this-week.html' title='Chat with the team this week!'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1459949145866813481/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1459949145866813481'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1459949145866813481'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-509898168732963421</id><published>2008-04-18T10:16:00.000-07:00</published><updated>2008-04-18T10:21:05.565-07:00</updated><title type='text'>Latency lurks around every corner...defend yourself!</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the past few weeks, we've been studying the behavior of apps on orkut and have discovered several ways to make them faster.  We've made a few enhancements on our side that have improved response time considerably, like pre-fetching data requests—essentially retrieving the data your app will need before it's requested.&lt;br /&gt;&lt;br /&gt;In addition to the efforts we've undertaken, there are optimizations you can make in your apps to improve their load times.  There are some general web development best practices that are especially helpful in the OpenSocial context, and other techniques that are specific to OpenSocial and orkut, like using &lt;code&gt;gadgets.io.proxyUrl&lt;/code&gt; to access cached resources rather than hitting your own server for each request.&lt;br /&gt;&lt;br /&gt;Send your app through boot camp with this &lt;a href="http://code.google.com/p/opensocial-resources/wiki/LatencyCombatFieldManual" id="ob0g" title="Latency Combat Tactics"&gt;Latency Combat Field Manual&lt;/a&gt; and get your code up to speed.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/latency-lurks-around-every-cornerdefend.html' title='Latency lurks around every corner...defend yourself!'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/509898168732963421/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/509898168732963421'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/509898168732963421'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-6090112715513556016</id><published>2008-04-16T20:34:00.000-07:00</published><updated>2008-04-17T00:02:19.708-07:00</updated><title type='text'>Live in India</title><content type='html'>&lt;span class="byline-author"&gt;Posted by &lt;/span&gt;&lt;span id="na54" class="byline-author"&gt;Jason Cooper, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last month's prelaunch testing of the orkut developer platform brought a small set of third-party applications to less than 1% of orkut users. After implementing various improvements, tweaks, and fixes, we are moving into the first stage of the official &lt;a id="v-m-" href="http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html" target="_blank"&gt;rollout process&lt;/a&gt; by announcing the platform's &lt;a id="vsi1" href="http://en.blog.orkut.com/" target="_blank"&gt;availability&lt;/a&gt; in India, which represents about 10% of the orkut user base.&lt;br /&gt;&lt;br /&gt;To commemorate the launch, five new applications are being added to the directory alongside the 15 from the prelaunch testing period. Early next week, after we have had an opportunity to assess the platform for several days, we will begin adding more applications to the directory. As noted previously, apps originally submitted on or before 2/15 will get first priority for review. All others are being reviewed on a first-come, first-serve basis, so &lt;a id="o58x" href="http://sandbox.orkut.com/AppDirectorySubmit.aspx" target="_blank"&gt;submit&lt;/a&gt; yours soon!&lt;br /&gt;&lt;br /&gt;Several members from the OpenSocial developer support team will be available in the official OpenSocial IRC channel (&lt;a id="am.2" href="http://irc.freenode.com/#opensocial" target="_blank"&gt;irc.freenode.com#opensocial&lt;/a&gt;) next week to chat about the orkut platform and development in general. Stay tuned to this blog for an official date and time, which we'll make available soon.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/live-in-india.html' title='Live in India'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/6090112715513556016/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6090112715513556016'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6090112715513556016'/><author><name>Peter Harbison</name><uri>http://www.blogger.com/profile/10255487627543626072</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-2564079313196161689</id><published>2008-04-11T19:08:00.000-07:00</published><updated>2008-04-11T19:12:16.144-07:00</updated><title type='text'>Developer Guidelines</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Amar Gandhi, Group Product Manager&lt;/span&gt;&lt;br /&gt;&lt;span id="z-l1" style="background-color: rgb(255, 255, 255);"&gt;&lt;br /&gt;&lt;/span&gt;We just published some &lt;a href="http://code.google.com/apis/orkut/docs/orkutdevguidelines.html"&gt;orkut developer guidelines&lt;/a&gt; that include examples of good practices and give guidance on how to build a successful OpenSocial app for orkut.&lt;br /&gt;&lt;br /&gt;The guidelines also include our &lt;a href="http://code.google.com/apis/orkut/docs/orkutdevguidelines.html#monetization"&gt;monetization policies&lt;/a&gt;.  The short version--developers do not need to share any revenue with orkut.com.  If you're using AdSense (by Google) then then usual &lt;a href="https://www.google.com/adsense/localized-terms"&gt;AdSense terms&lt;/a&gt; apply.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/developer-guidelines.html' title='Developer Guidelines'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/2564079313196161689/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2564079313196161689'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2564079313196161689'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-1088243582388004260</id><published>2008-04-10T10:22:00.000-07:00</published><updated>2008-04-11T14:28:59.363-07:00</updated><title type='text'>Launching to 10% of users in about a week</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Amar Gandhi, Group Product Manager&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We're now about a week away from making OpenSocial apps available to millions of users in India, corresponding to 10% of all orkut users.  With this update we also want to increase the number of apps included in the directory.  As we mentioned &lt;a title="last week" href="http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html" id="iwoc"&gt;last week&lt;/a&gt;, we've created a &lt;a title="new app submission page" href="http://sandbox.orkut.com/AppDirectorySubmit.aspx" id="e17s"&gt;new app submission page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Please note that all apps must be submitted through this page to be included in the directory.  &lt;/b&gt;Even if you have submitted your app previously, you still need to resubmit your app through this new page and agree to the &lt;a href="http://sandbox.orkut.com/DeveloperTerms.aspx"&gt;Developer Terms of Service for orkut&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As we mentioned &lt;a title="before" href="http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html" id="vepg"&gt;before&lt;/a&gt;, developers who submitted their app on or before 2/15 will get first priority for review.  Other than these early birds, we'll be reviewing apps on a first come, first serve basis.  Right now we're expecting it to take 1-2 weeks after submission for an app  to show up in the directory, but this will depend on the volume of apps we receive.  If your app is not approved for some reason, you will be notified by email.&lt;br /&gt;&lt;br /&gt;Thank you for your patience as we finalized the UI, API and user experience during the pre-launch testing period.  Please &lt;a title="write" href="http://groups.google.com/group/opensocial-orkut" id="aebt"&gt;write&lt;/a&gt; to us if you have additional questions or concerns.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/launching-to-10-of-users-in-about-week.html' title='Launching to 10% of users in about a week'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/1088243582388004260/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1088243582388004260'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/1088243582388004260'/><author><name>Peter Harbison</name><uri>http://www.blogger.com/profile/10255487627543626072</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-2757746830771400854</id><published>2008-04-04T10:09:00.000-07:00</published><updated>2008-04-04T10:53:16.688-07:00</updated><title type='text'>Update on the launch rollout plan</title><content type='html'>&lt;span class="byline-author"&gt;Posted by &lt;/span&gt;Amar Gandhi, Group Product Manager&lt;br /&gt;&lt;br /&gt;We've discovered and fixed numerous bugs during prelaunch testing and have been working on a number of UI improvements based on developer and user feedback.  You will be able to see these changes on the sandbox soon.&lt;br /&gt;&lt;br /&gt;The launch rollout will occur in two stages.  We will first make apps available to 10% of users.  Once we have determined that the platform is working well, we will make an update to the directory and continue rolling out to the rest of orkut users.&lt;br /&gt;&lt;br /&gt;Before the first stage of the rollout, we'll contact developers who submitted their apps by 2/15 so we can include their apps in the first stage and will make available a new submission page where anyone can submit his/her app.  We will add these submitted apps to the directory on a first come, first serve basis before and during the first stage. &lt;br /&gt;&lt;br /&gt;Stay tuned for new developer guidelines and the new submission page.  One week before we begin the first stage of the rollout, we will announce it here and link to the new submission page so everyone has time to prepare.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/04/update-on-launch-rollout-plan.html' title='Update on the launch rollout plan'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/2757746830771400854/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2757746830771400854'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2757746830771400854'/><author><name>Peter Harbison</name><uri>http://www.blogger.com/profile/10255487627543626072</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-2326105475670903731</id><published>2008-03-26T13:05:00.000-07:00</published><updated>2008-03-26T13:08:13.252-07:00</updated><title type='text'>Upcoming changes to signed makeRequest parameter names</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Arne Roomann-Kurrik, Google Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When a gadget initiates a signed makeRequest call on an OpenSocial container, the OpenSocial specification indicates that the container should include certain pieces of information if available, such as the OWNER and VIEWER IDs.  What the spec does not define, however, is the parameter key under which these values must be passed. &lt;br /&gt;&lt;br /&gt;Because of this, MySpace currently passes the parameters under the keys &lt;span style="font-family: Courier New; font-weight: bold;"&gt;opensocial_viewer_id&lt;/span&gt; and &lt;span style="font-family: Courier New; font-weight: bold;"&gt;opensocial_owner_id&lt;/span&gt;, while orkut uses &lt;span style="font-family: Courier New; font-weight: bold;"&gt;opensocial_viewerid&lt;/span&gt; and &lt;span style="font-weight: bold; font-family: Courier New;"&gt;opensocial_ownerid&lt;/span&gt;.  This means that developers writing applications intended to run in both MySpace and orkut must include conditional server code to check for different parameter names, depending on where the request originates.&lt;br /&gt;&lt;br /&gt;Sometime in the next few days, orkut will be implementing a simple fix for this problem so that applications have an easier time working across both containers.  When the fix goes live, orkut's sandbox will start sending &lt;span&gt;&lt;span style="font-family: Courier New; font-weight: bold;"&gt;opensocial_viewer_id&lt;/span&gt; &lt;/span&gt;and &lt;span style="font-family: Courier New; font-weight: bold;"&gt;opensocial_owner_id&lt;/span&gt; parameters when making signed requests.  &lt;span style="text-decoration: underline;"&gt;If you are currently validating signed requests on the sandbox, you will need to change your code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will post again before the fix is pushed with an exact time that this change will take place.  For the time being, please make the appropriate changes to your code to prepare for the new orkut parameter names.  Thankfully, this should be a simple change for most developers.&lt;br /&gt;&lt;br /&gt;For more information, see &lt;a href="http://groups.google.com/group/opensocial-and-gadgets-spec/browse_thread/thread/b07ab79dbcea1afd/2b9f09468577e80a"&gt;this post&lt;/a&gt; in the OpenSocial and gadgets specification discussion group.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/03/upcoming-changes-to-signed-makerequest.html' title='Upcoming changes to signed makeRequest parameter names'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/2326105475670903731/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2326105475670903731'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/2326105475670903731'/><author><name>Arne Roomann-Kurrik</name><uri>http://www.blogger.com/profile/02180089594663417481</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-8869606213361684992.post-6134520981573465757</id><published>2008-03-21T13:18:00.000-07:00</published><updated>2008-03-21T13:21:14.441-07:00</updated><title type='text'>Sandbox updates...</title><content type='html'>&lt;span class="byline-author"&gt;Posted by Lane LiaBraaten, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We just fixed a bunch of issues on the sandbox:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=51"&gt;51&lt;/a&gt; Access to the application's ID&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=79"&gt;79&lt;/a&gt; adjustHeight only works for first app on profile page&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=98"&gt;98&lt;/a&gt; requestNavigateTo("canvas") from profile goes to a different app's canvas view&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=100"&gt;100&lt;/a&gt; gmodules proxy doesn't support gzip data&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=103"&gt;103&lt;/a&gt; POST data in signed makeRequest calls is not used in generating the signature base string&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=104"&gt;104&lt;/a&gt; Prototype library interferes with OpenSocial API&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/opensocial-resources/issues/detail?id=107"&gt;107&lt;/a&gt; gadgets.json.parse throwing exceptions&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Note that the fix for issue 103 brings orkut into compliance with oauth's parameter signing algorithm, but requires you to update the server side code that verifies signed requests.</content><link rel='alternate' type='text/html' href='http://orkutdeveloper.blogspot.com/2008/03/sandbox-updates.html' title='Sandbox updates...'/><link rel='replies' type='application/atom+xml' href='http://orkutdeveloper.blogspot.com/feeds/6134520981573465757/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6134520981573465757'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8869606213361684992/posts/default/6134520981573465757'/><author><name>Lane LiaBraaten</name><uri>http://www.blogger.com/profile/06928545248860627417</uri><email>noreply@blogger.com</email></author></entry></feed>