<?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>timwhitlock.info &#187; General</title>
	<atom:link href="http://timwhitlock.info/blog/cat/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://timwhitlock.info</link>
	<description>Tim Whitlock&#039;s personal site and blog</description>
	<lastBuildDate>Thu, 15 Dec 2011 13:51:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Dictionary bookmarklet</title>
		<link>http://timwhitlock.info/blog/2010/08/09/dictionary-bookmarklet/</link>
		<comments>http://timwhitlock.info/blog/2010/08/09/dictionary-bookmarklet/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 12:48:35 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=461</guid>
		<description><![CDATA[I use this really basic Firefox bookmarklet pretty much every day, so I thought I&#8217;d post it. &#8211;&#62; Dictionary.com &#60;&#8211; drag to toolbar Dictionary.com provide an &#8216;official&#8217; bookmarklet, here: http://dictionary.reference.com/tools/bookmarklets.html I&#8217;ve improved it a bit Selected text uses window.getSelection(), not document.getSelection() Trims junk out of current selection Opens a new window so you don&#8217;t lose [...]]]></description>
			<content:encoded><![CDATA[<p>I use this really basic Firefox bookmarklet pretty much every day, so I thought I&#8217;d post it.</p>
<p>&#8211;&gt; <strong><a href="javascript:void%20(function(){try{var%20b=window.getSelection(),a=b?b.toString().replace(/(^\W+|\W+$)/g,''):'';if(!a){a=prompt('Enter%20a%20word%20to%20look%20up');if(!a)return}var%20c='http://dictionary.reference.com/search?r=1&#038;q='+encodeURIComponent(a);window.open(c)}catch(d){alert('Oops:\n'+d.message)}})();">Dictionary.com</a></strong> &lt;&#8211; drag to toolbar</p>
<p>Dictionary.com provide an &#8216;official&#8217; bookmarklet, here:<br />
<a href="http://dictionary.reference.com/tools/bookmarklets.html" target="_blank">http://dictionary.reference.com/tools/bookmarklets.html</a></p>
<p>I&#8217;ve improved it a bit<span id="more-461"></span></p>
<ul>
<li>Selected text uses <code>window.getSelection()</code>,  not <code>document.getSelection()</code></li>
<li>Trims junk out of current selection</li>
<li>Opens a new window so you don&#8217;t lose the current page</li>
<li>Uses <code>encodeURIComponent()</code>, not <code>escape()</code></li>
</ul>
<p>Here&#8217;s the uncompressed source on Github</p>
<p><script src="http://gist.github.com/515450.js?file=improved%20dictionary.com%20bookmarklet"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/08/09/dictionary-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>node-amf and node-rtmp</title>
		<link>http://timwhitlock.info/blog/2010/08/07/node-amf-and-node-rtmp/</link>
		<comments>http://timwhitlock.info/blog/2010/08/07/node-amf-and-node-rtmp/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 13:56:16 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[AMF]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[RTMP]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=449</guid>
		<description><![CDATA[AMF and RTMP libraries for node.js &#8211; Flash remoting with node. I&#8217;ve been having fun playing with node.js over the past year, but have had little, or no excuse to use it in any production work, so I thought I&#8217;d set myself a challenge and build a module. That challenge was firstly to create a [...]]]></description>
			<content:encoded><![CDATA[<h3>AMF and RTMP libraries for node.js &#8211; Flash remoting with node.</h3>
<p>I&#8217;ve been having fun playing with <a href="http://nodejs.org/" target="_blank">node.js</a> over the past year, but have had little, or no excuse to use it in any production work, so I thought I&#8217;d set myself a challenge and build a module. That challenge was firstly to create a simple AMF gateway for Flash remoting, and secondarily to see if an RTMP socket server was achievable in node.</p>
<p>If you don&#8217;t know about &#8220;<a href="http://nodejs.org/" target="_blank">node&#8221;</a> &#8211; It&#8217;s a JavaScript runtime that allows you to write socket servers. I like it a lot &#8211; it brings asynchronous, event-driven programming to the server side and provides a truly global variable scope across all connections. I&#8217;ll blog about it in more detail later, perhaps.</p>
<p>At <a href="http://www.publicreative.com/" target="_blank">Public</a> we do a lot of <a href="http://www.innocentkids.co.uk/" target="_blank">Flash work</a>, and regularly implement Flash remoting using a PHP AMF gateway. I wasn&#8217;t necessarily looking to replace this stock approach with node, but node offers proper socket connections that PHP can&#8217;t, so I was imagining the possibilities of using node as a free, and more flexible alternative to Flash Media Server. Not for streaming media, but for real-time messaging, for example in multi-player games. If I&#8217;m honest though, I did this mostly for fun, an academic exercise and as an excuse to work with node.</p>
<h3><span id="more-449"></span>node-amf</h3>
<p>node-amf is on GitHub as a <em>public</em> repository: <a href="http://github.com/timwhitlock/node-amf" target="_blank">http://github.com/timwhitlock/node-amf</a></p>
<p>The first step was to write a pure JavaScript AMF implementation. i.e. a library for serializing and deserializing AMF packets. If you&#8217;re not familiar with <a href="http://en.wikipedia.org/wiki/Action_Message_Format" target="_blank">AMF (Action Message Format)</a> &#8211; it&#8217;s a binary serialization and messaging format invented by Adobe for passing data back and forth between Flash and a remote server. I am not the only person to implement this in JavaScript: mid-way through my project I noticed <a href="http://www.jamesward.com/2010/07/07/amf-js-a-pure-javascript-amf-implementation/" target="_blank">amf.js</a> appear &#8211; just a little too late for me. This library is probably much better than my own, but mine is designed specifically for node, so I shall stick with it for now.</p>
<p>With a working AMF library all that remained was to create a HTTP gateway. There are many examples of AMF gateways in other languages, including <a href="http://framework.zend.com/download/amf" target="_blank">PHP</a>. The general approach is that a single request/response  exchange carries one or more messages, each one calling a web service  on the server and returning the result. AMF also has the ability to invoke methods in the Flash client on response &#8211; an underused feature.</p>
<p>Node makes it incredibly easy to implement an <a href="http://github.com/timwhitlock/node-amf/blob/master/node-amf/http-server.js" target="_blank">HTTP server</a>, all that I had to do was decide how to expose the web services to the gateway. I decided to do this by passing a user-defined JavaScript object when initializing the server &#8211; each property of the object is a function callable by name &#8211; <a href="http://github.com/timwhitlock/node-amf/tree/master/examples/http-server/" target="_blank">example AMF gateway here</a>. This suitably sandboxes the method calls, and ensures the client cannot execute arbitrary JavaScript functions &#8211; that would be bad.</p>
<p>This part of the project is largely complete and working. It has not been used in production yet, so if you&#8217;re brave enough to use it, please let me know how it&#8217;s going!</p>
<h3>node-rtmp</h3>
<p>node-rtmp is currently under the same project as node-amf because it&#8217;s dependant upon the AMF library. This <strong>incomplete</strong>, highly <strong>unstable</strong>, and <strong>experimental </strong>work is under the <a href="http://github.com/timwhitlock/node-amf/tree/master/node-rtmp/" target="_blank">node-rtmp subdirectory</a> with <a href="http://github.com/timwhitlock/node-amf/tree/master/examples/" target="_blank">examples here</a>.</p>
<p>If you&#8217;re not familiar with <a href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol" target="_blank">RTMP (Real Time Messaging Protocol)</a> it provides bi-directional streaming media and messaging over persistent socket connections. It&#8217;s the messaging I&#8217;m interested in. Flash talks to Flash Media Server over RTMP sockets and can securely call methods in both directions.</p>
<p>As it turns out the <a href="http://www.adobe.com/devnet/rtmp/" target="_blank">RTMP specification</a> is very badly written. (The <a href="http://en.wikipedia.org/wiki/Action_Message_Format#References" target="_blank">AMF specs</a> were quite easy to read, although possibly much simpler). If I was a cynic, I may even suggest that Adobe has purposefully written them badly to avoid third party developers being able to adhere to the usage license which insists in adequate conformance to the spec. However, it doesn&#8217;t seem to have stopped numerous projects such as <a href="http://sourceforge.net/projects/librtmp/" target="_blank">librtmp</a> from gluing the pieces together.</p>
<p>This is the point where I realised I might be out of my depth. I am currently in the process of glueing the pieces together myself. Armed with the dodgy specification, <a href="http://www.wireshark.org/" target="_blank">Wireshark</a>, and the fragmented information dotted around the Internet, I am making some slow progress. At the time of writing I have the RTMP handshake working correctly, and have just about deciphered the command messaging packets.</p>
<p>I may give up before this is at all useful.<em> </em></p>
<h3>librtmp and node add-ons</h3>
<p>As you may have noticed, I&#8217;m talking about implementing all of this in pure JavaScript, and you may be thinking that&#8217;s nuts. You are probably right. As libraries, these don&#8217;t really need to be written in JavaScript. In addition to pure JavaScript modules, node supports <a href="http://nodejs.org/api.html#addons-310" target="_blank">add-ons</a> &#8211; compiled libraries which can be built against C and C++ system libraries. A good example of this is <a href="http://github.com/vanillahsu/node-memcache" target="_blank">node-memcache</a>.</p>
<p>C and C++ is unfortunately outside my skill set, but I imagine it may be possible to build an RTMP node add-on using <a href="http://sourceforge.net/projects/librtmp/" target="_blank">librtmp</a>. Anyone fancy a crack at that?</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/08/07/node-amf-and-node-rtmp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Diaspora &#8211; are you an early rejector?</title>
		<link>http://timwhitlock.info/blog/2010/05/13/diaspora-are-you-an-early-rejector/</link>
		<comments>http://timwhitlock.info/blog/2010/05/13/diaspora-are-you-an-early-rejector/#comments</comments>
		<pubDate>Thu, 13 May 2010 20:59:36 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[diaspora]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fomo]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=430</guid>
		<description><![CDATA[The four NYU students pledging to build Diaspora captured my imagination today, and I&#8217;m not the only one. There is so much to discuss around this and it&#8217;s not even out of the lab yet. In a rare display of focus, I&#8217;ll devote my first post on the topic to one of the more obvious [...]]]></description>
			<content:encoded><![CDATA[<p>The four NYU students pledging to build <a href="http://www.joindiaspora.com/project.html" target="_blank">Diaspora</a> captured my imagination today, and <a href="http://www.kickstarter.com/projects/196017994/diaspora-the-personally-controlled-do-it-all-distr/backers" target="_blank">I&#8217;m not the only one</a>.</p>
<p>There is so much to discuss around this and it&#8217;s not even out of the lab yet. In a rare display of focus, I&#8217;ll devote my first post on the topic to one of the more obvious questions &#8211; <strong>Can they (or do they need to) get 400 million people to migrate away from Facebook?</strong><span id="more-430"></span></p>
<p>The idea of a decentralized, open source social network where you truly own your data appeals to many a privacy-concerned geek, but I think perhaps the announcement of Diaspora and their <a href="http://www.kickstarter.com/projects/196017994/diaspora-the-personally-controlled-do-it-all-distr" target="_blank">rapid public funding</a> is timely more than anything. After the <a href="http://www.facebook.com/f8" target="_blank">F8 conference</a> Facebook are predictably under the spotlight again &#8211; this time there&#8217;s even <em>infoporn -</em> See: <a href="http://mattmckeon.com/facebook-privacy" target="_blank">Mat McKeon</a> and the <a href="http://www.nytimes.com/interactive/2010/05/12/business/facebook-privacy.html" target="_blank">New York Times.</a></p>
<p>So we&#8217;re all &#8216;concerned&#8217; about our privacy, and maybe even what Facebook are up to in general, but as <a href="http://fernandorizo.typepad.com/blog/2010/05/facebook-keeps-calling-our-bluff.html" target="_blank">Fernando Rizo muses</a> on his blog today, are you going to quit? No, of course not. Well, not without a decent alternative, because you don&#8217;t want to miss out. (See <a href="http://www.urbandictionary.com/define.php?term=fomo" target="_blank">FOMO</a>). Well let&#8217;s assume for a moment that Diaspora becomes that alternative &#8211; what then?</p>
<h3>Tipping the other way</h3>
<p>In theory I don&#8217;t see a reason the <a href="http://en.wikipedia.org/wiki/Network_effect" target="_blank">Network Effect</a> can&#8217;t work in reverse. It takes early adopters to populate a site like Facebook in the first place &#8211; perhaps a trend in rejection could result in a tipping point in the opposite direction. If you joined Facebook because your friends did, and they went somewhere else &#8211; you&#8217;d eventually go too. Somebody has to go first of course.</p>
<p><a href="../tag/facebook/">I grumble about Facebook</a> all the time,  but I use it as much as the next guy &#8211; in fact more  than most of my  friends. I don&#8217;t want to shut my account down. Going cold turkey would be a serious commitment. I think for this to happen for me there would have to be some kind of  transitional phase.</p>
<p>If Diaspora allowed me to view and publish content to and from Facebook, that would surely defeat its primary function. You could argue that it depends what the content was, but it would still mean keeping my Facebook account active. It might however be a way to soften the blow, and at the same time entice my peers into migrating too.</p>
<p>I don&#8217;t have the solution, (and I probably don&#8217;t understand the problem), but many of us are far too attached to our digital homes for this to be a clean break. As Fernando points out we&#8217;ve seen mass migration before (away from MySpace) but I&#8217;d say it&#8217;s a bigger deal this time. I remember quitting MySpace (~2007) and I really didn&#8217;t miss it. I had a handful of photos and about 30 friends. It was also incredibly annoying. Despite my moaning, I really like Facebook, it&#8217;s a very usable site and there&#8217;s <em>vastly</em> more content than I had access to three years ago.</p>
<h3>Would an exodus be necessary?</h3>
<p>Diaspora are proposing a hosted, turn-key option for their software (<a href="http://en.support.wordpress.com/com-vs-org/" target="_blank">a la WordPress</a>) and perhaps, as is <a href="http://www.gnu.org/philosophy/selling.html" target="_blank">common with open source products</a>, providers will be permitted to package up and sell the product themselves in a healthy, competitive fashion. To move 400 million people over to Diaspora, this would surely be essential &#8211; how many Facebook users know what a <a href="http://www.gnupg.org/" target="_blank">GPG</a> key is?</p>
<p><a href="http://twitter.com/timwhitlock/status/13927932016" target="_blank">I joked earlier</a> (complete with typo) that if  Diaspora took off, perhaps Facebook could move to a hosted-Diaspora  revenue model. Perhaps this wasn&#8217;t such a joke. Facebook need <a href="http://news.yahoo.com/s/afp/20100502/tc_afp/usitinternetrightscompanyfacebook" target="_blank">your data to profit</a>, if you&#8217;re going to abscond and  not give them any more data and not look at any more ads, then a  premium service where you can interact with your friends without getting  &#8216;graphed&#8217; seems reasonable to me. The privacy concerned few could pay, while the complacent masses continue to trade their personal lives for a free ticket.</p>
<p>I&#8217;m thinking out loud and probably sound like an idiot, but I&#8217;m hungry and need to go home&#8230;. just gotta check my Facebook.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/05/13/diaspora-are-you-an-early-rejector/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OAuth 2.0</title>
		<link>http://timwhitlock.info/blog/2010/05/06/oauth-2/</link>
		<comments>http://timwhitlock.info/blog/2010/05/06/oauth-2/#comments</comments>
		<pubDate>Thu, 06 May 2010 20:52:16 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=421</guid>
		<description><![CDATA[Off the back of all the recent Facebook changes I just read the OAuth 2.0 spec &#8211; it&#8217;s currently in a draft state, and according to this page, Facebook is currently the only implementation in the wild. This new spec attempts to pull together various authentication journeys rather than just the typical web app model. [...]]]></description>
			<content:encoded><![CDATA[<p>Off the back of all the recent Facebook changes I just read the <a href="http://tools.ietf.org/html/draft-ietf-oauth-v2" target="_blank">OAuth 2.0 spec</a> &#8211; it&#8217;s currently in a draft state, and according to <a href="http://wiki.oauth.net/OAuth-2" target="_blank">this page</a>, Facebook is currently the only implementation in the wild. This new spec attempts to pull together various authentication journeys rather than just the typical web app model. This is a great news &#8211; It seems to accommodate many different situations across differing devices with different capabilities, while maintaining a good level of consistency.</p>
<p>You didn&#8217;t expect me to have only nice things to say, did you? There are a couple of things I have to question.<span id="more-421"></span></p>
<h3>It&#8217;s only a draft</h3>
<p>Despite this spec being a draft, Facebook (who are represented in the <a href="https://www.ietf.org/mailman/listinfo/oauth" target="_blank">working group</a>) have gone ahead and implemented it anyway. Although this is a step up from the non-standard methods they&#8217;ve employed to date, it does make me wonder. Will the spec be finalised according to their implementation? Will they change their implementation if the spec changes? Or will they end up going in separate directions? (think ECMAScript 4/ActionScript). As with my gripes about the <a href="http://web.2point1.com/2010/04/25/f8-and-the-open-graph/" target="_self">Open Graph</a>, how &#8220;open&#8221; are standards when we have self-interested corporations in the driving seat.</p>
<h3>Looser security for JavaScript clients</h3>
<p>The so-called <a href="http://tools.ietf.org/html/draft-ietf-oauth-v2-01#section-3.5.1" target="_blank">&#8220;user_agent&#8221; journey</a> serves the needs of front-end applications that don&#8217;t have access to a web server. (i.e. JavaScript only apps). This support comes at a cost to security because request signing is not required. (More to the point, signing would be redundant). The risk is a limited one &#8211; the &#8220;bearer tokens&#8221; must only be sent over SSL, so the worst you can do is take control of an app under the authentication of your own account. Still, I imagine it would be possible to post content that the app did not intend. (use your imagination!) My main gripe here is in justifying the trade off. The loosening of security is in favour of making apps easier to implement for more people &#8211; i.e. a Facebook business interest. I don&#8217;t think that&#8217;s a good enough reason to weaken the specification.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/05/06/oauth-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>F8 and the Open Graph</title>
		<link>http://timwhitlock.info/blog/2010/04/25/f8-and-the-open-graph/</link>
		<comments>http://timwhitlock.info/blog/2010/04/25/f8-and-the-open-graph/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 16:56:22 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[annotations]]></category>
		<category><![CDATA[f8]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open graph]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=404</guid>
		<description><![CDATA[Wot no geo? I&#8217;ve been saying to people that I&#8217;m not too excited about the announcements from F8 last week. I suppose this is because I was expecting the announcement that many were &#8211; that Facebook would launch a geolocation service. I still expect they will (even if it&#8217;s by way of acquisition). With 400 [...]]]></description>
			<content:encoded><![CDATA[<h3>Wot no geo?</h3>
<p>I&#8217;ve been <a href="http://twitter.com/timwhitlock/status/12629795125" target="_blank">saying to people</a> that I&#8217;m not too excited about the announcements from <a href="http://www.facebook.com/f8" target="_blank">F8</a> last week. I suppose this is because I was <a href="http://twitter.com/timwhitlock/status/12509993920" target="_blank">expecting</a> the announcement that many were &#8211; that Facebook would launch a geolocation service. I still expect they will (even if it&#8217;s by way of acquisition). With <strong>400 times</strong> the <a href="http://dmwmedia.com/news/2010/04/23/foursquare-hits-1-million-users-talks-microsoft-facebook" target="_blank">user base of Foursquare</a>, just imagine how much faster they could build their &#8216;places&#8217; database than the <a href="http://techcrunch.com/2010/04/17/open-database-places/" target="_blank">numerous firms</a> all racing to do so; and what a valuable chunk of data that would be too.</p>
<p>Well, we didn&#8217;t get <em>that</em> announcement, but it&#8217;s taken a few days to dawn on me that geolocation is only one part of a much bigger picture &#8211; and that announcement we did get. It&#8217;s the <a href="http://opengraphprotocol.org/" target="_blank">Open Graph</a>.</p>
<p><span id="more-404"></span><img class="alignright" style="border: 0pt none; margin: 0px 5px;" src="http://i78.photobucket.com/albums/j95/slashbackslash/1984-movie-BB_a1.jpg" alt="" width="300" /></p>
<h3>The Open Graph</h3>
<p>Graphing the social web was only the beginning. Connecting people<em> </em>to <em>places </em>may be an obvious next step, but a place is only one kind of &#8216;object&#8217; and Facebook [it seems] want them <em>all</em> &#8211; Your dog, your favourite band, your kitchen sink. The <em>location </em>of all these objects will follow soon enough &#8211; the embryonic Open Graph protocol already has fields for geolocation and address information, it&#8217;s just that Facebook have been fairly quiet on the topic.</p>
<p>What&#8217;s most significant about the graphing of these objects is that it extends beyond Facebook&#8217;s walled garden to the wider web. Facebook has trained us like chimps to click &#8216;like&#8217; buttons for [however long] and now these clicks are going to index the entire web for them. These humble little buttons can now be attached to <em>anything</em>, <em>anywhere</em> and the collected data will have real <strong>meaning </strong>as to <em>what </em>and <em>where </em>these things are.</p>
<h3>The Semantic Web</h3>
<p>As I <a href="http://twitter.com/timwhitlock/status/12588826173" target="_blank">tweeted from the F8 live stream</a>, there are fairly obvious overlaps with Facebook&#8217;s Open Graph protocol and <a href="http://www.readwriteweb.com/archives/what_twitter_annotations_mean.php" target="_blank">Twitter&#8217;s proposed annotations</a>. Perhaps they have different goals, but they are both essentially an attempt to make sense of the vast amounts of data flowing through their networks. They in fact have similar goals to the elusive <a href="http://en.wikipedia.org/wiki/Semantic_web" target="_blank">Semantic Web</a>. If you tune out the marketing babble and social media pontification there are some huge issues here, <a href="http://blogs.channel4.com/news/benjamin-cohen-on-technology/2010/04/22/mark-zuckerberg-wants-the-web-to-like-facebook-with-implications-for-privacy-and-the-future-of-google-and-twitter/" target="_blank">privacy</a> being an obvious one, but also we may ask: how &#8216;open&#8217; is it?, why are they doing it? and who benefits?</p>
<p>Through open standards some very clever people have been trying to steer us toward the Semantic Web for <a href="http://www.nytimes.com/2006/05/23/technology/23iht-web.html" target="_blank">years</a>. Facebook could easily stroll along and &#8220;do a Microsoft&#8221; on the whole thing. Regardless of the word &#8220;open&#8221;, they are still a self-serving corporation and with their reach extending beyond the walls of facebook.com this can have a real impact on the future of the Internet.</p>
<p>I&#8217;m far from being an expert on the Semantic Web, but here&#8217;s what some real <a href="http://www.semanticweb.com/on/reactions_to_facebook_opengraph_and_twitter_annotations_159202.asp" target="_blank">experts have to say about the Open Graph</a>.</p>
<h3>Who benefits?</h3>
<p>Privacy and open standards aside, this was the first question that popped into my head when watching the F8 keynote. Before writing this post I Googled &#8220;who benefits from the open graph?&#8221; to see if anyone had already blogged it &#8211; it threw up <a href="http://factoryjoe.com/blog/2010/04/22/understanding-the-open-graph-protocol/" target="_blank">a great post by Chris Messina</a>, so I&#8217;ll try not to replicate what he has to say.</p>
<p>It was <a href="http://twitter.com/hellokinsella/status/12630632076" target="_blank">this brief twitter conversation</a> that got me thinking about the parties involved and what they each have to gain from all of this. Take the new &#8216;like&#8217; button process, which is equivalent now to opting in to a fan page. Of the three parties, the user appears to benefit the least.</p>
<ul>
<li><strong>Facebook </strong>get tonnes of data. (cue links to articles on <a href="http://news.bbc.co.uk/1/hi/8508814.stm" target="_blank">&#8220;the price of free&#8221;</a>). More fan pages will also drive more ad sales.</li>
<li><strong>The advertiser</strong> (publisher/brand/whatever) gets to push more content to you and gets tonnes of stats into the bargain. Visit your favourite agency blog to read how brilliant for brands this is.</li>
<li><strong>We </strong>get the thrill of seeing that we like the same thing as our friends (or not) and if it&#8217;s something we <em>really </em>like, we might enjoy the content that is subsequently pushed into our news feed.</li>
</ul>
<p>Regardless of my usual cynicism and choice of imagery &#8211; I&#8217;m not saying any of this is bad, as a developer it&#8217;s pretty exciting (contradicts self).  I just think these questions need to be asked, and I wish all 400 million Facebook users would do the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/04/25/f8-and-the-open-graph/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The &#039;like&#039; button grows up</title>
		<link>http://timwhitlock.info/blog/2010/04/24/the-like-button-grows-up/</link>
		<comments>http://timwhitlock.info/blog/2010/04/24/the-like-button-grows-up/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 17:09:37 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[like]]></category>
		<category><![CDATA[opengraph]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=401</guid>
		<description><![CDATA[Dear ordinary Facebook user. If you&#8217;re not a developer, or &#8216;social media guru&#8217; you probably didn&#8217;t watch Mark Zuckerberg&#8217;s keynote speech last week; you probably haven&#8217;t read about the open graph protocol, and you probably haven&#8217;t tried out any of the new social plugins that Facebook have released. Because of this you may not be [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dear ordinary Facebook user</strong>. If you&#8217;re not a developer, or &#8216;social media guru&#8217; you probably didn&#8217;t watch <a href="http://www.facebook.com/f8" target="_blank">Mark Zuckerberg&#8217;s keynote speech</a> last week; you probably haven&#8217;t read about the <a href="http://opengraphprotocol.org/" target="_blank">open graph protocol</a>, and you probably haven&#8217;t tried out any of the <a href="http://developers.facebook.com/plugins" target="_blank">new social plugins</a> that Facebook have released. Because of this you may not be aware of some seemingly small changes that affect you more than you might think.</p>
<p>Here&#8217;s one: <strong>the &#8216;like&#8217; button</strong>. This has become more than just a casual way to show your friends you think something is cool. It&#8217;s become more powerful for advertisers, more useful for Facebook, and for you &#8230; ? <span id="more-401"></span>You&#8217;re going to start seeing &#8216;like&#8217; buttons all over other websites, including this one; What you probably won&#8217;t realise straight away is what it means to click this. Clicking a &#8216;like&#8217; button on anything, <em>anywhere </em>instantly creates a Facebook &#8216;page&#8217; for that &#8216;<em>thing</em>&#8216; and <strong>makes you a &#8216;fan&#8217;</strong>. Being a fan of a page (as you probably know) means the owner of that page can publish content into your news feed. So, essentially, by clicking my &#8216;like&#8217; button on this page is the same as you saying you want to be a fan of this article and you want to allow me to deliver content to you about it any time I like. All at the casual click of a button.</p>
<p>There, that&#8217;s it. I just thought you should know. Make up your own mind about whether you think this is sneaky or not. Personally, I think it is. Here&#8217;s a <a href="http://blogs.channel4.com/news/benjamin-cohen-on-technology/2010/04/22/mark-zuckerberg-wants-the-web-to-like-facebook-with-implications-for-privacy-and-the-future-of-google-and-twitter/" target="_blank">good article on the topic</a> by Channel 4&#8242;s technology c<span>orrespondent. </span></p>
<p>&#8211;<br />
I&#8217;ll be writing more about the announcements from F8 and Chirp later on. This was just a quickie, because I think the ~400 million Facebook users that aren&#8217;t Internet professionals need to be kept in the loop.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/04/24/the-like-button-grows-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps zoom scales</title>
		<link>http://timwhitlock.info/blog/2010/04/18/google-maps-zoom-scales/</link>
		<comments>http://timwhitlock.info/blog/2010/04/18/google-maps-zoom-scales/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 15:42:05 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=388</guid>
		<description><![CDATA[I couldn&#8217;t find this information today when I needed, so I thought I&#8217;d share. If it&#8217;s in the Google maps documentation, then I missed it. If you want to zoom a map to fit a particular distance as tightly as possible, you need to know the scale of each of the 19 levels. In metres [...]]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t find this information today when I needed, so I thought I&#8217;d share. If it&#8217;s in the Google maps documentation, then I missed it.</p>
<p>If you want to zoom a map to fit a particular distance as tightly as possible, you need to know the scale of each of the 19 levels. In metres per pixel, I worked them out to be as follows:<span id="more-388"></span></p>
<pre>zoom m/px
  19  0.19
  18  0.37
  17  0.74
  16  1.48
  15  3
  14  6
  13  12
  12  24
  11  48
  10  95
   9  190
   8  378
   7  752
   6  1,485
   5  2,909
   4  5,540
   3  10,064
   2  16,355
   1  21,282</pre>
<p>So if you needed to calculate the zoom level to fit an area of a given radius you could use a function like this:</p>
<pre class="javascript">function radiusToZoom( r ){
    var w = myMapInstance.getSize().width;
    var d = r * 2;
    var zooms = [,21282,16355,10064,5540,2909,1485,752,378,190,95,48,24,12,6,3,1.48,0.74,0.37,0.19];
    var z = 20, m;
    while( zooms[--z] ){
        m = zooms[z] * w;
        if( d &lt; m ){
            break;
        }
    }
    return z;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/04/18/google-maps-zoom-scales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Omnibus post &#8211; 05 Apr 2010</title>
		<link>http://timwhitlock.info/blog/2010/04/10/omnibus-post-05-apr-2010/</link>
		<comments>http://timwhitlock.info/blog/2010/04/10/omnibus-post-05-apr-2010/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:23:15 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[331]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[debill]]></category>
		<category><![CDATA[evil]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[utweet]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=353</guid>
		<description><![CDATA[I joked yesterday about writing one omnibus tweet per week. But actually, that&#8217;s not a bad idea at my current blogging rate. So here goes, my week in the Twittersphere - The Digital Economy Bill Not only am I totally unqualified to write any real critique on this topic, but there&#8217;s so much debate online [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://twitter.com/timwhitlock/status/11872994139" target="_blank">joked yesterday</a> about writing one omnibus tweet per week. But actually, that&#8217;s not a bad idea at my current blogging rate. So here goes, my week in the Twittersphere -</p>
<h3><span id="more-353"></span></h3>
<h3>The Digital Economy Bill</h3>
<p>Not only am I totally unqualified to write any real critique on this topic, but there&#8217;s so much debate online already that any post I could write would be but a drop in an already soaking wet ocean.</p>
<p>On a personal note though, as much as the rushing-through of the bill exemplifies the illusion that I&#8217;ve always imagined democracy to be, it at least makes politics relevant to me; something I can&#8217;t say I&#8217;ve ever really experienced. I don&#8217;t think I&#8217;m alone here either as the comments on <a href="http://www.techradar.com/news/internet/the-digital-economy-bill-proves-digital-democracy-doesnt-work-682134" target="_blank">this TechRadar post</a> illustrate. My own comment was as follows:</p>
<blockquote><p><em>For me this whole affair has highlighted that some of us Digital Natives (I speak for myself) live in a bubble, and assume that the big issues facing our country are taken care of by others more knowledgeable in politics and economics. I had never watched the Parliament Channel before either, but if I was a teacher or a nurse you can bet I would have done. My point, if there is one, is that I agree with Gary that it is &#8220;business as usual&#8221; we just don&#8217;t usually notice.</em></p></blockquote>
<p>My best hope from all of this is that the DEBill debacle has made people like me that have little contact with the <em>grown-up</em> world and who struggle to keep up with current affairs, realise that the Internet is just as much of a political issue as healthcare, education and taxation, and hopefully it will give me better reason to choose how I vote from now on.<a href="http://www.techradar.com/news/internet/the-digital-economy-bill-proves-digital-democracy-doesnt-work-682134?src=rss&amp;attr=newsintern&amp;comments_pg=3#comments#ixzz0khLlSy3E"><br />
</a></p>
<h3>Apple getting evil</h3>
<p>Apple alters the legal terms of their developer SDK as they roll out iPhone OS4. Another topic on which there are <a href="http://www.google.co.uk/search?q=apple+iphone+section+3.3.1" target="_blank">volumes of content</a> superior to what you&#8217;ll find here. If you need somewhere to start, my particular favourites are as follows:</p>
<ul>
<li><a href="http://daringfireball.net/2010/04/why_apple_changed_section_331" target="_blank">Daring Fireball</a> appears to have become the de-facto reaction and is a great read.</li>
<li><a href="http://theflashblog.com/?p=1888" target="_blank">Lee Brimlow on the Flash Blog</a> (I&#8217;m curious how much legal clout the &#8220;opinions are my own&#8221; line really carries in the end)</li>
<li><a href="http://blogs.unity3d.com/2010/04/10/unity-and-the-iphone-os-4-0/" target="_blank">Level headed response from Unity 3D</a> (it&#8217;s not all about  Adobe, you know!)</li>
<li><a href="http://twitter.com/phonegap/status/11845902722" target="_blank">Phone Gap</a> appears unaffected as Webkit is a valid way to deploy an app. nothing on <a href="http://phonegap.com/blog" target="_blank">their blog</a> yet.</li>
<li>I enjoyed  <a href="http://joeberkovitz.com/blog/2010/04/08/apple-takes-stance-on-consciousness/" target="_blank">this existential angle</a></li>
</ul>
<p>On a personal note again (deeply cynical as usual) I have never been under any illusion that there is any such thing as a benevolent corporation. (There are such organisations &#8211; they are called charities). Obviously Apple want to control every aspect of deploying to their platform, they are going to continue to do so, as sure as Google are going to enter every market place they physically can until our lives are 100% reliant upon their existence. So, am I just gong to lie down and die, you ask? (Yes, probably). Seriously though, roll on <a href="http://www.w3.org/TR/widgets/" target="_blank">W3C Widgets</a> &#8211; I want to see the web go mobile, not see the mobile industry lock down our web.</p>
<h3>Nearly forgot to mention UTweet</h3>
<p>On Tuesday the Twittersphere (or at least the digital/media corner of it) erupted in massively over-the-top debate about <a href="http://www.uniqlo.com/utweet/">Uniqlo&#8217;s UT campaign site</a>, which I imagine was aimed firmly at aforementioned (ahem) influencers. For 24 hours the dialogue went like this:</p>
<ul>
<li>People tweeted the link and said they <a href="http://twitter.com/timwhitlock/status/11692239973" target="_blank">liked it</a>. Some even <a href="http://twitter.com/charlottemc/status/11692635117" target="_blank">said it was incredible</a></li>
</ul>
<ul>
<li>In purposeful contrast to this hype, further commentators said it was <a href="http://twitter.com/vikkichowney/status/11692893872" target="_blank">nothing special</a> and didn&#8217;t see what all the fuss was about.</li>
<li>The protagonists then either <a href="http://twitter.com/litmanlive/status/11693096105" target="_blank">backed off</a> or <a href="http://twitter.com/iaintait/status/11717640153" target="_blank">defended their position</a>, creating more fuss.</li>
<li>The fuss was <a href="http://twitter.com/timwhitlock/status/11717338961" target="_blank">played down</a> as being disproportionate to the event, creating more fuss.</li>
<li>People  started <a href="http://iabuksocial.co.uk/?p=516">blogging about it,</a><a href="http://iabuksocial.co.uk/?p=516"></a> and the fact that it was never intended to be anything more than a <a href="http://crackunit.posterous.com/a-little-more-on-why-i-like-utweet" target="_blank">nice looking bit of fun</a> in the first place. (oh, the irony)</li>
<li>Those that waited a whole 24 hours before commenting had the hindsight to <a href="http://nowincolour.com/2010/04/the-unliqlo-monsoon/" target="_blank">comment on the herd itself</a></li>
</ul>
<p>Not a bad exercise in getting people to talk about your brand, really.</p>
<p>I think I&#8217;m done. I&#8217;ve got some coding to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/04/10/omnibus-post-05-apr-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook privacy creep</title>
		<link>http://timwhitlock.info/blog/2010/02/21/facebook-privacy-creep/</link>
		<comments>http://timwhitlock.info/blog/2010/02/21/facebook-privacy-creep/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 15:28:47 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=314</guid>
		<description><![CDATA[Always the punctual adopter, I joined Facebook around the end of 2007. Since then I&#8217;ve observed many tweaks to Facebook&#8217;s features, but not until recently when I set up a second account for work, did I really take notice of certain changes, especially those that relate to privacy and sharing of data. If you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Always the punctual adopter, I joined Facebook around the end of 2007. Since then I&#8217;ve observed many tweaks to Facebook&#8217;s features, but not until recently when I set up a <a href="http://www.facebook.com/profile.php?id=100000668227766" target="_blank">second account for work</a>, did I really take notice of certain changes, especially those that relate to privacy and sharing of data.</p>
<p>If you don&#8217;t already know that I&#8217;m a huge cynic, then you will do shortly. I&#8217;m going to lay out my observations as factually as I can, but they will be tainted with my usual dose of suspicion, fear and resentment. Below is a list of feature creep that I&#8217;ve observed, but there is an underlying point. If you don&#8217;t want to read the list, just skip to <a href="http://web.2point1.com/2010/02/21/facebook-privacy-creep/#end">the bit at the end</a>.</p>
<p><span id="more-314"></span></p>
<h3>Account verification via mobile phone</h3>
<p><a href="http://twitpic.com/14jksu" target="_blank"><img class="alignright" style="margin-left: 10px; margin-right: 10px;" src="http://twitpic.com/show/thumb/14jksu" alt="" width="150" height="150" /></a>I thought I&#8217;d start with this one, because it erks me the most. My personal account has long since been verified. i.e. Facebook is satisfied that I am a real person, and not a <em>robot</em>.  If you aren&#8217;t verified you must pass a <a href="http://en.wikipedia.org/wiki/CAPTCHA" target="_blank">CAPTCHA</a> test for any significant activity such as posting, or friend-adding. This isn&#8217;t new, but what seems to be new is that the <em>only</em> option for verifying that you are human now seems to be a SMS-based security check.</p>
<p>What erks me about this is that the CAPTCHA itself is the human/robot test &#8211; the mobile phone check is not proof of life; it is in fact little better than an email-based method which just proves an email address exists; it doesn&#8217;t prove that there&#8217;s a person at the end of it. I question Facebook&#8217;s motivation here. The upshot of this is that if you don&#8217;t give Facebook your mobile number you will be <em>badgered </em>with CAPTCHAs until you get so annoyed you verify. It also suggests they put a lower value on your email address. (<a href="http://techcrunch.com/2010/02/05/facebooks-project-titan-a-full-featured-webmail-product/" target="_blank">Project Titan</a> anyone?)</p>
<p>The &#8220;username&#8221; (vanity URL) feature is also denied to you if you do not verify. I particularly like the prompt to try another time.</p>
<p><img src="http://twitpic.com/show/full/14jji5" alt="" /></p>
<h3>iPhone address book feature</h3>
<p><a href="http://twitpic.com/yq0cb" target="_blank"><img class="alignright" src="http://twitpic.com/show/thumb/yq0cb" alt="" width="150" height="150" /></a>Continuing the mobile phone number theme: The superb Facebook iPhone app recently added a new feature which allows you to add your Facebook friends&#8217; profile pictures to the corresponding entries in your phone&#8217;s address book. Before you enable this feature, you must make this fabulous <a href="http://en.wikipedia.org/wiki/Clickwrap" target="_blank">clickwrap</a> agreement (see image):</p>
<p>Now, don&#8217;t get me wrong &#8211; I&#8217;m not suggesting that Facebook are doing evil things with your friend&#8217;s numbers, I&#8217;m sure they really do need the phone numbers to automate this feature. I assume it&#8217;s the only unique identifier that could associate an address book entry with a Facebook profile and a manual process would ask too much of the user. But regardless of the technical reasons, this is still an example of the increasingly prevalent &#8216;<em>features for data&#8217;</em> trade we are becoming more comfortable with. It can only make us more complacent about our own privacy.</p>
<h3>&#8220;Tim W is no longer in a relationship&#8221;</h3>
<p>This was actually the first of my recent observations. Facebook used to have user settings that allowed you to prevent certain events from being published as &#8216;news stories&#8217;. The example of relationship status is pertinent in that it is so personal. I actually went though a &#8216;Facebook breakup&#8217; in 2008, but had the publishing of this story disabled. I also had the &#8220;X is now friends with Y&#8221; story disabled (for reasons I can&#8217;t be bothered to go into), but the point is that these options have disappeared. <em>Why</em>? Because Facebook want <em>more</em> activity not less, and that&#8217;s no secret.</p>
<p>The real-time shift accelerated by Twitter at al is to blame for this. Much of Facebook&#8217;s UX tweaks in 2009 were blatantly geared towards encouraging more chatter, more sharing, more data. Again we&#8217;re <em>encouraged</em> to publish more activity, but in this example it&#8217;s been achieved through denying us the right to keep it private. In my view, that&#8217;s sneaky.</p>
<h3>&#8220;friends-of-friends&#8221;</h3>
<p>This relatively new privacy option took me by surprise. Certain rather innocuous settings, such as showing the &#8220;Add as a friend&#8221; button have had their tightest option reduced to friends-of-friends. This seems reasonable, but with 300 friends each having 300 of their own, we&#8217;re talking about 90,000 people. The chance of a colleague, employer, or client being amongst that is high &#8211; In my case it&#8217;s guaranteed. Fortunately the most sensitive settings, such as photo albums, still have much tighter options, but the option itself is still a nudge toward publishing more data to more people.<br />
<a name="end"></a></p>
<h3>The bit at the end</h3>
<p>I must point out that I&#8217;m not accusing Facebook of any evil-doing, or breaking any laws. These examples are here to illustrate what I think is a clear direction in our use of the <a href="http://en.wikipedia.org/wiki/Gratis_versus_Libre" target="_blank">free (as in beer)</a> web, and our relationships with companies like Facebook and Google where our activity has become both <em>product </em>and <em>payment</em>.</p>
<p>The greatest threat to our privacy is our own complacency over it. We want features, we want them for free, and we&#8217;re increasing willing to hand over whatever data is required to access them. What worries me is not what companies are doing with this data now, and not even what they might do with it in future; what worries me is how this creep is discreetly changing our behaviour such that we [as a society] no longer even care about our privacy.</p>
<p>We need to keep an eye on the direction in which we&#8217;re being nudged and keep an eye on the organisations that are doing the nudging. <a href="http://en.wikipedia.org/wiki/Geolocation" target="_blank">Geolocation</a> is clearly the next thing for us to get complacent about, and personal data doesn&#8217;t get much more personal than your physical location. The recent <a href="http://pleaserobme.com/" target="_blank">Please Rob Me</a> site, however tongue-in-cheek, should be enough for even the least educated to sit up and pay attention to the potential dangers of publishing your location.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/02/21/facebook-privacy-creep/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook Repost feature</title>
		<link>http://timwhitlock.info/blog/2010/01/16/facebook-repost-feature/</link>
		<comments>http://timwhitlock.info/blog/2010/01/16/facebook-repost-feature/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 19:47:14 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=298</guid>
		<description><![CDATA[I&#8217;ve noticed a lot of Facebook privacy creep recently. I intend to go into more detail in my next post, but this week saw a new Facebook feature worth a special mention because some are commenting that it breaks Facebook&#8217;s privacy model. I ran my own test to see for myself that [-Spoiler warning-] it [...]]]></description>
			<content:encoded><![CDATA[<p><strong>I&#8217;ve noticed a lot of Facebook privacy creep recently</strong>. I intend to go into more detail in my next post, but this week saw a new Facebook feature worth a special mention because some are commenting that it breaks Facebook&#8217;s privacy model. I ran my own test to see for myself that [-<em>Spoiler warning-</em>] it does a bit, but not as much as you might have feared. Read on and decide for yourself whether they are breaking their privacy assurances.</p>
<h3><span id="more-298"></span>What&#8217;s the new feature?</h3>
<p>Essentially it&#8217;s Facebook&#8217;s version of forwarding content through the network, as retweeting is to Twitter. I can&#8217;t find an <em>official</em> announcement of this feature. <a href="http://mashable.com/2010/01/16/facebook-via/" target="_blank">Mashable</a> and <a href="http://www.allfacebook.com/2010/01/facebook-retweets-via/" target="_blank">All Facebook</a> have referred to it as the &#8220;<strong>via</strong>&#8221; feature, or the &#8220;Facebook retweet&#8221;. Both ugly terms. I prefer &#8220;repost&#8221;, although &#8220;reshare&#8221; would be more inline with the Facebook lexicon. To cut a long story short, it lets you share with your friends something that a friend of yours has shared with you. At first glance this may seem like it circumvents the walled garden of your friend network. i.e. people you don&#8217;t want seeing your content seeing your content. gasp.</p>
<h3>The repost privacy test</h3>
<p>From my <em>personal </em>account (where I am simply known as Tim W and have every privacy feature locked down its strictest setting) I posted a link with appropriately alarming status update, as follows:</p>
<p><a href="http://web.2point1.com/wp-content/uploads/2010/01/reshare1.jpg"><img class="alignnone size-full wp-image-304" style="border: 1px solid black;" title="reshare1" src="http://web.2point1.com/wp-content/uploads/2010/01/reshare1.jpg" alt="reshare1" /></a></p>
<p>Then from my <a href="http://www.facebook.com/profile.php?id=100000668227766" target="_blank">professional account</a> (which is 100% public having the loosest privacy settings) I temporarily befriended myself and naturally saw the post from the elusive Tim W in its full glory. Nothing unexpected so far. I clicked the &#8220;share&#8221; button and reposted this link for all my friends on this profile to see.</p>
<p>Now I needed a third account that wasn&#8217;t friends with Tim W, but as a Facebook member could access the second profile in full. So I set up a Facebook account in the imaginative name of <a href="http://www.facebook.com/profile.php?ref=name&amp;id=100000641244370" target="_blank">Mit Kcoltihw</a> (Polish I imagine) and accessed the page of my public, professional profile. Lo and behold there was the reposted link, as below:</p>
<p><a href="http://web.2point1.com/wp-content/uploads/2010/01/repost2.jpg"><img class="alignnone size-full wp-image-305" style="border: 1px solid black;" title="repost2" src="http://web.2point1.com/wp-content/uploads/2010/01/repost2.jpg" alt="repost2" /></a></p>
<p>( ignore, if you can, the fact that my profile photos are the same. The repost doesn&#8217;t show the original poster as it does in Twitter)</p>
<p>What we see is that the posted link, and its meta data are visible, but my status update is missing. A non-friend seeing your link even if you set &#8220;Posts by me&#8221; to &#8220;Only friends&#8221; looks rather like a breach. It seems Facebook doesn&#8217;t consider this content as being &#8220;by you&#8221; as it came from a public source. However, if you change the link description text to your own text when posting the original link, this is also visible, and that&#8217;s definitely a loophole.</p>
<p>Links are one thing, but photos are a bit more serious. I tried the same test with a wall photo post, and you&#8217;ll be relieved to hear that the repost was completely invisible to third parties. Good.</p>
<p><strong>So in conclusion</strong> &#8211; not so black and white. Your privacy settings are maintained to an extent, and you don&#8217;t need to worry about status updates and photos getting into the wrong hands, but there is definitely creep here. I think the  &#8220;posts by me&#8221; privacy setting is now misleading and needs addressing, and the reposting of custom link descriptions is highly questionable. I won&#8217;t lose any sleep over this one, but I won&#8217;t be getting complacent any time soon either. If you&#8217;ve spotted a loop hole let me know by commenting below, but double check your privacy settings first.</p>
<p>More in my next post about Facebook privacy creep.</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/01/16/facebook-repost-feature/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

