<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Sociablecode</title>
	<atom:link href="http://www.sociablecode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sociablecode.com</link>
	<description>OpenSocial News</description>
	<pubDate>Fri, 11 Jul 2008 07:39:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>OpenSocial Framework v1.0</title>
		<link>http://www.sociablecode.com/2008/07/11/opensocial-framework-v10/</link>
		<comments>http://www.sociablecode.com/2008/07/11/opensocial-framework-v10/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 07:22:34 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=45</guid>
		<description><![CDATA[Things are moving at a snails pace, *yawn*:
http://code.google.com/p/opensocial-framework/downloads/list
Please note: This framework is compatible with the 0.7 OpenSocial specification only and has been throughly tested and also compatible with all the major OpenSocial containers: MySpace, hi5, and Orkut.
I am not entirely sure how many of you have probably already written in-house frameworks for all your products, [...]]]></description>
			<content:encoded><![CDATA[<p>Things are moving at a snails pace, *yawn*:</p>
<p><a href="http://code.google.com/p/opensocial-framework/downloads/list">http://code.google.com/p/opensocial-framework/downloads/list</a></p>
<p>Please note: This framework is compatible with the 0.7 OpenSocial specification only and has been throughly tested and also compatible with all the major OpenSocial containers: MySpace, hi5, and Orkut.</p>
<p>I am not entirely sure how many of you have probably already written in-house frameworks for all your products, but here is one for all you small/clueless/new people out in the world</p>
<p>I&#8217;ll start posting more again about OpenSocial *FAIL* periodically again.</p>
<p>Feel free to give me your thoughts and opinions about my code. There may have been a few things here and there that I would&#8217;ve done differently but the framework is 100% tested and working. All my applications have been using it for months. Enjoy.</p>
<p>Here&#8217;s a quick overview of what the code looks like:</p>
<p style="text-align: center;"><a href="http://www.sociablecode.com/wp-content/uploads/2008/07/code-tree.gif"><img src="http://www.sociablecode.com/wp-content/uploads/2008/07/code-tree.gif" alt="" width="209" height="900" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/07/11/opensocial-framework-v10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySpaces cares, Developers fatigued, where is the balance?</title>
		<link>http://www.sociablecode.com/2008/05/20/myspaces-cares-developers-fatigued-where-is-the-balance/</link>
		<comments>http://www.sociablecode.com/2008/05/20/myspaces-cares-developers-fatigued-where-is-the-balance/#comments</comments>
		<pubDate>Wed, 21 May 2008 02:22:01 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[MySpace]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=44</guid>
		<description><![CDATA[Today MySpace announced a series of changes to their platform, changes that make many of the application developers angry and possibly depressed. In fact, I would say that developers themselves are becoming fatigued by the extraordinary amount of rules, regulations, and discrepancies that we face collectively. It feels like every attempt at virality is destroyed.
Sure [...]]]></description>
			<content:encoded><![CDATA[<p>Today MySpace announced a series of changes to their platform, changes that make many of the application developers angry and possibly depressed. In fact, I would say that developers themselves are becoming fatigued by the extraordinary amount of rules, regulations, and discrepancies that we face collectively. It feels like every attempt at virality is destroyed.</p>
<p>Sure enough, today was another day. <a href="http://www.techcrunch.com/2008/05/20/myspace-moves-to-limit-spammy-applications-just-like-facebook-did/">Techcrunch</a> did a decent job at summarizing basically what Tom was attempting to explain to us. I&#8217;ll try to sum it up in my own perspective which is sometimes valuable to people since I actively develop on the social network:</p>
<p>Essentially, users are complaining. MySpace is trying to clear up the issues and make a platform that rewards worthwhile applications in the right way.</p>
<p>To regulate us a few rules are in order: You cannot provide incentives to your users to help spread your application. This is obviously a direct hit to Own Your Friends on MySpace which has garnered 3 million users already.</p>
<p>Here&#8217;s the driving force here people. MySpace doesn&#8217;t give a shit about how viral you wish to become, they don&#8217;t want random people kicking each other in butt as a messaging mechanism. To them, opening up the platform is a way of getting viral a bit faster than you would normally on your own with your own startup. MySpace isn&#8217;t interested in how fast you can penetrate so you can achieve the highest revenue possible. Their game really appears to be about creating utilities they cannot create themselves. <strong>This is all certainly amicable however it&#8217;s not going to provide much incentive for developers who are interested in creating real applications as you&#8217;re afforded more control outside of MySpace and essentially the same incentive.</strong></p>
<p>You need to think about this. MySpace&#8217;s numbers aren&#8217;t growing HUGE, they&#8217;ve tapped probably the largest portion of the U.S. on the internet. (that&#8217;s why we&#8217;re all developing there) Basically, they already have them all. They don&#8217;t need a platform to get MORE, they just need to keep them happy, engaged, willing to stay essentially. History has shown, that a large portion of the applications on Facebook are annoying, spamming, and essentially crap. What would you do if you were in the same position?</p>
<p>The thoughts behind this are: if you create a very valuable and interesting application, user adoption will trend much like a web startup except perhaps on steroids if it exists on MySpace. This is all hypothetical and perhaps quite wishful. postTo was sneaky attempt to stave us off as I have said before and this utility exists just not in modal box design as it is for our applications.</p>
<p>The world&#8217;s are clashing between money, value, quality, and rewards. Seems it&#8217;s time to sit down and think what&#8217;s right for the users for MySpace. Of course, all of us are ready with our pitchforks in hand waiting to chastise whoever created these rules</p>
<p>MySpace has <a href="http://developer.myspace.com/Community/blogs/devteam/archive/2008/05/20/new-app-guidelines-must-read.aspx">one last attempt</a> up its sleeve in terms of keeping us around:</p>
<p>&#8220;Finally, I&#8217;m pleased to give you all a heads-up that we will be enhancing our messaging APIs in June with the release of our Applications Communication Channel. &#8220;ACC&#8221; as we call it is a brand-new messaging service built specifically for apps that will enable custom app invites and notifications. More on that soon!&#8221;</p>
<p>Don&#8217;t screw this up MySpace, a compromise is in order if you plan to get people to stick around with your platform. There are other ways to ask for what you want without locking and restricting channels. The world isn&#8217;t so black and white in that good products always distribute themselves effectively because as you&#8217;ve seen so do crappy ones that know how to exploit channels fatiguing them well enough so nothing good makes it past the mark. postTo channels were fatigued before we even got here, we were never given a fair chance. Provide incentives to good applications, don&#8217;t be so damn afraid to punish bad ones, and regulate your channels&#8211;take a piece of advice from hi5.</p>
<p>Consider this, we have to deal with constant problems, downtime, and restrictions with a platform that is isn&#8217;t significantly viral. We do it because we hope for mechanisms that will provide greater distribution then we would get off-platform. You might be able to keep us around for a few months and toy with our minds but what&#8217;s going to keep us from stopping and realizing that the incentives are more or less the same outside your platform. <strong>I think it&#8217;s time you stop beating around the bush and tell us PRECISELY what ACC is, I for one am sick of all the damn secrecy only to be disappointed later.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/05/20/myspaces-cares-developers-fatigued-where-is-the-balance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSocial 0.8 finalizing&#8211;here&#8217;s a draft</title>
		<link>http://www.sociablecode.com/2008/05/16/opensocial-08-finalizing-heres-a-draft/</link>
		<comments>http://www.sociablecode.com/2008/05/16/opensocial-08-finalizing-heres-a-draft/#comments</comments>
		<pubDate>Sat, 17 May 2008 01:36:40 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=43</guid>
		<description><![CDATA[Source: http://opensocial-and-gadgets-spec.googlegroups.com/web/1-OpenSocial_0_8_Release_Notes.html?gda=x&#8211;sMVQAAACm0728fg2CW3_CoKlLDx-aChq5Kc1lWGJ-v8ummsbNaWG1qiJ7UbTIup-M2XPURDTdDqZ8CspOzx7w8nEg3iE2_gR-PHt22fWilkeZ8K1gKITIXwSHFlc31AV7pr2W3Bo
Release Notes for v0.8 (DRAFT)
This document describes the significant additions and changes in version 0.8   of the OpenSocial API. All features are covered in the API Reference (v0.8).
OpenSocial specification changes


 RESTful       API.  The OpenSocial       specification now requires that  [...]]]></description>
			<content:encoded><![CDATA[<p>Source: http://opensocial-and-gadgets-spec.googlegroups.com/web/1-OpenSocial_0_8_Release_Notes.html?gda=x&#8211;sMVQAAACm0728fg2CW3_CoKlLDx-aChq5Kc1lWGJ-v8ummsbNaWG1qiJ7UbTIup-M2XPURDTdDqZ8CspOzx7w8nEg3iE2_gR-PHt22fWilkeZ8K1gKITIXwSHFlc31AV7pr2W3Bo</p>
<h2>Release Notes for v0.8 (DRAFT)</h2>
<div id="vu.00">This document describes the significant additions and changes in version 0.8   of the OpenSocial API. All features are covered in the <a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html">API Reference (v0.8)</a>.</div>
<h3 id="j19z0">OpenSocial specification changes</h3>
<div id="inbdy">
<ul id="u1m:0">
<li id="u1m:1"> <span id="p2b00"><strong id="wll.0">RESTful       API.</strong></span><span id="x1nz0"><strong id="wll.1"> </strong></span> The OpenSocial       specification now <span id="k-ib0"><strong id="wll.2">requires</strong></span> that       containers implement a REST based API according to       the RESTful API       specification. This allows for servers, mobile devices,       and desktop applications to interact with OpenSocial containers.<br id="u1m:2" /></li>
</ul>
<h3 id="cgia0">opensocial.* JavaScript changes<br id="avwx0" /></h3>
<ul id="ywel0">
<li id="ywel1"> <span id="ywel2"><strong id="wll.3">Greater developer control over <a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.DataRequest.DataRequestFields.ESCAPE_TYPE">data       escaping</a>. </strong></span>Automatic data escaping has become easier to       control with the addition of an       <span style="font-family: Courier New;">escapeType</span> parameter       to the       <span style="font-family: Courier New;">newFetchPersonAppData</span> and       <span class="Apple-style-span" style="font-family: 'Courier New';">getField</span> methods, which allow a developer to specify whether the returned data       should be escaped.<br id="a6ts0" /></li>
</ul>
<p><br id="joda0" /></p>
<ul id="ywel0">
<li id="ywel1"> <span id="ma.g0" class="Apple-style-span"><strong id="wll.4">Persistence data treated       as JSON.</strong></span> All data stored in the Persistence API is now       treated as JSON-encoded. This allows for easier storage of complex objects       as well as smart data escaping by the       container.<span id="ma.g0" class="Apple-style-span"><br id="c4xf0" /> <br id="c4xf1" /> </span></li>
<li id="ywel1"> <span id="md4v0"><span id="x1nz1"><strong id="wll.5">A method to remove Persistence       data. </strong></span>The </span><span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.DataRequest.newRemovePersonAppDataRequest">newRemovePersonAppDataRequest</a></span> method was introduced to allow developers to delete stored data from the       Persistence API.<br id="bmg:0" /> <br id="v7mm0" /></li>
<li id="ywel1"> <span id="md4v0"><span id="zpaz0"><strong id="wll.6">Additional </strong><span class="Apple-style-span" style="font-family: 'Courier New';"><strong id="wll.7">Person</strong></span><strong id="wll.8"> fields.</strong></span> </span><span id="ma.g0" class="Apple-style-span">The       <span style="font-family: Courier New;">Person</span> object has       new <span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.DataRequest.FilterType.HAS_APP">hasApp</a></span> and       <span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.Person.Field.NETWORK_PRESENCE">networkPresence</a></span> fields. The       <span style="font-family: Courier New;">lookingFor</span> field has       been changed to a more structured format.<br id="r9h70" /> <br id="r9h71" /> </span></li>
<li id="ywel1"> <span id="xjll0"><strong id="wll.9">More flexibility when requesting       people. </strong></span><span id="xjll0">The new       <span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.IdSpec">IdSpec</a></span> object </span>provides a structured way to define a group of people, including a       NETWORK_DISTANCE parameter which will allow for querying friends of       friends.<br id="xjll1" /> <br id="xjll2" /></li>
<li id="ywel1"> <span id="md4v0"><strong id="wll.10">Additional filters for requesting       people. </strong></span><span id="md4v0">The new </span><span id="ma.g0" class="Apple-style-span"><span id="ma.g0" class="Apple-style-span"><span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.DataRequest.FilterType.TOP_FRIENDS">topFriends</a></span> and <span style="font-family: Courier New;">isFriendsWith</span> fields allow developers to filter the results of </span></span><span id="ma.g0" class="Apple-style-span">Person requests in new       ways.<br id="r9h72" /> <br id="zxxx0" style="font-weight: bold;" /> </span></li>
<li id="ywel1"> <span id="md4v0"><span id="k-050"><strong id="wll.11">Support for templates in       messages. </strong></span></span>The       <span style="font-family: Courier New;">Message</span> object now       has <span style="font-family: Courier New;">titleId</span> and       <span style="font-family: Courier New;">bodyId</span> fields so       that messages can use templates in the same way that activities do. <br id="ma.g28" />
<p id="ma.g29"><br id="r9h73" /></p>
</li>
<li id="ywel1"> <span id="md4v0"><span id="awa30"><strong id="wll.12">Additional error       codes. </strong></span>Responses may now contain </span><span id="ma.g0" class="Apple-style-span">the new       <span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.ResponseItem.Error.LIMIT_EXCEEDED">limitExceeded</a></span> error       code to indicate that a quota was exceeded by the request.<br id="x.fv0" /> <br id="x.fv1" /> </span></li>
<li id="ywel1"> <span id="md4v0"><span id="awa31"><strong id="wll.13">Support for container URL       templates. </strong></span></span><span id="ma.g0" class="Apple-style-span">The </span><span id="ma.g0" class="Apple-style-span"><span id="ma.g0" class="Apple-style-span"><span style="font-family: Courier New;"><a href="http://opensocial-and-gadgets-spec.googlegroups.com/web/5-opensocial_0_8_JS.html?gda=Nxqt2EkAAACm0728fg2CW3_CoKlLDx-apo6kBBArQIwU_XmkDLyCAmG1qiJ7UbTIup-M2XPURDSgKfFNV0j0pK7zAYFhaNPLfnKtbFj9WgiIjcGneaypPw&amp;gsc=ALyClwsAAABk5b1F4nlPuKWodIkLk2C2#opensocial.getContainerUrlTemplate">getContainerUrlTemplate</a></span> method was added to simplify constructing navigation       URLs. </span></span><span id="ma.g0" class="Apple-style-span"><span id="ma.g0" class="Apple-style-span">A       container is now able to specify a template for the application&#8217;s URL, so       developers can construct navigation links without making synchronous       JavaScript calls.</span><br id="x.fv2" /> <br id="x.fv3" /> </span></li>
<li id="ywel1"> <span id="md4v0"><span id="awa32"><strong id="wll.14">Greater control over </strong><span class="Apple-style-span" style="font-family: 'Courier New';"><strong id="wll.15">requestShareApp</strong></span><strong id="wll.16"> application       flows. </strong></span></span><span id="ma.g0" class="Apple-style-span">The       <span style="font-family: Courier New;">requestShareApp</span> method now lets the developer set navigation targets that application       users will see, both after accepting invites and also when sharing the       application with friends.<br id="ma.g44" /> <br id="x:v90" /> </span></li>
</ul>
<h3 id="wkmy0">gadgets.* JavaScript changes</h3>
<ul id="idzc0">
<li id="idzc1"> <strong id="wll.17">Support for OAuth authorization. </strong><span id="auaz0">The       <span style="font-family: Courier New;">gadgets.io.AuthorizationType.AUTHENTICATED</span> parameter       has been deprecated in favor of the newly added       <span style="font-family: Courier New;">gadgets.io.AuthorizationType.OAUTH</span>.       Gadgets may now consume web services requiring OAuth authorization.<br id="nq9y1" /> <br id="nq9y2" /> </span></li>
<li id="idzc1"> <span id="f3p20"><strong id="wll.18">Clarification</strong></span><span id="yq600"><span id="t:-r0"><strong id="wll.19"> of signed request functionality.</strong></span> The description of signed       <span style="font-family: Courier New;">makeRequest</span> calls       has become much more detailed in the spec. The names of parameters that       containers may or must include have been standardized, and key management       practices </span>are spelled out in detail.<br id="gl4m0" /> <br id="gl4m1" /></li>
<li id="idzc1"> <span id="yq601"><strong id="wll.20">Support for refresh intervals on proxied       URLs. </strong></span><span id="ma.g0" class="Apple-style-span"><span id="r0n60">Calls       to <span style="font-family: Courier New;">gadgets.io.getProxyUrl </span>may now include a parameter specifing how often the container       should refresh the content which lives at the supplied URL.<br id="pszo0" /> <br id="r0n61" /> </span></span></li>
<li id="idzc1"> <span id="yq601"><strong id="wll.21">Support for specifying a target OWNER when       navigating between       views. </strong></span><span id="ma.g0" class="Apple-style-span"><span id="ma.g0" class="Apple-style-span"><span id="r0n60">Calls       to       <span style="font-family: Courier New;">gadgets.views.requestNavigateTo</span> may now specify an OWNER&#8217;s ID number in order to navigate between       views</span></span></span> <span id="itdw0">on different users&#8217;       profiles.</span><br id="omij0" /> <span id="yq601"><br id="wx6c0" /> </span></li>
<li id="idzc1"> <span id="yq601"><span id="j3cf0"><strong id="wll.22">A method to sanitize       HTML. </strong></span></span>The<span id="ma.g0" class="Apple-style-span"><span id="omij1"> <span style="font-family: Courier New;">gadgets.util.sanitizeHtml</span> method was added to convert potentially malicious HTML code to text safe       for display.</span><br id="omij2" /> <br id="fd4n0" /> </span></li>
<li id="idzc1"> <span id="yq601"><strong id="wll.23">Standardization of view       types. </strong></span><span id="ma.g0" class="Apple-style-span">The       <span style="font-family: Courier New;">gadgets.views.ViewType</span> enumeration has been modified to reflect the most well-known set of views:       HOME, PROFILE, CANVAS, and PREVIEW.</span><br id="w3y-0" /> <span id="yq601"><br id="w3y-1" /> </span></li>
<li id="idzc1"> <span id="yq601"><span id="hw0i1"><strong id="wll.24">A method for gadgets on the       same view to communicate with each       other.</strong></span> </span><span id="ma.g0" class="Apple-style-span">The       new PubSub feature enables developers to send data between multiple       gadgets on the same view. <br id="hzmu0" /> </span></li>
</ul>
<h3 id="cyly0">Gadgets XML changes</h3>
<ul id="hl_.2">
<li id="hl_.3"> <span id="tb550"><strong id="wll.25">Support for inline message       bundles. </strong></span><span id="ma.g0" class="Apple-style-span">Message       bundles can now be inlined into the gadget xml, and no longer have to be       in a separate file.<br id="dtkh0" /> <br id="dtkh1" /> </span></li>
<li id="hl_.3"> <span id="tb551"><strong id="wll.26">Support for preloading remote data during the       gadget       render. </strong></span><span id="ma.g0" class="Apple-style-span"><span id="nxd00">Gadgets       can use the new       <span style="font-family: Courier New;">&lt;Preload&gt;</span> element to instruct the container to fetch data from a remote source       during the gadget rendering process. This data will be inlined in the       rendered output and available immediately when gadget code is executed.       Use of this method should reduce latency for gadgets that depend on       content from remote servers to render.<br id="eaau0" /> <br id="eaau1" /> </span></span></li>
<li id="hl_.3"> <span id="tb551"><strong id="wll.27">Support for signed requests when preloading       data. </strong></span><span id="ma.g0" class="Apple-style-span"><span id="ma.g0" class="Apple-style-span"><span id="nxd00">The       new <span style="font-family: Courier New;">&lt;Preload&gt;</span> element also supports preloading responses from signed requests.       Developers should add the       <span style="font-family: Courier New;">authz=&#8221;signed&#8221;</span> attribute and value to the       <span style="font-family: Courier New;">&lt;Preload&gt;</span> element to specify that a request for the URL should be signed by the       container.<br id="f6dn0" /> <br id="f6dn1" /> </span></span></span></li>
<li id="hl_.3"> <span id="tb551"><strong id="wll.28">Support for link elements in ModulePrefs, for       container specific       links. </strong></span><span id="ma.g0" class="Apple-style-span">There is a       new       <span class="Apple-style-span" style="font-family: 'Courier New';">&lt;Link&gt;</span> element that can be used within the gadget       <span class="Apple-style-span" style="font-family: 'Courier New';">ModulePrefs</span> section. This change is intended to allow containers to support new link       types, such as       <span class="Apple-style-span" style="font-family: 'Courier New';">gadgetsHelp</span> and       <span class="Apple-style-span" style="font-family: 'Courier New';">gadgetsSupport</span>. </span><br id="czyc0" /> <span id="tb551"><br id="czyc1" /> </span></li>
<li id="hl_.3"> <span id="tb551"><strong id="wll.29">Additional display fields that can use message       bundle substitutions.</strong></span><span id="f6tr0"> To improve       localization support, substitutions are now supported for all hangman       variables that get displayed to users (e.g. all       <span class="Apple-style-span" style="font-family: 'Courier New';">Module.ModulePrefs</span> attributes,       <span class="Apple-style-span" style="font-family: 'Courier New';">UserPref@display_name</span>)<br id="a44w0" /> <br id="a44w1" /> </span></li>
<li id="hl_.3"> <span id="o8_60"><strong id="wll.30">Support for specifying OAuth URLs in the       gadget spec. </strong></span>The       <span class="Apple-style-span" style="font-family: 'Courier New';">ModulePrefs</span> section can now be used to specify URLs for usage of OAuth.       <span id="ma.g0" class="Apple-style-span"><br id="oqry0" /> <br id="oqry1" /> </span></li>
</ul>
<ul id="hl_.2">
<li id="hl_.3"> <span id="tb551"><strong id="wll.31">Support for container lifecycle events such as       install and       uninstall. </strong></span><span id="ma.g0" class="Apple-style-span"><span id="i75z0">Gadgets       now support lifecycle events. You can place link tags in gadget xml that       specify URLs the container should hit when a specified type of event       occurs. This way, a gadget can be notified of all app installs or       uninstalls.<br id="i75z1" /> <br id="i75z2" /> </span></span></li>
<li id="hl_.3"> <span id="tb551"><span id="m7580"><strong id="wll.32">Support for specifying a       preferred height and width on each content section of the       gadget.</strong></span> You can use the new       <span class="Apple-style-span" style="font-family: 'Courier New';">preferredHeight</span> and       <span class="Apple-style-span" style="font-family: 'Courier New';">preferredWidth</span> tags to specify default height and width for each Content       section. This means that gadgets with multiple views can have       different default heights.</span></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/05/16/opensocial-08-finalizing-heres-a-draft/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSocial: A global unparalleled security risk</title>
		<link>http://www.sociablecode.com/2008/05/15/opensocial-a-global-unparalleled-security-risk/</link>
		<comments>http://www.sociablecode.com/2008/05/15/opensocial-a-global-unparalleled-security-risk/#comments</comments>
		<pubDate>Thu, 15 May 2008 20:10:37 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[Caja]]></category>

		<category><![CDATA[Facebook]]></category>

		<category><![CDATA[MySpace]]></category>

		<category><![CDATA[Ning]]></category>

		<category><![CDATA[Orkut]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[hi5]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=42</guid>
		<description><![CDATA[I am not entirely sure whether people pass off security articles, they&#8217;ve always intrigued me. I suggest you don&#8217;t skip this one whether you&#8217;re involved in OpenSocial or not.
Before I get into the meat of the article, a few things need to be understood, notably what is XSS and CSRF? I&#8217;ll explain this in layman&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I am not entirely sure whether people pass off security articles, they&#8217;ve always intrigued me. <strong>I suggest you don&#8217;t skip this one</strong> whether you&#8217;re involved in OpenSocial or not.</p>
<p>Before I get into the meat of the article, a few things need to be understood, notably what is XSS and CSRF? I&#8217;ll explain this in layman&#8217;s terms as opposed to sounding like a wikipedia article. Please research on your own if what I say makes no sense as it&#8217;s a pre-requisite on understanding this article and every programmer in the world should know what this is.</p>
<p>XSS (<strong><a href="http://en.wikipedia.org/wiki/Cross-site_scripting">Cross-site scripting</a>)</strong>: XSS is a way to execute javascript on webpages around the web that would otherwise be unintended behavior. Essentially, imagine you have a comment form, someone can create a comment with text input that allows them to execute javascript on your browser. In this imagine me sending Ajax POST requests to your bank account to withdraw $1000 and put it in my account. The transaction was on your behalf because javascript is executing in your browser and is therefore a valid, non-disputable transaction as the request will have originated from your IP address.</p>
<p>CSRF (<strong><a href="http://en.wikipedia.org/wiki/CSRF">Cross-site request forgery</a>)</strong>: CSRF is very simply session riding. We all have seen sites that contain a url as such: http://www.url.com/?action=logout. In this case, imagine if I redirected you to that URL, gmail would log you out. Not too glamorous huh? Well imagine for a minute, I created a form on MySpace, then created a 1&#215;1 iframe and opened a URL to post a bulletin out to all your friends on your behalf. You would&#8217;ve never known it happened and you would move along. This is the power of CSRF.</p>
<p>Combine XSS with CSRF and you have a catastrophe in many cases exhibited by the Samy Worm on MySpace. If you don&#8217;t know what I am talking about, Google it =).</p>
<p>If these became eye openers to you, continue reading. If you&#8217;re just brushing it off research a little more and the continue reading and perhaps I&#8217;ll be able to convince you.</p>
<p><strong>The meat:</strong></p>
<p>So what&#8217;s OpenSocial have to do with all of this? It&#8217;s secured in a nice little iframe off the container&#8217;s host right? Sure, that&#8217;s a step in the right direction however there&#8217;s much more of a problem:</p>
<p>Let&#8217;s walk-through how OpenSocial has been architected from a developer/hacker perspective:</p>
<ul>
<li>A javascript function called makeRequest() as a way to proxy Ajax calls to servers to GET/POST data.</li>
<li>OpenSocial applications utilize both REST and pure non-filtered Javascript as a means to design applications. A majority today use Javascript as it is cross-compatible.</li>
<li>OpenSocial contains virality mechanisms such as requestSendMessage() and requestShareApp() and activity streams as a means of spreading amongst users.</li>
<li>Finally, OpenSocial is able to grab user data such as a uniquely defined user id, gender, location, etc. The same is true of an application viewer&#8217;s friends.</li>
</ul>
<p>In some social networks, they use the actual user id on the social network as the opensocial id. These networks include MySpace.com and hi5.com. This means that I can grab a list of all my friends&#8217; opensocial id&#8217;s which also happen to be their real id&#8217;s on the network itself. Remember this.</p>
<p>OpenSocial is a viral channel to the distribution of any web exploit on the internet today. &#8220;Web 2.0&#8243; is often associated with socializing, networking, etc. OpenSocial is a new age mechanism of the exploiting, called it &#8220;Exploit 2.0&#8243; though that&#8217;s a silly buzzword&#8211;don&#8217;t spread it around!</p>
<p>I am going to say something very bold: <strong>The internet is only one XSS exploit away on any social network hosting an OpenSocial application from getting infected.</strong></p>
<p>Let&#8217;s try a proof of concept:</p>
<p>MySpace a few weeks ago contained an exploit that allowed people to use XSS and CSRF as a means to private message any user on the behalf of the person viewing the application. All these people needed was a user_id. MySpace protects it&#8217;s forms from CSRF by using a session hash in their forms that must match something on their backend&#8211;best way to defeat CSRF. Anyhow these people managed to get passed it via some sort of XSS hole, nonetheless they created an invisible iframe, created the form, set the target to the iframe, and submitted the form on your behalf. Beautiful and tricky, it&#8217;s pretty cool&#8211;nothing new though.</p>
<p>The problem with create XSS worms on the internet today is that they require a static element to them. For example, I once found an XSS hole in Facebook&#8217;s politics application, unfortunately the hole showed up on Facebook profiles. So I was able to literally execute javascript on my profile. I quickly changed my user input after a quick test and I linked in an external script to be executed on Facebook.com&#8217;s profile pages. That means I have complete control over Facebook to do whatever I want. So, of course, I am not completely malicious I simply photoshopped an image of Facebook, made it suhailBook and any time you visited my Facebook profile you would see the new suhailBook logo. It was priceless, however I started thinking more into it and realized that because I have complete control over Facebook, I could also send a request to the politics application to inject the same javascript file on any viewer to my profile on their behalf. The static element was that my user input was stored and could actively execute on the profile. I didn&#8217;t need to spam a url around and slowly infect people, I could exponentially do it. Every time someone viewed my profile, they would be infected and then become a host to spread it until the entire Facebook became suhailBook. This was all just a proof of concept, the hole was documented and fixed the same day.</p>
<p>The point is, OpenSocial IS that static element, the applications are contained on the profile pages of users and are allowed to execute javascript and API specific calls. Now imagine, I&#8217;ve found this way to privately message all of your friends to install the application on your behalf. As soon as they do they send out a spam message to all their friends. You now have exponential growth based on the ratio of conversions you get from that message.</p>
<p>Let&#8217;s take it a bit further, imagine you found a way to automatically install the application just by VIEWING a profile. You have OpenSocial as your static element to virally spread (because it sits on the profile) and an exploit to auto-install. Exponential growth.</p>
<p>If you take it one bit further, imagine you spread a 0-day exploit because of holes in Adobe Flash, Adobe PDF, or Quicktime? Exponential infection on an OS level.</p>
<p>Any social network that has even 1 XSS hole let&#8217;s an OpenSocial application spread itself exponentially. The application uses it&#8217;s weight of knowledge based on user data (like user id&#8217;s) and static placement on profiles can infect users simply by opening an iframe to myspace, orkut, hi5 and injecting the external js file to commit requests on behalf of a user. This is dangerous and this channels huge viral effects if you can spread the application virally at the same rate as infection. You can channel XSS and CSRF to do almost anything, change an image, edit a status, post a comment, post a blog entry, etc ,etc.</p>
<p>In some cases, you don&#8217;t even need an XSS hole, all you need is a little bit of CSRF. This is a funny case but imagine everytime someone installs your application or even views it, you decide to attempt to remove your competitors application via CSRF.</p>
<p>Another concept is that, XSS and CSRF are interesting ways to exploit but they aren&#8217;t very fun if you don&#8217;t have a popular website people go to so you can fool. OpenSocial doesn&#8217;t just provide avenues to exploit the containers but it presents avenues to exploit OTHER websites as well, like PayPal, Facebook, etc. You have this profile that&#8217;s highly trafficked and low and behold a malicious OpenSocial application that can open up iframe&#8217;s ANYWHERE it wants to and commit attacks on any site in the world. As the application spreads so does the rate of infection to other sites. These attacks are hard under normal circumstances because malicious sites are generally unpopular&#8211;you can&#8217;t profit very much off 10 people visiting your blog that has a hidden iframe stealing email lists from anyone that is logged into a yahoo account via XSS (this was once possible FYI). On MySpace, I can open up an iframe, inject my javascript, steal the whole email list of yahoo contacts from any user that is currently logged in, and send the data to my server which is continually harvesting them. Nobody would really notice because it&#8217;s not hurting anyone directly. I can harvest millions given the popularity the user whose profile is being seen. Who is protecting against that?</p>
<p>You may say, sure you have to find one XSS hole first. That is trivial and extremely easy give the attitude that XSS and CSRF are small exploits. In this environment, the tiniest exploit can have devastating effects. I promise you, just because these are big companies doesn&#8217;t mean their programmers forget to sanitize and secure inputs and forms respectively. I&#8217;ve found XSS on Google, Ning, Facebook, hi5, MySpace, Digg, etc. Ever heard of them?</p>
<p>You have 3 huge social networks using OpenSocial today, more will follow as people note their success.</p>
<p>There will be someone out there that has the courage to do this and you won&#8217;t even realize you were hit. OpenSocial needs to draft a change in security today, not tomorrow.</p>
<p>No one is protecting their users, every network has completely circumvented nearly every security measure they have placed and have destroyed many aspects of their site they took a lot of time to harden because of the 1 XSS hole to exploit concept.</p>
<p>Caja is not the answer. If you&#8217;re ready to piss off 1-5k+ developers and tell them to rearchitect their code, good luck. Oh and how is Caja going to stop me from Ajaxily requesting a script on my server? It&#8217;s not the answer. Manual code reviews do not scale. FBJS was a great solution and probably the only smart one.</p>
<p><strong>There is no mechanism on the internet today which invokes this new paradigm of infection so easily and is what makes OpenSocial a global unparalleled security risk.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/05/15/opensocial-a-global-unparalleled-security-risk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>hi5 dominates OpenSocial while the rest stagnant</title>
		<link>http://www.sociablecode.com/2008/04/30/hi5-dominates-opensocial-while-the-rest-stagnant/</link>
		<comments>http://www.sociablecode.com/2008/04/30/hi5-dominates-opensocial-while-the-rest-stagnant/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 22:23:18 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[MySpace]]></category>

		<category><![CDATA[hi5]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=41</guid>
		<description><![CDATA[It&#8217;s now been a few weeks, things are settling on hi5 at last. According the engineers over there, a new notifications system has been implemented (pushed on Monday) something along the lines of an actual queue system. The changes they have made definitely show, not just in how our applications load but they are reflected [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now been a few weeks, things are settling on hi5 at last. According the engineers over there, a new notifications system has been implemented (pushed on Monday) something along the lines of an actual queue system. The changes they have made definitely show, not just in how our applications load but they are reflected in our stats:</p>
<p><img src="http://www.outquib.net/opensocial/verb/images/hi5_stats.png" alt="" width="487" height="251" /></p>
<p>I can&#8217;t offer real numbers, sorry! But I promise they aren&#8217;t exactly in the hundreds or anything. hi5 is definitely chugging along. If you didn&#8217;t hear or see it, hi5 posted some stats about their platform during the Web 2.0 conference last week:</p>
<ul style="margin: 0pt 0pt 0pt 1.5em; padding: 0pt;">
<li style="margin: 0em 0pt; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">Production launch 3/31, full launch to 100% of users 4/4</span></li>
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">65 applications at launch, 328 today in 21 categories</span></li>
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">Averaging &gt; 1 million new installs each day</span></li>
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">5 apps with &gt; 1 million installs, 11 more with &gt; 500k installs</span></li>
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">Top apps getting &gt; 1 million daily canvas views</span></li>
</ul>
<p style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;"><br />
</span></p>
<ul style="margin: 0pt 0pt 0pt 1.5em; padding: 0pt;">
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">~50% of active users have at least one application installed</span></li>
<li style="margin: 0.197917em 0pt 0em; text-align: left; line-height: 1.2em; font-size: 0.833333em;"><span style="font-family: Arial,sans-serif; color: #000000;">Active users average ~3 apps on every profile, with as many as 16 </span></li>
</ul>
<p>While hi5 is giving developers instant success in some cases as I have talked to a few developers, MySpace continues to stagnant:</p>
<p><img src="http://www.outquib.net/opensocial/verb/images/myspace_stats.png" alt="" width="472" height="244" /></p>
<p>This is the number 1 application on MySpace right now, it&#8217;s called Truth Box (to no surprise, there are 4 of the same Truth Box style applications on MySpace). How its growth reached where it is, is quite suspect at this point but if you <strong>take a look at the weekly trend you&#8217;ll see that it&#8217;s closing in everyday on becoming more and more flat given the potential of MySpace&#8217;s real network effect</strong>. It&#8217;s growth is less attributed to MySpace and moreso to advertising and cross promotion with larger audiences on other social networks that probably also exist on MySpace as well.</p>
<p>A number of applications are already flat. <strong>MySpace is not pushing out fast enough and as a result we&#8217;re starting to see more blackhat techniques implemented to spark growth in lieu of actual ways to grow viral</strong>. postTo is weak attempt, I think others would agree. It may convert, but it sure as hell doesn&#8217;t convert well.</p>
<p>At this point, MySpace is the best platform to create the largest revenue stream while hi5 is the best platform to grow virally as expected but you&#8217;ll find it hard to be able to make revenue with the same weighted value as MySpace. It&#8217;s difficult to say who to go after but often easier to make the choice to do both. A lot of us are doing that.</p>
<p>MySpace give us something to grow a user-base and I bet you you&#8217;ll see some real application innovation and less black hat techniques to subvert your users. You&#8217;re not doing a great job of helping your now starving developers. We need concrete dates, we need to know exactly what&#8217;s going on. Additionally, features need to stop breaking during every push, when breaks occur they need to be documented.</p>
<p>One of the silliest ideas yet was for changes to not be pushed live anymore. I am not sure who came up with that idea but hi5 has created an almost brilliant one: Make a REFRESH button. Let us publish changes, see them in development mode and when we want them to go live, let us hit a nice shiny button that makes it instant. You guys are smart engineers, would you like it if we made you wait an entire day after you pushed an update to MySpace.com to see how it went? No, that would be chaotic, why impose the same restrictions on us?</p>
<p>I don&#8217;t even think I really even have to mention how bad Orkut is doing with their entire platform launch. I don&#8217;t think anyone cares either at this point with the bigger networks actually iterating. To sum up Orkut, I&#8217;ll write some code:</p>
<p>if ($network == &#8216;orkut&#8217;) {</p>
<p>while(true) { continueToBreakMorePromises(); }</p>
<p>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/30/hi5-dominates-opensocial-while-the-rest-stagnant/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySpace Virality API: requestSendMessage - April 30th</title>
		<link>http://www.sociablecode.com/2008/04/17/myspace-virality-api-requestsendmessage-april-30th/</link>
		<comments>http://www.sociablecode.com/2008/04/17/myspace-virality-api-requestsendmessage-april-30th/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 08:08:40 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[MySpace]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=40</guid>
		<description><![CDATA[Max Newbould (signal_loss) popped in the channel today. He&#8217;s parading around Asia hyping up the MySpace Development Platform trying to get more developers, talk about the platform, etc.
It didn&#8217;t take me long to emphasize the slow development, problems, and qualms that I was having with the developement platform these last few weeks. I partly think [...]]]></description>
			<content:encoded><![CDATA[<p>Max Newbould (signal_loss) popped in the channel today. He&#8217;s parading around Asia hyping up the MySpace Development Platform trying to get more developers, talk about the platform, etc.</p>
<p>It didn&#8217;t take me long to emphasize the slow development, problems, and qualms that I was having with the developement platform these last few weeks. I partly think it&#8217;s because Max is away and not as active in the community since he&#8217;s off in Asia. It started out fairly strong hence my disappointment.</p>
<p>Anyway, to the juicy stuff! I asked Max to provide a straight answer for the virality API, particularly requestSendMessage() (Notifications) and he stated &#8220;April 30th, unless something goes terribly wrong.&#8221;</p>
<p>I complained about adjustHeight(), he stated he was drafting an email to his team at the same time. Expect a fix soon hopefully.</p>
<p>Max stated invite sending is a good month away, so no real ETA on it&#8211;apparently a separate team is working on it.</p>
<p>I suggested an analytics service for us as it&#8217;s been very helpful on hi5.com, he expressed some interest in it&#8211;hopefully it made his email.</p>
<p>Max said he has been spending sometime additionally working on a better client caching system. Anyway, hopefully Max gives his team a swift kick in the ass tomorrow or the next day all the way from Asia. To keep up with what&#8217;s happening, Max writes actively on his blog on his MySpace profile at:</p>
<p><a href="http://myspace.com/signalloss">http://myspace.com/signalloss</a></p>
<p>Max stated that he was planning on taking Friday off (today!) but said he may pop in the channel, get his team ready:</p>
<p>signal_loss: ok, im off<br />
signal_loss: flying back to seattle<br />
signal_loss: take care all</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/17/myspace-virality-api-requestsendmessage-april-30th/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Quick OpenSocial Rundown</title>
		<link>http://www.sociablecode.com/2008/04/15/quick-opensocial-run-down/</link>
		<comments>http://www.sociablecode.com/2008/04/15/quick-opensocial-run-down/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 05:42:31 +0000</pubDate>
		<dc:creator>Suhail</dc:creator>
		
		<category><![CDATA[MySpace]]></category>

		<category><![CDATA[Orkut]]></category>

		<category><![CDATA[hi5]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/?p=39</guid>
		<description><![CDATA[This is a quick overview of what&#8217;s happening in the beautiful, frustrating, and highly hyped OpenSocial machine:
hi5:
1. Much better growth than MySpace, growth rates rise everyday. The only container that actually has viral growth! (Orkut&#8217;s 1% of Estonia does not count)
2. Stability issues occasionally that might be fixed now. This heavily stunted viral growth as [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick overview of what&#8217;s happening in the beautiful, frustrating, and highly hyped OpenSocial machine:</p>
<p><strong>hi5:</strong></p>
<p>1. Much better growth than MySpace, growth rates rise everyday. The only container that actually has viral growth! (Orkut&#8217;s 1% of Estonia does not count)<br />
2. Stability issues occasionally that might be fixed now. This heavily stunted viral growth as no one has probably been able to compound their viral growth everyday. Ouch.<br />
3. Huge language barriers with dense communities who do not necessarily speak English. hi5 ramp up your translation services, my i18n file is still in escrow and it hurts. <a href="http://code.google.com/apis/gadgets/docs/i18n.html">Click here for the full explanation on how to do it.</a><br />
4. Everything is ready for you on hi5 to explode in growth, once again, we just need stability.<br />
5. Lots of bugs but lots of fixes are happening daily. Unlike MySpace the hi5 devs push daily are machines who are awake at night to help you even with the smallest problems. Paul, Lou, Anil, Zach&#8211;you guys are awesome.<br />
6. Best support you&#8217;ll ever get is in #hi5dev. And hey it&#8217;s 10:30 PM here and they are still awake answering questions.<br />
7. hi5 actually has analytics! Zach expressed in providing analytics later the way Facebook does, we need this quickly!<br />
8. Oh RockYou put out a press release about reaching <a href="http://venturebeat.com/2008/04/14/social-network-hi5s-developer-platform-is-more-successful-and-spammier-than-myspaces/">2 millions users</a>, that happened about 4-5 days ago so they are probably much bigger now</p>
<p><em>Suggestion to hi5:</em> The language barrier is a growing issue for many developers. Some developers even see more growth on MySpace. Is there anything you can do to catering our applications harder to native English speaking users? This would let us grow properly until the i18n issue gets resolved. It&#8217;s difficult to grow under the dense Thailand users as well as the huge Spanish base.</p>
<p><strong>MySpace:</strong></p>
<p>1. Frustration.<br />
2. EXTREMELY slow development process.<br />
3. Stop staving us off with tricks like presenting us old functionality such as postTo which Zachallia (FreeGifts) has been using since the platform&#8217;s inception.<br />
4. <a href="http://developer.myspace.com/Community/blogs/devteam/archive/2008/04/14/ch-changes.aspx">Cool you finally found the courage to link the gallery</a>, great now we get a few hundred users and watch the growth decline like it did when you first launched. This is not enough.<br />
5. Vague deadlines, nobody has a damn clue when the viral API is coming out. First it was a couple weeks, those past by, where is it? If postTo was it, that was a mean trick.</p>
<p><strong>Orkut:</strong></p>
<p>1. Yay! <a href="http://orkutdeveloper.blogspot.com/2008/04/launching-to-10-of-users-in-about-week.html">You&#8217;re launching in about a week</a> except you should probably put this in really tiny font: 10% of your users only.<br />
2. Wait a second, wasn&#8217;t Orkut supposed to launch before everyone else? Does anybody really care anymore about a #6-7 social network that has a tiny non-native english speaking population<br />
3. Before you get too excited, Orkut has limited viral API such as no requestShareApp and probably no notifications either.</p>
<p>Other news, I am adamant about releasing my OpenSocial wrapper/framework to the public eventually. I am not sure when but here is an outline of it currently. I have working implementations of it on both my applications. Comments about the structure are appreciated:</p>
<p><img src="http://www.outquib.net/opensocial/verb/images/osnetwork.gif" alt="" /></p>
<p>A brief overview of some interesting things that it contains:</p>
<p>- Works beautifully on all containers (Orkut, hi5, MySpace)<br />
- owner/viewer PERSON info caching.<br />
- Friend request batching (which can emulate paging very easily).<br />
- Less verbose than opensocial API.<br />
- Like any framework, utility methods to ease the pain.<br />
- Wrappers around everything in case things change.<br />
- Easily obtain person info without it failing on certain non-implemented fields: getUser(person).aggregate(); // Obtains all possible data at once!<br />
- doRequest() (makeRequest) supports caching/refreshing/signed requests.<br />
- Fully implemented viral API that is ready to go.<br />
- MediaItems made easy for viral API.<br />
- Fully tested, mother approved.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/15/quick-opensocial-run-down/feed/</wfw:commentRss>
		</item>
		<item>
		<title>hi5 LifeCycle: Uninstall Ping</title>
		<link>http://www.sociablecode.com/2008/04/07/hi5-lifecycle-uninstall-ping/</link>
		<comments>http://www.sociablecode.com/2008/04/07/hi5-lifecycle-uninstall-ping/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 03:14:35 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
		
		<category><![CDATA[hi5]]></category>

		<category><![CDATA[hi5 lifecycle]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/hi5/hi5-lifecycle-uninstall-ping</guid>
		<description><![CDATA[&#60;Param name=&#8221;invitePingUrl&#8221; value=&#8221;http://host/path&#8221;/&#62;
Try it out&#8230;
]]></description>
			<content:encoded><![CDATA[<p>&lt;Param name=&#8221;invitePingUrl&#8221; value=&#8221;http://host/path&#8221;/&gt;</p>
<p>Try it out&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/07/hi5-lifecycle-uninstall-ping/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSocial: Viral at Last!</title>
		<link>http://www.sociablecode.com/2008/04/05/opensocial-viral-at-last/</link>
		<comments>http://www.sociablecode.com/2008/04/05/opensocial-viral-at-last/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 15:39:40 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
		
		<category><![CDATA[hi5]]></category>

		<category><![CDATA[load]]></category>

		<category><![CDATA[scale]]></category>

		<category><![CDATA[viral api]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/hi5/opensocial-viral-at-last</guid>
		<description><![CDATA[
We&#8217;re a few days into the first full-scale release of an OpenSocial implementation. Look what&#8217;s happening; this is no joke.
Developers who made the initial hi5 gallery, and who took advantage of the viral channels offered by the network, are watching with keen interest as their servers heat up&#8230;
Talk in the IRC has turned from details [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sociablecode.com/wp-content/uploads/2008/04/picture-6.png" alt="picture-6.png" align="right" /><br />
We&#8217;re a few days into the first full-scale release of an OpenSocial implementation. Look what&#8217;s happening; this is no joke.</p>
<p>Developers who made the initial hi5 gallery, and who took advantage of the viral channels offered by the network, are watching with keen interest as their servers heat up&#8230;</p>
<p>Talk in the IRC has turned from details of refreshing external js and implementing new API functionality towards stats tracking and methods for scaling apps. This is an exciting time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/05/opensocial-viral-at-last/feed/</wfw:commentRss>
		</item>
		<item>
		<title>hi5 LifeCycle: Uninstall and Install Ping Params</title>
		<link>http://www.sociablecode.com/2008/04/04/hi5-lifecycle-uninstall-and-install-ping-params/</link>
		<comments>http://www.sociablecode.com/2008/04/04/hi5-lifecycle-uninstall-and-install-ping-params/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 18:00:25 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
		
		<category><![CDATA[hi5]]></category>

		<guid isPermaLink="false">http://www.sociablecode.com/uncategorized/hi5-lifecycle-uninstall-and-install-ping-params</guid>
		<description><![CDATA[&#60;Optional feature=&#8221;hi5-lifecycle&#8221;&#62;
&#60;Param name=&#8221;installPingUrl&#8221; value=&#8221;&#8230;.URL here&#8230;&#8221;/&#62;
&#60;Param name=&#8221;removePingUrl&#8221; value=&#8221;&#8230;.URL here&#8230;&#8221;/&#62;
&#60;/Optional&#62;
This and other hi5 OpenSocial Extensions.
]]></description>
			<content:encoded><![CDATA[<p>&lt;Optional feature=&#8221;hi5-lifecycle&#8221;&gt;<br />
&lt;Param name=&#8221;installPingUrl&#8221; value=&#8221;&#8230;.URL here&#8230;&#8221;/&gt;<br />
&lt;Param name=&#8221;removePingUrl&#8221; value=&#8221;&#8230;.URL here&#8230;&#8221;/&gt;<br />
&lt;/Optional&gt;</p>
<p>This and <a href="http://www.hi5networks.com/platform/wiki/ExtendingOpenSocial#hi5-lifecycle">other hi5 OpenSocial Extensions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sociablecode.com/2008/04/04/hi5-lifecycle-uninstall-and-install-ping-params/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
