<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>repeat 4 [fd 10 rt 90]</title>
	<atom:link href="http://repeat4.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://repeat4.wordpress.com</link>
	<description>Some Thoughts On Programming</description>
	<lastBuildDate>Wed, 21 Feb 2007 18:09:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='repeat4.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>repeat 4 [fd 10 rt 90]</title>
		<link>http://repeat4.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://repeat4.wordpress.com/osd.xml" title="repeat 4 [fd 10 rt 90]" />
	<atom:link rel='hub' href='http://repeat4.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Let Us All Get Down On Our Knees and Praise the Relational Model (an Object-Relational Rant, Part II)</title>
		<link>http://repeat4.wordpress.com/2007/02/21/let-us-all-get-down-on-our-knees-and-praise-the-relational-model-an-object-relational-rant-part-ii/</link>
		<comments>http://repeat4.wordpress.com/2007/02/21/let-us-all-get-down-on-our-knees-and-praise-the-relational-model-an-object-relational-rant-part-ii/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 17:50:22 +0000</pubDate>
		<dc:creator>danmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://repeat4.wordpress.com/2007/02/21/let-us-all-get-down-on-our-knees-and-praise-the-relational-model-an-object-relational-rant-part-ii/</guid>
		<description><![CDATA[Okay, so, at the end of the previous post, I gave my Big Idea: Question: How do you get Objects in and out of a Relational Database? Answer: You don&#8217;t. You get Relations in and out of a Relational Database. Today, I&#8217;m going to explain what I&#8217;m talking about. In order to do that, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=5&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Okay, so, at the end of the <a href="http://repeat4.wordpress.com/2007/02/20/you-dont-get-down-from-an-elephant-you-get-down-from-a-duck-part-i/">previous post</a>, I gave my Big Idea:</p>
<p><strong>Question: How do you get Objects in and out of a Relational Database?</strong></p>
<p><strong>Answer: You don&#8217;t. You get Relations in and out of a Relational Database.<br />
</strong><br />
Today, I&#8217;m going to explain what I&#8217;m talking about.  In order to do that, I need to back up just a bit and explore in some detail the problem which the Relational Model addresses so brilliantly.  Because, fascinatingly, it&#8217;s a problem which is incredibly hard to notice, even though it&#8217;s right in front of us all the time.</p>
<p><strong>Say Hello To The Frame Problem</strong><br />
Wikipedia somewhat pedantically tells me that &#8220;The Frame Problem&#8221; has a mathematically precise meaning in AI and logic.  I&#8217;m going to ignore that bushwa.  What I&#8217;m interested in is the Frame Problem as a deep and general problem of intelligence. (what&#8217;s that, you say, AI and logic professors are more interested in debating arbitrary formalisms than they are in fully understanding intelligence?  I know, I know, it&#8217;s completely shocking.)</p>
<p>Another good name for it might be &#8220;What Is Common Sense And Why Do Computers Suck At It So Badly?&#8221;</p>
<p>A useful way to think of the Frame Problem is as a problem of <strong>representation</strong> (I&#8217;m following in Douglas Hofstadter&#8217;s footsteps, here).  If you look at a given situation, or problem, you have a simply staggering amount of information which you could bring to bear on it.  What&#8217;s more, you can organize subsets of that information in a dazzling number of different ways.</p>
<p>However, when faced with a given situation, rather than consciously sorting through everything you know and picking out the &#8216;relevant&#8217; information, you find that&#8230; somehow&#8230; a concise representation of it springs to mind.  If there are further challenges, you can then use that concise representation for conscious reasoning.</p>
<p>The Frame Problem is: in a given situation, how do you find and represent the relevant information, out of all the uncountably vast number of different ways you could represent what you know?</p>
<p>Daniel Dennett has constructed a marvelous fable about this, which is well worth studying and meditating on: <a href="http://www.c2i.ntu.edu.sg/AI+CI/Humor/AI_Jokes/FrameProblem.html">The Frame Problem and the Fable of R2D2</a>.  It takes some meditating to see the problem, because it just seems so <em>easy</em>. It is something which, literally, a five year old could do.  But which we have no way (not even close) of telling a computer how to do.</p>
<p>In fact, this turns out to be so savagely, incredibly hard to get a computer to do that most researchers would be tempted to throw up their hands and say it&#8217;s simply impossible.  The main thing that stops researchers from doing so is that every neurologically functional human being does it all the time.  And they do it without noticing.</p>
<p>This is key: the whole system seems to have been designed by natural selection to <strong>not bother your conscious mind</strong>.  Almost as if there&#8217;s a deliberate two-level split for information processing: a subconscious facility for organizing information into concise, relevant representations, and a conscious mind for evaluating and acting on those representations.</p>
<p>(Digression: which of those two facilities would you guess has been more heavily studied?  Right &#8212; the conscious mind.  Because, well, it&#8217;s accessible to conscious reflection.  And because we are all, I suspect, following evolution&#8217;s instructions to ignore the man behind the curtain.  This is no small part of why classic AI is an almost compete failure &#8212; in focusing on conscious thought, it <strong>assumes</strong> that information is already stored in a useful representation.  And it&#8217;s thus pretty much useless in the real world, where problems don&#8217;t come neatly packaged up for us in the proper representations. Back to the main story&#8230;)</p>
<p><strong>How does all this relate to writing programs?<br />
</strong><br />
When you write a program in say, python, you are working with a specific representation of the information in your problem domain.  This makes it possible to model certain behaviors, to solve certain problems.  To, in a way, imitate some of what <strong>conscious </strong>thought does.</p>
<p>However, in so doing, you are committing to one concrete representation of the relevant information.  And that, inevitably, limits you.  If someone comes along and asks for a subtly different behavior, or to solve certain related, but oddly distinct problems, there&#8217;s an excellent chance that your particular representation will be completely useless.  Even if, as a human, it seems like the other problem is closely related to what you&#8217;ve already solved.</p>
<p>This is where the Relational Model comes in &#8212; it allows you to store information in a way that flexibly supports a vast range of different representations.  Note: it doesn&#8217;t do so with the automatic, so-powerful-it-seems-magic system which our subconscious brain uses (if it did, we&#8217;d all know it, because we&#8217;d be talking to our computers).  What the Relational Model <strong>does</strong> do is allow you, the programmer, to use the same store of information in more than one situation.  You can ask your relational data store to give you What It Knows in a new form, with a different emphasis or structure, with some details ignored and others fully fleshed out.  And <em>it can do so.</em>  In a way, you supply the frame, and it fills it out for you.  Not always, not perfectly, but far, far better than just about any other system out there.</p>
<p>I would say: the Relational Model doesn&#8217;t <em>solve</em> the Frame Problem, but it <em>does</em> help you, as a programmer, to not get screwed by it.</p>
<p>It allows you to build something like that two-level information processing system I theorized exists in the brain: one level which stores a vast amount of information in a very flexible manner, and another level which, given a concrete representation, can solve specific problems and model specific behaviors.</p>
<p>This is why I&#8217;ve never understood why people seem to get so worked up about the so-called Impedance Mismatch between an RDBMS and an OO language.  To my mind, the two work in simply brilliant harmony &#8212; <strong>information</strong> is stored in the RDBMS, and <strong>behavior</strong> is modeled by the objects.</p>
<p>To get the two to play together nicely, the really key thing is to understand the great value that the Relational Model is giving you.  If you do so, you won&#8217;t be tempted to seal it off beneath a brittle ORM layer which <em><strong>turns it into an concrete represenation store</strong></em>.  Instead, you&#8217;ll want to bring Relations, with all their marvelous flexibility, up into your OO language.</p>
<p>There <strong>are</strong> some interesting challenges to doing that.  And I&#8217;ll get into those in my next post, when I explore the Relational Model in more detail.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/repeat4.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/repeat4.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/repeat4.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/repeat4.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/repeat4.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=5&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://repeat4.wordpress.com/2007/02/21/let-us-all-get-down-on-our-knees-and-praise-the-relational-model-an-object-relational-rant-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6f502b167f863566748d4757779a269d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danmil</media:title>
		</media:content>
	</item>
		<item>
		<title>You Don&#8217;t Get Down From an Elephant, You Get Down From a Duck (an Object-Relational Rant, Part I)</title>
		<link>http://repeat4.wordpress.com/2007/02/20/you-dont-get-down-from-an-elephant-you-get-down-from-a-duck-part-i/</link>
		<comments>http://repeat4.wordpress.com/2007/02/20/you-dont-get-down-from-an-elephant-you-get-down-from-a-duck-part-i/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 17:15:13 +0000</pubDate>
		<dc:creator>danmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://repeat4.wordpress.com/2007/02/20/you-dont-get-down-from-an-elephant-you-get-down-from-a-duck-part-i/</guid>
		<description><![CDATA[So: I have something to say on the great, ever-churning topic of Object-Relational Mapping tools in python. (In fact, I have something to say on the topic of object-relational tools in general, but python is a beautiful language that I use every day and specificity is everyone&#8217;s friend). I&#8217;ve got a sort of long-winded argument [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=4&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So: I have something to say on the great, ever-churning topic of Object-Relational Mapping tools in python.  (In fact, I have something to say on the topic of object-relational tools in general, but python is a beautiful language that I use every day and specificity is everyone&#8217;s friend).</p>
<p>I&#8217;ve got a sort of long-winded argument to make, so let me jump ahead to the conclusion right away:</p>
<p><strong>You don&#8217;t need an object-relational mapping tool/layer/framework.</strong></p>
<p>You really, really don&#8217;t.</p>
<p>But what about the famous impedance mismatch?  Or the feeble abstract type support in RDBMS&#8217;s?  And all the useful ORM tools out there?  Or the fact that it&#8217;s overwhelmingly tempting to build your own ORM, because it just seems like such a Natural, Right Idea, even though all the ones you already know about seem kind of overly complex?</p>
<p>Well, not only do I think that ORM&#8217;s are a deep, fundamental mistake, but I also have a hunch as to why it&#8217;s so incredibly tempting for humans to make that mistake.</p>
<p>But, first, a joke.</p>
<p><strong>One of My Two Favorite Computer Science Joke Koans</strong></p>
<p>When I was young, I had a fascination with jokes.  In some random book of riddles, I read the following:</p>
<p>Question: &#8220;How do you get down from an elephant?&#8221;<br />
Answer: &#8220;You don&#8217;t get down from an elephant, you get down from a duck&#8221;.</p>
<p>Now, at a young age, I had no idea what the hell this joke meant.  I didn&#8217;t realize that duck feathers were called down, so the joke felt oddly like it was cheating.  As if, someone standing, stuck, on top of an elephant just announced, &#8220;I&#8217;m going to get down from a duck&#8221;, at which point, they&#8217;d be standing on a duck, and could casually step down to the ground.  What the hell?  (Side note: somewhat to my shame, I have memories of telling this joke to adults, and when they laughed, laughing along with them, as if I understood it.  Not sure what this says about me, but there it is. Onward&#8230;).</p>
<p>In my confusion, I meditated long and hard on this joke in an effort to understand it.  Eventually, it became a sort of zen koan for me.  Years later, I discovered that it was actually an excellent zen koan for computer science.</p>
<p><strong>Applying the Joke Koan</strong></p>
<p>One of my favorite examples comes from python.  If you&#8217;re a computer language geek (like myself), here&#8217;s a question you&#8217;ll run into over and over again, in a variety of guises:</p>
<p><em>How do you make code written in a high-level, dynamic language run as fast as code written in C?</em></p>
<p>This is a very, very interesting question, and there are a dazzling number of very interesting answers.  To pick just a few: in Common Lisp, you can add optional type declarations as hints to the compiler; in the ML family, there&#8217;s sophisticated type inferencing; Java has JIT&#8217;s and adaptive, profile-based live recompilation (HotSpot).</p>
<p>All very interesting and very complex, and all sort-of successful.</p>
<p>So how do you do this in python?  Well, let&#8217;s frame it up:</p>
<p>Question: How do you make code written in python as fast as code written in C?</p>
<p>Answer: You don&#8217;t make code written in python as fast as code written in C.  You make code written in C as fast as code written in C.</p>
<p>And this is a brilliant effing answer!  When I was first learning python, and realized that this was the python answer, I was blown away.  You make it easy to call C code from python, and that&#8217;s it!  Which is why python, legendarily &#8216;slow&#8217; though it is, is used in the real world to power websites serving tens of millions of hits a day, and for hard-core scientific calculations, and sophisticated image processing, and for, well, all the demanding, real-world applications you can hear about every year at PyCon.</p>
<p>It&#8217;s just a fantastic unasking of the question.  There you are, standing on the duck, and you just step off onto the ground.  Brilliant, no?</p>
<p>So, this is the heart of my answer:</p>
<p><strong>Question: How do you get Objects in and out of a Relational Database?</strong></p>
<p><strong>Answer: You don&#8217;t.  You get Relations in and out of a Relational Database.</strong></p>
<p>I&#8217;ll explain that answer in more detail in part II of this series, coming soon, titled:<em> Let Us All Get Down On Our Knees and Praise the Relational Model.</em></p>
<p>(Oh, and if you&#8217;re curious, my other favorite computer science joke koan comes from The Hitchhiker&#8217;s Guide to the Galaxy, and involves the infinite improbability drive.  I&#8217;ll get to that in another post at some point soon.)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/repeat4.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/repeat4.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/repeat4.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/repeat4.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/repeat4.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=4&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://repeat4.wordpress.com/2007/02/20/you-dont-get-down-from-an-elephant-you-get-down-from-a-duck-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6f502b167f863566748d4757779a269d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danmil</media:title>
		</media:content>
	</item>
		<item>
		<title>Yo From Mr. Blog Author</title>
		<link>http://repeat4.wordpress.com/2007/02/19/hello-world/</link>
		<comments>http://repeat4.wordpress.com/2007/02/19/hello-world/#comments</comments>
		<pubDate>Mon, 19 Feb 2007 23:15:29 +0000</pubDate>
		<dc:creator>danmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[&#8216;lo world. Here it finally is: a place for my Great Thoughts on programming. For those interested, some basic facts about me: Dan Milstein, born 1971. Currently reside in Boston, Mass. In sixth grade, someone put me in front of an Apple IIe running&#8230; Logo. Never been the same since. Hence the blog title. Work [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=1&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8216;lo world.  Here it finally is: a place for my Great Thoughts on programming.</p>
<p>For those interested, some basic facts about me:</p>
<ul>
<li>Dan Milstein, born 1971.</li>
<li>Currently reside in Boston, Mass.</li>
<li>In sixth grade, someone put me in front of an Apple IIe running&#8230; Logo.  Never been the same since.  Hence the blog title.</li>
<li>Work at a <a href="http://www.appingo.com/">startup</a>. Quite happily.</li>
<li>Love that python programming.</li>
<li>Have an entire other life which I won&#8217;t be talking about in this blog, but which just may be of interest to you, if you like the idea of <a href="http://www.rough-and-tumble.org">Theater That Doesn&#8217;t Suck</a>.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/repeat4.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/repeat4.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/repeat4.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/repeat4.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/repeat4.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=repeat4.wordpress.com&amp;blog=797234&amp;post=1&amp;subd=repeat4&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://repeat4.wordpress.com/2007/02/19/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6f502b167f863566748d4757779a269d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danmil</media:title>
		</media:content>
	</item>
	</channel>
</rss>
