<?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>a work on process &#187; MySpace</title>
	<atom:link href="http://jystewart.net/process/tag/MySpace/feed/" rel="self" type="application/rss+xml" />
	<link>http://jystewart.net/process</link>
	<description>notes from another web developer</description>
	<lastBuildDate>Tue, 27 Jul 2010 09:53:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why we&#8217;re not quite ready for everyone to build their own social networking site</title>
		<link>http://jystewart.net/process/2007/12/why-were-not-quite-ready-for-everyone-to-build-their-own-social-networking-site/</link>
		<comments>http://jystewart.net/process/2007/12/why-were-not-quite-ready-for-everyone-to-build-their-own-social-networking-site/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 12:00:43 +0000</pubDate>
		<dc:creator>James Stewart</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[amnesty international]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[friendster]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[nptech]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[social networking sites]]></category>
		<category><![CDATA[unsubscribe]]></category>

		<guid isPermaLink="false">http://jystewart.net/process/2007/12/why-were-not-quite-ready-for-everyone-to-build-their-own-social-networking-site/</guid>
		<description><![CDATA[Whether or not you should build your own social networking site and/or make use of sites like facebook is currently a hot topic within the not-for-profit web developer/consultant world. The launch of sites like Amnesty International&#8217;s &#8220;unsubscribed&#8221;, which bears many hallmarks of a social networking site, combined with growing attention for facebook campaigns and tools <a href="http://jystewart.net/process/2007/12/why-were-not-quite-ready-for-everyone-to-build-their-own-social-networking-site/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>Whether or not you should build your own social networking site and/or make use of sites like facebook is currently a hot topic within the not-for-profit web developer/consultant world. The launch of sites like Amnesty International&#8217;s &#8220;unsubscribed&#8221;, which bears many hallmarks of a social networking site, combined with growing attention for facebook campaigns and tools like <a href="http://www.facebook.com/apps/application.php?id=4888840508&#038;b&#038;ref=pd">SuperBadger</a> bring the options and potential into clear focus. Elizabeth Dunn&#8217;s post last month &#8220;<a href="http://smalldots.wordpress.com/2007/11/19/social-networks-walled-gardens-and-decision-trees/">social networks, walled gardens, and decision trees</a>&#8221; makes a compelling argument that non-profits should be focussing on these questions now even if they&#8217;re not key for their current audience: sooner or later they will be and you don&#8217;t want to be playing catchup.</p>
<p>There are certainly many advantages to having your own social networking site. A facebook or myspace presence may attract attention, but the data you&#8217;ll be able to gather about your supporters and the potential for inserting your own branding are limited. Set up your own social network and you have full flexibility to integrate that data with your supporter databases, and to tune the site to your very specific requirements. But not only are they a significant investment of resources, there&#8217;s also a significant cost of time for supporters who will need to sign up for yet another site, identify their friends once again and give their attention to even more online data. Online campaigning&#8217;s great strength so far has been its low barrier to entry; for cause-specific social networks to really make sense their barriers need to fall.</p>
<p>That desire is definitely not unique to non-profits. As Brian Suda&#8217;s &#8220;<a href="http://www.sitepoint.com/article/social-networks-take-friends" title="Portable Social Networks: Take Your Friends with You [Content]">Portable Social Networks: Take Your Friends With You</a>&#8221; highlights, finding ways to let users move their data from site to site is a hot topic across the web development world. Sites like traveller network <a href="http://www.dopplr.com/" title="DOPPLR">dopplr</a> have succeeded in part by letting their (so far highly tech savvy) users import data from other social networks such as <a href="http://twitter.com" title="Twitter: What are you doing?">twitter</a>. The real breakthrough will be when the mass-networks of the moment (as facebook is today) become similarly open. That won&#8217;t make it <em>easy</em>, but it will mean that there is suddenly a huge audience who can become fully signed up for your site with just a couple of clicks.</p>
<p>Right now most efforts hinge on a set of emerging standards, two of which will be familiar to anyone who&#8217;s been reading this blog for some time but which bear some more attention. There&#8217;s plenty of information around the web on these so I&#8217;ll just touch on them briefly:</p>
<p><strong>Microformats</strong> are a way of taking plain old HTML and, by following some conventions, adding meaning to the content that could be understood by machines. While a human might be able to look at some information and infer that it is describing an event, machines aren&#8217;t so good at that, so we need standardised ways to say &#8220;this is describing an event, that bit is the date,&#8221; or &#8220;this link is to the homepage of my brother.&#8221; There were already ways to do that, but it involved adding extra things to your website. With microformats, so long as you (or your content management system) follow some simple conventions when creating a page, a machine can get the content out of the page as easily as a human reader can. That lets us identify friends/contact lists in a portable way, among other useful functions.</p>
<p><strong>OpenID</strong> is a way to get rid of the frustration of having to create a username and password for every new site you visit. Instead when you visit a new site that you want to sign up for, you enter a URL that is your OpenID and that site will check with a central system (which may require you to log in) whether you do in fact own that OpenID. Rather than having to remember dozens of usernames and passwords, you&#8217;ll probably just have to remember one URL, one username, and one password. And because you&#8217;re using that same OpenID for lots of sites, when you sign up for a new site you can be identified on others. So if you sign up for a new site I&#8217;ve created using the same OpenID you use on livejournal my software can identify you on livejournal and import your posts from there. So there&#8217;s less work for you to tell that new site you&#8217;re creating a profile on how to find your blog and to import the posts, and an easy way to make your profile active and informative.</p>
<p><strong>OAuth</strong> is the newest of the standards and goes hand-in-hand with OpenID. It allows you to grant one web application permission to access certain parts of your data in another application without giving your usernames and passwords all over the places. If you&#8217;ve ever used a site that redirected you to flickr to get your permission to do something with your photos, you&#8217;ve seen something like it. If OAuth is widely adopted, no longer will you have to give every social networking site your webmail username and password in order to have your address book checked for other users of the site, simply trusting that they won&#8217;t abuse it. Instead, it becomes easy to give a one-off permission while keeping your details as secret as they should be.</p>
<p>What these pieces add up to is a significant reduction in the psychological hurdles that might prevent your supporters from joining your new social network. Instead of pouring hours into their friendster profile only to find everyone has moved to myspace, and so not signing up for your site because they&#8217;d have to go through the whole process all over again, they can sign up with their OpenID, perhaps grant you a few permissions with OAuth (knowing that they&#8217;re not handing over the keys to their email, online photos, or whatever) and be signed up with an already complete profile.</p>
<p>In other words, persuading people to sign up and build their profiles is no longer the issue and you can focus on providing them with compelling reasons to keep coming back.</p>
<p>So if you&#8217;re wondering whether now is the time to start building out your campaign&#8217;s fancy new social networking site, it just may be, but chances are a few months from now will be a better time. As OpenID and OAuth become better established&#8212;and maybe even get adopted by some of the big players&#8212;your life is going to be easier and provided you pick web developers who&#8217;ve been keeping up you&#8217;ll be able to focus on your campaign strategy rather than coaxing visitors to spend another few hours re-entering the same old details.</p>
]]></content:encoded>
			<wfw:commentRss>http://jystewart.net/process/2007/12/why-were-not-quite-ready-for-everyone-to-build-their-own-social-networking-site/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The MySpace platform: now official</title>
		<link>http://jystewart.net/process/2007/10/the-myspace-platform-now-official/</link>
		<comments>http://jystewart.net/process/2007/10/the-myspace-platform-now-official/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 10:57:54 +0000</pubDate>
		<dc:creator>James Stewart</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[murdoch]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[o'reilly]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://jystewart.net/process/2007/10/the-myspace-platform-now-official/</guid>
		<description><![CDATA[The rumours of MySpace launching a platform or API have been floating for quite some time, but now as reported on the O&#8217;Reilly Radar they have been confirmed. 

Over the next two months they are going to increase third-party access to their site. First, they are going to highlight the thousands of widgets that have <a href="http://jystewart.net/process/2007/10/the-myspace-platform-now-official/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>The rumours of MySpace launching a platform or API have been floating for quite some time, but now <a href="http://radar.oreilly.com/archives/2007/10/web2summit_mysp.html">as reported on the O&#8217;Reilly Radar</a> they have been confirmed. </p>
<blockquote cite="http://radar.oreilly.com/archives/2007/10/web2summit_mysp.html"><p>
Over the next two months they are going to increase third-party access to their site. First, they are going to highlight the thousands of widgets that have been on their site for years now. This should be released in the next couple of weeks. I am assuming that it will go beyond the FIM&#8217;s Spring Widget Gallery. Second, they are going to offer an API for applications to all developers. However, these applications are going to be sandboxed initially and 1-2 million users will have access to them. If the users deem the applications safe and useful they&#8217;ll be available to all users. Developers will be able to advertise in their applications.
</p></blockquote>
<p>It&#8217;ll be interesting to see whether the MySpace platform and API are truly a step towards openness or whether it&#8217;ll be another walled garden a la facebook. Facebook&#8217;s platform is phenomenally successful, but doesn&#8217;t really open up their core data (status, events, etc.) for developers to interact with. Given their track record it&#8217;s unlikely that MySpace are really going to launch something more open that that.</p>
<p>For developers, and for the musicians whose presence is MySpace&#8217;s key calling card, this is a tiny step but not one that makes easier the services that we really need. Musicians still need to update their information across dozens of walled gardens rather than having easy tools to use. Developers still need to scrape and hack if they want to provide a way to access core parts of users&#8217; profile, and unless MySpace address the many, many technical problems on their site (unreliability, apparently random use of captchas, awful HTML) that&#8217;s going to remain a huge hassle.</p>
<p>Of course, the key question will be whether this announcement will help MySpace retain their pre-eminent position. The crown has slipped over the last few months, with facebook&#8217;s popularity rocketing and people deleting MySpace contacts and accounts in order to focus on just one social network. I suspect MySpace will never get their crown back. If they do, it&#8217;ll have to be because they&#8217;ve radically changed the social networking game.</p>
]]></content:encoded>
			<wfw:commentRss>http://jystewart.net/process/2007/10/the-myspace-platform-now-official/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avoiding MySpace (or, cross-posting with WWW::Mechanize)</title>
		<link>http://jystewart.net/process/2007/04/avoiding-myspace-or-automating-myspace-updates-with-wwwmechanize/</link>
		<comments>http://jystewart.net/process/2007/04/avoiding-myspace-or-automating-myspace-updates-with-wwwmechanize/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 03:30:20 +0000</pubDate>
		<dc:creator>James Stewart</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[WWW::Mechanize]]></category>

		<guid isPermaLink="false">http://jystewart.net/process/2007/04/avoiding-myspace-or-automating-myspace-updates-with-wwwmechanize/</guid>
		<description><![CDATA[It seems that anyone involved in helping musicians with their web presence has to learn to tolerate MySpace. I don&#8217;t think I know anyone who actually enjoys the process of using MySpace, but a strong presence there is a must have for almost every musician these days.
I&#8217;ve long wished for a decent API that would <a href="http://jystewart.net/process/2007/04/avoiding-myspace-or-automating-myspace-updates-with-wwwmechanize/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>It seems that anyone involved in helping musicians with their web presence has to learn to tolerate MySpace. I don&#8217;t think I know anyone who actually enjoys the process of using MySpace, but a strong presence there is a must have for almost every musician these days.</p>
<p>I&#8217;ve long wished for a decent API that would help me integrate MySpace with websites I run for musicians&#8212;after all, it isn&#8217;t very DRY to post the same content in several places when it could be automated&#8212;but as time has gone on it&#8217;s become clear that an API would be entirely anathema to MySpace&#8217;s approach to the web.</p>
<p>So while working on some updates to a friend&#8217;s website I decided to try out <a href="http://rubyforge.org/projects/mechanize/">the Ruby port of WWW::Mechanize</a> to automate the process of posting blog entries over at MySpace.</p>
<p>Firstly, we need to be able to log in. To do that, you can almost copy some of the library&#8217;s examples as it&#8217;s as simple as:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">agent = <span style="color:#6666ff; font-weight:bold;">WWW::Mechanize</span>.<span style="color:#9900CC;">new</span>
agent.<span style="color:#9900CC;">user_agent_alias</span> = <span style="color:#996600;">'Mac Safari'</span>
&nbsp;
page = agent.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'http://www.myspace.com'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
login_form = page.<span style="color:#9900CC;">forms</span>.<span style="color:#9900CC;">with</span>.<span style="color:#9900CC;">name</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'theForm'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">first</span>
login_form.<span style="color:#9900CC;">email</span> = username
login_form.<span style="color:#9900CC;">password</span> = password
logged_in = agent.<span style="color:#9900CC;">submit</span><span style="color:#006600; font-weight:bold;">&#40;</span>login_form<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Posting a blog entry is a little trickier, as MySpace uses javascript to change forms&#8217; &#8216;action&#8217; attributes based on which button you click, and occasionally inserts tokens in the URLs, but after a little exploration I came up with:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">blog_page = agent.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'http://blog.myspace.com/index.cfm?fuseaction=blog.create&amp;editor=false'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
blog_form = blog_page.<span style="color:#9900CC;">forms</span>.<span style="color:#9900CC;">with</span>.<span style="color:#9900CC;">name</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'theForm'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">first</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Here we have to grab the action as it includes a token which can change</span>
new_action = blog_page.<span style="color:#9900CC;">body</span>.<span style="color:#9900CC;">match</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span>document.<span style="color:#9900CC;">theForm</span>.<span style="color:#9900CC;">action</span> = <span style="color:#996600;">'(.+?)'</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#41;</span>
blog_form.<span style="color:#9900CC;">action</span> = new_action<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
&nbsp;
blog_form.<span style="color:#9900CC;">subject</span> = subject
blog_form.<span style="color:#9900CC;">BlogCategoryID</span> = category
blog_form.<span style="color:#9900CC;">body</span> = body
&nbsp;
now = <span style="color:#CC00FF; font-weight:bold;">DateTime</span>.<span style="color:#9900CC;">now</span>
blog_form.<span style="color:#9900CC;">postMonth</span> = now.<span style="color:#9900CC;">month</span>
blog_form.<span style="color:#9900CC;">postDay</span> = now.<span style="color:#9900CC;">mday</span>
blog_form.<span style="color:#9900CC;">postYear</span> = now.<span style="color:#9900CC;">year</span>
blog_form.<span style="color:#9900CC;">postHour</span> = now.<span style="color:#9900CC;">strftime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'%I'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
blog_form.<span style="color:#9900CC;">postMinute</span> = now.<span style="color:#9900CC;">min</span>
blog_form.<span style="color:#9900CC;">postTimeMarker</span> = now.<span style="color:#9900CC;">strftime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'%p'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
submitted = agent.<span style="color:#9900CC;">submit</span><span style="color:#006600; font-weight:bold;">&#40;</span>blog_form<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
confirm_form = submitted.<span style="color:#9900CC;">forms</span>.<span style="color:#9900CC;">with</span>.<span style="color:#9900CC;">name</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'theForm'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">first</span>
confirm_form.<span style="color:#9900CC;">action</span> = <span style="color:#996600;">'http://blog.myspace.com/index.cfm?fuseaction=blog.processCreate'</span>
posted = agent.<span style="color:#9900CC;">submit</span><span style="color:#006600; font-weight:bold;">&#40;</span>confirm_form<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>And that&#8217;s all there is to it. I&#8217;m impressed with how easy WWW::Mechanize makes interacting with forms, and generally how pleasant it is to work with. Performance is pretty good too, specially given how problem prone MySpace is. It&#8217;s nice to be able to imagine a scenario in which clients can cross-post their content to MySpace. If we&#8217;re lucky, we never need actually visit that website again!</p>
<p>I&#8217;m working on packaging up the code, probably with support for posting event dates and &#8216;bulletins&#8217;, and adding in error handling to deal with the 75% of the time (based on my usage this afternoon) when MySpace returns an error page. It may be a few days, but I&#8217;ll post a note here when it&#8217;s ready.</p>
]]></content:encoded>
			<wfw:commentRss>http://jystewart.net/process/2007/04/avoiding-myspace-or-automating-myspace-updates-with-wwwmechanize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
