<?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>蓝色数据 &#187; 程序设计</title>
	<atom:link href="http://bluedata.org/category/program/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluedata.org</link>
	<description>奋斗是幸福的……</description>
	<lastBuildDate>Mon, 14 Sep 2009 01:53:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>配置 Nginx 支持 CGI</title>
		<link>http://bluedata.org/2009/08/21/nginx-cgi/</link>
		<comments>http://bluedata.org/2009/08/21/nginx-cgi/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:19:17 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[应用技术]]></category>
		<category><![CDATA[程序设计]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://bluedata.org/?p=258</guid>
		<description><![CDATA[安装所需的 perl fcgi 模块：
apt-get install libfcgi-perl libfcgi-procmanager-perl
用 perl 写一个 daemon 程序来处理 cgi 文件：
vi /usr/local/bin/cgiwrap-fcgi.pl
#!/usr/bin/perl -w
use FCGI;
use Socket;
use FCGI::ProcManager;
sub shutdown { FCGI::CloseSocket($socket); exit; }
sub restart  { FCGI::CloseSocket($socket); &main; }
use sigtrap 'handler', \&#038;shutdown, 'normal-signals';
use sigtrap 'handler', \&#038;restart,  'HUP';
require 'syscall.ph';
use POSIX qw(setsid);
#&daemonize; we don't daemonize when running under runsv
#this keeps the program alive or something after [...]]]></description>
			<content:encoded><![CDATA[<p>安装所需的 perl fcgi 模块：<br />
apt-get install libfcgi-perl libfcgi-procmanager-perl</p>
<p>用 perl 写一个 daemon 程序来处理 cgi 文件：</p>
<p>vi /usr/local/bin/cgiwrap-fcgi.pl<br />
<coolcode linenum="off" lang="perl">#!/usr/bin/perl -w<br />
use FCGI;<br />
use Socket;<br />
use FCGI::ProcManager;<br />
sub shutdown { FCGI::CloseSocket($socket); exit; }<br />
sub restart  { FCGI::CloseSocket($socket); &main; }<br />
use sigtrap 'handler', \&#038;shutdown, 'normal-signals';<br />
use sigtrap 'handler', \&#038;restart,  'HUP';<br />
require 'syscall.ph';<br />
use POSIX qw(setsid);</p>
<p>#&daemonize; we don't daemonize when running under runsv<br />
#this keeps the program alive or something after exec'ing perl scripts<br />
END()   { }<br />
BEGIN() { }<br />
{<br />
    no warnings;<br />
    *CORE::GLOBAL::exit = sub { die "fakeexit\nrc=" . shift() . "\n"; };<br />
};<br />
eval q{exit};<br />
if ($@) {<br />
    exit unless $@ =~ /^fakeexit/;<br />
}<br />
&main;</p>
<p>sub daemonize() {<br />
    chdir '/' or die "Can't chdir to /: $!";<br />
    defined( my $pid = fork ) or die "Can't fork: $!";<br />
    exit if $pid;<br />
    setsid() or die "Can't start a new session: $!";<br />
    umask 0;<br />
}</p>
<p>sub main {</p>
<p>#$socket = FCGI::OpenSocket( "127.0.0.1:8999", 10 ); #use IP sockets<br />
#$socket = FCGI::OpenSocket( "/var/run/nginx/perl_cgi-dispatch.sock", 10 ); #use UNIX sockets - user running this script must have w access to the 'nginx' folder!!<br />
#foreach $item (keys %ENV) { delete $ENV{$item}; }<br />
    $proc_manager = FCGI::ProcManager->new( {n_processes => 5} );<br />
    $socket = FCGI::OpenSocket( "127.0.0.1:8999", 10 )<br />
        ; #use UNIX sockets - user running this script must have w access to the 'nginx' folder!!<br />
    $request =<br />
        FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%req_params, $socket,<br />
        &#038;FCGI::FAIL_ACCEPT_ON_INTR );<br />
    $proc_manager->pm_manage();<br />
    if ($request) { request_loop() }<br />
    FCGI::CloseSocket($socket);<br />
}</p>
<p>sub request_loop {<br />
    while ( $request->Accept() >= 0 ) {<br />
        $proc_manager->pm_pre_dispatch();</p>
<p>        #processing any STDIN input from WebServer (for CGI-POST actions)<br />
        $stdin_passthrough = '';<br />
        { no warnings; $req_len = 0 + $req_params{'CONTENT_LENGTH'}; };<br />
        if ( ( $req_params{'REQUEST_METHOD'} eq 'POST' ) &#038;& ( $req_len != 0 ) )<br />
        {<br />
            my $bytes_read = 0;<br />
            while ( $bytes_read < $req_len ) {<br />
                my $data = '';<br />
                my $bytes = read( STDIN, $data, ( $req_len - $bytes_read ) );<br />
                last if ( $bytes == 0 || !defined($bytes) );<br />
                $stdin_passthrough .= $data;<br />
                $bytes_read += $bytes;<br />
            }<br />
        }</p>
<p>        #running the cgi app<br />
        if (<br />
            ( -x $req_params{SCRIPT_FILENAME} ) &#038;&    #can I execute this?<br />
            ( -s $req_params{SCRIPT_FILENAME} ) &#038;&    #Is this file empty?<br />
            ( -r $req_params{SCRIPT_FILENAME} )       #can I read this file?<br />
            )<br />
        {<br />
            pipe( CHILD_RD,   PARENT_WR );<br />
            pipe( PARENT_ERR, CHILD_ERR );<br />
            my $pid = open( CHILD_O, "-|" );<br />
            unless ( defined($pid) ) {<br />
                print("Content-type: text/plain\r\n\r\n");<br />
                print<br />
"Error: CGI app returned no output - Executing $req_params{SCRIPT_FILENAME} failed !\n";<br />
                next;<br />
            }<br />
            $oldfh = select(PARENT_ERR);<br />
            $|     = 1;<br />
            select(CHILD_O);<br />
            $| = 1;<br />
            select($oldfh);<br />
            if ( $pid > 0 ) {<br />
                close(CHILD_RD);<br />
                close(CHILD_ERR);<br />
                print PARENT_WR $stdin_passthrough;<br />
                close(PARENT_WR);<br />
                $rin = $rout = $ein = $eout = '';<br />
                vec( $rin, fileno(CHILD_O),    1 ) = 1;<br />
                vec( $rin, fileno(PARENT_ERR), 1 ) = 1;<br />
                $ein    = $rin;<br />
                $nfound = 0;</p>
<p>                while ( $nfound =<br />
                    select( $rout = $rin, undef, $ein = $eout, 10 ) )<br />
                {<br />
                    die "$!" unless $nfound != -1;<br />
                    $r1 = vec( $rout, fileno(PARENT_ERR), 1 ) == 1;<br />
                    $r2 = vec( $rout, fileno(CHILD_O),    1 ) == 1;<br />
                    $e1 = vec( $eout, fileno(PARENT_ERR), 1 ) == 1;<br />
                    $e2 = vec( $eout, fileno(CHILD_O),    1 ) == 1;</p>
<p>                    if ($r1) {<br />
                        while ( $bytes = read( PARENT_ERR, $errbytes, 4096 ) ) {<br />
                            print STDERR $errbytes;<br />
                        }<br />
                        if ($!) {<br />
                            $err = $!;<br />
                            die $!;<br />
                            vec( $rin, fileno(PARENT_ERR), 1 ) = 0<br />
                                unless ( $err == EINTR or $err == EAGAIN );<br />
                        }<br />
                    }<br />
                    if ($r2) {<br />
                        while ( $bytes = read( CHILD_O, $s, 4096 ) ) {<br />
                            print $s;<br />
                        }<br />
                        if ( !defined($bytes) ) {<br />
                            $err = $!;<br />
                            die $!;<br />
                            vec( $rin, fileno(CHILD_O), 1 ) = 0<br />
                                unless ( $err == EINTR or $err == EAGAIN );<br />
                        }<br />
                    }<br />
                    last if ( $e1 || $e2 );<br />
                }<br />
                close CHILD_RD;<br />
                close PARENT_ERR;<br />
                waitpid( $pid, 0 );<br />
            } else {<br />
                foreach $key ( keys %req_params ) {<br />
                    $ENV{$key} = $req_params{$key};<br />
                }</p>
<p>                # cd to the script's local directory<br />
                if ( $req_params{SCRIPT_FILENAME} =~ /^(.*)\/[^\/]+$/ ) {<br />
                    chdir $1;<br />
                }<br />
                close(PARENT_WR);</p>
<p>                #close(PARENT_ERR);<br />
                close(STDIN);<br />
                close(STDERR);</p>
<p>                #fcntl(CHILD_RD, F_DUPFD, 0);<br />
                syscall( &#038;SYS_dup2, fileno(CHILD_RD),  0 );<br />
                syscall( &#038;SYS_dup2, fileno(CHILD_ERR), 2 );</p>
<p>                #open(STDIN, "<&#038;CHILD_RD");<br />
                exec( $req_params{SCRIPT_FILENAME} );<br />
                die("exec failed");<br />
            }<br />
        } else {<br />
            print("Content-type: text/plain\r\n\r\n");<br />
            print<br />
"Error: No such CGI app - $req_params{SCRIPT_FILENAME} may not exist or is not executable by this process.\n";<br />
        }<br />
    }<br />
}</coolcode></p>
<p>注意文件中的这两行：<br />
#$socket = FCGI::OpenSocket( "127.0.0.1:8999", 10 );<br />
#$socket = FCGI::OpenSocket( "/var/run/nginx/perl_cgi-dispatch.sock", 10 );<br />
这两行都表示监听来自 perl CGI 的请求。<br />
其中 perl_cgi-dispatch.sock 表示使用 unix socket 响应 CGI 请求。<br />
127.0.0.1:8999 表示使用 TCP/IP 协议响应请求。<br />
需要使用哪种方式就在下面的 FCGI::OpenSocket 中填入相对应的内容。</p>
<p>启动：<br />
chmod +x /usr/local/bin/cgiwrap-fcgi.pl<br />
/usr/local/bin/cgiwrap-fcgi.pl > /dev/null 2>&#038;1 &#038;</p>
<p>配置 Nginx 的 location 处理 cgi 文件：<br />
<coolcode linenum="off">location ~ .*\.cgi$ {<br />
    fastcgi_pass  127.0.0.1:8999;<br />
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;<br />
    include  fastcgi_params;<br />
}</coolcode></p>
<p>测试：<br />
在 web 的根目录下创建一个 cgi 文件：<br />
vi test.cgi<br />
#!/usr/bin/perl<br />
print "Content-type: text/html\n\n";<br />
print "<html><body>Hello, world.</body></html>";</p>
<p>文件需要有可执行权限：<br />
chmod +x test.cgi</p>
<p>访问 http://www.domain.com/test.cgi 看看有没有输出。</p>
<p>cgiwrap-fcgi.pl 随 nginx 一起启动/关闭：<br />
修改 nginx 启动脚本：<br />
在 start 段加入：<br />
/usr/local/bin/cgiwrap-fcgi.pl > /dev/null 2>&#038;1 &#038;</p>
<p>在 stop 段加入：<br />
<coolcode linenum="off">PID=`/bin/netstat -npl | grep "127.0.0.1:8999" | awk '{print $7}' | cut -d "/" -f 1`<br />
while [ -n "$PID" ]<br />
do<br />
kill -9 "$PID"<br />
PID=`/bin/netstat -npl | grep "127.0.0.1:8999" | awk '{print $7}' | cut -d "/" -f 1`<br />
done</coolcode></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/08/21/nginx-cgi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 编辑器快速添加 CoolCode 按钮</title>
		<link>http://bluedata.org/2009/08/11/wordpress-editor-coolcode-button/</link>
		<comments>http://bluedata.org/2009/08/11/wordpress-editor-coolcode-button/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 01:25:07 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[应用技术]]></category>
		<category><![CDATA[程序设计]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bluedata.org/?p=192</guid>
		<description><![CDATA[打开 wp-includes/js/quicktags.dev.js ，找到
edButtons[edButtons.length] =
new edButton('ed_code'
,'code'
,''
,''
,'c'
);
在下面添加：
edButtons[edButtons.length] =
new edButton('ed_coolcode'
,'coolcode'
,''
,''
,'x'
); 
再找到
t.Buttons[t.Buttons.length] = new edButton(name+'_code','code','','','c');
在下面添加一行：
t.Buttons[t.Buttons.length] = new edButton(name+'_coolcode','coolcode','','','x');
然后对 quicktags.js 做同样的修改。
CoolCode 的介绍： http://www.coolcode.cn/?action=show&#038;id=26
]]></description>
			<content:encoded><![CDATA[<p>打开 wp-includes/js/quicktags.dev.js ，找到<br />
<coolcode lang="javascript">edButtons[edButtons.length] =<br />
new edButton('ed_code'<br />
,'code'<br />
,'<code>'<br />
,'</code>'<br />
,'c'<br />
);</coolcode></p>
<p>在下面添加：<br />
<coolcode lang="javascript">edButtons[edButtons.length] =<br />
new edButton('ed_coolcode'<br />
,'coolcode'<br />
,'<coolcode linenum=\"off\">'<br />
,'</coolcode>'<br />
,'x'<br />
); </coolcode></p>
<p>再找到<br />
<coolcode lang="javascript" linenum="off">t.Buttons[t.Buttons.length] = new edButton(name+'_code','code','<code>','</code>','c');</coolcode></p>
<p>在下面添加一行：<br />
<coolcode lang="javascript" linenum="off">t.Buttons[t.Buttons.length] = new edButton(name+'_coolcode','coolcode','<coolcode linenum=\"off\">','</coolcode>','x');</coolcode></p>
<p>然后对 quicktags.js 做同样的修改。</p>
<p>CoolCode 的介绍： <a href="http://www.coolcode.cn/?action=show&#038;id=26" target="_blank">http://www.coolcode.cn/?action=show&#038;id=26</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/08/11/wordpress-editor-coolcode-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 自定义侧边栏部件</title>
		<link>http://bluedata.org/2008/02/29/wordpress-custom-sidebar-widget/</link>
		<comments>http://bluedata.org/2008/02/29/wordpress-custom-sidebar-widget/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 09:12:28 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/wordpress-custom-sidebar-widget/</guid>
		<description><![CDATA[想在博客的侧边栏显示随机文章，使用了“中文 WordPress 工具箱”插件，功能介绍里说是可以显示随机文章的，但是这个插件比较老了，不支持 widget，便想到了改造一下这个插件。查了一下部件的语法。其语法如下：




My Widget



register_sidebar_widget 注册函数之后，输出部件标题 "My Widget" 及內容 "My Widget"。
又从 WordPress Widgets 文档中知道：不能在插件导入之后执行任何代码，要使用 plugins_loaded 这个 hook，所以 add_action 的对象即是 plugins_loaded。
最后，在插件程序文件 mulberrykit.php 后增加了如下代码：

function widget_random_posts_init() {
  if ( !function_exists('register_sidebar_widget') &#124;&#124; !function_exists('register_widget_control') )
    return;
  function random_posts_sidebar_module($args) {
    extract($args);
    echo $before_widget . $before_title . $title . $after_title;
  [...]]]></description>
			<content:encoded><![CDATA[<p>想在博客的侧边栏显示随机文章，使用了“中文 WordPress 工具箱”插件，功能介绍里说是可以显示随机文章的，但是这个插件比较老了，不支持 widget，便想到了改造一下这个插件。查了一下部件的语法。其语法如下：</p>
<p><coolcode lang="php"><br />
<?php<br />
function widget_mywidget($args) {<br />
extract($args);<br />
?><br />
<?php echo $before_widget; ?><br />
<?php echo $before_title . 'My Widget' . $after_title; ?><br />
My Widget<br />
<?php echo $after_widget; ?><br />
<?php<br />
}<br />
register_sidebar_widget('My Widget', 'widget_mywidget');<br />
?><br />
</coolcode></p>
<p>register_sidebar_widget 注册函数之后，输出部件标题 "My Widget" 及內容 "My Widget"。<br />
又从 WordPress Widgets 文档中知道：不能在插件导入之后执行任何代码，要使用 plugins_loaded 这个 hook，所以 add_action 的对象即是 plugins_loaded。</p>
<p>最后，在插件程序文件 mulberrykit.php 后增加了如下代码：</p>
<p><coolcode lang="php"><br />
function widget_random_posts_init() {</p>
<p>  if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )<br />
    return;</p>
<p>  function random_posts_sidebar_module($args) {<br />
    extract($args);</p>
<p>    echo $before_widget . $before_title . $title . $after_title;<br />
    echo "<br />
<h2>随机文章</h2>
<ul>";<br />
      random_posts();<br />
    echo "</ul>
<p>";<br />
    echo $after_widget;<br />
  }</p>
<p>  register_sidebar_widget('Random Posts module', 'random_posts_sidebar_module');<br />
}</p>
<p>add_action('plugins_loaded', 'widget_random_posts_init');<br />
</coolcode></p>
<p>在管理后台的 外观 -> Widgets 中就可以找到 Random Posts module 这个部件了。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/02/29/wordpress-custom-sidebar-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExtMail 列表邮件名乱码</title>
		<link>http://bluedata.org/2007/10/11/extmail-subject-encode/</link>
		<comments>http://bluedata.org/2007/10/11/extmail-subject-encode/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 02:24:31 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[extmail]]></category>
		<category><![CDATA[乱码]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/extmail-subject/</guid>
		<description><![CDATA[用 php 程序通过 smtp 发邮件，发现使用 ExtMail 列表中文邮件时邮件名是乱码，而且邮件被 Amavisd-new 打上了垃圾邮件的标签，且在邮件头中有以下提示：
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data
而在其它邮件系统中显示是正常的，在 Foxmail 中也是正常的。
对比接收到的正常邮件，发现邮件名是 base64 编码了的，于是在发送邮件时进行编码：
$subject = "=?GB2312?B?".base64_encode($subject)."?=";
这时候邮件不被标记为垃圾邮件了，但是邮件名列表时还是乱码。仔细对比后发现，是程序中 Subject: 后少了个空格。
看来，程序书写不够仔细；ExtMail 提取非规范书写的 Subject 内容时有点问题。
]]></description>
			<content:encoded><![CDATA[<p>用 php 程序通过 smtp 发邮件，发现使用 ExtMail 列表中文邮件时邮件名是乱码，而且邮件被 Amavisd-new 打上了垃圾邮件的标签，且在邮件头中有以下提示：<br />
<font color="#ff0000">X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data</font><br />
而在其它邮件系统中显示是正常的，在 Foxmail 中也是正常的。<br />
对比接收到的正常邮件，发现邮件名是 base64 编码了的，于是在发送邮件时进行编码：<br />
$subject = "=?GB2312?B?".base64_encode($subject)."?=";<br />
这时候邮件不被标记为垃圾邮件了，但是邮件名列表时还是乱码。仔细对比后发现，是程序中 Subject: 后少了个空格。<br />
看来，程序书写不够仔细；ExtMail 提取非规范书写的 Subject 内容时有点问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2007/10/11/extmail-subject-encode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 连接 MSSQL</title>
		<link>http://bluedata.org/2006/06/02/php-connect-mssql/</link>
		<comments>http://bluedata.org/2006/06/02/php-connect-mssql/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 08:48:46 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[freetds]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/php-mssql/</guid>
		<description><![CDATA[1. Windows 下
把 php.ini 放到 C:\WINNT 下，
设置 extension_dir ，如：
extension_dir = "C:\php-4.3.11\extensions"
取消 mssql.dll 的注释：
extension=php_mssql.dll
 
Web Server 和 MS SQL SERVER 在同一部机器：
mssql_connect("HOST\INSTANCE","USER","PWD");
 
远程连接需要先在 Web Server 安装 MS SQL SERVER 客户端工具，然后才能连接：
mssql_connect("SERVER","USER","PWD");
 
2. UNIX/Linux 下
先安装 freetds-0.63
./configure --prefix=/usr/local/freetds
make
make install
 
安装 PHP 的时候：
--with-mssql=/usr/local/freetds
 
连接时需要加上端口号：
mssql_connect("IP:1433","USER","PWD");
]]></description>
			<content:encoded><![CDATA[<p>1. Windows 下<br />
把 php.ini 放到 C:\WINNT 下，<br />
设置 extension_dir ，如：<br />
extension_dir = "C:\php-4.3.11\extensions"<br />
取消 mssql.dll 的注释：<br />
extension=php_mssql.dll<br />
 <br />
Web Server 和 MS SQL SERVER 在同一部机器：<br />
mssql_connect("HOST\INSTANCE","USER","PWD");<br />
 <br />
远程连接需要先在 Web Server 安装 MS SQL SERVER 客户端工具，然后才能连接：<br />
mssql_connect("SERVER","USER","PWD");<br />
 <br />
2. UNIX/Linux 下<br />
先安装 freetds-0.63<br />
./configure --prefix=/usr/local/freetds<br />
make<br />
make install<br />
 <br />
安装 PHP 的时候：<br />
--with-mssql=/usr/local/freetds<br />
 <br />
连接时需要加上端口号：<br />
mssql_connect("IP:1433","USER","PWD");</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2006/06/02/php-connect-mssql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
