<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alyn Family &#187; Technology</title>
	<atom:link href="http://alynfamily.com/wordpress/tag/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://alynfamily.com/wordpress</link>
	<description>From us to you!</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:26:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19854</generator>
		<item>
		<title>OpenSocial is Getting Better</title>
		<link>http://alynfamily.com/wordpress/2008/02/13/opensocial-is-getting-better/</link>
		<comments>http://alynfamily.com/wordpress/2008/02/13/opensocial-is-getting-better/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 22:06:57 +0000</pubDate>
		<dc:creator>egg</dc:creator>
				<category><![CDATA[AF-Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[social network]]></category>

		<guid isPermaLink="false">http://alynfamily.com/wordpress/2008/02/13/opensocial-is-getting-better/</guid>
		<description><![CDATA[Some folks will recall back in November I wrote how OpenSocial was irrelevant as a platform for social networking applications. I&#8217;ve been working with it for the last three days on MySpace and have to say, over the last few &#8230; <a href="http://alynfamily.com/wordpress/2008/02/13/opensocial-is-getting-better/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src='http://alynfamily.com/wordpress/wp-content/uploads/2008/02/opensocial_logo.thumbnail.jpg' alt='OpenSocial Logo' style="float:left;padding-right:5px; padding-bottom:5px;" />
<p>Some folks will recall back in November I wrote how <a href="http://alynfamily.com/wordpress/2007/11/04/why-opensocial-doesnt-matter-yet/">OpenSocial was irrelevant</a> as a platform for social networking applications. I&#8217;ve been working with it for the last three days on <a href="http://www.myspace.com">MySpace</a> and have to say, over the last few months the folks at MySpace have been working hard to bring OpenSocial to a usable reality. I&#8217;ve had some time this week to experiment with it and I must say &#8211; while certainly not &#8220;done&#8221; it&#8217;s come a VERY long way. Warning: This is going to get kinda lame for those who don&#8217;t care about Social Networks and application development.<span id="more-738"></span></p>
<p><strong>Signed Requests / Security</strong></p>
<p><img src='http://alynfamily.com/wordpress/wp-content/uploads/2008/02/oauth_logo.png' alt='oauth logo' style="float:left; padding-right:5px; padding-bottom:5px; /> First and foremost MySpace has added (or are in the process of adding) <a href="http://oauth.net/">OAuth</a> which allows the providers proxies to sign requests using a pre-shared secret key &#8211; limited docs on the MySpace implementation are available on the <a href="http://developer.myspace.com/community/RestfulAPIs/authentication.aspx">developer site</a> but your best served looking through the <a href="http://developer.myspace.com/Community/search/SearchResults.aspx?q=oauth">forums</a>. This is so huge I don&#8217;t even know where to begin. Essentially, prior to this &#8211; anyone could make a request, watch it go over the wire and then manipulate the parameters at will. This type of untrusted injection was problematic for any application that needs to maintain integrity of their users data. Consider the following request:</p>
<p><code><br />
// AJAX request</p>
<p>http://site.com/?m=write&#038;t=1&#038;s=1&#038;c=Hi+friend</p>
<p></code></p>
<p>While 99% of users would never see this request go, the 1% of users who are more aware of what&#8217;s going on could see that by simply calling the file directly in their browser would let them write unlimited messages to anyone &#8211; virtually unchecked! </p>
<p><code><br />
// False AJAX requests</p>
<p>http://site.com/?m=write&#038;t=1&#038;s=1&#038;c=Hi+friend+play+poker</p>
<p>http://site.com/?m=write&#038;t=2&#038;s=1&#038;c=Hi+friend+play+poker</p>
<p>http://site.com/?m=write&#038;t=3&#038;s=1&#038;c=Hi+friend+play+poker</p>
<p>http://site.com/?m=write&#038;t=4&#038;s=1&#038;c=Hi+friend+play+poker</p>
<p>  ...</p>
<p>http://site.com/?m=write&#038;t=999999999&#038;s=1&#038;c=Hi+friend+play+poker</p>
<p></code></p>
<p>Imagine if I wrote a script to automatically call that page incrementing the &#8216;t&#8217;(target) value by one each time. I could eventually send a message to every user on that social network. In case your wondering the level of difficulty of this, it&#8217;s not hard. OAuth changes this by signing the request.</p>
<p><code><br />
// Pseudocode to sign<br />
secret_key="password"<br />
oauth_signature=sha1("m=write&#038;t=1&#038;s=1&#038;c=Hi+friend&#038;oauth_secret="+secret_key)<br />
params="m=write&#038;t=1&#038;s=1&#038;c=Hi+friend&#038;oauth_signature="+oauth_signature</p>
<p>// OAuth AJAX request:</p>
<p>http://site.com/?m=write&#038;t=1&#038;s=1&#038;c=Hi+friend&#038;oauth_signature=21b0972caf29a85f68eecc1e1fe470080ba36163</p>
<p></code></p>
<p>Now on the server side, we can validate the source of this data to be trusted because we can recalculate the oauth_signature value by reconstructing the string using the same calculation using the shared secret on the server side. If the keys match, the request is valid! So why not just &#8220;unsha1&#8243; the value? <a href="http://en.wikipedia.org/wiki/SHA_hash_functions">SHA1</a> is a hashing algorithm that is generally not reversible. SHA1 is also implemented in most modern web languages so it&#8217;s easy to integrate. Only a full public key infrastructure would be more secure! BTW: I know this signature is invalid &#8211; it&#8217;s for illustrative purposes.</p>
<p>Developers, wherever you are, keep those keys secure and hard to guess!!!</p>
<p><strong>Where MySpace is Still Failing</strong></p>
<p><img src='http://alynfamily.com/wordpress/wp-content/uploads/2008/02/developer_myspace.thumbnail.png' alt='developer myspace' style="float:left; padding-right:5px; padding-bottom:5px;" /> I commend MySpace for adopting a standard for their implementation of OpenSocial, however, there&#8217;s a critical flaw in the execution. It&#8217;s OpenSocial based, not a true OpenSocial application. For some unknown reason, I have to upload 3 different versions of my code (1 per &#8220;surface&#8221;) that are then bascially cached on the MySpace server. While this is great for load and scalability for a startup, it leaves me little room for tweaking and makes testing VERY difficult unless I work in their very small textarea. Thank God for <a href="http://www.apple.com/safari/">Apple&#8217;s Safari</a> which allows for scaling of textarea elements in real time. This also means I need to create a new version of my application for MySpace. It could have accomplished the same means to an end by having their responsibility for the application end with the directory registration process. In that process we could establish a shared key (see OAuth above) and any particular differentiations from the standard OpenSocial format. Furthermore, the write once &#8211; run anywhere mantra of <del datetime="2008-02-13T20:00:00+00:00">Java</del> OpenSocial could be preserved! </p>
<p><strong>Developers Define Space</strong></p>
<p><img src='http://alynfamily.com/wordpress/wp-content/uploads/2008/02/myspace_opensocial_editor_screensnip.png' alt='screen snip of myspace editor' style="float:left; padding-right:5px; padding-bottom:5px; /> My next point of contention was screen area. MySpace seems to have taken this to heart. Developers are still constrained by column widths, but they can request a vertical space allowing them to gobble up as much of a column as they feel their users will tolerate. This is a critical component when attempting to design an interface to fit within a very small area. Ideally I&#8217;d like the &#8220;surface&#8221; as it&#8217;s called in OpenSocial lingo to be fluid, growing as needed so that users ultimately have control.</p>
<p><strong>Naked Source</strong></p>
<p>This is still an issue, however, now that we can sign requests, developers can push critical components of their applications processing back to their own servers.</p>
<p><strong>Data Portability</strong></p>
<p><img src='http://alynfamily.com/wordpress/wp-content/uploads/2008/02/dataportability_logo.png' alt='dataportability.org logo' style="float:left; padding:right:5px; padding-bottom:5px; /> The <a href="http://dataportability.org/">Data Portability</a> working group has been formed and has gained some mass acceptance among social network providers triggered mostly by actions of blogger <a href="http://scobleizer.com/">Robert Scoble</a> who downloaded all of his Facebook contacts using a script and sent the entire Social Networking community into an uproar. While nothing has actually come to the users as a result of the group &#8230; I&#8217;m hopeful that Social Networking will allow us to select the tools we wish to use without alienating our friends. </p>
<p><strong>App Directory</strong></p>
<p>At least in the MySpace arena, there will be a directory of applications that users can choose from. Other social networks also host their own directories and I suspect that will be the case for some time to come. I could see a future state where an automatic discovery tool worked its way in (like RSS for apps) but it may be trivial if developers are continuing to craft their applications for each individual network.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Falynfamily.com%2Fwordpress%2F2008%2F02%2F13%2Fopensocial-is-getting-better%2F';
  addthis_title  = 'OpenSocial+is+Getting+Better';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://alynfamily.com/wordpress/2008/02/13/opensocial-is-getting-better/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ultra High-End Audio &#8211; Another cool toy</title>
		<link>http://alynfamily.com/wordpress/2007/12/01/ultra-high-end-audio-another-cool-toy/</link>
		<comments>http://alynfamily.com/wordpress/2007/12/01/ultra-high-end-audio-another-cool-toy/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 04:32:27 +0000</pubDate>
		<dc:creator>egg</dc:creator>
				<category><![CDATA[Are you nuts?]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[home theater]]></category>
		<category><![CDATA[speakers]]></category>
		<category><![CDATA[too much]]></category>

		<guid isPermaLink="false">http://alynfamily.com/wordpress/2007/12/01/ultra-high-end-audio-another-cool-toy/</guid>
		<description><![CDATA[ With the Christmas holiday quickly approaching, the absurd continues on. I mentioned the Willies Jeep a couple of posts back and saw this one on Crave just the other day. Kharma brings us an audio system 99.999% of people can&#8217;t afford. Perhaps I am wrong, are &#8230; <a href="http://alynfamily.com/wordpress/2007/12/01/ultra-high-end-audio-another-cool-toy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://alynfamily.com/wordpress/wp-content/uploads/2007/12/speakers_380x262.thumbnail.jpg" alt="Kharma speakers" /> With the Christmas holiday quickly approaching, the absurd continues on. I mentioned the <a href="http://alynfamily.com/wordpress/2007/11/24/willys-jeep-another-way-cool-toy/">Willies Jeep</a> a couple of posts back and saw this one on <a href="http://crave.cnet.com/8301-1_105-9717107-1.html">Crave</a> just the other day. <a href="http://www.kharma.com/">Kharma</a> brings us an audio system 99.999% of people can&#8217;t afford. Perhaps I am wrong, are people really making this much money that they can blow so much on absurd things? The speaker set you see left (photo courtesy of <a href="http://higherfi.com">HigherFi.com</a>) retails for about a cool million &#8211; who need&#8217;s 100 thousand dollar cars when you can get speakers? Oh, don&#8217;t forget that you&#8217;ll need to buy a <a href="http://www.sweetwater.com/shop/studio/preamps/buying-guide.php">preamp</a>, <a href="http://www.wavac-audio.jp/sh833_e.html">amp</a> and at least a <a href="http://www.fmtunerinfo.com/on-deck.html">tuner</a> expect to drop ten thousand on that, but what&#8217;s a few grand after the million anyway? I guess I&#8217;ll just have to live with my sad sub $1,000 <a href="http://www.bostonacoustics.com/">Boston Acoustic</a> speakers and theater system until I win <a href="http://www.powerball.com/">PowerBall</a>.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Falynfamily.com%2Fwordpress%2F2007%2F12%2F01%2Fultra-high-end-audio-another-cool-toy%2F';
  addthis_title  = 'Ultra+High-End+Audio+%26%238211%3B+Another+cool+toy';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://alynfamily.com/wordpress/2007/12/01/ultra-high-end-audio-another-cool-toy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why OpenSocial doesn&#8217;t matter &#8211; yet.</title>
		<link>http://alynfamily.com/wordpress/2007/11/04/why-opensocial-doesnt-matter-yet/</link>
		<comments>http://alynfamily.com/wordpress/2007/11/04/why-opensocial-doesnt-matter-yet/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 00:22:24 +0000</pubDate>
		<dc:creator>egg</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://alynfamily.com/wordpress/?p=679</guid>
		<description><![CDATA[OpenSocial, is a new open standard for applications to integrate with some of the largest social networks in the world. On the surface, OpenSocial is a great move forward for application developers. The learning curve for FBML and FQL at &#8230; <a href="http://alynfamily.com/wordpress/2007/11/04/why-opensocial-doesnt-matter-yet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://alynfamily.com/wordpress/wp-content/uploads/2007/11/opensocial.thumbnail.jpg" alt="OpenSocial" style="float:left;" /></p>
<p><a href="http://code.google.com/apis/opensocial/">OpenSocial</a>, is a new open standard for applications to integrate with <a href="http://myspace.com">some</a> <a href="http://orkut.com">of</a> <a href="http://hi5.com">the</a> <a href="http://ning.com">largest</a> <a href="http://linkedin.com">social</a> <a href="http://salesforce.com">networks</a> in the world. On the surface, OpenSocial is a great move forward for application developers. The learning curve for FBML and FQL at <a href="http://www.facebook.com">Facebook</a> is trivial at best, but just as learning many similar languages at once, having one simple API to reference is ultimately much easier. The portability of write once, run anywhere brings back to mind the panacea called <a href="http://www.java.com">Java</a>. However, in reality, OpenSocial promotes frivolous time wasting applications that lack any real utility. This may change (and I sincerely hope it does) in future iterations, but for now, Facebook has the social networking platform to beat.</p>
<p><span id="more-679"></span></p>
<p>To begin with, there is no security model in place to authenticate communication between servers outside of the API. For example, if a friend is going to record an action on my profile, such as leaving me a message, and the widget provider wants to record that in a database for business reasons such as allowing portability of those messages, all that is provided is an unencrypted, insecure method for doing so. The application passes the message via HTTP along with both user Ids and that’s it! Any hacker with 10 minutes of time can easily spam a huge number of ID&#8217;s inserting ads for online gambling, pharmaceuticals or worse? There is an alternative &#8211; sorting the data on the individual social networks servers &#8211; but to what end? There is limited space and this does little for the portability of data that Google seems to be trying to achieve.</p>
<p>Second is screen area. Facebook profiles allow users to decide how much real estate an application can have on a profile. Using free market economics, folks who dislike large presences on their profiles will likely not use an application, forcing developers to decide how much is too much on their own. The Orkut code sets the size of the profile presence as well as the canvas, limiting applications to play in a very rigid and confined space. Leaving aside the argument of space for PPC advertising, this leaves very little space for the applications interface and more over thwarts the users ability to select the tools that fit their personal style the best. Developers who are doing testing to decide if there’s a viable business model behind an application are left to swallow a huge opportunity cost because of limited space for the PPC advertising. Instead, to monetize traffic early on, they much leverage partnerships that are often more costly and difficult to broker, leaving less time to actually build their application. If the OpenSocial model leaves an unclear revenue model for an developers, it will be left up to hobbyists to build and support applications in their free time.</p>
<p>Third, naked source, this is not just open, but naked. There is very little to keep another one company from swallowing ideas from another company, but lack the resources to execute it fully, or afford the lawyers to protect their intellectual property. Early in the days of Facebook apps, some folks were burned by sharing their source before they had established market dominance. With OpenSocial, anyone can read your source and do with it as they wish. Really, I’m not kidding, it’s all right there for the world to see (unless you insecurely store data on external servers and keep some of the business logic there!) While in theory, this can lead to more secure code, it does not foster a strong platform for business to develop innovative applications. I’m sure that when Google and the rest of the OpenSocial partners provide authenticated communication with the Application providers external servers (like Flickr and Facebook do) this will become much less of an issue.</p>
<p>Fourth, portability of user data. A big problem with social networks today, is the portability of a user’s data; it’s not. As I mentioned earlier, user generated data is not secure when it’s sent off of the social networks server. Additionally, there is no structure in place to make the users data really portable &#8211; not just for applications &#8211; but for the users themselves. Access to the social networks contact list is limited at best and only accessible to someone willing to write a specific application to fetch it. Some content can be taken as a feed to other services (if the network allows it) but that does not equal real portability for the user. Perhaps there is yet another standard needed here that dumps a users profile content in a portable way? I’m thinking something like RSS for social networks. If I don’t like my ISP, I can change from Cable to DSL and back again, why can&#8217;t I do that with my social network provider?</p>
<p>Last but not least, there is no central directory of applications. I am sure there are a few developers out there right now working to remedy this, but I wish they would launch an alpha of some sort so independent developers (ie, not Slide and RockYou) could start getting the word out about their applications.</p>
<p>I’m looking forward to seeing where OpenSocial takes the social networking community at large, but generally, I think we’ve got a long way to go. Who knows, it might be December before this stuff gets addressed! So much for panacea. <img src='http://alynfamily.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Falynfamily.com%2Fwordpress%2F2007%2F11%2F04%2Fwhy-opensocial-doesnt-matter-yet%2F';
  addthis_title  = 'Why+OpenSocial+doesn%26%238217%3Bt+matter+%26%238211%3B+yet.';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://alynfamily.com/wordpress/2007/11/04/why-opensocial-doesnt-matter-yet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

