<?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>Ten Tonne Baby &#187; Personal</title>
	<atom:link href="http://www.tentonnebaby.com/category/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tentonnebaby.com</link>
	<description>Discussion on Web Technologies, Design and London</description>
	<lastBuildDate>Wed, 07 Jul 2010 20:58:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Giving birth to a ten tonne baby</title>
		<link>http://www.tentonnebaby.com/2010/01/28/giving-birth-to-a-ten-tonne-baby/</link>
		<comments>http://www.tentonnebaby.com/2010/01/28/giving-birth-to-a-ten-tonne-baby/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 17:58:57 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[concepts]]></category>
		<category><![CDATA[redesign]]></category>

		<guid isPermaLink="false">http://www.tentonnebaby.com/2010/01/28/giving-birth-to-a-ten-tonne-baby/</guid>
		<description><![CDATA[Glad you’ve found your way over here. After much deliberation over names (and .com addresses), I’ve given birth to a shiny new brand, site and domain name. I’ve moved over all the content from EmbeddedStream (may she rest in peace) and might even bother with 301 redirects.
Anyway, hope you like the whole B-movie thing. You [...]]]></description>
			<content:encoded><![CDATA[<p>Glad you’ve found your way over here. After much deliberation over names (and .com addresses), I’ve given birth to a shiny new brand, site and domain name. I’ve moved over all the content from <a href="http://www.embeddedstream.com">EmbeddedStream</a> (may she rest in peace) and might even bother with 301 redirects.</p>
<p>Anyway, hope you like the whole B-movie thing. You have to understand he’s just curious, not inherently evil.</p>
<p>I’ll still be tweaking things for a while, but all the basics should be working – let me know if there any any obvious accidents.</p>
<p>In case you’re wondering, for a week or so I was singing in my head (if a ten tonne baby… kills the both of us… to die by your side… well, the pleasure – the privilege is mine). Not that I even listen The Smiths, but it explains a little.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2010/01/28/giving-birth-to-a-ten-tonne-baby/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mouthful of Flies &#8211; please vote</title>
		<link>http://www.tentonnebaby.com/2009/02/16/mouthful-of-flies-please-vote/</link>
		<comments>http://www.tentonnebaby.com/2009/02/16/mouthful-of-flies-please-vote/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 11:13:54 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[gigs]]></category>
		<category><![CDATA[london]]></category>
		<category><![CDATA[metal]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2009/02/16/mouthful-of-flies-please-vote/</guid>
		<description><![CDATA[If you can spare a minute, please go and vote for Mouthful of Flies to play at Bloodstock. Even if you&#8217;re not into metal, then do it to make me happy.
]]></description>
			<content:encoded><![CDATA[<p>If you can spare a minute, please go and <a href="http://www.bloodstock.uk.com/videos/dl.php?key=Mouthful_of_Flies_Black_Magick">vote for Mouthful of Flies to play at Bloodstock</a>. Even if you&#8217;re not into metal, then do it to make me happy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2009/02/16/mouthful-of-flies-please-vote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FeedDemon on iPhone</title>
		<link>http://www.tentonnebaby.com/2009/02/10/feeddemon-on-iphone/</link>
		<comments>http://www.tentonnebaby.com/2009/02/10/feeddemon-on-iphone/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 13:44:30 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2009/02/10/feeddemon-on-iphone/</guid>
		<description><![CDATA[I&#8217;ve used FeedDemon as an RSS reader for a number of years, and just had a quick look into how easy it is to view your subscriptions on an iPhone. I&#8217;m pretty impressed with the experience.
There is no &#8216;native&#8217; iPhone application that I could find, but a mobile interface that is very impressive. Browse to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used <a href="http://www.newsgator.com/individuals/feeddemon/default.aspx">FeedDemon</a> as an RSS reader for a number of years, and just had a quick look into how easy it is to view your subscriptions on an iPhone. I&#8217;m pretty impressed with the experience.</p>
<p>There is no &#8216;native&#8217; iPhone application that I could find, but a mobile interface that is very impressive. Browse to m.newsgator.com on your phone, bookmark and add to your home page. Easy way to stay in touch which catching the bus to work etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2009/02/10/feeddemon-on-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBox Live Avatar</title>
		<link>http://www.tentonnebaby.com/2008/12/01/xbox-live-avatar/</link>
		<comments>http://www.tentonnebaby.com/2008/12/01/xbox-live-avatar/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 10:56:47 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[xbox avatar]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2008/12/01/xbox-live-avatar/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img alt="http://avatar.xboxlive.com/avatar/Jacks%20ColdSweat/avatar-body.png" src="http://avatar.xboxlive.com/avatar/Jacks%20ColdSweat/avatar-body.png"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/12/01/xbox-live-avatar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&lt;input type=&quot;file&quot;&gt;&#8230; working with uploaded file data using ASP.NET MVC</title>
		<link>http://www.tentonnebaby.com/2008/11/03/input-typefile-working-with-uploaded-file-data-using-aspnet-mvc/</link>
		<comments>http://www.tentonnebaby.com/2008/11/03/input-typefile-working-with-uploaded-file-data-using-aspnet-mvc/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 10:08:55 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[mvc fileUpload asp.net]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/?p=155</guid>
		<description><![CDATA[I&#8217;ve been building an application with the MVC beta, and came to implement a form that included a file upload form control. Accessing uploaded file data is quite simple via&#8230;
HttpContext.Current.Request.Files["controlName"] 
However, in this case I want to unit-test the action method on the controller, and any direct reference to a dependency will make unit-testing difficult. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been building an application with the MVC beta, and came to implement a form that included a file upload form control. Accessing uploaded file data is quite simple via&#8230;</p>
<p><code>HttpContext.Current.Request.Files["controlName"] </code></p>
<p>However, in this case I want to unit-test the action method on the controller, and any direct reference to a dependency will make unit-testing difficult. I can use Dependency Injection, but I don&#8217;t particularly want to provide a mocked version of the HttpContext.</p>
<p>This is a scenario where custom Model Binders can be applied. Define the following class that implements the IModelBinder interface.</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   1:</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> HttpPostedFileModelBinder : IModelBinder</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   2:</span> {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   3:</span>     <span style="color: #0000ff;">public</span> ModelBinderResult BindModel(ModelBindingContext bindingContext)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   4:</span>     {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   5:</span>         HttpPostedFileBase file = bindingContext.HttpContext.Request.Files[bindingContext.ModelName];</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   6:</span>         <span style="color: #0000ff;">byte</span>[] fileData = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[file.InputStream.Length];</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   7:</span>         file.InputStream.Read(fileData, 0, Convert.ToInt32(file.InputStream.Length));</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   8:</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   9:</span>         <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> ModelBinderResult(fileData);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">  10:</span>     }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">  11:</span> }</pre>
</div>
</div>
<p>Then in global.asax, hook up the custom binder to work with parameters of type byte[]&#8230;</p>
<p><code>ModelBinders.Binders[typeof(byte[])] = new HttpPostedFileModelBinder();</code></p>
<p>You can now define a named parameter on your action method of type byte[], where the name matches the name on your &lt;input type=&#8221;file&#8221;&gt; element, and the binary data from the uploaded file will be passed into the action method.</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   1:</span> [ActionName(<span style="color: #006080;">"Index"</span>), AcceptVerbs(HttpVerbs.Post)]</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   2:</span> <span style="color: #0000ff;">public</span> ActionResult FormSubmit(<span style="color: #0000ff;">byte</span>[] photo)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   3:</span> {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   4:</span>    <span style="color: #008000;">// do something with the posted image</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   5:</span> }</pre>
</div>
</div>
<p>Unit testing the action method is now simply a case of passing a byte array, and the run-time version will pull the appropriate information from the HttpContext and pass into the action method.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/11/03/input-typefile-working-with-uploaded-file-data-using-aspnet-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defrosting</title>
		<link>http://www.tentonnebaby.com/2008/09/29/defrosting/</link>
		<comments>http://www.tentonnebaby.com/2008/09/29/defrosting/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 20:32:18 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[personal stress]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2008/09/29/defrosting/</guid>
		<description><![CDATA[I wanted to apologize if I&#8217;ve been anti-social or out of touch for a while. I&#8217;m coming to the end of a long, all-consuming project that required putting my life in the freezer until I came out the other side. Therefore if I&#8217;ve ignored emails or generally been aloof it&#8217;s really shouldn&#8217;t be taken personally. [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to apologize if I&#8217;ve been anti-social or out of touch for a while. I&#8217;m coming to the end of a long, all-consuming project that required putting my life in the freezer until I came out the other side. Therefore if I&#8217;ve ignored emails or generally been aloof it&#8217;s really shouldn&#8217;t be taken personally. It&#8217;s probably quite unhealthy to be totally immersed in work, but it was required for a time.</p>
<p>I&#8217;m now coming down and trying to adjust to the idea of becoming human again. I&#8217;ve learnt and experienced a massive amount, but it&#8217;s also taken quite a lot out of me, and I think it will be a little while before I can properly focus on moving on to something new.</p>
<p>I started out with massive enthusiasm and great intentions, but if you&#8217;re under pressure for a prolonged time then gradually all of the non-essential things start to drop away, until eventually this includes learning, passion, curiosity, friendships etc. I think once I&#8217;ve started to defrost then these will all return quite naturally.</p>
<p>Anyway, enough self-pity. To kick-start my rebirth I&#8217;ve set up Vista on a shiny new MacBook. Apparantly this either means I&#8217;m gay or a girl, but that&#8217;s ok.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/09/29/defrosting/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Whipped into submission</title>
		<link>http://www.tentonnebaby.com/2008/07/18/whipped-into-submission/</link>
		<comments>http://www.tentonnebaby.com/2008/07/18/whipped-into-submission/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 21:31:23 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[squash fitness]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2008/07/18/whipped-into-submission/</guid>
		<description><![CDATA[I&#8217;m feeling particularly abused today after playing squash with Jimmy. If you follow that link, he&#8217;s the one with the big cheesy smile. I&#8217;m now sitting feeling like an old man, and thinking that maybe I should get in shape if I&#8217;m going to play squash. That way I might survive without bleeding from the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m feeling particularly abused today after playing squash with <a href="http://www.lss.co.uk/About/People/">Jimmy</a>. If you follow that link, he&#8217;s the one with the big cheesy smile. I&#8217;m now sitting feeling like an old man, and thinking that maybe I should get in shape if I&#8217;m going to play squash. That way I might survive without bleeding from the ears. Fun though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/07/18/whipped-into-submission/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dust, guts and a new CPU</title>
		<link>http://www.tentonnebaby.com/2008/06/27/dust-guts-and-a-new-cpu/</link>
		<comments>http://www.tentonnebaby.com/2008/06/27/dust-guts-and-a-new-cpu/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 21:12:15 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[hardware installation]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2008/06/27/dust-guts-and-a-new-cpu/</guid>
		<description><![CDATA[Well, I&#8217;m sat drinking tea and killing time while I set up the shiny new patient fresh from post-op. Think I just need Team Explorer then I&#8217;ll be ready to go.
What started out as an overheating CPU turned into an addictive major hardware overhaul and fresh install of Vista. However, I now have lovely fans. [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;m sat drinking tea and killing time while I set up the shiny new patient fresh from post-op. Think I just need Team Explorer then I&#8217;ll be ready to go.</p>
<p>What started out as an overheating CPU turned into an addictive major hardware overhaul and fresh install of Vista. However, I now have lovely fans. And a pretty glowing fan controller on the front.</p>
<p>So for the past week I&#8217;ve been coming home from long stressful days and getting fist-deep into my case. The idea is to come out with a stable, work-worthy machine so that I can fit in the impossible by spending evenings and weekends coding.</p>
<p>Pretty damn useful that I like what I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/06/27/dust-guts-and-a-new-cpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stylecop now available</title>
		<link>http://www.tentonnebaby.com/2008/05/23/stylecop-now-available/</link>
		<comments>http://www.tentonnebaby.com/2008/05/23/stylecop-now-available/#comments</comments>
		<pubDate>Fri, 23 May 2008 15:17:12 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[devtools utilities]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2008/05/23/stylecop-now-available/</guid>
		<description><![CDATA[Stylecop is now available as a free download&#8230;
http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx
]]></description>
			<content:encoded><![CDATA[<p>Stylecop is now available as a free download&#8230;</p>
<p><a href="http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx">http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2008/05/23/stylecop-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personal RSS Feeds</title>
		<link>http://www.tentonnebaby.com/2007/12/14/personal-rss-feeds/</link>
		<comments>http://www.tentonnebaby.com/2007/12/14/personal-rss-feeds/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 09:14:58 +0000</pubDate>
		<dc:creator>Oli</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.embeddedstream.com/2007/12/14/personal-rss-feeds/</guid>
		<description><![CDATA[As far as I can see, the majority of RSS feeds exposed on most sites provide access to very generic, summary information. I&#8217;m quite surprised that RSS hasn&#8217;t really been embraced for the kinds of thing for which it would be most suited &#8211; i.e. bringing you highly targeted, highly relevant information based on some [...]]]></description>
			<content:encoded><![CDATA[<p>As far as I can see, the majority of RSS feeds exposed on most sites provide access to very generic, summary information. I&#8217;m quite surprised that RSS hasn&#8217;t really been embraced for the kinds of thing for which it would be most suited &#8211; i.e. bringing you highly targeted, highly relevant information based on some prior knowledge of who you are.</p>
<p>I would love to be able to give a list of my favourite bands, and subscribe to a feed of gigs they are planning in my area; or give a list of my preferred cinemas, and find out whenever a new film is showing at any of them.</p>
<p>Once you are providing more personal feeds, then authentication becomes an issue. There is fairly widespread support in aggregators for both SSL and Basic Authentication, but this can be overkill for certain situations.</p>
<p>The data we are exposing is not particularly sensitive, and it would be a real pain for a user who has authenticated with the main site to be challenged when they subscribe to a feed. Instead, the approach we&#8217;ve taken in&#8230;</p>
<ul>
<li>When a private feed is available on a page, the meta tag in the head includes a token on the querystring for the feed URL that is generated based on the currently authenticated user
<li>When serving up a private feed for a particular user, we expect the token on the querystring, and bounce the request if either the token is missing, or is incorrect</li>
</ul>
<p>This means&#8230;</p>
<ul>
<li>An authenticated user can subscribe directly to a feed without an additional challenge
<li>If you know the URL to your own feed, you can&#8217;t get access to others simply by changing the feed URL
<li>The mechanism used for feed authentication doesn&#8217;t expose anything related to authentication on the main site</li>
</ul>
<p>We&#8217;re exposed to the feed URL and token being sniffed on the wire, but unless the content is particularly sensitive this seems like a suitable, practical approach to ensuring some degree of privacy without introducing complexity and barriers to subscription.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tentonnebaby.com/2007/12/14/personal-rss-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
