<?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>Softcore software development &#187; editor</title>
	<atom:link href="http://tea.cesaroliveira.net/archives/tag/editor/feed" rel="self" type="application/rss+xml" />
	<link>http://tea.cesaroliveira.net</link>
	<description>It&#039;s all about the cycles</description>
	<lastBuildDate>Tue, 24 Jan 2012 04:31:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Successfully Getting your Addon Reviewed</title>
		<link>http://tea.cesaroliveira.net/archives/52</link>
		<comments>http://tea.cesaroliveira.net/archives/52#comments</comments>
		<pubDate>Tue, 13 Jan 2009 11:49:02 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[hugs]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=51</guid>
		<description><![CDATA[As the addon review queue grows beyond 600 nominated and updated addons, it is more important than ever to make sure your extension passes review the first time around. Editors have a review guide, and a well hidden but publicly viewable set of policies. But here is a quick list of the most cited reasons [...]]]></description>
			<content:encoded><![CDATA[<p>As the addon review queue grows beyond 600 nominated and updated addons, it is more important than ever to make sure your extension passes review the first time around. Editors have a <a href="https://wiki.mozilla.org/Update:Editors/ReviewingGuide" onclick="pageTracker._trackPageview('/outgoing/wiki.mozilla.org/Update_Editors/ReviewingGuide?referer=');">review</a> guide, and a well hidden but publicly <a href="https://addons.mozilla.org/en-US/firefox/pages/policy" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/en-US/firefox/pages/policy?referer=');">viewable set of policies</a>. But here is a quick list of the most cited reasons for addon refusal :</p>
<ol>
<li>Addon should have at least 3 user reviews before being nominated. External reviews count too, but you have to mention them in your nomination message. Softpedia reviews do not count.</li>
<li>Wrap your <a href="http://blogger.ziesemer.com/2007/10/respecting-javascript-global-namespace.html" onclick="pageTracker._trackPageview('/outgoing/blogger.ziesemer.com/2007/10/respecting-javascript-global-namespace.html?referer=');">loose variables</a>. All objects, variables, and anything that your addon makes global should be wrapped to avoid conflicts with other addons.</li>
<li>Look at the error console. Is your extension throwing up javascript errors? Fix it. There are some <a href="https://developer.mozilla.org/en/Setting_up_extension_development_environment" onclick="pageTracker._trackPageview('/outgoing/developer.mozilla.org/en/Setting_up_extension_development_environment?referer=');">options</a> you can set in about:config to help you with this.</li>
<li>You break functionality in the host application (Firefox, Thunderbird, etc.).</li>
<li>Your extension doesn&#8217;t work properly, or showing unexpected results. This is what user reviews are expected to catch, but you really should get someone who wasn&#8217;t involved to test and report bugs.</li>
</ol>
<p>There are other less common things that can get you busted too. I&#8217;ll just list them here for completeness sake :</p>
<ol start="5">
<li>Including remote javascript/css or other files, anywhere. Include them in your xpi file instead.</li>
<li>CSS warnings on the error console if your submitting a theme.</li>
</ol>
<p>If you have any doubts, check the public policies page linked above.</p>
<p>And don&#8217;t ask when your extension will be reviewed in the comments. Because every answer will be the same : When someone gets around to it. It could be sooner if you&#8217;d help!</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/52/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>addParser.py</title>
		<link>http://tea.cesaroliveira.net/archives/44</link>
		<comments>http://tea.cesaroliveira.net/archives/44#comments</comments>
		<pubDate>Mon, 17 Nov 2008 08:34:56 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=44</guid>
		<description><![CDATA[Synopsis : python addonParser.py extension.xpi Description : A simple python script that lexically analysis Firefox extensions, trying to find any problems. Outputs any problems to the terminal. Requires : Python Image Library Notes : Writes any .jar files into the $PWD/temp/ directory. Breakdown of output : examing chrome/ (13) examing chrome/content/ (13) examing chrome/content/botOFF.png (13) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Synopsis</strong> :<br />
python addonParser.py extension.xpi</p>
<p><strong>Description</strong> :<br />
A simple python script that lexically analysis Firefox extensions, trying to find any problems. Outputs any problems to the terminal.</p>
<p><strong>Requires</strong> :<br />
<a href="http://www.pythonware.com/products/pil/" onclick="pageTracker._trackPageview('/outgoing/www.pythonware.com/products/pil/?referer=');">Python Image Library</a></p>
<p><strong>Notes</strong> :<br />
Writes any .jar files into the $PWD/temp/ directory.</p>
<p><strong>Breakdown of output</strong> :<br />
<code>examing chrome/ (13)<br />
examing chrome/content/ (13)<br />
examing chrome/content/botOFF.png (13)<br />
examing chrome/content/botON.png (13)<br />
examing chrome/content/dowint.css (13)<br />
examing chrome/content/dowint.js (13)<br />
examing chrome/content/dowint.xul (13)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WARNING: http://dowint.net/inc/js.php does not start with chrome:// and not a local file for file chrome/content/dowint.xul (5)<br />
examing chrome/content/logo.gif (13)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WARNING: Image chrome/content/logo.gif does not match it's extension. Expected GIF, got PNG (2)<br />
examing chrome.manifest (13)<br />
examing install.rdf (13)</code></p>
<p>Numbers in parentheses at the end of line are just for debugging use only.<br />
Text in square parentheses is often the source of the problem (used when evaluating javascript files)</p>
<p><strong>Types</strong> :<br />
<em>Warning</em> – something is wrong or possibly needs some examining<br />
<em>Error</em> – I don&#8217;t know how to evaluate this (eg. files that I wasn&#8217;t expecting, or files that I don&#8217;t know how to properly evaluate)</p>
<p><strong>Quirks</strong> (some people call this bugs) :</p>
<ol>
<li>Sometimes it gives you information, but not enough context:<br />
WARNING: found XMLHttpRequest [var req = new XMLHttpRequest();] in file content/hrtoolbar.js (9)</li>
<li>Sometimes the output is extremely long because the js file was minified:<br />
WARNING: found XMLHttpRequest [var CC=Components.classes;var CI=Components.interfaces;var ... ]</li>
<li>False positives can be quite common :<br />
WARNING: found reference to outside source [@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");] in file skin/webwean.css. (8)<br />
(This is common false positive in CSS files. Though it has found a problem once)</li>
</ol>
<p><strong>Undecided Issues</strong> :</p>
<ul>
<li>What to do about .dtd and .properties (should anything be done for these files?)</li>
<li>Should XHR throw up a warning? It&#8217;s fairly common, and we&#8217;re really just worried about eval.</li>
</ul>
<p><strong>Checks and Errors</strong> :</p>
<table>
<tr>
<th>Error</th>
<th>Problem</th>
</tr>
<tr>
<td>1</td>
<td>Image file is not an image file</td>
</tr>
<tr>
<td>2</td>
<td>Image file extension does not match its type</td>
</tr>
<tr>
<td>3</td>
<td>XUL file is invalid XML</td>
</tr>
<tr>
<td>4</td>
<td>Inline JS</td>
</tr>
<tr>
<td>5</td>
<td>The src for a script tag was not a chrome:// url nor a local file</td>
</tr>
<tr>
<td>6</td>
<td>Invalid keyboard shortcuts (Macs require alt + another modifier)</td>
</tr>
<tr>
<td>7</td>
<td>iframe content type is not content</td>
</tr>
<tr>
<td>8</td>
<td>CSS file has an outside reference</td>
</tr>
<tr>
<td>9</td>
<td><acronym title="XMLHttpRequest">XHR</acronym> found</td>
</tr>
<tr>
<td>10</td>
<td>Javascript eval keyword found :p</td>
</tr>
<tr>
<td>11</td>
<td>Javascript <a href="https://developer.mozilla.org/En/MozIJSSubScriptLoader" onclick="pageTracker._trackPageview('/outgoing/developer.mozilla.org/En/MozIJSSubScriptLoader?referer=');">loadSubscript</a> found</td>
</tr>
<tr>
<td>12</td>
<td>Javascript new Function()</td>
</tr>
<tr>
<td>13</td>
<td>Log message</td>
</tr>
<tr>
<td>14</td>
<td><acronym title="Revision Control System">RCS</acronym> directory found. Could be sensitive to the author.</td>
</tr>
<tr>
<td>15</td>
<td>A binary component has been found</td>
</tr>
</table>
<p><strong>File</strong> :<br />
Currently available <a href="/files/2008-11-16/addonParser.py">here</a>. Will upload repository later.</p>
<p>Please be advised that this tool is extremely stupid, and not a substitute for careful reviews <img src='http://tea.cesaroliveira.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/44/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Editor tool finally landed on AMO</title>
		<link>http://tea.cesaroliveira.net/archives/41</link>
		<comments>http://tea.cesaroliveira.net/archives/41#comments</comments>
		<pubDate>Fri, 10 Oct 2008 02:56:55 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[seneca]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=41</guid>
		<description><![CDATA[I made a post several months ago about an diffing zippy files on the web. While that stuff landed, it was difficult to use because I deferred actually showing what files changed to a later date. oops Well, that made it nearly useless, because it was less effort to download each xpi file and do [...]]]></description>
			<content:encoded><![CDATA[<p>I made a post several months ago about an <a href="http://www.cesaroliveira.net/tea/archives/26" onclick="pageTracker._trackPageview('/outgoing/www.cesaroliveira.net/tea/archives/26?referer=');">diffing zippy files</a> on the web. While that stuff landed, it was difficult to use because I deferred actually <em>showing what files changed</em> to a later date. <a href="http://failblog.org/" onclick="pageTracker._trackPageview('/outgoing/failblog.org/?referer=');">oops</a></p>
<p>Well, that made it nearly useless, because it was less effort to download each xpi file and do a diff locally.</p>
<p>Well, I&#8217;m glad to say that I&#8217;ve right a worlds wrong. Some stuff I was working on finally landed recently (can&#8217;t remember when. But it wasn&#8217;t working two days ago. So somewhere between Monday and today). So you may notice a few changes.</p>
<p>The first being the side panel that shows all the files. Any files that were modified appear italicized. Which is a bit subtle, but is the only indication I could give that wouldn&#8217;t make it stick out like a bad rash, or a <a href="http://www.autocarparts.com/images/products/Honda/honda_element.jpg" onclick="pageTracker._trackPageview('/outgoing/www.autocarparts.com/images/products/Honda/honda_element.jpg?referer=');">honda element</a>. Suggestions welcome.</p>
<div style="text-align:center;"><img src="/files/2008-10-09/side-panel2.jpg" alt="side panel" /><br />Side Panel</div>
<p>So this pretty much completes what was started. Only some minor improvements were made since the last post. Including a wikipedia colour style diff :</p>
<div style="text-align:center;"><img src="/files/2008-10-09/fullscreen.jpg" alt="full screen image of the xpi diff"/><br />Full screen view</div>
<p>I hope that this will be useful to AMO editors and help speed up the reviews. Which is in much better shape than they were two months ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/41/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Not even bytecode can save me now&#8230;</title>
		<link>http://tea.cesaroliveira.net/archives/35</link>
		<comments>http://tea.cesaroliveira.net/archives/35#comments</comments>
		<pubDate>Tue, 16 Sep 2008 07:57:18 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[seneca]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=35</guid>
		<description><![CDATA[I&#8217;ve been spending a few days on trying to develop a few tools for editors to use to quickly reject addons for obvious defects, such as loading remote scripts. But I wanted to get deeper into the javascript stuff mainly because it&#8217;s a) it&#8217;s harder and b) it&#8217;s where the real problems lie. But as [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending a few days on trying to develop a few tools for editors to use to quickly reject addons for obvious defects, such as loading remote scripts. But I wanted to get deeper into the javascript stuff mainly because it&#8217;s a) it&#8217;s harder and b) it&#8217;s where the real problems lie.</p>
<p>But as anyone can tell you, it&#8217;s not an easy task (going towards damn near impossible). Firstly, you can&#8217;t really use a lexical parser. Well, you can, but it won&#8217;t be dependable. Let&#8217;s take an example out of the Reviewer&#8217;s guide :</p>
<p><code>document["crea" + "teElement"]("s" + "c" + "r" + ["i", "p", "t"].join(""));</code></p>
<p>Which is sneaky way of creating a script element, though I question the competence of someone who will use this as their main line of attack (it&#8217;s practically spelled out for you). But taking this as a use case, and ignoring the fact that they can use document[cheese] instead, I wondering if parsing the javascript would make figuring this stuff out any better.</p>
<p>Happily, I have spidermonkey and a <a href="http://developer.mozilla.org/en/Introduction_to_the_JavaScript_shell" onclick="pageTracker._trackPageview('/outgoing/developer.mozilla.org/en/Introduction_to_the_JavaScript_shell?referer=');">js shell</a> to do any parsing I wish. But I found out some cool things that you can do in the shell, such as looking at the bytecode for an entire function using the dis() command.</p>
<p>This was interesting. Certainly, there are some optimizations you can do for :<br />
<code>document["crea" + "teElement"]("s" + "c" + "r" + ["i", "p", "t"].join("")); </code><br />
I would be shocked if it didn&#8217;t end up spelling out :<br />
<code>document["createElement"]("script"); </code></p>
<p>I had a few hurdles to overcome. Firstly, document is not defined in the javascript shell. Thinking it was defined in the xpcshell (owww. I was misled by some apparently <a href="http://mxr.mozilla.org/mozilla-central/search?find=%2Fjs%2Fsrc%2Fxpconnect%2Ftests%2F&amp;string=document" onclick="pageTracker._trackPageview('/outgoing/mxr.mozilla.org/mozilla-central/search?find=_2Fjs_2Fsrc_2Fxpconnect_2Ftests_2F_amp_string=document&amp;referer=');">unused tests</a> and my general ignorance that xpcshell tests went into unit/ and not js/ directory) I went through the added trouble of coping dis() and related functions from <a href="http://mxr.mozilla.org/mozilla-central/source/js/src/js.cpp#1373" onclick="pageTracker._trackPageview('/outgoing/mxr.mozilla.org/mozilla-central/source/js/src/js.cpp_1373?referer=');">js.cpp</a> to xpcshell.cpp. Once I realized that document wasn&#8217;t defined, I made a document mock object just to see what the blasted bytecode would look like.</p>
<p>I was a little disappointed. This source:<br />
<!--start_raw--><code>
<pre>var document = {
createElement : function(s) {
print("damn");
}
};

function foo() {
document["crea" + "teElement"]("s" + "c" + "r" + ["i", "p", "t"].join(""));
}

dis(foo);</pre>
<p></code><!--end_raw--></p>
<p>Ended up being this bytecode :<br />
<!--start_raw--><br />
<code style="font-size:smaller;">
<pre>
00000:  name "document"
00003:  string "createElement"
00006:  callelem
00007:  string "s"
00010:  string "c"
00013:  add
00014:  string "r"
00017:  add
00018:  newinit 3
00020:  zero
00021:  string "i"
00024:  initelem
00025:  one
00026:  string "p"
00029:  initelem
00030:  int8 2
00032:  string "t"
00035:  initelem
00036:  endinit
00037:  callprop "join"
00040:  string ""
00043:  call 1
00046:  add
00047:  call 1
00050:  pop
00051:  stop

Source notes:
  0:     0 [   0] newline
  1:     6 [   6] pcbase   offset 6
  3:    37 [  31] xdelta
  4:    37 [   0] pcbase   offset 19
  6:    43 [   6] pcbase   offset 25
  8:    47 [   4] pcbase   offset 47</pre>
<p></code><!--end_raw--></p>
<p>So, almost. The document["createElement"] part was correct, but the .join() wasn&#8217;t optimized. Although I wasn&#8217;t overly estatic, I knew that this was just one (somewhat lame) use case in the countless of possible others.</p>
<p>This is making me rethink whether lexical tools <em>are</em> the way to go. While they don&#8217;t give you any definitive proof that there is a possible security hole, they can still be useful. For example, if you want to use XMLHttpRequest, then you have to call it at least once in your program (even if you say <code>var Widget = XMLHttpRequest</code>). And at least that can bring up warning flags, or at least give editors a place to look.</p>
<p>I don&#8217;t think any tool can completely replace a human being. But hopefully, tools will help make the review process easier because you can start looking at high-risk areas first rather than starting from a arbitrary point and not coming across something until 10 minutes later.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/35/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diffing files on the web</title>
		<link>http://tea.cesaroliveira.net/archives/26</link>
		<comments>http://tea.cesaroliveira.net/archives/26#comments</comments>
		<pubDate>Fri, 27 Jun 2008 22:00:23 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[intern]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=26</guid>
		<description><![CDATA[As an AMO editor, one thing you have to do is code review for security flaws. When doing update reviews, the best way to do this is to download the extension update that is currently in sandbox, and the last public release and unzip the zippy and jar files (unless your lucky and your diff [...]]]></description>
			<content:encoded><![CDATA[<p>As an AMO editor, one thing you have to do is code review for security flaws. When doing update reviews, the best way to do this is to download the extension update that is currently in sandbox, and the last public release and unzip the zippy and jar files (unless your lucky and your diff program does this for you), than compare the results using a tool such as <a href="http://kdiff3.sourceforge.net/" onclick="pageTracker._trackPageview('/outgoing/kdiff3.sourceforge.net/?referer=');">kDiff3</a>, <a href="http://meld.sourceforge.net/" onclick="pageTracker._trackPageview('/outgoing/meld.sourceforge.net/?referer=');">meld</a>, or <a href="http://winmerge.org/" onclick="pageTracker._trackPageview('/outgoing/winmerge.org/?referer=');">WinMerge</a>.</p>
<p>I&#8217;m trying to change that by starting a project that will let you compare two files online. I&#8217;ve done some work and think it&#8217;s a good time to get my idea out to those who will use it.</p>
<p>Here is a screenshot of the output. You can test a sample output at <a href="/files/2008-06-27/index.php">this page</a> :<br />
<a href="/images/misc/2008-06-27/webdiff.png"><img src="/images/misc/2008-06-27/webdiff-thumb.png"/></a></p>
<p>One of the first thing you might notice is that this isn&#8217;t a side-by-side diff. The reason for that is that editors typically aren&#8217;t worried about what was taken out, but what was put in (while what was taken out might be more useful for extension developers). There is also the code that hasn&#8217;t changed, which is useful for referencing functions if it is ever needed.</p>
<p>It&#8217;s a simple php file.  I hope to have some feedback whether people will use this tool or not (and saying &#8220;I use x because I know it best&#8221; is totally fine too. I&#8217;m trying to focus my energy on what will be used).</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/26/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Vacations are stressful</title>
		<link>http://tea.cesaroliveira.net/archives/4</link>
		<comments>http://tea.cesaroliveira.net/archives/4#comments</comments>
		<pubDate>Fri, 25 Apr 2008 04:33:37 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[prism]]></category>
		<category><![CDATA[seneca]]></category>

		<guid isPermaLink="false">http://www.cesaroliveira.net/?p=4</guid>
		<description><![CDATA[So I have been on vacation for less than a week and I&#8217;m already disappointed with myself. Firstly, I haven&#8217;t been keeping up with my AMO responsibilities. I really need to do this, but I find myself being distracted every few hours. Secondly, I haven&#8217;t gotten anywhere near as much work done with Prism as [...]]]></description>
			<content:encoded><![CDATA[<p>So I have been on vacation for less than a week and I&#8217;m already disappointed with myself.</p>
<p>Firstly, I haven&#8217;t been keeping up with my <acronym title="addons.mozilla.org">AMO</acronym> responsibilities. I really need to do this, but I find myself being distracted every few hours.</p>
<p>Secondly, I haven&#8217;t gotten anywhere near as much work done with Prism as I wanted. I want to fix three bugs, two of which I already assigned to me :</p>
<ol>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=405891" onclick="pageTracker._trackPageview('/outgoing/bugzilla.mozilla.org/show_bug.cgi?id=405891&amp;referer=');">Adding Preferences as an extension</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=421652" onclick="pageTracker._trackPageview('/outgoing/bugzilla.mozilla.org/show_bug.cgi?id=421652&amp;referer=');">Installing a webapp should automatically fill in the name with the title of the website if not already present</a></li>
<li>Lastly, I want the extension to search for .js files in the .webapp file and load a security warning, as webapp.js files have chrome level privileges</li>
</ol>
<p>And there is more stuff obviously. This website. Shopping for summer clothes. Getting paperwork out of the way. Hanging out with friends.</p>
<p>Damn you Playstation and Wintendo!</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

