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

<channel>
	<title>ajaxlights</title>
	<atom:link href="http://blog.narcvs.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.narcvs.com</link>
	<description>patterns &#38; spun thoughts</description>
	<pubDate>Mon, 13 Aug 2012 01:06:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Blog moved</title>
		<link>http://blog.narcvs.com/?p=66</link>
		<comments>http://blog.narcvs.com/?p=66#comments</comments>
		<pubDate>Mon, 13 Aug 2012 01:06:59 +0000</pubDate>
		<dc:creator>narcvs</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=66</guid>
		<description><![CDATA[I&#8217;m now writing at marcuswest.in. See you there!
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now writing at <a href="http://marcuswest.in">marcuswest.in</a>. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=66</wfw:commentRss>
		</item>
		<item>
		<title>TC MSFT Marketing fail roundup</title>
		<link>http://blog.narcvs.com/?p=64</link>
		<comments>http://blog.narcvs.com/?p=64#comments</comments>
		<pubDate>Wed, 26 Aug 2009 18:38:17 +0000</pubDate>
		<dc:creator>narcvs</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=64</guid>
		<description><![CDATA[TechCrunch created a MSFT marketing-fail photoshop meme, with lots of awesome entries.
Check out a collage of the results at http://narcvs.com/MemeSFT
]]></description>
			<content:encoded><![CDATA[<p>TechCrunch created a MSFT marketing-fail photoshop meme, with lots of awesome entries.</p>
<p>Check out a collage of the results at <a href="http://narcvs.com/MemeSFT">http://narcvs.com/MemeSFT</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=64</wfw:commentRss>
		</item>
		<item>
		<title>Good labor makes &#8230; makes good nights</title>
		<link>http://blog.narcvs.com/?p=63</link>
		<comments>http://blog.narcvs.com/?p=63#comments</comments>
		<pubDate>Tue, 25 Aug 2009 18:58:28 +0000</pubDate>
		<dc:creator>narcvs</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=63</guid>
		<description><![CDATA[I love my friends

What comes of good nights?
]]></description>
			<content:encoded><![CDATA[<p>I love my friends</p>
<p><img class="aligncenter" src="http://blog.narcvs.com/wp-content/uploads/2009/08/good-labor-good-wine.png" alt="" /></p>
<p>What comes of good nights?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=63</wfw:commentRss>
		</item>
		<item>
		<title>TechCrunch is my new IM client</title>
		<link>http://blog.narcvs.com/?p=62</link>
		<comments>http://blog.narcvs.com/?p=62#comments</comments>
		<pubDate>Tue, 25 Aug 2009 18:18:46 +0000</pubDate>
		<dc:creator>narcvs</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=62</guid>
		<description><![CDATA[I spend much of my time reading news. On TechCrunch.
I spend much of my time chatting with people. On Meebo.
Now I can have them both - reading news On Tehcrunch, while chatting on their Meebo Bar.
Since the Meebo Bar launch on TechCrunch.com this morning, people have started sharing quite a bit, and I have made [...]]]></description>
			<content:encoded><![CDATA[<p>I spend much of my time reading news. On TechCrunch.</p>
<p>I spend much of my time chatting with people. On Meebo.</p>
<p>Now I can have them both - reading news On Tehcrunch, while chatting on their Meebo Bar.</p>
<p>Since the <a href="http://blog.meebo.com/?p=1850">Meebo Bar launch</a> on <a href="http://www.techcrunch.com">TechCrunch.com</a> this morning, <a href="http://search.twitter.com/search?q=go.meebo.com/techcrunch.com">people have started sharing</a> quite a bit, and I have made my own Fluid TechCrunch application. There, I can read all my news while I discuss and share them with my friends. In short, TechCrunch is my new IM client.</p>
<p>Now if I only got realtime notifications every time TechCrunch posted a new article&#8230;</p>
<p>More info at <a href="http://business.meebo.com/">http://business.meebo.com/</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=62</wfw:commentRss>
		</item>
		<item>
		<title>Wanna dissect a Twitter virus?</title>
		<link>http://blog.narcvs.com/?p=61</link>
		<comments>http://blog.narcvs.com/?p=61#comments</comments>
		<pubDate>Sun, 31 May 2009 00:48:00 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=61</guid>
		<description><![CDATA[I grabbed the source of the recent &#8220;Best Video&#8221; Twitter virus.
It&#8217;s stashed away at http://narcvs.com/security/best_video_virus.js if you care to have a look.
Pretty intricate stuff - would love to have a look at the obfuscation engine they use.
]]></description>
			<content:encoded><![CDATA[<p>I grabbed the source of the recent <a href="http://www.techcrunch.com/2009/05/30/new-twitter-virus-best-video/">&#8220;Best Video&#8221; Twitter virus</a>.</p>
<p>It&#8217;s stashed away at <a href="http://narcvs.com/security/best_video_virus.js">http://narcvs.com/security/best_video_virus.js</a> if you care to have a look.</p>
<p>Pretty intricate stuff - would love to have a look at the obfuscation engine they use.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=61</wfw:commentRss>
		</item>
		<item>
		<title>With great power comes great responsibility</title>
		<link>http://blog.narcvs.com/?p=60</link>
		<comments>http://blog.narcvs.com/?p=60#comments</comments>
		<pubDate>Sat, 23 May 2009 03:40:13 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
		
		<category><![CDATA[Ethics]]></category>

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

		<guid isPermaLink="false">http://blog.narcvs.com/?p=60</guid>
		<description><![CDATA[Recently twitter deactivated accounts of Kanye West imposters. Whether this is alright or not is a tricky question. Is impersonation ok if it is satirical? Clearly yes, but usually the impersonation is transparent. But where to draw the line?
If someone impersonated you, should Twitter deactivate the impostor? If you think this is the case, then [...]]]></description>
			<content:encoded><![CDATA[<p>Recently <a href="http://www.techcrunch.com/2009/05/22/cryin-aerosmiths-steven-tyler-fails-to-sue-anonymous-bloggers/">twitter deactivated accounts of Kanye West imposters</a>. Whether this is alright or not is a tricky question. Is impersonation ok if it is satirical? Clearly yes, but usually the impersonation is transparent. But where to draw the line?</p>
<p>If someone impersonated you, should Twitter deactivate the impostor? If you think this is the case, then do you think it&#8217;s feasible/scalable for Twitter to do so? If not, then should they react differently to impostor deactivation requests from a public persona than from a regular user?</p>
<p>You can easily argue that services like Twitter are becoming increasingly integral to our socio-cultural fabric. As government simply can&#8217;t keep pace with innovation, we can&#8217;t count on traditional regulatory bodies to ensure balance - so what do we do? Simply trust their word, &#8220;<a href="http://en.wikipedia.org/wiki/Don't_be_evil">don&#8217;t be evil</a>?&#8221;</p>
<p>Similar examples abound - like <a href="http://www.techcrunch.com/2009/05/08/joking-or-not-official-or-not-facebook-needs-to-grow-up/">Facebook founder&#8217;s sister flaunting the idea of removing the public page of a club</a> she disagreed with.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=60</wfw:commentRss>
		</item>
		<item>
		<title>Pick your busts with oFrameBust</title>
		<link>http://blog.narcvs.com/?p=59</link>
		<comments>http://blog.narcvs.com/?p=59#comments</comments>
		<pubDate>Sun, 12 Apr 2009 17:50:10 +0000</pubDate>
		<dc:creator>narcvs</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.narcvs.com/?p=59</guid>
		<description><![CDATA[Update 04-13-09: In focusing on cross-domain communication, I completely overlooked the obvious solution: document.referrer. Assuming document.referer works reliably for iframes cross browser, tather than using oframebust, sites should just do:
(function(){
   var whitelist = ['digg.com', 'facebook.com', 'www.facebook.com'];
   if (window.top.location != window.location) {
      var match = document.referrer.match(/^https?:\/\/([^:\/\s]+)\/?.*/);
  [...]]]></description>
			<content:encoded><![CDATA[<p>Update 04-13-09: In focusing on cross-domain communication, I completely overlooked the obvious solution: document.referrer. Assuming document.referer works reliably for iframes cross browser, tather than using oframebust, sites should just do:</p>
<pre class="prettyprint">(function(){
   var whitelist = ['digg.com', 'facebook.com', 'www.facebook.com'];
   if (window.top.location != window.location) {
      var match = document.referrer.match(/^https?:\/\/([^:\/\s]+)\/?.*/);
      if (match) {
         var domain = match[0];
         for (var i=0; i < whitelist.length; i++) {
            if (domain == whitelist[i]) { return; }
         }
      }
      window.top.location = window.location;
   }
})();</pre>
<p>Original post:</p>
<p>One problem it could still potentially solve is the issue of removing the bar once the user navigates away. Could we perhaps use it to communicate to the top frame that the user has navigated away to a new page?</p>
<p>Cheers,<br />
Marcus</p>
<p>The iFrame is an important element in the HTML toolkit. However, while providing crucial functionality it also enables certain nuisances. http://www.meebo.com.br/ is a good example of iframe absue - the domain com.br iframes meebo.com and sticks a banner ad on top of it.</p>
<p>There is a well known solution to this problem - it is called frame busting:</p>
<pre>&lt;script type="text/javascript"&gt;

if (top.location != location) { top.location = location; }

&lt;/script&gt;</pre>
<p>However, this solution blindly busts out of all frames. What if you would want to allow for e.g. digg to iframe you, in order to allow for digg visitors to further digg your site and increase your traffic? It would look something like this:</p>
<pre>&lt;script type="text/javascript"&gt;

if ( ! top.location.domain.match(/digg.com$/) ) {

top.location = location;

}

&lt;/script&gt;</pre>
<p>This would effectively frame bust all sites but digg.com, were it not for the cross domain policy causing an error when you try to access top.location.domain or top.location.toString(), when top is on a different domain (toString gets called at any time you compare the location object to a string, e.g. top.location == &#8220;digg.com&#8221;).</p>
<p>oFrameBust is a protocol and an implementation designed to tackle this issue. The protocol works as follows:</p>
<p>Say digg.com wants to iframe http://blog.narcvs.com/?p=55. I permit this, along with say facebook.com and marcuswestin.com, but I don&#8217;t want anyone else to iframe my site. On blog.narcvs.com, I just include the oframebust script and list the domains I want to allow:</p>
<pre>&lt;script type="text/javascript" src="http://oframebust.com/oframebust.js"&gt;

oFrameBust('digg.com', 'www.facebook.com', 'www.marcuswestin.com');

&lt;/script&gt;</pre>
<p>Then when digg wants to iframe me, they pass in the oframebust parameter declaring their domain:</p>
<pre>http://blog.narcvs.com/?p=55&amp;oframebust=digg.com</pre>
<p>The oframebust script automatically detects the oframebust GET parameter, and uses it to create an iframe to http://digg.com/oframebust.html - since this page lives on the digg.com, it is allowed to read the top.location.hostname - if the top frame indeed is digg.com!</p>
<p>Now, there is the risk that the top framer is spoofing the digg.com domain. In order to protect from this, the oframebust script passes in the current page url to the oframebust.html page living on diggs domain:</p>
<pre>http://digg.com/oframebust.html?http://blog.narcvs.com/?p=55</pre>
<p>At this point, if the top frame was spoofing the digg.com domain, the digg.com oframebust page uses the url that was passed in in order to frame bust:</p>
<pre class="prettyprint">try {

top.location.hostname.toString()

} catch(e) {

top.location=decodeURIComponent(location.search.substr(1))

}</pre>
<p>All together, the oframebust protocol is an open source, transparent solution to white listed frame busting! There is already an implementation in place: if you want to whitelist domains, just put</p>
<pre>&lt;script type="text/javascript" src="http://oframebust.com/oframebust.js"&gt;

oFrameBust('digg.com', 'facebook.com', 'www.facebook.com', 'marcuswestin.com');

&lt;/script&gt;</pre>
<p>on your site. Then all you&#8217;ve got to do is convince those websites to include the oframebust.html page on their domain.</p>
<p>That&#8217;s it! Let&#8217;s solve this problem as a community, shall we?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=59</wfw:commentRss>
		</item>
		<item>
		<title>Twitter search adds expansion of tinied URLs</title>
		<link>http://blog.narcvs.com/?p=56</link>
		<comments>http://blog.narcvs.com/?p=56#comments</comments>
		<pubDate>Sat, 14 Mar 2009 20:03:50 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
		
		<category><![CDATA[Chatter]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://blog.narcvs.com/?p=56</guid>
		<description><![CDATA[Since Twitter enforces a 140 character limit, long URLs are often shortened using any of many &#8220;tiny url providers&#8221; (TinyURL, tr.im, shorl&#8230;)
The problem with the tiny url&#8217;s is that you can&#8217;t see where they lead from looking at the address. A number of services have emerged to solve this problem, such as untiny and the Ubiquity [...]]]></description>
			<content:encoded><![CDATA[<p>Since Twitter enforces a 140 character limit, long URLs are often shortened using any of many &#8220;tiny url providers&#8221; (<a href="http://tinyurl.com">TinyURL</a>, <a href="http://tr.im">tr.im</a>, <a href="http://shorl.com">shorl</a>&#8230;)</p>
<p>The problem with the tiny url&#8217;s is that you can&#8217;t see where they lead from looking at the address. A number of services have emerged to solve this problem, such as <a href="http://www.untiny.com/">untiny</a> and the <a href="http://da-crystal.net/GCMS/blog/untiny-amp-ubiquity/">Ubiquity command</a>.</p>
<p>However, these are solutions are really just workarounds to a central of Twitter&#8217;s - and Twitter is stepping up to address it!</p>
<p>I just noticed that in Twitter search, they <a href="http://search.twitter.com/search?q=imthis+from%3Anarcvs ">append an &#8220;expand link&#8221; right after tiny url&#8217;s</a>. I would expect them to either add this option around their site, or optionally auto-expand tiny urls for you.</p>
<p>Screenshots:</p>
<p><a href="http://blog.narcvs.com/wp-content/uploads/2009/03/picture-4.png"><img class="alignleft size-full wp-image-57" title="Tiny url with (expand) link" src="http://blog.narcvs.com/wp-content/uploads/2009/03/picture-4.png" alt="" width="495" height="89" /></a></p>
<p>After clicking the expand link:</p>
<p><a href="http://blog.narcvs.com/wp-content/uploads/2009/03/picture-5.png"><img class="alignleft size-full wp-image-58" title="Tiny url after clicking the (expand) link" src="http://blog.narcvs.com/wp-content/uploads/2009/03/picture-5.png" alt="" width="499" height="93" /></a></p>
<p>Nice work Twitter!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=56</wfw:commentRss>
		</item>
		<item>
		<title>Raising the bar - whitelisted frame busting</title>
		<link>http://blog.narcvs.com/?p=55</link>
		<comments>http://blog.narcvs.com/?p=55#comments</comments>
		<pubDate>Mon, 02 Mar 2009 18:29:19 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

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

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

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

		<category><![CDATA[frame busting]]></category>

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

		<guid isPermaLink="false">http://blog.narcvs.com/?p=55</guid>
		<description><![CDATA[There&#8217;s an interesting new trend emerging among web companies - putting a contextualized bar on top of external pages.
StumbleUpon has been doing this for a long time, but the broader trend seems to be new. Facebook started doing it not too long ago, and Digg&#8217;s version is currently in beta testing.
The common denominator of the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s an interesting new trend emerging among web companies - putting a contextualized bar on top of external pages.</p>
<p>StumbleUpon has been doing this for a long time, but the broader trend seems to be new. Facebook started doing it not too long ago, and <a href="http://www.techcrunch.com/2009/02/26/digg-is-working-on-a-toolbar-to-go-after-stumbleupon-tinyurl-and-all-the-rest/">Digg&#8217;s version</a> is currently in beta testing.</p>
<p>The common denominator of the &#8220;bar companies&#8221; is a wealth of links passing through their servers. They rewrite links passed through their network to point to a page on their own domain, on which they have a bar on top and an iframe below that includes the original, external site.</p>
<p>Being iframed can be annoying, and is easy to avoid. The following javascript snippet &#8220;frame busts&#8221; your site such that no one can iframe you:</p>
<pre class="prettyprint">if (location != top.location) { top.location = location }</pre>
<p>However, some of these top bars may very well add value to your site. For example, your site becomes more viral - a visitor with the bar on top is probably more likely to share that page with a friend than someone without the bar. Can you allow for some sites to iframe you, but not others? It would look something like:</p>
<pre class="prettyprint">function frameBustSelectively() {
  // if we're not being framed, just return
  if (top.location == location) { return; }

  // if we're framed by an ok site, just return
  var okDomains = {
    'www.digg.com': true,
    'www.stumbleupon.com': true,
    'www.facebook.com': true
  }
  if (top.location.hostname.toString() in okDomains) { return; }

  // we're framed by a not-ok site - frame bust...
  top.location = location;
}</pre>
<p>This is unfortunately not possible. The browser same-origin security model allows you to <em>compare</em> the locations of your current frame and the &#8220;top&#8221; frame. However, you are not allowed not &#8220;inspect&#8221; the location of the top frame if it is not on your domain. top.location.hostname.toString() will throw an exception&#8230;</p>
<p>So do we give up and call it a day? No - we solve it as a community.</p>
<p>This morning I registered www.oFrameBust.com (in the spirit of oEmbed.com). When it comes up in a day or two there will be a javascript include that you can include on your site that will allow for us as a community to go towards whitelisted iframing. How? Well, it requires some cooperation - but it works:</p>
<p>If you want to iframe a page, you pass in an extra oFrameBust=[your domain] parameter in the GET query of the url. The iframed page will have to include the oFrameBust javascript - if it does, the script will parse the oFrameBust domain out of the GET query, and match it against a white list of allowed domains. If there is a match, the script creates an offscreen iframe pointing to [domain]/oFrameBust.html?url=[document.location.href].</p>
<p>That&#8217;s the magic moment. Since you allowed to communicate information through the url to other domains, we now have a page that both knows the current page&#8217;s url, and is allowed to inspect the location of the top frame. At this point the oFrameBust.html page can verify that the top frame is indeed the whitelisted domain that was passed in through the oFrameBust get parameter by attempting to read the top.location in a try { } catch(e) { } statement. If it is, everything is well! If not - well, then you just parse out the url of the page that was passed in to [domain]/oFrameBust.html, which used that to say top.location=[url];</p>
<p>I&#8217;ve got a prototype of this that will be up on www.oFrameBust.com in two days. Keep an eye out! This is totally intended to be an open source, transparent project, so if you&#8217;re interested let me know and I&#8217;ll keep you in the loop. After all, this could only succeed as a community.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=55</wfw:commentRss>
		</item>
		<item>
		<title>Apple TV + Airport Express = Home entertainment </title>
		<link>http://blog.narcvs.com/?p=54</link>
		<comments>http://blog.narcvs.com/?p=54#comments</comments>
		<pubDate>Sun, 01 Mar 2009 05:07:03 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
		
		<category><![CDATA[Design]]></category>

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

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

		<category><![CDATA[Apple TV]]></category>

		<category><![CDATA[Home entertainment]]></category>

		<guid isPermaLink="false">http://blog.narcvs.com/?p=54</guid>
		<description><![CDATA[Dear Apple,
I just set up my very own distributed entertainment system for my roommates and myself under $500. I know you already know all about it, but please indulge me and let me tell you about it for a minute.

Using an airport express, any of the 5 computers in the house streams music to the stereo in the living [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Apple,</p>
<p>I just set up my very own distributed entertainment system for my roommates and myself under $500. I know you already know all about it, but please indulge me and let me tell you about it for a minute.</p>
<p><img class="alignleft" src="http://images.macworld.com/images/legacy/2004/09/images/content/airport_express.jpg" alt="Airport Express" width="150" height="200" /></p>
<p>Using an airport express, any of the 5 computers in the house streams music to the stereo in the living room. The sound is great, and the lack of wires is simply invigorating.</p>
<p>The Apple TV in the den allows for any computer to stream video to our mega-TV and four-foot tall speakers (courtesy of our awesome landlord). I&#8217;m right now watching Bill Maher with my roomie Jugal, which he downloaded just a while before. It&#8217;s streaming right now to the TV - and at much better quality than our cable.</p>
<p><img class="alignright" src="http://tevami.com/apple_tv.jpg" alt="Apple TV" width="240" height="115" /></p>
<p>Tomorrow morning I will wake up and turn on my morning <a href="http://www.bbc.co.uk/radio/podcasts/globalnews/">news</a> <a href="http://podcast.com/show/47265/">podcasts</a>. Walking into my bathroom to take a shower, the news will come with me, streamed from my bedroom into my bathroom.</p>
<p>Walking up the stairs through the den to our kitchen, as the news being read from the speakers in my room fade out from behind me, the den speakers will pick it up - it will be a delightful moment of news-in-stereo mid-staircase.</p>
<p>The one part of the news I don&#8217;t listen to is the weather - rather, checking it out from the balcony with the real news coming with me.</p>
<p>All this, Apple - this took me 20 minutes to set up. <em>20 minutes</em>.</p>
<p>Thank You Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.narcvs.com/?feed=rss2&amp;p=54</wfw:commentRss>
		</item>
	</channel>
</rss>
