<?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>Ben McGraw's Egometry &#187; programming</title>
	<atom:link href="http://www.egometry.com/tags/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.egometry.com</link>
	<description>cogito ergo stfu</description>
	<lastBuildDate>Wed, 28 Jul 2010 20:12:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHP, Language of Mystery</title>
		<link>http://www.egometry.com/tech/php-language-of-mystery/</link>
		<comments>http://www.egometry.com/tech/php-language-of-mystery/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 17:08:12 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=896</guid>
		<description><![CDATA[PHP seems so arbitrary sometimes. function test_nine() { $$"9" = 22; } fails to parse. (which is good, I suppose) This passes: function test_nine() { $n = 9; $$n = 22; $this->assertEqual($$n, 22); } -Andy Friesen, of giant-communist-robots.com.]]></description>
			<content:encoded><![CDATA[<p>PHP seems so arbitrary sometimes.</p>
<pre style="background-color: #ccc; font-family: monospace; padding: 10px;">
function test_nine() {
	$$"9" = 22;
}
</pre>
<p>fails to parse.<br />
(which is good, I suppose)</p>
<p>This passes:</p>
<pre style="background-color: #ccc; font-family: monospace; padding: 10px;">
function test_nine() {
	$n = 9;
	$$n = 22;
	$this->assertEqual($$n, 22);
}
</pre>
<p>-Andy Friesen,<br />
of <a href=http://giant-communist-robots.com/>giant-communist-robots.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/tech/php-language-of-mystery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5, you king of bastards (setting an instance member inside a static class call)</title>
		<link>http://www.egometry.com/tech/php5-you-king-of-bastards-setting-an-instance-member-inside-a-static-class-call/</link>
		<comments>http://www.egometry.com/tech/php5-you-king-of-bastards-setting-an-instance-member-inside-a-static-class-call/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 13:48:58 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scope]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=888</guid>
		<description><![CDATA[If I&#8217;m in an instanced class, and I call another class&#8217;s method statically inside of a method in the first class, and that static method should happen to (erroneously) have $this->whatever inside of it&#8230; &#8230;it sets $whatever on my outer instanced class. Here&#8217;s some illustrative code: &#60;? &#160;&#160;&#160;&#160;class&#160;Inner_Static&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;function&#160;burrito()&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$this-&#62;_member&#160;=&#160;‘A&#160;keyboard.&#160;How&#160;quaint.’; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;class&#160;Outer_Instance&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;function&#160;taco()&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Inner_Static::burrito(); [...]]]></description>
			<content:encoded><![CDATA[<p>If I&#8217;m in an instanced class, and I call another class&#8217;s method statically inside of a method in the first class, and that static method should happen to <i>(erroneously)</i> have $this->whatever inside of it&#8230;</p>
<p>&#8230;it sets $whatever on my outer instanced class.</p>
<p>Here&#8217;s some illustrative code:</p>
<pre style="padding: 8px; background-color: rgb(221, 221, 221);" >
&lt;?
&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;Inner_Static&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;burrito()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_member&nbsp;=&nbsp;‘A&nbsp;keyboard.&nbsp;How&nbsp;quaint.’;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;Outer_Instance&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;taco()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner_Static::burrito();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;$my_guy&nbsp;=&nbsp;new&nbsp;Outer_Instance();
&nbsp;&nbsp;&nbsp;&nbsp;$my_guy-&gt;taco();

&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;‘$my_guy-&gt;_member:&nbsp;‘&nbsp;.&nbsp;$my_guy-&gt;_member;&nbsp;
</pre>
<p>This boggles my mind a bit.  Tracking it down cost me a bit of time.  Is there actually a sane use for this little tidbit, or am I justified in thinking that a good language would warn you that scope shenanigans are going on here?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/tech/php5-you-king-of-bastards-setting-an-instance-member-inside-a-static-class-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple scripts always ship.</title>
		<link>http://www.egometry.com/gruedorf/simple-scripts-always-ship/</link>
		<comments>http://www.egometry.com/gruedorf/simple-scripts-always-ship/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 11:03:26 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Gruedorf]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[escaping strings]]></category>
		<category><![CDATA[jokesfornerds]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[webapps]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=862</guid>
		<description><![CDATA[Simple needs, simple deeds. A need for a simple one-off occurred Monday evening at work. Some non-engineer coworkers needed to be shown how to make some non-Latin-1 text into html entities. Basically, they needed a 5 line php script. Right before sending them to any number of sites that already do this 5-line operation, I [...]]]></description>
			<content:encoded><![CDATA[<h2>Simple needs, simple deeds.</h2>
<p>A need for a simple one-off occurred Monday evening at work.  Some non-engineer coworkers needed to be shown how to make some non-<a href="http://en.wikipedia.org/wiki/ISO_8859-1" target=_blank>Latin-1</a> text into html entities.  </p>
<p>Basically, they needed a 5 line php script.</p>
<p>Right before sending them to <a href="http://www.google.com/search?q=html+entity+converter" target=_blank>any number of sites that already do this 5-line operation</a>, I decide: <i>what the hell, I&#8217;ll just make one of my own</i>.  And so, that night after unwinding, <a href="http://www.egometry.com/html-entitizer/" target=_blank>I did</a>.</p>
<p>Here&#8217;s my <a href="http://www.egometry.com/html-entitizer/" target=_blank>HTML Entitizer</a>.  Suitable for all your HTML entitizing needs, large <i>or</i> small!</p>
<h2>PHP in <u>Escape from &amp;#76;&amp;#46;&amp;#65;&amp;#46;</u><a href="http://www.zefrank.com/thewiki/the_show:_05-10-06" target=_blank style="font-size:40%; color: #eee;">(jokesfornerds)</a></h2>
<p>One of the reasons PHP is so popular is the fact that it&#8217;s got so many handy little functions.  In this case, <a href="http://php.net/manual/en/function.htmlentities.php">htmlentities()</a> is the blade of PHP&#8217;s swiss army knife that we&#8217;re using.  Of course, indiscriminate use of functions like this cause problems like double-escaped characters (&amp;amp;amp;) showing up in databases. </p>
<p><a href="http://www.egometry.com/i/2009/07/swiss-army-everything.jpg" rel="lightbox[pics862]" title="PHP, the swiss-army knife."><img src="http://www.egometry.com/i/2009/07/swiss-army-everything.thumbnail.jpg" alt="PHP, the swiss-army knife." width="200" height="152" class="attachment wp-att-864 alignright" /></a>PHP&#8217;s solution to this sort of thing is generally to throw new corkscrews and toothpicks onto it&#8217;s ever-growing pile of tools on it&#8217;s knife.  If you look at the <a href="http://php.net/manual/en/function.htmlentities.php">documentation page for htmlentities()</a>, you can see that as of version 5.2.3 of PHP, another optional parameter was added: double_encode. Which will</p>
<p>Getting the right escape order can be hard, especially for novices or small teams inheriting code from other small teams.  To date I don&#8217;t think I&#8217;ve inherited work on a webapp whose database wasn&#8217;t littered with extraneous &amp;amp;&#8217;s and rogue \\&#8217;s. It&#8217;s only by virtue of verge-rpg.com having a single developer who is really, <i>really</i> annoyed by this problem the the point of neuroticism that &amp;amp;amp; never appears in the database except in <a href="http://verge-rpg.com/boards/display_thread.php?id=131844#post131851" target=_blank>posts that actually wanted to display &amp;amp;</a>.</p>
<p>Although even this level of OCD-database-cleansing didn&#8217;t prevent <a href="http://verge-rpg.com/boards/display_thread.php?id=131844#post131850" target=_blank>escaping-related errors on the first go-round</a>.</p>
<h2>Teh (sic) Implementation.</h2>
<p>So, the only time-consuming part of getting this script into my wordpress site (other than me taking a bloody half hour to blog about a 2-minute job) was convincing wordpress that it should allow <span style="color: red;">&lt;?php</span> fragments into my posts.</p>
<p>Luckily, other people before me have wanted this very thing.  WordPress&#8217;s biggest strength is again one of PHP&#8217;s: if you want it, it&#8217;s already been made for you.  In this case the <a href="http://bluesome.net/post/2005/08/18/50/%20Exec-PHP" target=_blank>Exec-PHP</a> module will let admin-level users of your blog post for-reals, actual PHP into your posts!  You&#8217;d better hope your admins don&#8217;t have their accounts compromised! <span style="font-size:40%; color: #eee;">(&#8230;one moment.  Changing my password.)</span></p>
<p>In PHP&#8217;s case, the code that you want that&#8217; already been written for you is <a href="http://www.php.net/manual/en/function.htmlentities.php#84612">in every single function&#8217;s talkback thread</a>.  These functions may not be hyper-optimized or the best solution for any given problem, but they generally are what you want to prove a point.  You scan the docs, you grab the code, you put it in your site, and you move on to the next problem in your own app.</p>
<p>Quick and dirty, the way PHP likes it.</p>
<p>For the curious, here&#8217;s the solution I spat out (copy included):</p>
<pre style="background-color: #ddd; padding: 10px; line-height: 110%;">
&lt;h1&gt;Escape html&lt;/h1&gt;
&lt;p&gt;This is a simple script to give the escaped codes for some html. Useful
for making foreign languages play nice with html, regardless of how the
server handles string encoding.&lt;/p&gt;
&lt;?
if( isset($_POST['escape_me']) ) {
echo('&lt;h2&gt;Your escaped html&lt;/h2&gt;&lt;div'.
     'style="background-color: #ddd; padding: 8px;"&gt;');
echo(str_replace('&amp;','&amp;amp;',htmlentities(stripslashes($_POST['escape_me']),
     ENT_NOQUOTES,'UTF-8')));
echo( '&lt;/div&gt;' );
}
?&gt;
&lt;form action='/html-entitizer/' method='POST'&gt;
Text to escape:
&lt;textarea name='escape_me' style='width: 550px; height: 200px;'&gt;&lt;/textarea&gt;
&lt;input type='submit' value='Create my html entities'&gt;
&lt;/form&gt;
</pre>
<p>(weird formatting so it doesn&#8217;t run off the side of the screen; I don&#8217;t actually code like that.  Mostly. ;)</p>
<h2>Coda</h2>
<p>It is of note that this <i>tiny</i> amount of effort got me two really sincere &#8220;thank yous&#8221; from the non-engineers.  It&#8217;s important to note that things that are mindlessly trivial to a programmer can be tedious tasks to someone without the power to bully the computer into doing labor for them.  One of the guys, a computer saavy guy who had access to lists of what each escaped character translated to, insisted that he&#8217;d just search/replace the offensive characters by hand.  </p>
<p>Ostensibly, this was offered to save me work.</p>
<p>How much time did my 2 minutes of code save him?</p>
<p>(<a href="http://www.google.com/search?q=html+entity+converter" target=_blank>Don&#8217;t forget a google for &#8220;html entity converter&#8221; would&#8217;ve saved even that, had I cared to not make the tiny toy script of my own</a>.  I&#8217;ll ramble on about re-using other people&#8217;s work more later, but it&#8217;s key to remember even what little work I did end up doing was extraneous and largely an exercise in vanity.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/gruedorf/simple-scripts-always-ship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Split-Testing and Late-Night Coding</title>
		<link>http://www.egometry.com/tech/split-testing-and-late-night-coding/</link>
		<comments>http://www.egometry.com/tech/split-testing-and-late-night-coding/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 08:27:37 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[IMVU]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=713</guid>
		<description><![CDATA[When testing a feature wrapped in a spiffy-keen augmentation of an experiment system live, please remember to take into account that you have a 50% chance to land in the "nothing happens" side of the experiment.  This will probably save you a lot of trouble.]]></description>
			<content:encoded><![CDATA[<h3>Experiments!</h3>
<p><a href=http://joblivious.wordpress.com/2009/02/24/advanced-tdd-two-birds-with-one-stone/ target=_blank>Split Tests</a> are a very powerful way to determine if a thing you are doing is in your best interest or not.  If you aren&#8217;t familiar with A/B tests, the very high level is that you show half of your users one thing, half another thing, and you compare the results of each set of users.</p>
<h3>Humanity</h3>
<p>One of the more mundane, human problems you can run into as an engineer is tiredness. Tunnel vision sets in, and you focus on specific tasks.  If you&#8217;re solving a complex math problem, you make an arithmetic error.  If you&#8217;re a coder not using TDD, often you&#8217;re running into syntax errors or the like.</p>
<p>These things happen.</p>
<h3>Process</h3>
<p>At IMVU, we deploy code <a href=http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/ target=_blank>fifty times a day</a>.  The code you just wrote goes out to the production cluster without waiting for QE people to sign off on it, or for your manager to approve it. </p>
<p>Engineering under TDD acts like a blanket to shield you from a lot of problems.  You know from the get-go if you broke something in a more interesting way (assuming said interesting way was protected by a test). The tests exist to protect you before you get near the production systems.  A failed test on your buildbot is a <i>good</i> thing, because that&#8217;s a broken thing your customers never had to deal with.  As someone who had jobs where he was tacitly encouraged to code untested fixes on the fly on the production machines in other jobs, this is a godlike boon.</p>
<p>However, things go wrong, and sandboxes and production environments still can disagree!  This is why the final step of pushing code live to a production server is <b>always</b>, <u>always</u>, <i>always</i> verify your change manually out in the live website.</p>
<p>And if it&#8217;s not verified (or if your change breaks things in <i>very</i> unexpected ways, causing die spikes or high database load or the such), to revert to a previous known good state and investigate further.</p>
<h3>Moral</h3>
<p>Now that all of the background for tonight is set up, I&#8217;ll skip the actual stupidity, and jump straight to the conclusion:</p>
<p><i>When testing a feature wrapped in a spiffy-keen augmentation of an experiment system live, please remember to take into account that you have a 50% chance to land in the &#8220;nothing happens&#8221; side of the experiment.  This will probably save you a lot of trouble.</i></p>
<p>It was a pleasant surprise when I looked up to see a wonderful forest around me. I&#8217;d just been staring at this one tree over here.</p>
<h3>The other kind of Restful</h3>
<p>The fun part is my team&#8217;s Quality Engineer, who was familiar with this feature and had tested it in production live before, was also up working.  He didn&#8217;t catch the obvious either, because it was so obvious.</p>
<p>Say a human has a 10% chance of making a mistake/forgetting something obvious.  Say he&#8217;s got a pairing partner with the same ratio.  Assuming an ideal world, you&#8217;ve reduced your net error ratio to 1% by having another dude on the case with you.  Yay pairing!</p>
<p>If both dudes are tired, their error rates go up, and even pairing, you still have a higher chance of fucking something up.  Boo tired!</p>
<p>&#8230;Perhaps there&#8217;s a better moral than the one listed above hidden in here? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/tech/split-testing-and-late-night-coding/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Fish, as they say, Rots From The Head&#8230;</title>
		<link>http://www.egometry.com/ephemera/the-fish-as-they-say-rots-from-the-head/</link>
		<comments>http://www.egometry.com/ephemera/the-fish-as-they-say-rots-from-the-head/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 08:05:51 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Ephemera]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[misinterpret]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=613</guid>
		<description><![CDATA[I do not give a shit if you're a republican, nor a democrat. If you think the system as it is is shitty, and you're not in a battleground state, and you didn't vote third party, then you're a non-sentient hypocrite nimrod whom I have no respect, intellectual or otherwise, for.]]></description>
			<content:encoded><![CDATA[<h2 style="color: silver;">(or: Misinterpret Cast!)</h2>
<h3>Back in 2004 I wrote</h3>
<div style="background-color: #efefef; padding: 5px;" ><i>I do not give a shit if you&#8217;re a republican, nor a democrat. If you think the system as it is is shitty, and you&#8217;re not in a battleground state, and you didn&#8217;t vote third party, then you&#8217;re a non-sentient hypocrite nimrod whom I have no respect, intellectual or otherwise, for.</i></div>
<p>Nobody understood this properly when I wrote it originally, so then in my comments I wrote some psuedocode to explain the logic flow of that sentence and it cleared it up.</p>
<p>(Aside: Comparison of the previous two sentences shows that in five years I&#8217;ve not stopped ending my sentence in prepositions.  I, like most of you, run english in quirks mode.)</p>
<h3>The conclusion</h3>
<p>Code is far less ambiguous than english because people are not used to strictly interpreting english.  (The previous sentence implies that math majors are not people; I&#8217;m willing to defend that.)</p>
<p>So I revisited the psuedocode in the post and found it amazingly brittle and unreusable!  And there was a bug in the final clause.  Oh, the perils of not test-driving your emotionally charged statements.  So, in the interests of avoiding arrogance-rot, I refactored and generalized it a bit!</p>
<h3>An Exemption</h3>
<p>I&#8217;m not sure if I believe this anymore at all.  It&#8217;s been a while since I re-evaluated my political stances.  I think I&#8217;ve gone from a hardline libertarian to a broken, beaten, shattered shell of a libertarian.  </p>
<p>So, the contentious arguments here aren&#8217;t so applicable anymore.  I just wanted to point illustrate that the opening statement is hyper-charged and people fail to interpret it correctly, whereas the code is much easier to interpret to those who have been trained in the Way of the Computer.</p>
<pre style="width: 510px; padding: 20px;  background-color: #efefef; line-height:125%;" >
/// Takes a Person object, and sets it's member variables accordingly for
/// it's 1::1 relation with Grue in respect to Grue's respect for that
/// Person.
///
/// @param you The person to judge.
/// @see Person::ProcessReaction()
/// @see _BattlegroundStateCalculator()
/// @todo implement all of the various non-election-related ways a person
///       can be a total douche in my eyes.
/// @todo exemption clauses for 'lesser of two evils'?
/// @todo set dead_to_me flag if '3rd party'/'wasted vote' argument comes
///       up.
void Grue::CalculateRespect( Person you )
{

    PoliticalOffice* p_office;
    p_office = PoliticalService.getCurrentOfficeUpForGrabs();

    if(
        // if you think the current system is Shitty...
        you.opinion_on_US_govt == E_FUNDAMENTALLY_FLAWED &#038;&#038;

        // ...and if you *dont* live in a battleground state...
        // (calls a helper function)
        !_BattlegroundStateCalculator(you.state_of_residence) &#038;&#038;

        (
          you.vote[TimeService.getCurYear()][p_office] ==
              PoliticalService.getCandidateForOffice(p_office,'GOP')
          ||
          you.vote[TimeService.getCurYear()][p_office] ==
              PoliticalService.getCandidateForOffice(p_office,'DNC')
        )
    ) {
        you.hypocrite = true;
        you.sentient = false;

        // set all possible forms of respect as false.
        for( int i=0; i&lt;MAX_RESPECT; i++ )
            you.grue_respect[i] = false;
    }
    else // only do this if they were not deemed Horrible.
    {

        // Now see if the person was offended by the process we just judged
        // them against...
        you.ProcessReaction();

        // if somehow you're offended during this evaluation for any
        // reason, mainly for not understanding the hierarchy of judgement,
        // then you're dumbstuffs for being offended, but I cannot judge
        // you otherwise.
        if( you.offended_flag )
        {
            you.grue_respect[i] = REPECT_INTELLECTUALLY;
        }
    }
} //Grue::CalculateRespect()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/ephemera/the-fish-as-they-say-rots-from-the-head/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
