<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx</link><description>This morning I ran into an interesting design decision. The problem at hand isn't that interesting, I've solved it a lot of times before. The interesting thing is that this problem isn't always solved the same way. It goes like this: do you tell an element</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7104974</link><pubDate>Mon, 01 Jun 2009 11:39:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7104974</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@yohoe1101: I don't see building a bridge as science, it's an application of science so a bridge can be build. In that light, writing a program isn't science, it's applying science so the software is doing what it should do. At least I look at it that way. Others see it as a creative process which has little to do with science at all. I find that a little too farfetched. &lt;/p&gt;
&lt;p&gt;The science behind what we apply in software engineering every day, I think that's exact, as in: you can prove that things are correct or not. How that is applied in writing actual software is up to the engineer. Similar to how physics and math is applied in building a bridge. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7104974" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7104525</link><pubDate>Sun, 31 May 2009 22:50:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7104525</guid><dc:creator>yohoe1101</dc:creator><author>yohoe1101</author><description>&lt;p&gt;I&amp;#39;m interested in your thoughts on software development being an exact science. &amp;nbsp;Is building a bridge an exact science? &amp;nbsp;An automobile? &amp;nbsp;Yes, the comparison is apples to oranges, but (I&amp;#39;m sure I am not the first to say this) they are both fruit, are they not? (please don&amp;#39;t &amp;quot;flame me&amp;quot; - I have out there thoughts but I&amp;#39;m not trying to waste anyone&amp;#39;s time)&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7104525" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7094239</link><pubDate>Thu, 21 May 2009 18:31:33 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7094239</guid><dc:creator>BinroeTheHeretic</dc:creator><author>BinroeTheHeretic</author><description>&lt;p&gt;It&amp;#39;s interesting that most of the comments focus on the problem and not on what I thought was your main point: that &amp;quot;context&amp;quot; is everything. &amp;nbsp;I&amp;#39;m reminded of Andy Hunt&amp;#39;s book &amp;quot;Pragmatic Thinking and Learning,&amp;quot; where he points out that the difference between an expert and a novice is the ability to &amp;#39;adjust&amp;#39; a rule (idiom/design pattern/etc) based on context. &amp;nbsp;Thanks for the peek at another real-life problem and the dilemmas that we developers go through...&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7094239" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7093726</link><pubDate>Wed, 20 May 2009 20:14:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7093726</guid><dc:creator>Mark Smeltzer</dc:creator><author>Mark Smeltzer</author><description>&lt;p&gt;Anyone from an Agile background, like myself, will happily write &amp;quot;ugly&amp;quot; code on the first pass that gets the job done and makes our tests pass.&lt;/p&gt;
&lt;p&gt;Once the tests are passing, we can go through the &amp;quot;messy&amp;quot; bits and look for anything that would benefit from immediate refactoring.&lt;/p&gt;
&lt;p&gt;From an Agile perspective, the cost-benefit analysis of making these refactorings should always be at the forefront of one&amp;#39;s thought processes. This goes against the dogmatic it-must-be-this-way type of thinking.&lt;/p&gt;
&lt;p&gt;Sounds like you&amp;#39;re either moving towards, or already endorse, Agile techniques.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7093726" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7093622</link><pubDate>Wed, 20 May 2009 15:30:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7093622</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@Mark: I think I understood what he said, I'm not denying that a set of UI specific classes for display purposes only is a solution, however my pragmatic gut-feeling tells me that writing a hierarchy of classes for just UI display purposes (and we're talking about a lot of classes here), is a bit overkill if I can solve the particular problem with 1 if statement. &lt;/p&gt;
&lt;p&gt;(the article wasn't about the UI specific problem as well ;) it was about the question whether chosing a less 'popular' option( because it seems 'not done' in the eyes of the preachers on the internet and books/conferences) is something you should do because it fits your situation or should you drop it because someone else might say &amp;quot;what a bunch of **** code!&amp;quot;, as it doesn't match &amp;lt;insert hype of the day&amp;gt;-coding style. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7093622" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7093440</link><pubDate>Wed, 20 May 2009 09:56:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7093440</guid><dc:creator>Mark Smeltzer</dc:creator><author>Mark Smeltzer</author><description>&lt;p&gt;Frans,&lt;/p&gt;
&lt;p&gt;I think you misunderstood Think Before Coding&amp;#39;s point about a view model.&lt;/p&gt;
&lt;p&gt;Imagine that your Model contains this interface:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;public interface IHasChildren&amp;lt;T&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where T : IHasChildren&amp;lt;T&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#region Properties (public)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IEnumerable&amp;lt;T&amp;gt; Children { get; }&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#endregion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;Now, for presentation purposes, you may find situations where it would be VERY helpful to be able to nagivate from child to parent (say when a UI event is fired on a child, we may have to do something with the parent).&lt;/p&gt;
&lt;p&gt;Since it may not be possible or it may simply be difficult to modify all of the classes that have the IHasChildren&amp;lt;T&amp;gt; interface, we can add a decorator to the View Model, which is used only in the presentation layer:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;public class ParentChildDecorator&amp;lt;T&amp;gt; : IHasChildren&amp;lt;T&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where T : IHasChildren&amp;lt;T&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#region Fields (private)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private readonly T _item;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private readonly ParentChildDecorator&amp;lt;T&amp;gt; _parent;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#endregion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#region Constructors&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ParentChildDecorator ( T item, ParentChildDecorator&amp;lt;T&amp;gt; parent )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_item = item;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_parent = parent;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#endregion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#region Properties (public)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public IEnumerable&amp;lt;ParentChildDecorator&amp;lt;T&amp;gt;&amp;gt; Children&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;get&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach ( var child in _item.Children )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;yield return new ParentChildDecorator&amp;lt;T&amp;gt;( child, this );&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ParentChildDecorator&amp;lt;T&amp;gt; Parent&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;get&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _parent;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#endregion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#region IHasChildren&amp;lt;T&amp;gt; Properties&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IEnumerable&amp;lt;T&amp;gt; IHasChildren&amp;lt;T&amp;gt;.Children&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;get&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Children.Cast&amp;lt;T&amp;gt;( );&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#endregion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;Now you can use the following type of code to interact with any object that implements IHasChildren&amp;lt;T&amp;gt; in a bidirectional fashion using the decorator above:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var item = new TestItem {&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Children = new[ ] { new TestItem( ) }&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var viewModelItem = new ParentChildDecorator&amp;lt;TestItem&amp;gt;( item, null );&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Debug.Assert( viewModelItem.Children.First().Parent == viewModelItem );&lt;/p&gt;
&lt;p&gt;Suffice it to say that a View Model is a set of classes/interfaces that exist only at the presentation layer to make the necessary adjustments to the underlying Model to make it VERY EASY to program the presentation layer. There are plenty of good write ups on the View-View Model-Model-Controller pattern out there.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7093440" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7093225</link><pubDate>Wed, 20 May 2009 02:36:35 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7093225</guid><dc:creator>whatthe12</dc:creator><author>whatthe12</author><description>&lt;p&gt;&amp;quot;So I wondered: isn&amp;#39;t this quest to find what the right thing is actually haunting our profession and why exactly is this?&amp;quot;&lt;/p&gt;
&lt;p&gt;In &amp;#39;Zen and the Art of Motorcycle Maintenance&amp;#39;, Robert Pirisg write a lot about how his students are crippled by a compulsion to do &amp;#39;the right thing&amp;#39; at the expense of their creativity.&lt;/p&gt;
&lt;p&gt;When I first started programming I was using Flash 4 which nobody really took seriously. It was a lot of fun and as long as something worked people were pretty amazed whatever the state of the code beind it.&lt;/p&gt;
&lt;p&gt;As Flash has evolved and I&amp;#39;ve got into more industrial quality technologies, I&amp;#39;ve lost some of my ability to reason and have confidence in what I do because I&amp;#39;ve become infected with the need to things the &amp;#39;right way&amp;#39;.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7093225" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7078391</link><pubDate>Fri, 08 May 2009 13:44:50 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7078391</guid><dc:creator>p.gielens</dc:creator><author>p.gielens</author><description>&lt;p&gt;So if I understand this article and the comments correctly, these are the important nuggets:&lt;/p&gt;
&lt;p&gt;Context - key to success is your understanding of the problem at hand.&lt;/p&gt;
&lt;p&gt;Gray - there’s no right or wrong. Track (involve your audience) the decision making process.&lt;/p&gt;
&lt;p&gt;Reversibility - a decision that is easy to reverse should be dealt with in a pragmatic manner.&lt;/p&gt;
&lt;p&gt;I agree with all of these points and I’d like to add that &amp;quot;decision making&amp;quot; is much bigger and complex than we touched in this article. Frans was clearly wearing his white thinking hat ;)&lt;/p&gt;
&lt;p&gt;Have a great weekend all!&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7078391" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7074857</link><pubDate>Wed, 06 May 2009 14:56:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7074857</guid><dc:creator>Think Before Coding</dc:creator><author>Think Before Coding</author><description>&lt;p&gt;I see what you mean, the important thing is to &amp;#39;understand&amp;#39; your problem.&lt;/p&gt;
&lt;p&gt;The only one &amp;#39;right&amp;#39; thing to do is the thing that follow from a deep understanding of your problem. It often has to do with hidden concepts.&lt;/p&gt;
&lt;p&gt;As you&amp;#39;ve seen, my comment was not to say &amp;#39;it is the right thing&amp;#39;, and I tried to give a little context of how I understood the problem, and a adapted solution in this vision. &lt;/p&gt;
&lt;p&gt;But you know your problem far better than me :P and my response was just a suggestion depending on a external vision of things. Your the one in charge of your code, you decide !&lt;/p&gt;
&lt;p&gt;About my name (think before coding), understand it as in : &amp;#39;a game of chess is like a sword fight, you must think first, before you move&amp;#39;. Think in movement. While coding, the battlefield change after every single line you write. And this goes in your direction.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7074857" width="1" height="1"&gt;</description></item><item><title>re: The desperate quest for doing it 'right'</title><link>http://weblogs.asp.net/fbouma/archive/2009/05/04/the-desperate-quest-for-doing-it-right.aspx#7074770</link><pubDate>Wed, 06 May 2009 12:50:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7074770</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@Think before coding: the treeview does reflect the model, that's it purpose, the user can browse the model through the UI. I see what you're getting at, though the visual representation is actually simpler here: the physical model is presented as such, the thing is that not every element in the hierarchy knows what its parent is. It's not coupling that's part of the problem, because the elements of physical hierarchy internally (the model objects) aren't always knowing their containers, (due to decoupling of their defining namespaces/assemblies), this has nothing to do with the visual representation of things, that's just a way to show what we're dealing with here. &lt;/p&gt;
&lt;p&gt;The point of the post however isn't to focus on that detail, it's about the fact that if something is presented as 'do this, it will make things better', it requires context, and it also requires that that context matches the context you're dealing with. If not, the advice is not useful. Furthermore, people should always think for themselves (e.g. think before coding ;)) to find out what is the best approach, based on arguments they define/recognized themselves. &lt;/p&gt;
&lt;p&gt;Like, 'decouple your concerns, it will make your code better'... why? (I'm not arguing it wouldn't, I just use it as an example) A person should think about why that is, and what the pro/con's are of decoupling and tight coupling and what's better for a given situation. THEN the developer makes wise decisions and the software is maintainable (as decisions are based on reasoning) and not a hodgepodge of 'good' advice brought by random people on the net. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7074770" width="1" height="1"&gt;</description></item></channel></rss>