<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak4MQ345fSp7ImA9WxJVFUo.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209</id><updated>2009-07-02T16:56:22.025-07:00</updated><title type="text">iGoogle Developer Blog</title><subtitle type="html">Your source for API improvements, changes to the sandbox, and developer events.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://igoogledeveloper.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://igoogledeveloper.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>A Googler</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/IgoogleDeveloperBlog" type="application/atom+xml" /><entry gd:etag="W/&quot;Ak4MQ34_eCp7ImA9WxJVFUo.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3567300645748338096</id><published>2009-07-02T16:53:00.000-07:00</published><updated>2009-07-02T16:56:22.040-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-02T16:56:22.040-07:00</app:edited><title>Announcing UX improvements in the sandbox</title><content type="html">Over the last few days, we've introduced several improvements to the sandbox to help flesh out what the full social experience will look like for your users.&lt;br /&gt;&lt;br /&gt;First, sharing a gadget is a richer experience — requestShareApp invites now display notifications at the top of the invitee's iGoogle page and in the "gadget shares" link on the left nav bar.  This system smoothly handles all the different use cases for you. If you invite a friend who does not yet use iGoogle, they will receive an email inviting them to join iGoogle and to share the gadget with you. Then, if your friend creates an account they will be prompted to add you as a friend. If your friend already has iGoogle but does not have you listed as a friend and/or does not have the gadget, they will see one of the new social notifications prompting them to add the gadget and/or to add you as a friend, respectively.  Finally if the friend you invited already has you as a friend and the gadget, they'll get a dismissable message saying that you have invited them.  As a developer you won't have to worry at all about whether or not someone uses iGoogle, has the gadget, or is friends with the user — requestShareApp will handle that all transparently for you!&lt;br /&gt;&lt;br /&gt;Next, you can delete the "Sandbox Friends" gadget, because our real control for editing and expanding your friends list is here, living in the "Friends" link on the left hand nav bar.  This, in addition to the prompts described above, is how users will add friends to their accounts.&lt;br /&gt;&lt;br /&gt;And finally, the &lt;a href="http://hosting.gmodules.com/ig/gadgets/file/117530634343249549005/activities.xml"&gt;Updates gadget&lt;/a&gt; continues to improve — multimedia Updates should be displaying much more cleanly now, and you can also filter Updates for those posted by your own gadgets. Remember that the final version of Updates, like the friends control and social notifications will live on the left nav bar, and gadgets will be limited to three Updates per user per day.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3567300645748338096?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/9St6YFuwH2Y" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3567300645748338096?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3567300645748338096?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/9St6YFuwH2Y/announcing-ux-improvements-in-sandbox.html" title="Announcing UX improvements in the sandbox" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/07/announcing-ux-improvements-in-sandbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cCRnc-fyp7ImA9WxJVFUg.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3961552973399581835</id><published>2009-07-02T10:13:00.000-07:00</published><updated>2009-07-02T10:17:47.957-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-02T10:17:47.957-07:00</app:edited><title>Stem the 401 Tide</title><content type="html">Some of you may have noticed that OpenSocial API calls in the sandbox have started returning 401s, regardless of whether or not you've enabled social ACLs in your gadget. We're in the process of changing a few things behind the scenes, one of which has the unfortunate side effect of breaking the ACL check. While this is straightened out, make sure to visit: &lt;a href="http://www.google.com/ig?force_sandbox=1"&gt;http://www.google.com/ig?force_sandbox=1&lt;/a&gt; for a squeaky-clean and error-free sandbox.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3961552973399581835?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/LgXiJ2EvwTs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3961552973399581835?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3961552973399581835?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/LgXiJ2EvwTs/stem-401-tide.html" title="Stem the 401 Tide" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/07/stem-401-tide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHSHs4fSp7ImA9WxJQE0o.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3760929239214992372</id><published>2009-05-26T16:00:00.000-07:00</published><updated>2009-05-26T16:10:39.535-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-26T16:10:39.535-07:00</app:edited><title>An update on "Updates"</title><content type="html">Updates are back!  As the launch of OpenSocial support for iGoogle draws ever closer, we wanted to give you guys more ability to test and refine your gadget's use of the activity stream. &lt;br /&gt;&lt;br /&gt;To that end we encourage you to install the &lt;a href="http://hosting.gmodules.com/ig/gadgets/file/117530634343249549005/activities.xml"&gt;Updates gadget&lt;/a&gt; which is now actively displaying Update streams from contacts in your Friend's group. Remember, this is not the final UI - when we launch, Updates will be built into the container, rather than appearing in a standalone gadget.&lt;br /&gt;&lt;br /&gt;As you already know, in the wild there will be limits on the amount of Updates we allow from gadgets, to prevent spam.  As of right now, we are considering a daily quota of three Updates per user per gadget. This limit will not be enforced on gadgets in the sandbox so that you can continue testing your code without worrying about these protections, but be aware that there will be some anti-spam restrictions when these features go live.&lt;br /&gt;&lt;br /&gt;For more on Updates, check out the &lt;a href="http://code.google.com/apis/opensocial/articles/tutorial/tutorial-0.8.html#bragging"&gt;OpenSocial tutorial's activities section&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Tyler Odean, Associate Product Manager, iGoogle&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3760929239214992372?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/zevUnms1nlw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3760929239214992372?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3760929239214992372?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/zevUnms1nlw/update-on-updates.html" title="An update on &quot;Updates&quot;" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/05/update-on-updates.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMRXg8fCp7ImA9WxJRE0k.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3818860855289844257</id><published>2009-05-14T17:53:00.000-07:00</published><updated>2009-05-14T17:59:44.674-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-14T17:59:44.674-07:00</app:edited><title>The importance of being unsociable</title><content type="html">A lot of the content we post on this blog is about social.  Social is new, social is big, social is better (all true!) ... but, non-social is important too, and gadgets should behave gracefully when users have not enabled social features, or they aren't available. Not only is a large part of iGoogle's userbase not signed in, but when users add a new gadget to their pages, for the first time, it is always added without social features enabled. Users enable the social ACLs in a separate step, after the gadget has been added to the page.&lt;br /&gt;&lt;br /&gt;Until they do that, the gadget will be rendered without social access - meaning that &lt;span style="font-style:italic;"&gt;every single user will see your gadget without social access at least once&lt;/span&gt;. Plan for it! Make sure you can handle that case, even if you only display a message prompting users to sign in and enable social access so that your gadget can operate correctly.&lt;br /&gt;&lt;br /&gt;For help with detecting whether a user's social functionality has been enabled and other iGoogle-specific OpenSocial questions, check out the &lt;a href="http://opensocial-resources.googlecode.com/svn/samples/igoogle/state_detector.xml"&gt;Testing iGoogle State gadget&lt;/a&gt;. This cribsheet builds on the &lt;a href="http://wiki.opensocial.org/index.php?title=OpenSocial_Tutorial"&gt;OpenSocial tutorial&lt;/a&gt; to provide a rapid way to look up example code for common social gadget tasks.&lt;br /&gt;&lt;br /&gt;Many of the folks who contribute to OpenSocial and iGoogle will be at Google I/O in San Francisco on May 27-28. We love to talk about this stuff, so check out the &lt;a href="http://code.google.com/events/io/"&gt;Google I/O site&lt;/a&gt; to sign up and join us.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Tyler Odean, Associate Product Manager, iGoogle&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3818860855289844257?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/FyG3rlltTOE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3818860855289844257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3818860855289844257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/FyG3rlltTOE/importance-of-being-unsociable.html" title="The importance of being unsociable" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/05/importance-of-being-unsociable.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAASHcyfyp7ImA9WxJSFUk.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-2947791507849219207</id><published>2009-05-05T09:54:00.000-07:00</published><updated>2009-05-05T09:59:09.997-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-05T09:59:09.997-07:00</app:edited><title>Gadget Checker: A simple way to make good gadgets great</title><content type="html">Writing software is hard, and it's easy for bugs to creep in.  Gadgets are no different.  And while developing gadgets here at Google, we discovered that many gadget bugs only show up when you've finished developing -- like when Japanese users can't see that translation you worked on for ages, or when your gadget turns out to be frustratingly slow.  &lt;br /&gt;&lt;br /&gt;It's important to have great gadgets in iGoogle. To help you, we'd like to share a tool that we wrote to catch many common gadget errors: &lt;a href="http://www.google.com/ig/adde?moduleurl=www.google.com/ig/modules/codechecker/codechecker.xml"&gt;Gadget Checker&lt;/a&gt;. We like to think of it as a small tool with a big impact. Use it before you submit your gadget to the Directory to pick up errors such as missing ModulePrefs attributes and missing images, scripts or stylesheets. It also makes suggestions for avoiding common latency traps, like unused API libraries, and for internationalizing your gadget. Simply load a gadget and run the tests, and you may find that you've fallen into one of the common problems. If so, there's advice in the gadget on how to address the issue. &lt;br /&gt;&lt;br /&gt;To allow developers to use the tool while developing their gadget, Gadget Checker can open a gadget saved as a local file or in the &lt;a href="http://code.google.com/apis/gadgets/docs/legacy/gs.html#Scratchpad"&gt;Google Gadget Editor&lt;/a&gt;. (Tip: Consider using a special iGoogle tab containing Gadget Checker and the GGE next to each other, just for developing gadgets.) Once you've opened a local file in Gadget Code Checker, you can save it directly to GGE to fix all the bugs you found. Gadget Checker can even check any existing gadget simply by entering its URL. &lt;br /&gt;&lt;br /&gt;Of course, the list of checks is nowhere near complete. If there's some pet peeve that you wish Gadget Code Checker looked for, feel free to &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;let us know&lt;/a&gt;. We hope Gadget Code Checker makes it easier for you to develop great gadgets, and are looking forward to developing additional tools to help too.&lt;br /&gt;&lt;br /&gt;One more thing. We hope you'll &lt;a href="http://code.google.com/events/io"&gt;join us at Google I/O&lt;/a&gt; in late May. It's a useful way to interact with Google engineers and other developers. And two days in San Francisco isn't too shabby, either! Register today.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Egmont Koblinger and Martin Strauss, iGoogle Software Engineers&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-2947791507849219207?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/EI4Vv3caYJM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2947791507849219207?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2947791507849219207?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/EI4Vv3caYJM/gadget-checker-simple-way-to-make-good.html" title="Gadget Checker: A simple way to make good gadgets great" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/05/gadget-checker-simple-way-to-make-good.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRHwyfSp7ImA9WxVbF0U.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-521027477667738741</id><published>2009-04-03T10:31:00.000-07:00</published><updated>2009-04-03T10:37:55.295-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-03T10:37:55.295-07:00</app:edited><title>Signing changes in the iGoogle sandbox</title><content type="html">In case you haven't seen the &lt;a href="http://blog.opensocial.org/2009/04/important-oauth-signing-changes-coming.html"&gt;announcement&lt;/a&gt; on the OpenSocial blog, some changes to the way iGoogle's REST and RPC endpoints verify requests will be going live today, on the developer sandbox. If you're using a client library (&lt;a href="http://code.google.com/p/opensocial-java-client/downloads/detail?name=opensocial-20090402.jar"&gt;Java&lt;/a&gt;, &lt;a href="http://code.google.com/p/opensocial-php-client/downloads/detail?name=opensocial-php-client-1.0.1.zip"&gt;PHP&lt;/a&gt;, &lt;a href="http://code.google.com/p/opensocial-python-client/downloads/detail?name=opensocial-python-client-0.2.0.zip"&gt;Python&lt;/a&gt;, &lt;a href="http://code.google.com/p/opensocial-ruby-client/downloads/detail?name=opensocial-0.0.4.gem"&gt;Ruby&lt;/a&gt;), the latest versions will be compatible with these changes.&lt;br /&gt;&lt;br /&gt;To ask questions about the client library changes, please check out the &lt;a href="http://groups.google.com/group/opensocial-client-libraries"&gt;client libraries group&lt;/a&gt;. As always, for other questions, see the &lt;a href="http://groups.google.com/group/google-gadgets-api"&gt;iGoogle developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-521027477667738741?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/gJdG2s_MyfY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/521027477667738741?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/521027477667738741?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/gJdG2s_MyfY/signing-changes-in-igoogle-sandbox.html" title="Signing changes in the iGoogle sandbox" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/04/signing-changes-in-igoogle-sandbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMSX49fSp7ImA9WxVUFEQ.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1802420743393032313</id><published>2009-03-19T14:34:00.000-07:00</published><updated>2009-03-19T14:36:28.065-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-19T14:36:28.065-07:00</app:edited><title>The sandbox prods along</title><content type="html">The iGoogle developer sandbox has always served as the bleeding edge version of iGoogle. It's the place to go when you want to be the first to try out new features. Unfortunately, if a bug sneaks into a sandbox release it can grind gadget development to a halt. This puts gadgets.* and OpenSocial developers in a tough spot, because the sandbox is the only place to develop with these features. Or, at least, it was.&lt;br /&gt;&lt;br /&gt;Following on orkut's model, iGoogle will now have a "production" sandbox, meant to provide a more stable development environment. New features and improvements will hit the regular sandbox, first. After they've had some time to simmer, they'll move over to the production sandbox.&lt;br /&gt;&lt;br /&gt;To enter the production sandbox, first enter the regular sandbox, then append the 'force_prod=1' parameter to your iGoogle URL. If you are not already in the sandbox, 'force_prod=1' will not trigger the proper behavior.&lt;br /&gt;&lt;br /&gt;If you're hitting the REST/RPC endpoints, you should now use http://www-opensocial-sandbox.googleusercontent.com/api and http://www-opensocial-sandbox.googleusercontent.com/api/rpc for the sandbox endpoint, and http://www-opensocial.googleusercontent.com/api and http://www-opensocial.googleusercontent.com/api/rpc for the production equivalents.&lt;br /&gt;&lt;br /&gt;As always, feel free to discuss sandbox issues in the &lt;a href="http://groups.google.com/group/google-gadgets-api"&gt;developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1802420743393032313?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/1loIoFFcVFU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1802420743393032313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1802420743393032313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/1loIoFFcVFU/sandbox-prods-along.html" title="The sandbox prods along" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/03/sandbox-prods-along.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBSXY6fSp7ImA9WxVWFUw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-8889296005613632166</id><published>2009-02-24T13:22:00.000-08:00</published><updated>2009-02-24T13:30:58.815-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-24T13:30:58.815-08:00</app:edited><title>Are you in the sandbox? Here's a quick way to check</title><content type="html">Can't figure out if your account is in the developer sandbox or not? Sometimes the "Welcome to the iGoogle Developer sandbox" message is obscured. Sometimes developers are confused about the behavior of the http://google.com/ig/sandbox page (which acts as a toggle, not just a redirect). And sometimes sandbox features aren't working properly, so that even if you are in the sandbox, it looks like you aren't.&lt;br /&gt;&lt;br /&gt;Here's a small &lt;a href="http://hosting.gmodules.com/ig/gadgets/file/117067035338337527472/sandbox.xml"&gt;gadget&lt;/a&gt; to provide a little heads up on the sandbox status. If you're in the sandbox, it lets you know and gives you a quick way to leave. If you're not, it gives you a quick way to enter. And, finally, if it thinks you are in the sandbox, but features don't seem to be working, it tells you that, too. Think of it as your personal sandbox valet.&lt;br /&gt;&lt;br /&gt;The exact behavior relies on the current rollout of features (and using the .com TLD), so it will likely need an update down the road as launches occur. Please test it, add it to your pages, and check the status message if things aren't working properly.&lt;br /&gt;&lt;br /&gt;For questions and comments, feel free to add to &lt;a href="http://groups.google.com/group/Google-Gadgets-API/browse_thread/thread/f4bfe0ade485823c"&gt;this thread&lt;/a&gt; in the forum.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-8889296005613632166?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/se80JoZzkSI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/8889296005613632166?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/8889296005613632166?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/se80JoZzkSI/are-you-in-sandbox-heres-quick-way-to.html" title="Are you in the sandbox? Here's a quick way to check" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/02/are-you-in-sandbox-heres-quick-way-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EAR307eyp7ImA9WxVRF0g.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-7197131816645211168</id><published>2009-01-23T14:56:00.000-08:00</published><updated>2009-01-23T15:00:46.303-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-23T15:00:46.303-08:00</app:edited><title>iGoogle's getting some changes under the hood</title><content type="html">If you've had a chance to look at &lt;a href="http://code.google.com/apis/gadgets/docs/dev_guide.html"&gt;recent gadgets documentation&lt;/a&gt;, or tried out the iGoogle developer sandbox, you're probably aware that gadgets.* is the new hotness. Sadly, the _IG_* methods are all that work in production.&lt;br /&gt;&lt;br /&gt;Starting within the next month, iGoogle will be undergoing some significant behind-the-scenes changes. The first recipients will be gadgets in open syndication, which will gain support for gadgets.*. We've worked hard to make sure gadgets work properly with the new architecture, and gadgets that use _IG_* methods should still function properly. However, there are two things that you, as a developer, should note.&lt;br /&gt;&lt;br /&gt;First, support for datatype=location is now deprecated, and you should use another method, such as the &lt;a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding"&gt;Google Maps API geocoder&lt;/a&gt;, for positional data.&lt;br /&gt;&lt;br /&gt;Second, iGoogle will dynamically rewrite some HTML and JavaScript for faster loading and rendering times. While this is generally a good thing, some malformed HTML and JavaScript can cause problems. Make sure to wrap your JavaScript code as demonstrated by the following example to avoid many common issues:&lt;pre&gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;  // js code goes here...&lt;br /&gt;// --&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;As always, if you have issues, let us know in the &lt;a href="http://groups.google.com/group/google-gadgets-api"&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-7197131816645211168?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/qGi9vjSt9qY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7197131816645211168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7197131816645211168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/qGi9vjSt9qY/igoogles-getting-some-changes-under.html" title="iGoogle's getting some changes under the hood" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/01/igoogles-getting-some-changes-under.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFQn06fip7ImA9WxVSGUo.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-4189044141794900858</id><published>2009-01-14T14:29:00.000-08:00</published><updated>2009-01-14T14:33:33.316-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-14T14:33:33.316-08:00</app:edited><title>New ACLs on social features</title><content type="html">Up until today, gadgets installed in the iGoogle developer sandbox had implicit access to social data, with no way for users to opt-out without uninstalling the gadget.  We've added a feature to give more finely-grained control to users and allow users to explicitly grant or deny access to social data to their gadgets. &lt;br /&gt;&lt;br /&gt;When users install gadgets that use social data (indicated by requiring the OpenSocial feature), they will be prompted to give permission to access social data. If a gadget is released without social features and is upgraded, users will be prompted for access within the gadget when the new version is first rendered.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xawoZs8ARtI/SW5njYLEHgI/AAAAAAAAABA/CDNl-HBlHVA/s1600-h/acl.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 59px;" src="http://2.bp.blogspot.com/_xawoZs8ARtI/SW5njYLEHgI/AAAAAAAAABA/CDNl-HBlHVA/s400/acl.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5291280469688851970" /&gt;&lt;/a&gt;&lt;br /&gt;When OpenSocial gadgets are available to all iGoogle users, users must grant permission before gadgets are allowed access to social data. For sandbox users, we want to ease development, so sandbox gadgets are allowed access to social data before confirmation.&lt;br /&gt;&lt;br /&gt;Developers, this is important, so take note. If users deny access to social data, the gadget should have a good error message and graceful fallback UI.&lt;br /&gt;&lt;br /&gt;Check for the ability to access social data with this snippet of code:&lt;br /&gt;&lt;br /&gt;gadgets.util.hasFeature("opensocial-0.8")&lt;br /&gt;&lt;br /&gt;and fall back gracefully if permission is not granted.&lt;br /&gt;&lt;br /&gt;If you have any questions, please join us in the &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-4189044141794900858?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/re_lv0NZHFw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/4189044141794900858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/4189044141794900858?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/re_lv0NZHFw/new-acls-on-social-features.html" title="New ACLs on social features" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_xawoZs8ARtI/SW5njYLEHgI/AAAAAAAAABA/CDNl-HBlHVA/s72-c/acl.png" height="72" width="72" /><feedburner:origLink>http://igoogledeveloper.blogspot.com/2009/01/new-acls-on-social-features.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEHRn47fCp7ImA9WxRaF04.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-7185607227728917628</id><published>2008-12-19T15:41:00.000-08:00</published><updated>2008-12-19T15:50:37.004-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-19T15:50:37.004-08:00</app:edited><title>REST and RPC support in the developer sandbox</title><content type="html">If you've got &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt; installed on your iGoogle page, you may have noticed how requests to fetch people, friends, or persistent data are formatted. These requests follow the &lt;a href="http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/rpc-protocol"&gt;RPC specification&lt;/a&gt; that's part of OpenSocial, and, while they've been part of the sandbox for a few months now, never really deserved a mention, until today.&lt;br /&gt;&lt;br /&gt;We've &lt;a href="http://opensocialapis.blogspot.com/2008/12/opensocial-now-friends-with-php-java.html"&gt;just released&lt;/a&gt; four client libraries (&lt;a href="http://code.google.com/p/opensocial-java-client/"&gt;Java&lt;/a&gt;, &lt;a href="http://code.google.com/p/opensocial-php-client/"&gt;PHP&lt;/a&gt;, &lt;a href="http://code.google.com/p/opensocial-python-client/"&gt;Python&lt;/a&gt;, and &lt;a href="http://code.google.com/p/opensocial-ruby-client/"&gt;Ruby&lt;/a&gt;) for using these REST and RPC requests as part of your own gadgets. With these libraries, you can access social data without having to go through an iGoogle page (for instance, if you need to do offline processing), or even write an application without having to write any JavaScript.&lt;br /&gt;&lt;br /&gt;To get started, download the client of your choice and try the included samples, which work on a variety of OpenSocial containers. (For reference, the iGoogle endpoints are http://sandbox.gmodules.com/api for REST calls, and http://sandbox.gmodules.com/api/rpc for RPC calls.) When you're ready to do your own iGoogle development, &lt;a href="https://www.google.com/gadgets/directory/verify"&gt;register your application&lt;/a&gt; to get the authentication keys you'll need to use the API.&lt;br /&gt;&lt;br /&gt;If you have questions or comments, join us in the &lt;a href="http://groups.google.com/group/opensocial-client-libraries/topics"&gt;OpenSocial client libraries group&lt;/a&gt;. Have a RESTful (and RPCful) holiday season!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-7185607227728917628?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/jhyKwwK__jk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7185607227728917628?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7185607227728917628?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/jhyKwwK__jk/rest-and-rpc-support-in-developer.html" title="REST and RPC support in the developer sandbox" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/12/rest-and-rpc-support-in-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UASXYyfCp7ImA9WxRUEUw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1742208486695211314</id><published>2008-11-19T10:20:00.000-08:00</published><updated>2008-11-19T10:27:28.894-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-19T10:27:28.894-08:00</app:edited><title>Sign in to MySpace, AOL Mail, and Google Books gadgets</title><content type="html">See your latest &lt;a href="http://www.google.com/ig/adde?moduleurl=x.myspacecdn.com/modules/common/static/xml/myspacegadget_01.xml"&gt;updates on MySpace&lt;/a&gt;, read and reply to messages in &lt;a href="http://www.google.com/ig/adde?moduleurl=o.aolcdn.com/cdnmailbox.webmail.aol.com/AOLGoogleGadget/OAuth/AOLMail.xml"&gt;AOL Mail&lt;/a&gt;, and keep track of your &lt;a href="http://www.google.com/ig/adde?moduleurl=www.google.com/ig/modules/books/library_gadget.xml"&gt;Google Book Search Library&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xawoZs8ARtI/SSRaQngswHI/AAAAAAAAAA4/3U0eEF30aMI/s1600-h/chf5z8hh_2194fj9d2c6_b.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_xawoZs8ARtI/SSRaQngswHI/AAAAAAAAAA4/3U0eEF30aMI/s400/chf5z8hh_2194fj9d2c6_b.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5270436705460863090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These are the first three gadgets on iGoogle to use &lt;a href="http://code.google.com/apis/gadgets/docs/oauth.html"&gt;OAuth&lt;/a&gt;, which is a privacy-preserving security standard that defines how a user can give consent for their data on one website to be accessed by another website (or in this case a gadget).  iGoogle never sees the user's password on the other site, and the gadget displays the user's data from the other site without storing any of it on Google's own servers (read more details about OAuth on our &lt;a href="http://googleonlinesecurity.blogspot.com/2008/11/oauth-for-secure-mashups.html"&gt;Security Blog&lt;/a&gt;).  With these gadgets on iGoogle, users can now keep track of even more personalized information from across their online life.  For example, the &lt;a href="http://www.google.com/ig/adde?moduleurl=x.myspacecdn.com/modules/common/static/xml/myspacegadget_01.xml"&gt;MySpace gadget&lt;/a&gt; shows your friends' latest updates, status messages, bulletins, and an inbox preview.&lt;br /&gt;&lt;br /&gt;With the &lt;a href="http://www.google.com/ig/adde?moduleurl=o.aolcdn.com/cdnmailbox.webmail.aol.com/AOLGoogleGadget/OAuth/AOLMail.xml"&gt;AOL Mail gadget&lt;/a&gt;, you can preview all your email messages in home view.  In canvas view, read rich text email, compose, reply, delete, mark as spam, and more.  The gadget even includes autocomplete, attachments, spell check, and sorting options.  If you have an AOL Mail or AIM Mail account, you must try this gadget.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.google.com/ig/adde?moduleurl=www.google.com/ig/modules/books/library_gadget.xml"&gt;Google Book Search Library gadget&lt;/a&gt; allows you to keep track of all the books you want to read, and also offers you personalized recommendations.  Finding new books and removing books from your library is a snap.  You can even preview your books from right within iGoogle's canvas view.&lt;br /&gt;  &lt;br /&gt;These gadgets are also great examples of how to utilize the &lt;a href="http://igoogledeveloper.blogspot.com/2008/10/big-canvas-big-opportunity.html"&gt;canvas view&lt;/a&gt;, which launched last month on iGoogle.  If you want to create a gadget like AOL and MySpace, this &lt;a href="http://sites.google.com/site/oauthgoog/oauth-practices"&gt;overview&lt;/a&gt; will get you started on exposing an API that can be accessed using OAuth.  If you already know which OAuth enabled API you want to access, you can jump directly to the &lt;a href="http://code.google.com/apis/gadgets/docs/oauth.html"&gt;gadgets documentation&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Kevin Tom, Product Manager, iGoogle&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1742208486695211314?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/u9gawnl7_iI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1742208486695211314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1742208486695211314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/u9gawnl7_iI/sign-in-to-myspace-aol-mail-and-google.html" title="Sign in to MySpace, AOL Mail, and Google Books gadgets" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_xawoZs8ARtI/SSRaQngswHI/AAAAAAAAAA4/3U0eEF30aMI/s72-c/chf5z8hh_2194fj9d2c6_b.gif" height="72" width="72" /><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/11/sign-in-to-myspace-aol-mail-and-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FSXc_cCp7ImA9WxRWEk8.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-831112590161817347</id><published>2008-10-28T13:12:00.000-07:00</published><updated>2008-10-28T13:13:38.948-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-28T13:13:38.948-07:00</app:edited><title>The sandbox...it lives!</title><content type="html">After a slightly-longer-than-expected hiatus in the sandbox, the gadgets.* and opensocial.* APIs have been brought back from the dead, just in time for Halloween.&lt;br /&gt;&lt;br /&gt;Let &lt;span style="font-style: italic;"&gt;gadgets.util is undefined&lt;/span&gt; haunt you no more!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-831112590161817347?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/vtr9EwcCPoM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/831112590161817347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/831112590161817347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/vtr9EwcCPoM/sandboxit-lives.html" title="The sandbox...it lives!" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/10/sandboxit-lives.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUASXo7cSp7ImA9WxRXE00.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1619604045481556881</id><published>2008-10-17T20:20:00.000-07:00</published><updated>2008-10-17T20:24:08.409-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-17T20:24:08.409-07:00</app:edited><title>For every action...</title><content type="html">...there is an equal and opposite reaction. But, even Newton might not have foreseen that when pushing changes to iGoogle, we'd temporarily disable social functionality in the iGoogle developer sandbox. Access to the gadgets.* and OpenSocial APIs should return on Tuesday, along with a properly functioning developer gadget.&lt;br /&gt;&lt;br /&gt;In the interim, watch out for falling apples, and I'll see everyone on Tuesday.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1619604045481556881?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/fbGqhWWiqs0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1619604045481556881?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1619604045481556881?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/fbGqhWWiqs0/for-every-action.html" title="For every action..." /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/10/for-every-action.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIESH85fyp7ImA9WxRXEUo.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-6401123946968682209</id><published>2008-10-16T09:52:00.000-07:00</published><updated>2008-10-16T10:01:49.127-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-16T10:01:49.127-07:00</app:edited><title>Big canvas, big opportunity</title><content type="html">Some artists say that a blank canvas is daunting.  We think of it as an opportunity, which is why we’re excited to be launching the canvas view feature to &lt;a href="http://www.google.com/ig"&gt;iGoogle&lt;/a&gt; users.  Canvas view will roll out to users in the U.S. over the course of the day, and to international users in the near future.&lt;br /&gt;&lt;br /&gt;Canvas view allows developers to deliver richer content, games, and UI to users on iGoogle as well as the opportunity to monetize.  We’ve seen a lot of great development in the sandbox already, and we are proud to highlight several of our developers' &lt;a href="http://www.google.com/ig/v2landing"&gt;canvas view gadgets&lt;/a&gt;.  To start building a canvas view, check out our &lt;a href="http://sites.google.com/site/igcanvas"&gt;how to guide&lt;/a&gt;, which includes sample code for views, latency tips, and suggested design principles.&lt;br /&gt;&lt;br /&gt;In addition to canvas view, we’re also replacing the tab interface with the left navigation seen in the sandbox.  This allows users to jump from one canvas view to another with only one click.  Going forward, we're working hard to graduate more functionality out of the sandbox and into production, such as OpenSocial.&lt;br /&gt;&lt;br /&gt;Giving developers new opportunities makes for better gadgets, which is ultimately great for users.  We’re eager to see what you create.  If you have any questions, please join the &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Happy coding!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Jake Quist, iGoogle engineer&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-6401123946968682209?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/VG4z0XNIh4M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/6401123946968682209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/6401123946968682209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/VG4z0XNIh4M/big-canvas-big-opportunity.html" title="Big canvas, big opportunity" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/10/big-canvas-big-opportunity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcDQns5fSp7ImA9WxRRFEs.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1325095266341043405</id><published>2008-09-26T13:56:00.000-07:00</published><updated>2008-09-26T14:04:33.525-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-26T14:04:33.525-07:00</app:edited><title>What's the difference among friends?</title><content type="html">I'm excited to announce that we've launched two important changes to the iGoogle developer sandbox.  First, we have done a major upgrade on the sandbox friends manager that allows you to import, search and create groups of contacts. To share items with a contact, make sure you are in the iGoogle sandbox, and add a contact to the group called "Friends." If you already have the sandbox friends gadget installed, it should automatically upgrade. If not, you can add it &lt;a href="http://www.google.com/ig/directory?url=hosting.gmodules.com/ig/gadgets/file/105542374478112771668/sandbox-friends.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For development purposes, if you are sharing with friends in Google Reader, the same contacts in your "Friends" group in Reader will also be in your "Friends" group in the iGoogle sandbox.  Your old sandbox friends will have to be added again to the "Friends" group.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xawoZs8ARtI/SN1NA_J-rQI/AAAAAAAAAAU/Acs3IIiPqmI/s1600-h/sandbox_friends.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_xawoZs8ARtI/SN1NA_J-rQI/AAAAAAAAAAU/Acs3IIiPqmI/s400/sandbox_friends.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5250437419932495106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In conjunction with the new sandbox friends manager, we are also changing what people and sharing calls return.  You can now share content with contacts in your "Friends" group, even if those contacts have not added you to their "Friends" group.  For example:&lt;br /&gt;&lt;pre&gt;var req = opensocial.newDataRequest();&lt;br /&gt;req.add(req.newFetchPeopleRequest("VIEWER_FRIENDS"), "friends");&lt;br /&gt;req.send(response);&lt;/pre&gt;&lt;br /&gt;Will now return some friends with ids, and some friends without.  Friends with ids are those who have you in their "Friends" group, while friends without ids do not.&lt;br /&gt;&lt;pre&gt;function response(data) {&lt;br /&gt;  var friends = data.get("friends").getData();&lt;br /&gt;  friends.each(function(person) {&lt;br /&gt;    if (person.getId()) {&lt;br /&gt;      alert(person.getDisplayName() + " is a mutual friend.");&lt;br /&gt;    } else {&lt;br /&gt;      alert(person.getDisplayName() + " hasn't put you in their \"Friends\" group."); &lt;br /&gt;    }&lt;br /&gt;  });&lt;br /&gt;};&lt;/pre&gt;&lt;br /&gt;When you post an update, it will be viewable to any person in your "Friends" group.&lt;br /&gt;&lt;br /&gt;If you have any questions about these changes, feel free to contact us in the &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Kevin Tom, Product Manager&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1325095266341043405?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/uyMJKWilGgk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1325095266341043405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1325095266341043405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/uyMJKWilGgk/whats-difference-among-friends.html" title="What's the difference among friends?" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_xawoZs8ARtI/SN1NA_J-rQI/AAAAAAAAAAU/Acs3IIiPqmI/s72-c/sandbox_friends.png" height="72" width="72" /><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/09/whats-difference-among-friends.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIESX84fCp7ImA9WxRSFkw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-345561474110619089</id><published>2008-09-16T18:02:00.000-07:00</published><updated>2008-09-16T18:05:08.134-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-16T18:05:08.134-07:00</app:edited><title>Getting ready for the canvas view</title><content type="html">It's been a few weeks since I've provided an update on the status of the canvas view launch. Our experiments with a small percentage of users have been going well, and we've been making some small changes and adjustments based on user feedback (such as reducing the width of the left nav). In the next few weeks we plan on ramping up the number of US English users with the canvas view.&lt;br /&gt;&lt;br /&gt;In anticipation of this, we're going to hold a special IRC event on improving existing gadgets by adding a canvas view. During the two hour session, show us your XML and we'll offer suggestions on how you can turn it into a great canvas view gadget. And of course, its a great time to work through any issues you are having in developing canvas view gadgets.  To join us, visit the #opensocial channel on irc.freenode.net next Tuesday (9/23) from 1-3 PDT. See you then!&lt;br /&gt;&lt;br /&gt;&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-345561474110619089?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/462bCQhdrwk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/345561474110619089?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/345561474110619089?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/462bCQhdrwk/getting-ready-for-canvas-view.html" title="Getting ready for the canvas view" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/09/getting-ready-for-canvas-view.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YEQ3w-fyp7ImA9WxdaEUo.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3547554520427899938</id><published>2008-08-19T11:37:00.000-07:00</published><updated>2008-08-19T11:38:22.257-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-19T11:38:22.257-07:00</app:edited><title>Cleaning the sandbox</title><content type="html">&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As a quick heads-up, we'll be pushing a new implementation of the persistence API to the iGoogle sandbox.  When this happens, it will effectively clear the data storage of any OpenSocial applications in the sandbox. Data stored in preferences will not be affected, nor will any data of applications in production.&lt;br /&gt;&lt;br /&gt;Enjoy the fresh, clean scent of an empty datastore, and let us know if you encounter any issues in the &lt;a href="http://groups.google.com/group/Google-Gadgets-API/"&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3547554520427899938?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/UsF1CBRaodg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3547554520427899938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3547554520427899938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/UsF1CBRaodg/cleaning-sandbox.html" title="Cleaning the sandbox" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/08/cleaning-sandbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIFSHY5cCp7ImA9WxdaEU0.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-3437070280370256317</id><published>2008-08-18T15:41:00.000-07:00</published><updated>2008-08-18T16:01:59.828-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-18T16:01:59.828-07:00</app:edited><title>iGoogle sandbox at 0.8</title><content type="html">&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While the recent focus has been on the canvas view feature, exciting progress has been made on the OpenSocial front. Developers now have an opportunity to test out parts of the &lt;a href="http://code.google.com/apis/opensocial/docs/0.8/spec.html"&gt;OpenSocial 0.8 specification&lt;/a&gt; in the sandbox.  If you're interested in seeing what's changed in 0.8, check out the &lt;a href="http://code.google.com/apis/opensocial/docs/releasenotes.html#0.8"&gt;release notes&lt;/a&gt;.  Not everything mentioned in the notes is implemented yet, so consider this a preview release.&lt;br /&gt;&lt;br /&gt;If you haven't yet had a chance, this is a great time to try the &lt;a href="http://dafos.appspot.com/"&gt;Developer Application for OpenSocial&lt;/a&gt; (DAfOS).  DAfOS lets you edit, save, and run snippets of gadget code.  Best of all, there is a &lt;a href="http://dafos.appspot.com/gadget/dafos-0.8.xml"&gt;special version&lt;/a&gt; that supports OpenSocial 0.8.  Here are some samples using the new idSpec class to get you started:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dafos.appspot.com/code/sample/agVkYWZvc3IRCxIKQ29kZVNhbXBsZRi3Aww"&gt;Request the OWNER&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dafos.appspot.com/code/sample/agVkYWZvc3IRCxIKQ29kZVNhbXBsZRi_Aww"&gt;Request a user by ID&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dafos.appspot.com/code/sample/agVkYWZvc3IRCxIKQ29kZVNhbXBsZRjUAww"&gt;Request the owner's friends&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dafos.appspot.com/code/sample/agVkYWZvc3IRCxIKQ29kZVNhbXBsZRjSAww"&gt;Request friends of a user with a given ID&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Over the next few weeks, stay tuned for more updates on the progress of 0.8 on iGoogle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3437070280370256317?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/PkFk5dapxZs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3437070280370256317?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/3437070280370256317?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/PkFk5dapxZs/igoogle-sandbox-at-08.html" title="iGoogle sandbox at 0.8" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/08/igoogle-sandbox-at-08.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FQn4zeSp7ImA9WxdUFkw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-7931638479048845913</id><published>2008-08-01T10:41:00.000-07:00</published><updated>2008-08-01T10:46:53.081-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-01T10:46:53.081-07:00</app:edited><title>Changes to inlined gadgets</title><content type="html">&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In November, we &lt;a href="http://groups.google.com/group/Google-Gadgets-API/browse_thread/thread/5776dc1be6dfd0b"&gt;announced the deprecation&lt;/a&gt; of inlined gadgets on iGoogle. Inlined gadgets filled a niche role in gadget development, a role that has become smaller as more features have been added to iGoogle and to the gadgets API.&lt;br /&gt;&lt;br /&gt;To encourage developers to move their existing inlined gadgets to supported APIs, we're moving to the next phase in their deprecation. Within the next few weeks, inlined gadgets with few active users will no longer operate within iGoogle. &lt;br /&gt;&lt;br /&gt;All other inlined gadgets will continue to operate, but the gadget XML will be in read-only mode, served out of Google's cache. It will still be possible to update these gadgets, by filing a request to recache the gadget in the &lt;a href="http://code.google.com/p/igoogle-legacy/wiki/IssuesTab?tm=3"&gt;legacy issue tracker&lt;/a&gt;. We strongly recommend that the authors of these gadgets move to supported APIs.&lt;br /&gt;&lt;br /&gt;Please note that attempting to bypass the cache by importing external CSS, JavaScript and HTML is strongly discouraged. Gadgets that do this exclusively to bypass Google's caching may be disabled.&lt;br /&gt;&lt;br /&gt;If you have questions or comments about the new behavior of inlined gadgets, please visit the &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;developer forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-7931638479048845913?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/4U50t9oBnaA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7931638479048845913?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/7931638479048845913?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/4U50t9oBnaA/changes-to-inlined-gadgets.html" title="Changes to inlined gadgets" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/08/changes-to-inlined-gadgets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQHRHoycSp7ImA9WxdVEkk.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1815412162893657115</id><published>2008-07-16T14:20:00.000-07:00</published><updated>2008-07-16T14:22:15.499-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-16T14:22:15.499-07:00</app:edited><title>Experiments underway</title><content type="html">&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a &lt;a href="http://igoogledeveloper.blogspot.com/2008/06/details-on-igoogle-canvas-view-launch.html"&gt;previous post&lt;/a&gt;, I mentioned that iGoogle would begin rolling out the new canvas to a small percentage of users, as an experiment, leading up to the full U.S. launch. I'm pleased to tell you that these experiments have begun, and we've already started collecting feedback. As we ramp up the number of users with access, make sure to get your own canvas view-savvy gadgets ready. Social features are on track for a fall launch.&lt;br /&gt;&lt;br /&gt;Stay tuned here and in the &lt;a href="http://groups.google.com/group/google-gadgets-api/"&gt;iGoogle Developer Forum&lt;/a&gt; for more details on the launch date as they become available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1815412162893657115?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/2Bmad6P31oM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1815412162893657115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1815412162893657115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/2Bmad6P31oM/experiments-underway.html" title="Experiments underway" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/07/experiments-underway.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cCRH07eip7ImA9WxdXFkw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-6797719615243926854</id><published>2008-06-27T17:59:00.000-07:00</published><updated>2008-06-27T18:04:25.302-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-27T18:04:25.302-07:00</app:edited><title>Supporting views while keeping compatibility</title><content type="html">&lt;span class="byline-author"&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As we begin to ramp up support for the canvas view in iGoogle, it's important to remember that not all users will get access to the canvas view simultaneously.&lt;br /&gt;&lt;br /&gt;If you've upgraded one of your gadgets to use views, you can keep backwards compatibility by keeping your old content section in your XML. Just make sure it appears first in your list of content sections and that it doesn't set a view attribute. Your new content sections with view="home" and view="canvas" can follow in any order.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;Module&amp;gt;&lt;br /&gt; &amp;lt;ModulePrefs title="Backwards Compatibility"&amp;gt;&lt;br /&gt; &amp;lt;/ModulePrefs&amp;gt;&lt;br /&gt;&amp;lt;Content type="html"&amp;gt;&lt;br /&gt; &amp;lt;![CDATA[&lt;br /&gt;   Users without access to canvas view see this.&lt;br /&gt; ]]&amp;gt;&lt;br /&gt;&amp;lt;/Content&amp;gt;&lt;br /&gt;&amp;lt;Content type="html" view="home"&amp;gt;&lt;br /&gt; &amp;lt;![CDATA[&lt;br /&gt;   Users with canvas view see this in the "home" view.&lt;br /&gt; ]]&amp;gt;&lt;br /&gt;&amp;lt;/Content&amp;gt;&lt;br /&gt;&amp;lt;Content type="html" view="canvas"&amp;gt;&lt;br /&gt; &amp;lt;![CDATA[&lt;br /&gt;   Users with canvas view see this in the "canvas" view.&lt;br /&gt; ]]&amp;gt;&lt;br /&gt;&amp;lt;/Content&amp;gt;&lt;br /&gt;&amp;lt;/Module&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Once you've set up your gadget in this way, anyone who uses an iGoogle domain that doesn't yet have access to the canvas view can see a working version of your gadget. And those who have been moved to the new interface will see all the hard work you've put into your home and canvas views.&lt;br /&gt;&lt;br /&gt;As an added bonus, you can use this technique now to develop gadgets in the developer sandbox that still maintain their old behavior in production. Whenever more users do get access to the canvas view, your gadgets will be ready to go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-6797719615243926854?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/txOl14Cm0EM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/6797719615243926854?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/6797719615243926854?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/txOl14Cm0EM/supporting-views-while-keeping.html" title="Supporting views while keeping compatibility" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/06/supporting-views-while-keeping.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUANRnkyfip7ImA9WxdXEks.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-1394397591794021640</id><published>2008-06-23T16:20:00.000-07:00</published><updated>2008-06-23T16:29:57.796-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-23T16:29:57.796-07:00</app:edited><title>Details on the iGoogle Canvas View Launch</title><content type="html">&lt;span class="byline-author"&gt;Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought I'd take a moment to clarify some details of upcoming iGoogle features and their release schedule.  I've spoken to many of you who had questions about exactly what features would be available in iGoogle when canvas views are released.  When canvas views and the new interface appear in production:&lt;ul&gt;&lt;li&gt;Existing _IG_ calls will continue to work normally, including all IG calls used to fetch remote content&lt;/li&gt;&lt;li&gt;The new gadgets feature 'views', gadgets.view and requestNavigateTo will be added to your repertoire of valid function calls&lt;/li&gt;&lt;li&gt;Declaring view="home,canvas" will become valid&lt;/li&gt;&lt;li&gt;The rest of the gadgets.* and opensocial.* APIs &lt;b&gt;will not&lt;/b&gt; yet work.  For example, all user customizations and data should be handled via user prefs and not app data for the time being&lt;/li&gt;&lt;/ul&gt;If you're working on a new gadget, or upgrading an older gadget to use the new canvas view, you should continue to use _IG_ calls, and keep the above list in mind.  We are going to start testing the canvas view with a small percentage of our users this month, and are scheduled to roll it out to more users during July.&lt;br /&gt;&lt;br /&gt;If you are developing a canvas view for our upcoming release, you should not use "&lt;&lt;span&gt;require feature="opensocial-X"/&gt;" as gadgets that use gadgets.* and opensocial.* will not work in production until later this summer. Note that the sandbox will continue to support these features so that you can work on social features and gadgets in parallel and have all tools available to you.&lt;br /&gt;&lt;br /&gt;Thanks again for all your contributions to iGoogle. If you have any questions or concerns, please let us know in our &lt;a href="http://groups.google.com/group/Google-Gadgets-API"&gt;developer forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1394397591794021640?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/n49iKmCcUcA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1394397591794021640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/1394397591794021640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/n49iKmCcUcA/details-on-igoogle-canvas-view-launch.html" title="Details on the iGoogle Canvas View Launch" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/06/details-on-igoogle-canvas-view-launch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFSX09eip7ImA9WxdQF0k.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-2540105081195787917</id><published>2008-06-17T17:00:00.000-07:00</published><updated>2008-06-17T17:03:38.362-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-17T17:03:38.362-07:00</app:edited><title>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 iGoogle developers, we're formally introducing reoccurring IRC "office hours." Just point your favorite IRC client to &lt;span style="font-weight: bold;"&gt;irc.freenode.net&lt;/span&gt; and join the &lt;span style="font-weight: bold;"&gt;#opensocial&lt;/span&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 regular office hours 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;span style="font-weight: bold;"&gt;kurrik&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;jasonacooper&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;rohitghatol&lt;/span&gt;, and &lt;span style="font-weight: bold;"&gt;api_dwh&lt;/span&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 &lt;a href="http://groups.google.com/group/Google-Gadgets-API/"&gt;forum&lt;/a&gt; as well, so you can choose the support mechanism that works best for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-2540105081195787917?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/CpciakAmpRw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2540105081195787917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2540105081195787917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/CpciakAmpRw/irc-office-hours.html" title="IRC Office Hours" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/06/irc-office-hours.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMASX89fyp7ImA9WxdQEkw.&quot;"><id>tag:blogger.com,1999:blog-2373604388319154209.post-2448067449515458768</id><published>2008-06-11T13:59:00.000-07:00</published><updated>2008-06-11T14:07:28.167-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-11T14:07:28.167-07:00</app:edited><title>Now with more sand! Updated Themes API</title><content type="html">&lt;span class="byline-author"&gt;Posted by Kathleen Ko, iGoogle Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With all the layout and feature changes going on in iGoogle, we're happy to release an updated Themes API for developers. The API now allows customizations to the left navigation, chat, and gadget frame features in the sandbox, so you can customize even more of iGoogle.  To get the full list of changes, please check out our updated &lt;a href="http://code.google.com/apis/themes/docs/dev_guide.html"&gt;developer's guide&lt;/a&gt; and &lt;a href="http://code.google.com/apis/themes/docs/reference.html"&gt;reference&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have already created an existing theme, we encourage you to update it with the new attributes, test it in the sandbox, and resubmit it.  Here's an example for how you can modify the chat list in your theme's XML file:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;attribute name="navbar.contacts.contact_color"&amp;gt;#FF8080&amp;lt;/attribute&amp;gt;&lt;br /&gt;&amp;lt;attribute name="navbar.contacts.status_color"&amp;gt;#FF8080&amp;lt;/attribute&amp;gt;&lt;br /&gt;&amp;lt;attribute name="navbar.contacts.hover_background_color"&amp;gt;#FF0000&amp;lt;/attribute&amp;gt;&lt;br /&gt;&amp;lt;attribute name="navbar.contacts.card.border_color"&amp;gt;#B30000&amp;lt;/attribute&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As always, questions and feedback are welcome and encouraged in the &lt;a href="http://groups.google.com/group/google-themes-api"&gt;Themes API group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some known bugs that we plan on fixing very soon are:&lt;ul&gt;&lt;li&gt;New buttons not yet available for themes&lt;/li&gt;&lt;/ul&gt;Thanks ahead of time for your feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-2448067449515458768?l=igoogledeveloper.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/cfBodSX6Zic" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2448067449515458768?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2373604388319154209/posts/default/2448067449515458768?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/cfBodSX6Zic/now-with-more-sand-updated-themes-api.html" title="Now with more sand! Updated Themes API" /><author><name>Dan Holevoet</name><uri>http://www.blogger.com/profile/14663004239430136422</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="05811300668423425585" /></author><feedburner:origLink>http://igoogledeveloper.blogspot.com/2008/06/now-with-more-sand-updated-themes-api.html</feedburner:origLink></entry></feed>
