<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>小李刀刀博客</title>
	
	<link>http://wukangrui.net</link>
	<description>独立 自由 责任 诚实</description>
	<lastBuildDate>Wed, 08 Jul 2009 04:18:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dvbhack" type="application/rss+xml" /><feedburner:emailServiceId>dvbhack</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>ASP.NET MVC 最佳实践（四）</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/cPSpfwbzrN4/asp-net-mvc-best-practices-part-4.html</link>
		<comments>http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html#comments</comments>
		<pubDate>Tue, 07 Jul 2009 17:34:45 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[所谓技术]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[最佳实践]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html</guid>
		<description><![CDATA[本系列翻译自 Kazi Manzur Rashid 的博客，由于篇幅关系，原文中的一篇文章在本系列中将拆解成多篇发布。本篇包括原文第二部分第18-21节。]]></description>
			<content:encoded><![CDATA[<p><em>本系列翻译自 </em><a href="http://weblogs.asp.net/rashid/default.aspx"><em>Kazi Manzur Rashid</em></a><em> 的博客，由于翻译水平有限，本系列可能存在误解偏差或者翻译不准的地方，建议对比<a href="http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx">原文</a>进行阅读。由于篇幅关系，原文中的一篇文章在本系列中将拆解成多篇发布。本篇包括原文第二部分第18-21节。如果你没有看过之前的第一部分，也许你想先看看 <a href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html">《ASP.NET MVC 最佳实践（一）》</a>、《<a href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html">ASP.NET MVC 最佳实践（二）</a>》和《<a href="http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-1-2.html" rel="prev" target="_blank">ASP.NET MVC 最佳实践（三）</a>》。</em></p>
<p> <span id="more-858"></span>
<p><em></em></p>
<p> <!--more--><br />
<h4>18. HtmlHelper 扩展</h4>
<p>首先，参考一下 <a href="http://blog.wekeroad.com/" rel="external" target="_blank">Rob Conery</a> 的<a href="http://blog.wekeroad.com/blog/asp-net-mvc-avoiding-tag-soup/" rel="external" target="_blank">这篇文章</a>，我完全同意他的观点，你应该为每种情况创建 Helper 方法，此外我还建议你像 <a href="http://www.asp.net/mvc/" rel="tag" target="_blank">ASP.NET MVC</a> 团队那样为可重用的 UI 元素创建 Helper 方法，但是对于在哪里放置我们正在实践的这些方法，我有不同的建议。</p>
<h6>应用程序开发者</h6>
<p>只为你需要在多个视图中重复使用的HtmlHealper创建单独的扩展方法。对于只在一个视图中使用的帮助方法，你可以为整个视图创建一个Helper类，然后创建一个HtmlHelper来返回这个视图Helper类，而把只在这个视图中使用的扩展方法作为类内部的方法。（这部分未按原文翻译，请自行参照原文）例如：</p>
<pre class="code"><span style="color: blue">public class </span><span style="color: #2b91af">DashboardHtmlHelper </span>{
    <span style="color: blue">private readonly </span><span style="color: #2b91af">HtmlHelper </span>_htmlHelper;

    <span style="color: blue">public </span>DashboardHtmlHelper(<span style="color: #2b91af">HtmlHelper </span>htmlHelper) {
        _htmlHelper = htmlHelper;
    }

    <span style="color: blue">public string </span>DoThis() {
        <span style="color: green">//Your Code
    </span>}

    <span style="color: blue">public string </span>DoThat() {
        <span style="color: green">//Your Code
    </span>}
}

<span style="color: blue">public static class </span><span style="color: #2b91af">HtmlHelperExtension </span>{
    <span style="color: blue">public static </span><span style="color: #2b91af">DashboardHtmlHelper </span>Dashboard(<span style="color: blue">this </span><span style="color: #2b91af">HtmlHelper </span>htmlHelper) {
        <span style="color: blue">return new </span><span style="color: #2b91af">DashboardHtmlHelper</span>(htmlHelper);
    }
}</pre>
<p>然后在试图中这样调用：</p>
<pre class="code"><span style="background: #ffee62">&lt;%</span><span style="color: blue">= </span>Html.Dashboard().DoThis() <span style="background: #ffee62">%&gt;</span></pre>
<h6>UI 组件开发人员</h6>
<p>如果你在开发的是可以在多个 <a href="http://www.asp.net/mvc/" rel="tag" target="_blank">ASP.NET MVC</a> 应用程序中重用的 UI 组件系列，你可以像上面那样为你的整个系列组件创建一个单一名字的Helper。假如你开发的是商业组件，那你可以用你的公司名字来为这个单一的Helper命名，然后在这个Helper中添加方法。否则很容易出现方法的命名冲突。</p>
<p>要是你正在学习 <a href="http://mvccontrib.codeplex.com" rel="external" target="_blank">MVCContrib.org</a> 的做法，为 IViewDataContainer 做扩展的话，道理也是一样的。</p>
<h4>19. Html编码</h4>
<p>在从用户端获取信息的任何情况下，总是使用 Html.Encode(“User Input”) 来编码文本节点，用 Html.AttributeEncode(“User Input”) 来编码Html 元素属性。</p>
<h4>20. 不要把Javascript脚本放在你的视图中</h4>
<p>不要把你的javascript脚本和html混杂在一起，创建一个单独的 js 文件，把脚本代码放在里面。有时候你可能需要在你的 javascript 代码中传递视图数据，这种特殊的情况下，也只把初始化代码放在视图中。例如，你正在开发 web 2.0 风格的应用，你需要在这个应用中传递 ajax 方法的url，并且需要在 javascript 脚本中传递一些其它的模型数据，这种情况下，你可以参考下面的方式：</p>
<p>视图：</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">=&quot;sideBar&quot; </span><span style="color: red">class</span><span style="color: blue">=&quot;column&quot;&gt;&lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
        &lt;</span><span style="color: #a31515">script </span><span style="color: red">type</span><span style="color: blue">=&quot;text/javascript&quot;&gt;
            </span>$(document).ready(<span style="color: blue">function</span>(){
                Story.init(<span style="color: #a31515">'&lt;%= Model.UrlFormat %&gt;'</span>, <span style="color: #a31515">'&lt;%= Url.NoIcon() %&gt;'</span>, &lt;%= Model.PageCount %&gt;, &lt;%= Model.StoryPerPage %&gt;, &lt;%= Model.CurrentPage %&gt;, <span style="color: #a31515">'&lt;%= Model.SelectedTab %&gt;'</span>, <span style="color: #a31515">'&lt;%= Model.SelectedOrderBy %&gt;'</span>);
            });
        <span style="color: blue">&lt;/</span><span style="color: #a31515">script</span><span style="color: blue">&gt;
    &lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Content</span><span style="color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Javascript：</p>
<pre class="code"><span style="color: blue">var </span>Story = {
    _urlFormat: <span style="color: #a31515">''</span>,
    _noIconUrl: <span style="color: #a31515">''</span>,
    _pageCount: 0,
    _storyPerPage: 0,
    _currentPage: 0,
    _currentTab: <span style="color: #a31515">''</span>,
    _currentOrderBy: <span style="color: #a31515">''</span>,

    init: <span style="color: blue">function</span>(urlFormat, noIconUrl, pageCount, storyPerPage, currentPage, currentTab, currentOrderBy) {
        Story._urlFormat = urlFormat;
        Story._noIconUrl = noIconUrl;
        Story._pageCount = pageCount;
        Story._storyPerPage = storyPerPage;
        Story._currentPage = currentPage;
        Story._currentTab = currentTab;
        Story._currentOrderBy = currentOrderBy;

        <span style="color: green">//More Codes
    </span>}
}</pre>
<p>这里要为不太熟悉上面的 javascript 的同学解释一下，这是一个在javascript中创建静态类的示例代码。对了，我还差点忘了提一点，永远不要在你的javascript文件中硬编码 ajax 方法的url，虽然 <a href="http://videos.visitmix.com/MIX09/T62F" rel="external" target="_blank">Rob Conery</a> 和 <a href="http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/07/28/asp-net-podcast-show-121-phil-haack-with-an-asp-net-mvc-demo-video.aspx" rel="external" target="_blank">Phil Haack</a> 在他们的教程中是这样干的。这是一个很不好的方式，它破坏了 ASP.NET 路径重写的优雅性。</p>
<h4>21. 使用 jQuery 和 jQuery UI</h4>
<p>使用 jQuery 和 jQuery UI，它是最好的js库，并且可以使用 Google CDN 托管服务来加载这些库（对于国内用户，如果使用 google 托管的库一定要有承担风险的准备，具体原因嘛，看看国内6月24日左右的IT新闻就知道了）。</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">link </span><span style="color: red">type</span><span style="color: blue">=&quot;text/css&quot; </span><span style="color: red">href</span><span style="color: blue">=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/{YOUR Prefered Theme}/jquery-ui.css&quot; </span><span style="color: red">rel</span><span style="color: blue">=&quot;stylesheet&quot;/&gt;
&lt;</span><span style="color: #a31515">script </span><span style="color: red">type</span><span style="color: blue">=&quot;text/javascript&quot; </span><span style="color: red">src</span><span style="color: blue">=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;&gt;&lt;/</span><span style="color: #a31515">script</span><span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">script </span><span style="color: red">type</span><span style="color: blue">=&quot;text/javascript&quot; </span><span style="color: red">src</span><span style="color: blue">=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.js&quot;&gt;&lt;/</span><span style="color: #a31515">script</span><span style="color: blue">&gt;</span></pre>
<p>还有一种更好的方式：</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">link </span><span style="color: red">type</span><span style="color: blue">=&quot;text/css&quot; </span><span style="color: red">href</span><span style="color: blue">=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/{YOUR Prefered Theme}/jquery-ui.css&quot; </span><span style="color: red">rel</span><span style="color: blue">=&quot;stylesheet&quot;/&gt;
&lt;</span><span style="color: #a31515">script </span><span style="color: red">type</span><span style="color: blue">=&quot;text/javascript&quot; </span><span style="color: red">src</span><span style="color: blue">=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/</span><span style="color: #a31515">script</span><span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">script </span><span style="color: red">type</span><span style="color: blue">=&quot;text/javascript&quot;&gt;
    </span>google.load(<span style="color: #a31515">&quot;jquery&quot;</span>, <span style="color: #a31515">&quot;1.3.2&quot;</span>);
    google.load(<span style="color: #a31515">&quot;jqueryui&quot;</span>, <span style="color: #a31515">&quot;1.7.1&quot;</span>);
<span style="color: blue">&lt;/</span><span style="color: #a31515">script</span><span style="color: blue">&gt;</span></pre>
<p>以上就是这一次的全部内容。</p>
<p>最后，我要祝贺 <a href="http://www.asp.net/mvc/" rel="tag" target="_blank">ASP.NET MVC</a> 团队开发了如此杰出的框架，尤其是他们从社区接受反馈的方式。我希望能用这个框架开发出<a href="http://dotnetshoutout.com/" rel="external" target="_blank">更多</a>杀手级的应用（注：杀手级的应用程序，一般指极其优秀的应用程序，这类程序超越了语言本身，比语言更有吸引力而且能增加语言的吸引力）。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-07 -- <a href="http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-3.html" title="ASP.NET MVC 最佳实践（三）">ASP.NET MVC 最佳实践（三）</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/asp-net-mvc-best-practices-part-2.html" title="ASP.NET MVC 最佳实践（二）">ASP.NET MVC 最佳实践（二）</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html" title="ASP.NET MVC 最佳实践（一）">ASP.NET MVC 最佳实践（一）</a></li><li>2009-04-13 -- <a href="http://wukangrui.net/2009/04/13/aspnetmvc-hands-on-labs-develop-application.html" title="[翻译]ASP.NET MVC动手实验1-3：开发ASP.NET MVC应用">[翻译]ASP.NET MVC动手实验1-3：开发ASP.NET MVC应用</a></li><li>2009-04-09 -- <a href="http://wukangrui.net/2009/04/09/aspnetmvc-hands-on-labs-create-application.html" title="[翻译]ASP.NET MVC动手实验1-2：创建ASP.NET MVC应用">[翻译]ASP.NET MVC动手实验1-2：创建ASP.NET MVC应用</a></li><li>2009-04-09 -- <a href="http://wukangrui.net/2009/04/09/aspnetmvc-hands-on-labs-introduction.html" title="[翻译]ASP.NET MVC动手系列1-1：ASP.NET MVC概述">[翻译]ASP.NET MVC动手系列1-1：ASP.NET MVC概述</a></li><li>2009-07-05 -- <a href="http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html" title="PHP 5.3.0 发布">PHP 5.3.0 发布</a></li><li>2009-06-22 -- <a href="http://wukangrui.net/2009/06/22/whatever-hover-pseudo-class-without-javascript.html" title="Whatever:hover &#8211; 无需javascript让IE支持丰富伪类">Whatever:hover &#8211; 无需javascript让IE支持丰富伪类</a></li><li>2009-04-30 -- <a href="http://wukangrui.net/2009/04/30/solution-for-js-intellisense-error.html" title="VS2008 中 JS IntelliSense出错的解决">VS2008 中 JS IntelliSense出错的解决</a></li><li>2008-06-22 -- <a href="http://wukangrui.net/2008/06/22/api-bug-in-powereasy-siteweaver-part2.html" title="动易SW中的一个严重但不影响使用的bug（二）">动易SW中的一个严重但不影响使用的bug（二）</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=cPSpfwbzrN4:f2g-zk2mqxg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=cPSpfwbzrN4:f2g-zk2mqxg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=cPSpfwbzrN4:f2g-zk2mqxg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/cPSpfwbzrN4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html</feedburner:origLink></item>
		<item>
		<title>恭喜我吧，终于被GFW了</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/QqYBWFjF0m0/congratulate-my-blog-was-gfwed.html</link>
		<comments>http://wukangrui.net/2009/07/07/congratulate-my-blog-was-gfwed.html#comments</comments>
		<pubDate>Tue, 07 Jul 2009 10:21:37 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[乱七八糟]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[博客]]></category>
		<category><![CDATA[日记]]></category>
		<category><![CDATA[自由]]></category>

		<guid isPermaLink="false">http://wukangrui.net/?p=850</guid>
		<description><![CDATA[翻墙翻习惯了，自己的网站被GFW了我还不知道呢。今天幸亏eyes only提醒，我才发现我的博客已经被GFW了。我是惊喜交加啊，以前写点什么，老怕话说过了惹来跨省追捕——毕竟我这个博客一点保护性都没有，自己的资料完全是公开的。这下好咯，既然GFW了，网监也就看不到我说啥了。
唯一的遗憾是，用windows live writer写不了博客了，设了代理也不行，哪位大侠有好的办法吗？望指点一下。
[updated 23:19] 之前一直是用自己的Dreamhost 的 SSH 来翻墙，所以只有 Socks 5的代理方式，实际上只要使用了http代理，就可以继续在Windows Live Writer下写日志。OK了，被墙给我带来的麻烦已经全部解决了……嗯，也不是全部，还有国内网友访问的问题……算了，我的网站又不是什么大不了的重要网站，朋友跟我联系还有QQ、Email可以用，万一谁问起我的博客访问不了的问题——那正好，教他/她翻墙！
相关日志2005-11-14 -- 重新做我的blog了2009-07-06 -- 到底谁被&#8220;墙&#8221;了2009-07-03 -- 不管是什么颜色的&#8220;坝&#8221;我们都不怕2009-06-26 -- Hello World!2008-09-19 -- Oblog检测搜索引擎的一个问题2008-06-14 -- 615：新域名正式启用2007-06-15 -- 以前的邮件2006-01-02 -- 陈凯歌晚节不保，烂片《无极》毁人不倦2005-11-24 -- 为我的blog写的Google地图生成器2005-11-18 -- 用ASP为blog程序编写Trackback功能]]></description>
			<content:encoded><![CDATA[<p>翻墙翻习惯了，自己的网站被GFW了我还不知道呢。今天幸亏eyes only提醒，我才发现我的博客已经被GFW了。我是惊喜交加啊，以前写点什么，老怕话说过了惹来跨省追捕——毕竟我这个博客一点保护性都没有，自己的资料完全是公开的。这下好咯，既然GFW了，网监也就看不到我说啥了。<span id="more-850"></span></p>
<p><span style="text-decoration: line-through;">唯一的遗憾是，用windows live writer写不了博客了，设了代理也不行，哪位大侠有好的办法吗？望指点一下。</span></p>
<p>[updated 23:19] 之前一直是用自己的Dreamhost 的 SSH 来翻墙，所以只有 Socks 5的代理方式，实际上只要使用了http代理，就可以继续在Windows Live Writer下写日志。OK了，被墙给我带来的麻烦已经全部解决了……嗯，也不是全部，还有国内网友访问的问题……算了，我的网站又不是什么大不了的重要网站，朋友跟我联系还有QQ、Email可以用，万一谁问起我的博客访问不了的问题——那正好，教他/她翻墙！</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2005-11-14 -- <a href="http://wukangrui.net/2005/11/14/build-my-blog-again.html" title="重新做我的blog了">重新做我的blog了</a></li><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-06-26 -- <a href="http://wukangrui.net/2009/06/26/hello-world.html" title="Hello World!">Hello World!</a></li><li>2008-09-19 -- <a href="http://wukangrui.net/2008/09/19/bug-about-search-engine-of-oblog.html" title="Oblog检测搜索引擎的一个问题">Oblog检测搜索引擎的一个问题</a></li><li>2008-06-14 -- <a href="http://wukangrui.net/2008/06/14/june-15-start-use-new-domain.html" title="615：新域名正式启用">615：新域名正式启用</a></li><li>2007-06-15 -- <a href="http://wukangrui.net/2007/06/15/old-email.html" title="以前的邮件">以前的邮件</a></li><li>2006-01-02 -- <a href="http://wukangrui.net/2006/01/02/comments-to-movie-wuji.html" title="陈凯歌晚节不保，烂片《无极》毁人不倦">陈凯歌晚节不保，烂片《无极》毁人不倦</a></li><li>2005-11-24 -- <a href="http://wukangrui.net/2005/11/24/goole-map-creator-for-my-blog.html" title="为我的blog写的Google地图生成器">为我的blog写的Google地图生成器</a></li><li>2005-11-18 -- <a href="http://wukangrui.net/2005/11/18/add-trackback-to-pjblog.html" title="用ASP为blog程序编写Trackback功能">用ASP为blog程序编写Trackback功能</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=QqYBWFjF0m0:4YXkOj2A9aw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=QqYBWFjF0m0:4YXkOj2A9aw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=QqYBWFjF0m0:4YXkOj2A9aw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/QqYBWFjF0m0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/07/congratulate-my-blog-was-gfwed.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/07/congratulate-my-blog-was-gfwed.html</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC 最佳实践（三）</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/2Q4hSb2MjgA/asp-net-mvc-best-practices-part-3.html</link>
		<comments>http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-3.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:21:16 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[所谓技术]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[最佳实践]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-1-2.html</guid>
		<description><![CDATA[本系列翻译自 Kazi Manzur Rashid 的博客，由于翻译水平有限，本系列可能存在误解偏差或者翻译不准的地方，建议对比原文进行阅读。由于篇幅关系，原文中的一篇文章在本系列中将拆解成多篇发布。本篇包括原文第二部分。如果你没有看过之前的第一部分，也许你想先看看 《ASP.NET MVC 最佳实践（一）》和《ASP.NET MVC 最佳实践（二）》。]]></description>
			<content:encoded><![CDATA[<p><em>本系列翻译自 </em><a href="http://weblogs.asp.net/rashid/default.aspx"><em>Kazi Manzur Rashid</em></a><em> 的博客，由于翻译水平有限，本系列可能存在误解偏差或者翻译不准的地方，建议对比<a href="http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx">原文</a>进行阅读。由于篇幅关系，原文中的一篇文章在本系列中将拆解成多篇发布。本篇包括原文第二部分。如果你没有看过之前的第一部分，也许你想先看看 <a rel="prev" href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html">《ASP.NET MVC 最佳实践（一）》</a>和《<a rel="prev" href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-2.html">ASP.NET MVC 最佳实践（二）</a>》。</em> <span id="more-848"></span><em></em></p>
<h4>15. 关于路由的思考</h4>
<p>如果你在开发的是一个纯 ASP.NET MVC 的应用程序，可以先关闭已有的路由文件检查，这样可以去除不必要的文件系统检查。如果你这样做了，那么就还需要考虑另外的一些事情。请记住如果你的应用程序运行于 IIS 7集成模式，那么 ASP.NET 应用程序将会拦截所有的请求，不管文件的后缀名是什么。所以你必须要在过滤列表中加一些东西，以便让 <a rel="tag" href="http://www.asp.net/mvc/" target="_blank">ASP.NET MVC</a> 应用程序不处理它们。这其中可能包括静态文件，例如 html、htm、文本文件(尤其是robots.txt)、favicon.ico、脚本、图片和css等等。这也是我在<a rel="prev" href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html">第一部分第2节</a>中提到不喜欢默认文件结构的原因之一。以下是我为 IIS7 定制的路由定义标准模板：</p>
<pre class="code">_routes.Clear();

<span style="color: green">// Turns off the unnecessary file exists check
</span>_routes.RouteExistingFiles = <span style="color: blue">true</span>;

<span style="color: green">// Ignore text, html, files.
</span>_routes.IgnoreRoute(<span style="color: #a31515">"{file}.txt"</span>);
_routes.IgnoreRoute(<span style="color: #a31515">"{file}.htm"</span>);
_routes.IgnoreRoute(<span style="color: #a31515">"{file}.html"</span>);

<span style="color: green">// Ignore axd files such as assest, image, sitemap etc
</span>_routes.IgnoreRoute(<span style="color: #a31515">"{resource}.axd/{*pathInfo}"</span>);

<span style="color: green">// Ignore the assets directory which contains images, js, css &amp; html
</span>_routes.IgnoreRoute(<span style="color: #a31515">"assets/{*pathInfo}"</span>);

<span style="color: green">// Ignore the error directory which contains error pages
</span>_routes.IgnoreRoute(<span style="color: #a31515">"ErrorPages/{*pathInfo}"</span>);

<span style="color: green">//Exclude favicon (google toolbar request gif file as fav icon which is weird)
</span>_routes.IgnoreRoute(<span style="color: #a31515">"{*favicon}"</span>, <span style="color: blue">new </span>{ favicon = <span style="color: #a31515">@"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?" </span>});

<span style="color: green">//Actual routes of my application</span></pre>
<p>接下来是我的一些不同于手册指南的个人偏好。默认情况下 <a rel="tag" href="http://www.asp.net/mvc/" target="_blank">ASP.NET MVC</a> 产生的 url 形如 {controller}/{action}，在你开发一个多模块的应用程序是这是不错的选择，但是对于一些很小的应用程序，我通常喜欢从 url 中去掉控制器(controller)只留下方法名(action name)。如此一来，原来的“www.yourdomain.com/Story/Dashboard” 及 “www.yourdomain.com/Membership/Signin” 就会变成 “www.yourdomain.com/Dashboard” 和“www.yourmain.com/Signin”。所以我要添加一些新路由：</p>
<pre class="code">_routes.MapRoute(<span style="color: #a31515">"SignUp"</span>, <span style="color: #a31515">"SignUp"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"SignUp" </span>});
_routes.MapRoute(<span style="color: #a31515">"SignIn"</span>, <span style="color: #a31515">"SignIn"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"SignIn" </span>});
_routes.MapRoute(<span style="color: #a31515">"ForgotPassword"</span>, <span style="color: #a31515">"ForgotPassword"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"ForgotPassword" </span>});
_routes.MapRoute(<span style="color: #a31515">"SignOut"</span>, <span style="color: #a31515">"SignOut"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"SignOut" </span>});
_routes.MapRoute(<span style="color: #a31515">"Profile"</span>, <span style="color: #a31515">"Profile"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"Profile" </span>});
_routes.MapRoute(<span style="color: #a31515">"ChangePassword"</span>, <span style="color: #a31515">"ChangePassword"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Membership"</span>, action = <span style="color: #a31515">"ChangePassword" </span>});

_routes.MapRoute(<span style="color: #a31515">"Dashboard"</span>, <span style="color: #a31515">"Dashboard/{tab}/{orderBy}/{page}"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Story"</span>, action = <span style="color: #a31515">"Dashboard"</span>, tab = StoryListTab.Unread.ToString(), orderBy = OrderBy.CreatedAtDescending.ToString(), page = 1 });
_routes.MapRoute(<span style="color: #a31515">"Update"</span>, <span style="color: #a31515">"Update"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Story"</span>, action = <span style="color: #a31515">"Update" </span>});
_routes.MapRoute(<span style="color: #a31515">"Submit"</span>, <span style="color: #a31515">"Submit"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Story"</span>, action = <span style="color: #a31515">"Submit" </span>});

_routes.MapRoute(<span style="color: #a31515">"Home"</span>, <span style="color: #a31515">"{controller}/{action}/{id}"</span>, <span style="color: blue">new </span>{ controller = <span style="color: #a31515">"Home"</span>, action = <span style="color: #a31515">"Index"</span>, id = <span style="color: blue">string</span>.Empty });</pre>
<h4> </h4>
<h4>16. 如果需要的话，创建新的ActionResult</h4>
<p><a rel="tag" href="http://www.asp.net/mvc/" target="_blank">ASP.NET MVC</a> 包含有很多种用于不同目的的 ActionResult，但我们仍有可能会需要新的 ActionResult。例如xml、rss、atom等等。在这种情况下，我的建议是不要使用通用的 ContentResult， 而是创建一种新的 ActionResult. <a rel="external" href="http://mvccontrib.codeplex.com" target="_blank">MVCContrib</a> 项目中有一个 XmlResult，你可以用它来返回 xml，但是不支持 feed。显然依靠它来将未知对象转换为 rss/atom 是很困难的，这时你就可以创建一个定义ActionResult的模型。例如：</p>
<pre class="code"><span style="color: blue">public class </span><span style="color: #2b91af">AtomResult </span>: <span style="color: #2b91af">ActionResult </span>{
    <span style="color: blue">public </span>AtomResult(<span style="color: blue">string </span>siteTitle, <span style="color: blue">string </span>feedTitle, <span style="color: #2b91af">IEnumerable</span>&lt;IStory&gt; stories) {
        SiteTitle = siteTitle;
        FeedTitle = feedTitle;
        Stories = stories;
    }

    <span style="color: blue">public string </span>SiteTitle {
        <span style="color: blue">get</span>;
        <span style="color: blue">private set</span>;
    }

    <span style="color: blue">public string </span>FeedTitle {
        <span style="color: blue">get</span>;
        <span style="color: blue">private set</span>;
    }

    <span style="color: blue">public </span><span style="color: #2b91af">IEnumerable</span>&lt;IStory&gt; Stories {
        <span style="color: blue">get</span>;
        <span style="color: blue">private set</span>;
    }

    <span style="color: blue">public override void </span>ExecuteResult(<span style="color: #2b91af">ControllerContext </span>context) {
        <span style="color: blue">string </span>xml = Build(context);

        <span style="color: #2b91af">HttpResponseBase </span>response = context.HttpContext.Response;
        response.ContentType = <span style="color: #a31515">"application/atom+xml"</span>;
        response.Write(xml);
    }
}</pre>
<p>然后在控制器中就可以这样写：<a href="http://11011.net/software/vspaste"></a></p>
<pre class="code">[<span style="color: #2b91af">AcceptVerbs</span>(<span style="color: #2b91af">HttpVerbs</span>.Get), <span style="color: #2b91af">OutputCache</span>(CacheProfile = <span style="color: #a31515">"Atom"</span>)]
<span style="color: blue">public </span><span style="color: #2b91af">ActionResult </span>Shared() {
    <span style="color: #2b91af">IEnumerable</span>&lt;stories&gt; stories = GetSharedStories();

    <span style="color: blue">return new </span><span style="color: #2b91af">AtomResult</span>(<span style="color: #a31515">"My Site"</span>, <span style="color: #a31515">"My shared stories in atom"</span>, stories);
}</pre>
<h4>17. 把你的视图拆分为多个视图控件</h4>
<p>如果你的视图文件变得越来越大，那你可以考虑把它拆分为多个视图控件。至于视图空间是否在多个页面中重用，并没有关系。因为这样做可以让真正的视图文件变得更加具有可读性。考虑一下下面的视图：</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Content </span><span style="color: red">ID</span><span style="color: blue">="Content1" </span><span style="color: red">ContentPlaceHolderID</span><span style="color: blue">="TitleContent" </span><span style="color: red">runat</span><span style="color: blue">="server"&gt;
    </span>My Secret App : Dashboard
<span style="color: blue">&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Content</span><span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Content </span><span style="color: red">ID</span><span style="color: blue">="Content2" </span><span style="color: red">ContentPlaceHolderID</span><span style="color: blue">="MainContent" </span><span style="color: red">runat</span><span style="color: blue">="server"&gt;
    &lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="heading"&gt;&lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">div </span><span style="color: red">class</span><span style="color: blue">="columns"&gt;
        &lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="main" </span><span style="color: red">class</span><span style="color: blue">="column"&gt;
            &lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="storyListTabs" </span><span style="color: red">class</span><span style="color: blue">="ui-tabs ui-widget ui-widget-content ui-corner-all"&gt;
                </span><span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"TabHeader"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                <span style="color: blue">&lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="tabContent" </span><span style="color: red">class</span><span style="color: blue">="ui-tabs-panel ui-widget-content ui-corner-bottom"&gt;
                    &lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="storyList"&gt;
                        </span><span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"SortBar"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                        <span style="color: blue">&lt;</span><span style="color: #a31515">div </span><span style="color: red">class</span><span style="color: blue">="clear"&gt;&lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
                        </span><span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"NoLinkMessage"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                        <span style="color: blue">&lt;</span><span style="color: #a31515">form </span><span style="color: red">id</span><span style="color: blue">="update" </span><span style="color: red">action</span><span style="color: blue">="</span><span style="background: #ffee62">&lt;%</span>= Url.Update()<span style="background: #ffee62">%&gt;</span><span style="color: blue">" </span><span style="color: red">method</span><span style="color: blue">="post"&gt;
                            </span><span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"List"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                            <span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"ActionBar"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                            <span style="background: #ffee62">&lt;%</span> Html.RenderPartial(<span style="color: #a31515">"Pager"</span>, Model);<span style="background: #ffee62">%&gt;
</span>                        <span style="color: blue">&lt;/</span><span style="color: #a31515">form</span><span style="color: blue">&gt;
                    &lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
                &lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
            &lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
            </span><span style="background: #ffee62">&lt;%</span>Html.RenderPartial(<span style="color: #a31515">"Submit"</span>, <span style="color: blue">new </span>StorySubmitViewModel());<span style="background: #ffee62">%&gt;
</span>        <span style="color: blue">&lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
        &lt;</span><span style="color: #a31515">div </span><span style="color: red">id</span><span style="color: blue">="sideBar" </span><span style="color: red">class</span><span style="color: blue">="column"&gt;&lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
    &lt;/</span><span style="color: #a31515">div</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Content</span><span style="color: blue">&gt;</span></pre>
<p>继续阅读：《<a rel="next" href="http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html">ASP.NET MVC 最佳实践（四）</a>》</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-08 -- <a href="http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html" title="ASP.NET MVC 最佳实践（四）">ASP.NET MVC 最佳实践（四）</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/asp-net-mvc-best-practices-part-2.html" title="ASP.NET MVC 最佳实践（二）">ASP.NET MVC 最佳实践（二）</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html" title="ASP.NET MVC 最佳实践（一）">ASP.NET MVC 最佳实践（一）</a></li><li>2009-04-13 -- <a href="http://wukangrui.net/2009/04/13/aspnetmvc-hands-on-labs-develop-application.html" title="[翻译]ASP.NET MVC动手实验1-3：开发ASP.NET MVC应用">[翻译]ASP.NET MVC动手实验1-3：开发ASP.NET MVC应用</a></li><li>2009-04-09 -- <a href="http://wukangrui.net/2009/04/09/aspnetmvc-hands-on-labs-create-application.html" title="[翻译]ASP.NET MVC动手实验1-2：创建ASP.NET MVC应用">[翻译]ASP.NET MVC动手实验1-2：创建ASP.NET MVC应用</a></li><li>2009-04-09 -- <a href="http://wukangrui.net/2009/04/09/aspnetmvc-hands-on-labs-introduction.html" title="[翻译]ASP.NET MVC动手系列1-1：ASP.NET MVC概述">[翻译]ASP.NET MVC动手系列1-1：ASP.NET MVC概述</a></li><li>2009-07-05 -- <a href="http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html" title="PHP 5.3.0 发布">PHP 5.3.0 发布</a></li><li>2009-06-22 -- <a href="http://wukangrui.net/2009/06/22/whatever-hover-pseudo-class-without-javascript.html" title="Whatever:hover &#8211; 无需javascript让IE支持丰富伪类">Whatever:hover &#8211; 无需javascript让IE支持丰富伪类</a></li><li>2009-04-30 -- <a href="http://wukangrui.net/2009/04/30/solution-for-js-intellisense-error.html" title="VS2008 中 JS IntelliSense出错的解决">VS2008 中 JS IntelliSense出错的解决</a></li><li>2008-06-22 -- <a href="http://wukangrui.net/2008/06/22/api-bug-in-powereasy-siteweaver-part2.html" title="动易SW中的一个严重但不影响使用的bug（二）">动易SW中的一个严重但不影响使用的bug（二）</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=2Q4hSb2MjgA:oFUszowX_ss:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=2Q4hSb2MjgA:oFUszowX_ss:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=2Q4hSb2MjgA:oFUszowX_ss:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/2Q4hSb2MjgA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-3.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-3.html</feedburner:origLink></item>
		<item>
		<title>到底谁被“墙”了</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/DyWxzUpuqVk/china-cyblepolice-ridiculous-illegal-information-comments.html</link>
		<comments>http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 06:56:32 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[指手划脚]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[博客]]></category>
		<category><![CDATA[社会]]></category>
		<category><![CDATA[网络监察]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html</guid>
		<description><![CDATA[前几天我写了一篇《一个小网警的龌龊思想》，有好几个网友的评论让我感到无比惊讶。因为他们看了我这篇日志，关注的焦点居然是“说实话，从你一开始贴这个笑话，就应该猜到是哪儿犯禁了–除非您很少跟别人打交道或者很少上网。”或者“我不得不说，该作者实在被墙得太久了，俺一看到那个名词就知道问题出哪了…”。我真的很无语……
 
这类似的网友，很显然，首先就认可了“开领导人玩笑等于有害信息”，以及“判定需要一定的预备知识通过联想产生效果的隐喻信息为有害信息”这两种情况的合理性。
我这篇文章的观点是这个笑话不应该列入有害信息，而不是我“不知道哪里有害”。这已经不是文化大革命的时代了，已经不是不念毛主席语录就是反动的时代了。既然这个故事里所描述的场景是在CCAV的幸运52现场确实发生过的，首先它是事实，因此它不属于造谣行为。其次它不包含色情、淫秽的信息，也没有攻击党和社会主义制度的言论，它也没有涉及泄露国家机密或者其它可能造成国家安全受威胁或者影响大众安全的信息，它更没有煽动性。因此这样一篇文章，它只是笑话，而不是有害信息。
现在回头来说“侮辱现任或前任国家领导人”，这篇文章里从头到尾没有提到任何政治人物（宋庆龄某种程度上可能算一个，仅此而已），而这个唯一的政治人物并不是国家领导人。那么“侮辱现任或前任国家领导人”从何说起呢？
因为认为“大家都知道这个笑话”，因此判断这个笑话存在影射某位国家领导人的情况，这就是网警判断“有害信息”的依据。在一个法制社会里，做出一个有罪判断难道不需要任何证据的吗？通过这篇文章，哪一句话能够证明“大家都知道这个笑话”呢？哪一句话又能够证明“发帖人知道这个笑话呢”。不能因为你知道，就咬定别人也知道并且据此给别人定罪。
通过表面的文字，我们只能判断“主持人李咏知道‘宋祖英’+‘国母’意味着某一个玩笑，而且是‘开大了的’玩笑”，至于到底是什么玩笑呢？我们从字面上看不出来，甚至不能推断回答“宋祖英”的那个参与者知道，为什么？我在我的博文里已经分析了，因为这是一个错误答案，所以没有必要追问为什么这样回答，即使要追问，也可以有很多种跟政治无关，跟领导人无关的解释。
基于这样的观点，我才认为网警判断这个帖子为有害信息是不合理的，因为帖子本身不具备“侮辱现任或前任国家领导人”的能力，只有当读者已经具备了关于某个笑话的预备知识，并且在阅读时产生联想，才能产生笑话的效果，而至于用“有害信息”来处置网络上的玩笑或者笑话是否合理，这不是本文讨论的范围。
之所以我把遇到的这个处置情况拿出来写一篇博文，正如我在文章后半部分所说的，是因为这意味着不仅“因言治罪”甚至还“因思想治罪”。也就是说，你脑子里想什么都要受到监管了。你能接受这样的事情合理化吗？我相信没有人愿意自己做个春梦或者意淫一下就被判强奸的吧？既然不能接受，那显然也不会认可这个笑话是“有害信息”。为了追求更进一步地完善我们的法制，追求法律的真正公平，我们甚至要反对这种有法不依或者滥用乱用权力的行为。
doubleaf 在评论里说得好，“宋江只是坊间笑话，从来没人能证实。”而我们也没有谁会真的去证实这个笑话的真假，包括我在内我相信绝大部分甚至是所有人都在潜意识里就把这个笑话的“真实性”当作0了。也就是说大家都只把它当一个纯粹的笑话。这时候假如有人对号入座，那不是等于自己站出来把笑话变成事实？相信没有人会做这种事情的。而小网警这时候以“侮辱现任或前任国家领导人”来冠在这条笑话头上，不是在替人对号入座吗？那到底是谁在侮辱现任或前任国家领导人呢？恐怕不是发笑话的网友，而是把笑话当有害信息的网警吧？
而那两位回帖评论的，反应灵敏的网友，第一时间就认可这是一条“有害信息”而且能立刻指出“哪里有害”，可见你们对于被墙、被禁言之类的事情是甘之若怡的，而且你们甚至还比我文中提到的“网警”更具有成为“优秀网警”的潜质。我除了无语和“敬佩”之外，确实不知道还能说什么。我相信你们很强大，即使某一天因为想了一下不该想的事情而遭牢狱之灾甚至是声明危险，我相信你们也是不需要任何的外人帮忙，更不需要谁来为你们呐喊的。因为你们第一时间就能判断出自己已经犯了罪而且很清楚自己是因为想了个什么东西而犯罪。然后你们的坦白或许还会为你们换来宽大的处理呢？
相关日志2009-07-03 -- 一个小网警的龌龊思想2009-06-04 -- 中国互联网管理需要清醒一下找找方向2009-07-03 -- 不管是什么颜色的&#8220;坝&#8221;我们都不怕2009-07-01 -- 推迟的本质就是不了了之2009-07-01 -- 索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹2009-06-28 -- google域名劫持事件的影响2009-06-24 -- 七条对策帮你摆脱&#8220;绿坝&#8221;的纠缠2009-06-23 -- 国内媒体联合打击google是举国之力玩&#8220;不正当竞争&#8221;2009-06-16 -- 邓玉娇案尘埃落定之后2008-05-19 -- 捐款·爱国·流氓]]></description>
			<content:encoded><![CDATA[<p>前几天我写了一篇《<a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" rel="prev" target="_blank">一个小网警的龌龊思想</a>》，有好几个网友的评论让我感到无比惊讶。因为他们看了我这篇日志，关注的焦点居然是“说实话，从你一开始贴这个笑话，就应该猜到是哪儿犯禁了–除非您很少跟别人打交道或者很少上网。”或者“我不得不说，该作者实在被墙得太久了，俺一看到那个名词就知道问题出哪了…”。我真的很无语……</p>
<p> <span id="more-846"></span>
<p>这类似的网友，很显然，首先就认可了“开领导人玩笑等于有害信息”，以及“判定需要一定的预备知识通过联想产生效果的隐喻信息为有害信息”这两种情况的合理性。</p>
<p>我这篇文章的观点是这个笑话不应该列入有害信息，而不是我“不知道哪里有害”。这已经不是文化大革命的时代了，已经不是不念毛主席语录就是反动的时代了。既然这个故事里所描述的场景是在CCAV的幸运52现场确实发生过的，首先<strong>它是事实</strong>，因此<strong>它不属于造谣行为</strong>。其次<strong>它不包含色情、淫秽的信息，也没有攻击党和社会主义制度的言论</strong>，<strong>它也没有涉及泄露国家机密或者其它可能造成国家安全受威胁或者影响大众安全的信息</strong>，<strong>它更没有煽动性</strong>。因此这样一篇文章，它只是笑话，而不是有害信息。</p>
<p>现在回头来说“侮辱现任或前任国家领导人”，这篇文章里从头到尾没有提到任何政治人物（宋庆龄某种程度上可能算一个，仅此而已），而这个唯一的政治人物并不是国家领导人。那么“侮辱现任或前任国家领导人”从何说起呢？</p>
<p>因为认为“大家都知道这个笑话”，因此判断这个笑话存在影射某位国家领导人的情况，这就是网警判断“有害信息”的依据。在一个法制社会里，做出一个有罪判断难道不需要任何证据的吗？通过这篇文章，哪一句话能够证明“大家都知道这个笑话”呢？哪一句话又能够证明“发帖人知道这个笑话呢”。<strong>不能因为你知道，就咬定别人也知道并且据此给别人定罪</strong>。</p>
<p>通过表面的文字，我们只能判断“主持人李咏知道‘宋祖英’+‘国母’意味着某一个玩笑，而且是‘开大了的’玩笑”，至于到底是什么玩笑呢？我们从字面上看不出来，甚至不能推断回答“宋祖英”的那个参与者知道，为什么？我在我的博文里已经分析了，因为这是一个错误答案，所以没有必要追问为什么这样回答，即使要追问，也可以有很多种跟政治无关，跟领导人无关的解释。</p>
<p>基于这样的观点，我才认为网警判断这个帖子为有害信息是不合理的，因为<strong>帖子本身不具备“侮辱现任或前任国家领导人”的能力，只有当读者已经具备了关于某个笑话的预备知识，并且在阅读时产生联想，才能产生笑话的效果</strong>，而至于用“有害信息”来处置网络上的玩笑或者笑话是否合理，这不是本文讨论的范围。</p>
<p>之所以我把遇到的这个处置情况拿出来写一篇博文，正如我在文章后半部分所说的，是因为这意味着不仅“因言治罪”甚至还“因思想治罪”。也就是说，你脑子里想什么都要受到监管了。你能接受这样的事情合理化吗？我相信没有人愿意自己做个春梦或者意淫一下就被判强奸的吧？既然不能接受，那显然也不会认可这个笑话是“有害信息”。为了追求更进一步地完善我们的法制，追求法律的真正公平，我们甚至要反对这种有法不依或者滥用乱用权力的行为。</p>
<p><a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html#comment-37179" target="_blank">doubleaf</a> 在评论里说得好，“宋江只是坊间笑话，从来没人能证实。”而我们也没有谁会真的去证实这个笑话的真假，包括我在内我相信绝大部分甚至是所有人都在潜意识里就把这个笑话的“真实性”当作0了。也就是说<strong>大家都只把它当一个纯粹的笑话</strong>。这时候假如有人对号入座，那不是等于自己站出来把笑话变成事实？相信没有人会做这种事情的。而小网警这时候以“侮辱现任或前任国家领导人”来冠在这条笑话头上，不是在替人对号入座吗？那到底是谁在侮辱现任或前任国家领导人呢？恐怕不是发笑话的网友，而是把笑话当有害信息的网警吧？</p>
<p>而那两位回帖评论的，反应灵敏的网友，第一时间就认可这是一条“有害信息”而且能立刻指出“哪里有害”，可见<strong>你们对于被墙、被禁言之类的事情是甘之若怡的</strong>，而且你们甚至还比我文中提到的“网警”更具有成为“优秀网警”的潜质。我除了无语和“敬佩”之外，确实不知道还能说什么。我相信你们很强大，即使某一天因为想了一下不该想的事情而遭牢狱之灾甚至是声明危险，我相信你们也是不需要任何的外人帮忙，更不需要谁来为你们呐喊的。因为你们第一时间就能判断出自己已经犯了罪而且很清楚自己是因为想了个什么东西而犯罪。然后你们的坦白或许还会为你们换来宽大的处理呢？</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" title="一个小网警的龌龊思想">一个小网警的龌龊思想</a></li><li>2009-06-04 -- <a href="http://wukangrui.net/2009/06/04/china-internet-law-in-wrong-way.html" title="中国互联网管理需要清醒一下找找方向">中国互联网管理需要清醒一下找找方向</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html" title="推迟的本质就是不了了之">推迟的本质就是不了了之</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" title="索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹">索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li><li>2009-06-24 -- <a href="http://wukangrui.net/2009/06/24/seven-ways-refuse-green-dam.html" title="七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠">七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠</a></li><li>2009-06-23 -- <a href="http://wukangrui.net/2009/06/23/china-websites-damned-google-spread-pornography-information.html" title="国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;">国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;</a></li><li>2009-06-16 -- <a href="http://wukangrui.net/2009/06/16/thinking-after-judgement-of-deng-yujiao.html" title="邓玉娇案尘埃落定之后">邓玉娇案尘埃落定之后</a></li><li>2008-05-19 -- <a href="http://wukangrui.net/2008/05/19/donate-patriotism-and-sulphur.html" title="捐款·爱国·流氓">捐款·爱国·流氓</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=DyWxzUpuqVk:yzZSk-glKao:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=DyWxzUpuqVk:yzZSk-glKao:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=DyWxzUpuqVk:yzZSk-glKao:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/DyWxzUpuqVk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html</feedburner:origLink></item>
		<item>
		<title>PHP 5.3.0 发布</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/-y5zVBQoxMg/php-5-3-0-release-new-feature.html</link>
		<comments>http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html#comments</comments>
		<pubDate>Sat, 04 Jul 2009 19:33:30 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[所谓技术]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html</guid>
		<description><![CDATA[如今PHP 5.3.0也像ASP.NET一样，引入了命名空间、延迟绑定、匿名函数、Lambda表达式等先进特性，可见编程语言与平台无关性在未来将更加凸显，而混合编程的正确性和先进性也将不断得到体现。封闭自己，拒绝变化的产品和思想，在开发领域只有死路一条。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net/" rel="external" target="_blank">PHP 官方网站</a> 6月30日放出了<a href="http://www.php.net/archive/2009.php#id2009-06-30-1" rel="external" target="_blank">PHP 5.3.0 正式发布的消息</a>，该版本是PHP 5.x系列的一个重要里程碑。根据 PHP 官方网站7月3日更新的 <a href="http://cn2.php.net/manual/en/migration53.new-features.php" rel="external" target="_blank">PHP 5.3.0 新特性</a> 介绍，PHP 5.3.0 主要包括以下新增特性或功能：</p>
<p> <span id="more-845"></span>
</p>
<ul>
<li>支持<a href="http://php.net/namespaces" rel="external" target="_blank">命名空间</a> </li>
<li>支持<a href="http://cn2.php.net/manual/en/language.oop5.late-static-bindings.php" rel="external" target="_blank">延迟静态绑定</a>技术 </li>
<li>支持<a href="http://cn2.php.net/manual/en/control-structures.goto.php" rel="external" target="_blank">跳转标签</a>（受限制的goto） </li>
<li>支持<a href="http://cn2.php.net/manual/en/functions.anonymous.php" rel="external" target="_blank">闭包</a>（Lambda表达式和匿名函数） </li>
<li>新增两个魔法函数，<a href="http://cn2.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods" rel="external" target="_blank">__callStatic</a> 和 <a href="http://cn2.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.invoke" rel="external" target="_blank">__invoke</a> </li>
<li>新增 <a href="http://cn2.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc" rel="external" target="_blank">Nowdoc</a> 语法支持，与 <a href="http://cn2.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc" rel="external" target="_blank">Heredoc</a> 语法相同但是带有单引号 </li>
<li>可以在静态变量和类成员、类构造函数中使用 Heredoc 语法 </li>
<li>Heredoc 可以用双引号定义，以便与 Nowdoc 的单引号区别 </li>
<li><a href="http://cn2.php.net/manual/en/language.constants.syntax.php" rel="external" target="_blank">构造函数</a>可以在类之外用 <em>const</em> 关键词进行定义 </li>
<li>增加了<a href="http://cn2.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary" rel="external" target="_blank">条件操作符</a>的简短形式 ?: (例如 a = condition ? true : false） </li>
<li>200 到 399 的状态码在HTTP数据流容器被认为是成功 </li>
<li>允许动态访问静态成员 </li>
<li>允许对<a href="http://cn2.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary" rel="external" target="_blank">异常</a>进行嵌套 </li>
<li>增加并且默认启用垃圾回收机制 </li>
</ul>
<p>此外，针对Windows版本的改变有：</p>
<ul>
<li>不再支持Windows98,ME和NT4，最低支持Windows 2000 </li>
<li>Windows 二进制版本针对 i586 或更高版本编译，不再支持 i386和i486 </li>
<li>对 Windows 系统上的 64位 PHP 提供支持（实验性的） </li>
<li>支持Visual C++ 9（VC9）编译，可以使用 Visual Studio 2008。 </li>
<li><a href="http://cn2.php.net/manual/en/ref.pdo-oci.php" rel="external" target="_blank">PDO_OCI</a> 的 php_pdo_oci8.dll 库（用于Oracle 8的客户端类库）不再构建，替代它的是 php_pdo_oci.dll（去掉了“8”），用于 Oracle 10 或者 11。与其他版本的数据库连接继续支持。 </li>
<li>针对 <a href="http://cn2.php.net/manual/en/book.oci8.php" rel="external" target="_blank">OCI8</a> 的扩展，除了php_oci8.dll之外增加了一个php_oci8_11g.dll，但是不能同时启用。php_oci8.dll与Oracle 10.2客户端类库结合使用，而php_oci8_11g.dll 和 Oracle 11客户端类库结合使用。与其他版本数据库的连接继续支持。 </li>
</ul>
<p>Windows版本新增加了对下列函数的支持：</p>
<ul>
<li><a href="http://cn2.php.net/function.checkdnsrr.php">checkdnsrr()</a> </li>
<li>d<a href="http://cn2.php.net/function.dns-get-record.php">ns_get_record()</a> </li>
<li><a href="http://cn2.php.net/function.fnmatch.php">fnmatch()</a> </li>
<li><a href="http://cn2.php.net/function.getmxrr.php">getmxrr()</a> </li>
<li><a href="http://cn2.php.net/function.getopt.php">getopt()</a> </li>
<li><a href="http://cn2.php.net/function.imagecolorclosesthwb.php">imagecolorclosesthwb()</a> </li>
<li><a href="http://cn2.php.net/function.inet-ntop.php">inet_ntop()</a> </li>
<li><a href="http://cn2.php.net/function.inet-pton.php">inet_pton()</a> </li>
<li><a href="http://cn2.php.net/function.link.php">link()</a> </li>
<li><a href="http://cn2.php.net/function.linkinfo.php">linkinfo()</a> </li>
<li><a href="http://cn2.php.net/function.mcrypt-create-iv.php">mcrypt_create_iv()</a> </li>
<li><a href="http://cn2.php.net/function.readlink.php">readlink()</a> </li>
<li><a href="http://cn2.php.net/function.socket-create-pair.php">socket_create_pair()</a> &#8211; 这个函数以前就在Windows中支持，但是由于在PHP 4.3.0中的一个bug而被禁用 </li>
<li><a href="http://cn2.php.net/function.stream-socket-pair.php">stream_socket_pair()</a> </li>
<li><a href="http://cn2.php.net/function.symlink.php">symlink()</a> </li>
<li><a href="http://cn2.php.net/function.time-nanosleep.php">time_nanosleep()</a> </li>
<li><a href="http://cn2.php.net/function.time-sleep-until.php">time_sleep_until()</a> </li>
</ul>
<p>除了上述改变外，Windows版本还有一些其它提升性能或者增加兼容性的改进，而最为重要的则是一条针对Windows的说明：</p>
<p>在windows下采用ISAPI方式运行PHP已经被遗弃，采用改进的FastCGI SAPI模块来代替。我在<a href="http://wukangrui.net/2008/06/23/fastcgi-for-php-in-iis.html" rel="external" target="_blank">2008年6月23日的日志</a>中曾经笑称“PHP成为IIS‘一等公民’”，那是只是从微软IIS团队官方发布PHP的FastCGI模块，以及微软和Zend的合作而对PHP在Windows平台上的使用做了最乐观的展望，而后来微软在IIS7以后的版本内置FastCGI模块，甚至在云服务中也内置FastCGI支持，则更说明了PHP与Windows的联姻将继续增强。可惜的是直到Windows7发布之后，网上的绝大部分教程依然在教新手采用ISAPI方式运行PHP，甚至是采用PHP4的安装方式。甚至还有人专门跑到我的空间里叫嚣在Windows下运行PHP是如何如何。开源社区对Windows平台的妖魔化，至今影响深远。正是由于拒绝导致了他们对Windows、ASP.NET、C#的不了解，甚至直至今日还死抱着Windows比Linux慢、不如Linux安全之类的陈旧观念。</p>
<p>如今PHP 5.3.0也像ASP.NET一样，引入了命名空间、延迟绑定、匿名函数、Lambda表达式等先进特性，可见编程语言与平台无关性在未来将更加凸显，而混合编程的正确性和先进性也将不断得到体现。封闭自己，拒绝变化的产品和思想，在开发领域只有死路一条。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2008-06-04 -- <a href="http://wukangrui.net/2008/06/04/unix-timestamp-in-asp.html" title="在ASP中实现UNIX时间戳">在ASP中实现UNIX时间戳</a></li><li>2008-05-23 -- <a href="http://wukangrui.net/2008/05/23/disadvantages-of-discuz-ucenter.html" title="给UCenter的拥蹩们泼点冷水">给UCenter的拥蹩们泼点冷水</a></li><li>2009-07-08 -- <a href="http://wukangrui.net/2009/07/08/asp-net-mvc-best-practices-part-4.html" title="ASP.NET MVC 最佳实践（四）">ASP.NET MVC 最佳实践（四）</a></li><li>2009-07-07 -- <a href="http://wukangrui.net/2009/07/07/asp-net-mvc-best-practices-part-3.html" title="ASP.NET MVC 最佳实践（三）">ASP.NET MVC 最佳实践（三）</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/asp-net-mvc-best-practices-part-2.html" title="ASP.NET MVC 最佳实践（二）">ASP.NET MVC 最佳实践（二）</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/asp-net-mvc-best-practices-part-1.html" title="ASP.NET MVC 最佳实践（一）">ASP.NET MVC 最佳实践（一）</a></li><li>2009-06-08 -- <a href="http://wukangrui.net/2009/06/08/using-fastcgi-to-host-php-applications-on-iis-7x.html" title="在 IIS 7.x 中用 FastCGI 运行 PHP">在 IIS 7.x 中用 FastCGI 运行 PHP</a></li><li>2008-06-23 -- <a href="http://wukangrui.net/2008/06/23/fastcgi-for-php-in-iis.html" title="微软官方FastCGI，PHP成为IIS“一等公民”">微软官方FastCGI，PHP成为IIS“一等公民”</a></li><li>2008-06-22 -- <a href="http://wukangrui.net/2008/06/22/api-bug-in-powereasy-siteweaver-part2.html" title="动易SW中的一个严重但不影响使用的bug（二）">动易SW中的一个严重但不影响使用的bug（二）</a></li><li>2008-06-22 -- <a href="http://wukangrui.net/2008/06/22/thinking-about-html-page-creating.html" title="静态页面生成的思考">静态页面生成的思考</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=-y5zVBQoxMg:34Nc3fJ3C00:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=-y5zVBQoxMg:34Nc3fJ3C00:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=-y5zVBQoxMg:34Nc3fJ3C00:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/-y5zVBQoxMg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/05/php-5-3-0-release-new-feature.html</feedburner:origLink></item>
		<item>
		<title>不管是什么颜色的“坝”我们都不怕</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/_IID-hTVabI/we-naver-fear-any-dam.html</link>
		<comments>http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html#comments</comments>
		<pubDate>Fri, 03 Jul 2009 12:42:14 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[指手划脚]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[绿坝]]></category>
		<category><![CDATA[自由]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html</guid>
		<description><![CDATA[只要墙还没倒，就算没有“蓝坝”，也会有别的“坝”继续亮相，而不管什么样的“坝”，都只不过是浪费纳税人金钱的小丑表演罢了。网络引导自由，什么颜色的“墙”，我们都不怕。]]></description>
			<content:encoded><![CDATA[<p>这两天网上开始出现了一些<a href="http://www.prnews.cn/press_release/25823.htm" rel="external" target="_blank">关于“蓝坝”的报道</a>。从7月2日<a href="http://www.prnews.cn/" rel="external" target="_blank">中国商业电讯</a>首发开始，很快就被多家媒体转载。这些报道称在绿坝软件刚刚被宣布推迟预装的时候，另一款性能超过绿坝20倍的“蓝坝”<font color="#ff0000"><strong>拟</strong></font>研制。最早的新闻里是“拟研制”，不过到了后面的转载报道以及评论里就有很多演绎成了“正在研制”、“正在开发”等说法。</p>
<p> <span id="more-842"></span>
<p>我甚至很恶意地揣测：这会不会是工信部耍的一个调虎离山的小把戏。目的就像之前用打击google来转移大家对绿坝的关注一样，通过树起一个更具吸引力但是却虚无缥缈的新靶子给大家攻击，这样针对绿坝采购事件前因后果及黑箱内幕的质疑就会少很多。不过这只是揣测而已，而且的确是恶意的揣测。</p>
<p>因为中国商业电讯只不过是<a href="http://www.tixa.com/" rel="external" target="_blank">天下互联</a>这个商业机构的一个成员单位，它只是为企业提供市场情报分析和财经内容的一个信息领域的小公司而已。关于蓝坝的那篇报道，是属于“厂商信息”里的一篇普通文章，这样的信息，完全有可能是来自于<a href="http://www.adtsec.com/" rel="external" target="_blank">安达通</a>，安达通作为一个网络检测产品提供商，面对“绿坝蒙羞，元首震怒”这种极佳的机会，要说他们不想成为下一个金惠，那是不可能的。因此我的另一个恶意的揣测就是所谓的“蓝坝拟研制”的新闻，会不会是安达通放出来做市场调研，同时向工信部暗送秋波的一个手段。安达通项目负责人甚至在介绍这款名为“蓝坝——网络引航”的系统时刻意强调“蓝坝更注重个人隐私的保护”，并针对绿坝出现的与杀毒软件不兼容等问题来介绍“蓝坝”，由此可见我的恶意猜测还是有几分靠谱的。</p>
<p>不过如果是这样的话，那么上海安达通的项目策划人显然没有真正搞清楚绿坝遭反对以及走向失败的根本原因。如果“蓝坝”真的以超过绿坝20倍的性能并且对所有“采用分布式审计方式搜集的主机数据进行加密”，让这些数据装到一个黑盒里“不会被轻易获取”，那他将要遭到的反击或许也是20倍于绿坝的。既然绿坝这么不成器的东西网民都不愿意自己的隐私和言论自由被它威胁，那么像“蓝坝”这样监控能力更强大而且网民连自己到底什么被监控和搜集了都不知道的东西，岂不是更加引起人们的恐慌和更加激烈的反对呢？</p>
<p>实际上，一切的“坝”都是“墙”的衍生品，网民们反对的并不是某一款具体的软件或某一项具体的技术，网民真正反对、抵制、攻击的，是一切带有“墙”色彩的东西。所以不管你是绿的还是蓝的，只要你是试图危害网民合法权益的，你就必然遭到反对。而且你越先进，遭到的反击也越激烈。所以不管是意图转移注意力，还是意图试探网民反应，最终的结果都必定是让始作俑者失望的。</p>
<p>绿坝来了，我们反对绿坝；google被陷害了，我们就挺一下google；假如真的有“蓝坝”、“红坝”、“水泥坝”之类的来了，我们也一样会一如既往地批评和抗议。如果这一切都没有的时候呢？我们就继续拆墙。所以网民的注意力从来都没有转移过，网民的注意力一直就维绕着捍卫自己的合法权力这个核心，从未偏离。</p>
<p>至于20倍的性能或是加密的数据，毛主席早就教导过我们，一切反动派都是纸老虎，任何视图抵抗科技进步、民主进步的反动力量，都不会有好下场的。只要墙还没倒，就算没有“蓝坝”，也会有别的“坝”继续亮相，而不管什么样的“坝”，都只不过是浪费纳税人金钱的小丑表演罢了。</p>
<p>网络引导自由，什么颜色的“墙”，我们都不怕。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html" title="推迟的本质就是不了了之">推迟的本质就是不了了之</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" title="索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹">索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li><li>2009-06-24 -- <a href="http://wukangrui.net/2009/06/24/seven-ways-refuse-green-dam.html" title="七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠">七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠</a></li><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" title="一个小网警的龌龊思想">一个小网警的龌龊思想</a></li><li>2009-06-26 -- <a href="http://wukangrui.net/2009/06/26/hello-world.html" title="Hello World!">Hello World!</a></li><li>2009-06-23 -- <a href="http://wukangrui.net/2009/06/23/china-websites-damned-google-spread-pornography-information.html" title="国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;">国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;</a></li><li>2009-06-19 -- <a href="http://wukangrui.net/2009/06/19/green-dam-is-not-for-people.html" title="绿坝：初衷是好的就够了吗？">绿坝：初衷是好的就够了吗？</a></li><li>2009-06-04 -- <a href="http://wukangrui.net/2009/06/04/china-internet-law-in-wrong-way.html" title="中国互联网管理需要清醒一下找找方向">中国互联网管理需要清醒一下找找方向</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=_IID-hTVabI:bvnHIZmQBAA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=_IID-hTVabI:bvnHIZmQBAA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=_IID-hTVabI:bvnHIZmQBAA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/_IID-hTVabI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html</feedburner:origLink></item>
		<item>
		<title>一个小网警的龌龊思想</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/19RrSIZ4OE0/china-cyblepolice-ridiculous-illegal-information.html</link>
		<comments>http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 17:45:30 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[指手划脚]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[社会]]></category>
		<category><![CDATA[网络监察]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html</guid>
		<description><![CDATA[假如真的有那一天，民皆不语，道路以目的时候，那样的后果是什么，中国历史上不是没有demo。]]></description>
			<content:encoded><![CDATA[<p>前几天网上曾经出现过<a href="http://www.chinagfw.org/2009/06/blog-post_28.html" rel="external" target="_blank">一篇网站监测工作人员的道白</a>(原文发表处此文已被隐藏，这里链接到一个不会删除或隐藏的地方，需要的同学请翻墙围观），不过他们是职业的网站监测工作人员，所以文章的重点是介绍监测工作的整个流程和一些技术细节。我每天的工作中也包括根据IDC服务商和网监的要求删除不少帖子和博文，不过我写这篇文章并不是想说我很为自己所做的事情可耻。在我<a href="http://wukangrui.net/2009/06/16/thinking-after-judgement-of-deng-yujiao.html" rel="prev" target="_blank">之前的文章</a>里有说过，从最初的被迫删除，到现在据理力争和依法拒绝，如果换成我的某些同事来做这件事，死在我们网站上的言论应该会更多。</p>
<p> <span id="more-840"></span>
<p>而作为一个专业的技术人员兼不专业的网络检测工作人员，我对网监的工作仅限于我所了解的，但是我每天都要收到的很多荒谬删帖要求，充分说明了天朝现在的网络监察体系已经奇怪到了匪夷所思的地步。我贴一个昨天接到要求让我删除的博客文章，大家一起来围观一下，再动动脑筋，看谁先猜到这个文章哪里“有害”：</p>
<blockquote><p>生在幸运52的成人笑话，据说李咏都笑晕了！！！！！      <br />一对夫妻，猜食品名称，老婆比划老公猜。       <br />大屏幕上跳出&quot;馒头&quot;一词       <br />老婆描述：圆圆的，白白的，能吃的       <br />老公：……       <br />老婆继续描述：就是白白的，软软的，你昨晚上还吃来着！       <br />老公看来是急坏了，脱口而出：“mimi！”       <br />李咏都笑趴下了…… </p>
<p>大屏幕上跳出&quot;醋&quot;一字      <br />老公：女人最喜欢吃男人的什么呀？       <br />老婆（兴高采烈地）：豆腐！！       <br />女的比划，男的猜，题板是宋庆龄       <br />女的说：是个女的，很漂亮，国母，她的姓是唐朝后面的那个朝代       <br />男的脱口而出：宋祖英       <br />全场哗然！！！！       <br />李咏曰：玩笑开大了 </p>
<p>猜词环节      <br />比画的说：三国演义中关羽骑的是什么马？       <br />猜的人不知道，比画的又提示：再想想，这马吕布也骑过。       <br />猜的人大喊：是貂禅。       <br />比画的大怒：你傻啊，我说的是白天骑的！       <br />老李当时笑翻在地！！！！ </p>
<p>猜词秀环节      <br />一对夫妻，猜历史文物，老婆比划老公猜。       <br />大屏幕上跳出&quot;金刚经&quot;一词       <br />老婆描述：古来就有的， 很有名的       <br />老公：…………       <br />老婆继续描述：就是那个尼姑每个月都要念的       <br />老公看来是明白了，脱口而出：&quot;月经&quot;       <br />李咏说：&quot;我的妈呀！导播剪了吧&quot; </p>
<p>还是那对夫妻，猜物品名称，老婆比划老公猜。      <br />大屏幕上跳出“V3手机”一词       <br />老婆描述：有一款是粉红色的，今年最流行的，你给我买过的       <br />老公：…………       <br />老婆继续描述：那个美女萨拉波娃也用过的，也是我最喜欢的，四个字的       <br />老公豁出去了，又脱口而出：“情趣内衣”       <br />倒霉的李咏又笑趴下了…… </p>
<p>一对夫妻，猜颜色，老公比划老婆猜。      <br />大屏幕上跳出“白色”一词老公不断比划，老婆还是不知道……       <br />老公急了，于是……       <br />老公描述：李咏的内衣！       <br />老婆：白色！       <br />全场倒……（当天李咏穿着西服，内穿白衬衫）</p>
</blockquote>
<p>因为当时我接到的通知只说要求删除此有害信息，没有哪里有害，所以我第一反应就是顶回去，让IDC服务商问一下网监，此贴哪里有害（我跟网监之间现在已经不直接打交道，大家火气都不小，免得起争执），同时我自己也认真猜测这个信息是哪里被网监盯上了。</p>
<p>开始我以为是“低俗”，但是看来看去，也不像有低俗关键词的样子，我当时很惊讶，难道网监的软件已经能够识别“mimi”这样的词汇了？！</p>
<p>但是很快IDC服务商回复过来，原来这篇文章涉及侮辱现任或前任国家领导人。因此成为有害信息！！</p>
<p>也就是说，“国母”成为了关键词，众所周知，中国是一个人民共和国，我们的国家主席是一个行政机构，而不是一个人（见中学政治课本），虽然具体表现上是由一个人担任，但是根据定义，担任中华人民共和国主席职务的人，只是一个职务，用非常有党性的话来讲，也是一个人民公仆。那么，在现代的中国，很显然没有“一国之主”的概念。既然没有“一国之主”，当然也就不存在“国母”这个角色。</p>
<p>因此我们如果使用了“国母”这个词，我们可以解释为是使用了这个词的比喻义，或者就是有特殊背景，比如这篇文章中做词语解释的那位妻子，她显然是由孙中山先生的“国父”称号，而化用了“国母”在宋庆铃夫人身上。这是表示一种尊敬。至于那位丈夫的荒谬回答，既然是作为错误的答案，实际上已经不需要去追究他答案的由来了，错误还需要理由吗？</p>
<p>好，假如非要解释，我们也完全可以从比喻义的角度来加以注解——或者说为那位丈夫辩护——为什么称宋祖英是“国母”呢？我觉得可以从宋祖英在国内国际的公众形象来看，宋祖英作为我国最著名的歌唱家之一，在国内外的很多重要演出场合，演唱了很多能够充分向世界展示中华文化和中华民族的歌曲，比如为西方世界所熟知的《茉莉花》。而宋祖英本人在国内的形象也非常的高贵、雍容。从这个角度来看的话，就算是用“国母”这个极高的荣誉戴在宋祖英头上，最多也就是修辞恰当或者不恰当的问题，什么时候扯到了现任或前任国家领导人身上呢？在这个交互过程中，到底是谁在污蔑现任或前任国家领导人呢？我觉得不是猜词的那个丈夫，也不是发帖的作者，而是把这篇文章定义为“侮辱现任或前任国家领导人”的那个网警。是他脑子里的低俗念头在诽谤现任或前任国家领导人。假如换一个网警，他没有像前一个网警这样去理解，那么这篇文章就无害了。</p>
<p>由此可见，我们的网络监察，简直比我们的法律制度还更加地“法无定法”！完全由网络监察人员主观判断。这种情形，比完全由软件来根据关键词进行过滤的错误手段更加可怕。因为已经不仅是监管你的思想，而且是由他按照他的想象来监管你的行为了，这是多么恐怖的事情？！要是这样也能变成我们法制的一部分，那么明天会不会你坐在家里闭目养神，一伙网警冲进你家里逮捕你，理由是你正在构思涉嫌危害国家安全的行为？？？假如真的有那一天，民皆不语，道路以目的时候，那样的后果是什么，中国历史上不是没有demo。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-06-04 -- <a href="http://wukangrui.net/2009/06/04/china-internet-law-in-wrong-way.html" title="中国互联网管理需要清醒一下找找方向">中国互联网管理需要清醒一下找找方向</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html" title="推迟的本质就是不了了之">推迟的本质就是不了了之</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" title="索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹">索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li><li>2009-06-24 -- <a href="http://wukangrui.net/2009/06/24/seven-ways-refuse-green-dam.html" title="七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠">七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠</a></li><li>2009-06-23 -- <a href="http://wukangrui.net/2009/06/23/china-websites-damned-google-spread-pornography-information.html" title="国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;">国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;</a></li><li>2009-06-16 -- <a href="http://wukangrui.net/2009/06/16/thinking-after-judgement-of-deng-yujiao.html" title="邓玉娇案尘埃落定之后">邓玉娇案尘埃落定之后</a></li><li>2008-05-19 -- <a href="http://wukangrui.net/2008/05/19/donate-patriotism-and-sulphur.html" title="捐款·爱国·流氓">捐款·爱国·流氓</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=19RrSIZ4OE0:sljWgfjLOF0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=19RrSIZ4OE0:sljWgfjLOF0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=19RrSIZ4OE0:sljWgfjLOF0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/19RrSIZ4OE0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html</feedburner:origLink></item>
		<item>
		<title>变形金刚2的重大教育意义</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/eMq8-AZiQv8/transformer-2-alternative-comment.html</link>
		<comments>http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 14:05:21 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[乱七八糟]]></category>
		<category><![CDATA[变形金刚]]></category>
		<category><![CDATA[思想]]></category>
		<category><![CDATA[电影]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html</guid>
		<description><![CDATA[我看到后面萨姆联系军方，要他们将擎天柱空运到他那里的时候，脑子里突然冒出一个奇怪的想法——要是美国有绿坝，他们就能及时把萨姆这个“不明真相”的群众“散布的谣言”过滤掉，也就不会造成一帮军人违令的“群体事件”了……]]></description>
			<content:encoded><![CDATA[<p><em>我看到后面萨姆联系军方，要他们将擎天柱空运到他那里的时候，脑子里突然冒出一个奇怪的想法——要是美国有绿坝，他们就能及时把萨姆这个“不明真相”的群众“散布的谣言”过滤掉，也就不会造成一帮军人违令的“群体事件”了……</em></p>
<p align="right"><em>——观看《变形金刚2》后的思想汇报 by <a href="http://wukangrui.net/" rel="license">小李刀刀</a></em></p>
<p> <span id="more-837"></span>
<p>很多人说看《变形金刚2》就是看效果看气氛听音响去的。我一向都很赞同这种观点，就是大场面的音效震撼的或者特效精彩的片子才值得去影院看。比如《非诚勿扰》我就挺后悔去影院里看的，虽然它确实是很不错的片子。不过《变形金刚2》的画面的确是让我有点眼花缭乱地看不过来了，但是我却觉得《变形金刚2》怎么好像在影射我们目前的局势呢？难道我在天朝待久了，不知不觉已经被CCAV洗脑了不成？</p>
<p>《变形金刚2》作为一副美国大片，美国元素是很突出的，最突出的当然就是平民英雄了。不过在以往的片子里面，如果有涉及对政府机关或者高层领导的讽刺的话，一般是会把他们放在反派的位置上，比如索马里维和战争为主题的电影往往是军方高层或者政治家下令屠杀平民，又比如《越狱》之类的电影就把“公司”塑造成为掌握国家权力的犯罪集团。而在《变形金刚2》里面，则给了高层一个愚蠢的闭门决策的白痴形象。</p>
<p>看一部科幻片居然是政治元素给我留下最深的印象，不知道是不是绿坝娘在作祟。那个有总统授权的白痴，在片子里每次出现的时候总是让我忍不住联想起天朝的某些机构。完全脱离实际情况乱决策乱主张，结果搞得灰头土脸还碍手碍脚。</p>
<p>《变形金刚2》里面真正引起我关注的其实不是萨姆，因为他做的事情只不过是代表他自己，有危险有贡献但其实没什么压力。结局不论是怎样也没人追究他的责任。我觉得真正胆大妄为的是巢穴部队的那帮军人。要知道在美国，总统同时也是军委主席，是部队的最高首长。可是在总统派来“全权代表”的时候，这帮军人居然没有进行任何串联的情况下，就开始默契地消极抵制他的命令，最后甚至发展到违抗了命令，把总统特使扔下飞机，把擎天柱空降在萨姆要求的地方，连后方的指挥部也立刻就对他们投入了支援行动，完全没有考虑到叛党叛国的严重政治问题。</p>
<p>我看到萨姆联系军方，要他们将擎天柱空运到他那里的时候，脑子里突然冒出一个奇怪的想法——要是美国有绿坝，他们就能及时把萨姆这个“不明真相”的群众“散布的谣言”过滤掉，也就不会造成一帮军人违令的“群体事件”了。</p>
<p>如此看来，美国的体制的确是大有问题。军队的思想政治工作严重不到位。他们实在应该多派人到天朝好好取点经。其实我们看到美国大片里的美国大兵都还是蛮有素质，蛮有信仰的。关键就是政府没做好引导工作，让他们产生了比较严重的自由化倾向，才会不断地在好莱坞片子里出现不服从上级甚至对抗上级的情况，甚至还有前线士兵违抗军令的情况。</p>
<p>而美国的媒体，居然把这一切当成是再正常不过的事情，可见这些缺乏组织领导和政治觉悟的新闻人，也都完全失去了资产阶级喉舌的本色，政府必须清醒地认识到并高度重视这一现象。作为一个对议员和广大资本家负责的政府，有责任加强对他们的监管，以免他们继续毒害美国的青少年。</p>
<p>从《变形金刚2》这部进口的教育片里，我们应该充分认识到：腐朽的资本主义制度下，政府缺乏凝聚力，军队缺乏战斗力，媒体缺乏社会责任感。因而他们总是不断地出现犯有严重个人英雄主义的不怀好意的煽动分子，甚至经常可以看到涉嫌颠覆国家安全的不法之徒，而美国极度不完善的法律体系，使得这些不法之徒总是逍遥法外，广大高层官员、议员长期深受其害。而这一切，都是资本主义制度的本质所决定的，是不可调和的，是不可避免的。随着历史的不断发展，这样的落后的严重阻碍生产力发展的社会制度，必将走向灭亡。</p>
<p>经过不断地思考和回味，现在我终于正确认识到《变形金刚2》这部电影的重大教育意义了。当然，我的认识还不深入，还很片面。在今后的学习工作中，我还需要不断地加深理论知识的学习，多向老同志们请教。也希望同志们对我肤浅的认识多多提出批评，帮助我不断进步。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-06-17 -- <a href="http://wukangrui.net/2009/06/17/comment-to-movie-terminato-salvation.html" title="终结者2018 &#8211; 故事未完">终结者2018 &#8211; 故事未完</a></li><li>2009-05-01 -- <a href="http://wukangrui.net/2009/05/01/comment-to-movie-nanjing.html" title="南京！南京">南京！南京</a></li><li>2008-11-04 -- <a href="http://wukangrui.net/2008/11/04/comment-to-movie-super-typhoon.html" title="冯小宁的理想化带来什么">冯小宁的理想化带来什么</a></li><li>2005-11-22 -- <a href="http://wukangrui.net/2005/11/22/movie-world-war-comment.html" title="《世界大战》">《世界大战》</a></li><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" title="一个小网警的龌龊思想">一个小网警的龌龊思想</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html" title="推迟的本质就是不了了之">推迟的本质就是不了了之</a></li><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" title="索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹">索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=eMq8-AZiQv8:KmZ6Gc4A50k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=eMq8-AZiQv8:KmZ6Gc4A50k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=eMq8-AZiQv8:KmZ6Gc4A50k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/eMq8-AZiQv8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html</feedburner:origLink></item>
		<item>
		<title>推迟的本质就是不了了之</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/Lu2IQjRwUTs/green-dam-delay-means-nothing.html</link>
		<comments>http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 12:11:11 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[指手划脚]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[绿坝]]></category>
		<category><![CDATA[评论]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html</guid>
		<description><![CDATA[7月1日之前我们说要看绿坝7月1日之后如何收场，如今我们要看看，这件绝对不应该不了了之的事情，会不会在我们这个神奇地过度，再一次奇迹般地不了了之。]]></description>
			<content:encoded><![CDATA[<p>工信部就是与众不同，连“答记者问”的发布都和其它部门不一样。不是记者问，发言人答的形式，而是FAQ的形式。尤其是最后一问尤其精彩，“<strong>七、有些厂商提出，绿色上网过滤软件预装起始日期是７月１日，时间仓促，准备不足。这个时间表是否可以推迟？</strong>”（参见中华人民共和国工业和信息化部官方网站的《<a href="http://www.miit.gov.cn/n11293472/n11293832/n11293907/n11368223/12433840.html" rel="nofollow external" target="_blank">工业和信息化部新闻发言人就绿色上网过滤软件问题答记者问</a>》，7月1日预装，6月30日才来问是否可以推迟，我们的厂商什么时候工作效率变得这么高了？如果发言人说“不预装”，那第二天会是什么样的状况呢？那些“时间仓促准备不足”的企业是等着被罚还是产品全部召回啊？</p>
<p> <span id="more-835"></span>
<p>从工信部自说自话地提出了“绿坝-花季护航”预装要求以来，来自国内外的质疑声的反对声就从来没断过。甚至连人民网都一度制作了“今天你绿坝了没有”的专题来反对，而财政部更是毫不给面子地宣布采购是由工信部独自进行的，保护自己的同时狠狠地给了工信部一耳光。而面对这一切，我们坚强的工信部坚决不出来做任何回应，不管是“纳税人”发出的预装绿坝违法的公开信，还是洋相闹到国际上以后的擦屁股，工信部都任凭风吹雨打我自闲庭信步。</p>
<p>我一度以为，这个事情会像备案制度一样，一直没效果但一直要搞下去。没想到他们还是没有我想像的那么坚强，居然在大家都搬着小凳子来看话剧的时候宣布罢演了。</p>
<p>推行绿坝，让万人所指，而最后关头声称的“推迟”则更让人看不起，不仅看不起，而且还要不停地质问下去。既然没有宣布取消，那就是软件的购买和使用依然是要执行的，那就是四千多万的共有财产还是要给那两家企业的。那么之前提出的一系列问题就不能仅仅以无限期地“推迟”直至不了了之来解决。作为政府采购项目，这个项目是否真的有必要？是否真的完全符合法律符合流程，整个过程中是否存在猫腻，是否存在腐败……这么多问题，除非宣布取消，否则是必须回答的。</p>
<p>工信部一直以来就是最喜欢拿着鸡毛当令箭，也最不拿纳税人利益和人民意志当回事的恶仆（我做为中华人民共和国公民，有正当职业，依法纳税，我可是国家主人的一份子，说自己的“公仆”是恶仆不过份吧？），为什么这么说？可以回想一下，从上个世纪90年代以来，工信部出台的法律法规通知要求，有哪一项进行了广泛的民意反馈？有哪一项进行了公开公正的听证？又有哪一项真正达到了其执行的目的？</p>
<p>也许恰恰是因为中国的IT产业发展迅速，也许恰恰正是因为中国的网民数量增长迅速，才让这个工信部自以为老子最牛，行政管理全凭闭门造车，一不看国家现行法律法规的规定、二不问人大政协的意见、三不公开征求人民群众的意见。键盘一敲，政策出台。如果不是这么随意乱搞，以绿坝这样粗制滥造的漏洞百出的东西，能变成4千多万的中标项目？</p>
<p>所以说，“推迟”只是借口，绿坝预装不论从法律上还是从效果上，又或者是从成本上，都是没有可能的。工信部闹出了这么大的笑话，把我们交纳的税款拿来过家家，这样的行为必须要给全国人民一个明确的交代。绝不能不了了之！</p>
<p>从另一个角度说，由于工信部的无能，选择了绿坝这个劣质产品，以至于在<a href="http://www.donews.com/Content/200906/f7c20db680cb44ca954ee4d0a00a6591.shtm" rel="external" target="_blank">侵犯知识产权</a>、<a href="http://www.blshe.com/trackback.php?id=399521" rel="external" target="_blank">侵犯人民隐私权和言论自由权</a>、在<a href="http://content.caixun.com/NE/01/e8/NE01e8pn.shtm" rel="external" target="_blank">违反WTO协议</a>等多个方面授人以柄，严重危害了国家利益；更让索尼这样的外国企业，摆出一副受害人的嘴脸，公然<a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" rel="prev" target="_blank">在产品免责声明里对我国的产品和法律进行恶搞</a>。如此严重的渎职行为，又岂是一句“推迟”能够掩盖过去的？</p>
<p>7月1日之前我们说要看绿坝7月1日之后如何收场，如今我们要看看，这件绝对不应该不了了之的事情，会不会在我们这个神奇地过度，再一次奇迹般地不了了之。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html" title="索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹">索尼恶搞工信部 &#8211; 绿坝犹如预装的定时炸弹</a></li><li>2009-06-24 -- <a href="http://wukangrui.net/2009/06/24/seven-ways-refuse-green-dam.html" title="七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠">七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" title="一个小网警的龌龊思想">一个小网警的龌龊思想</a></li><li>2009-06-23 -- <a href="http://wukangrui.net/2009/06/23/china-websites-damned-google-spread-pornography-information.html" title="国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;">国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;</a></li><li>2009-06-19 -- <a href="http://wukangrui.net/2009/06/19/green-dam-is-not-for-people.html" title="绿坝：初衷是好的就够了吗？">绿坝：初衷是好的就够了吗？</a></li><li>2009-06-04 -- <a href="http://wukangrui.net/2009/06/04/china-internet-law-in-wrong-way.html" title="中国互联网管理需要清醒一下找找方向">中国互联网管理需要清醒一下找找方向</a></li><li>2009-07-02 -- <a href="http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html" title="变形金刚2的重大教育意义">变形金刚2的重大教育意义</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=Lu2IQjRwUTs:5pbaoKylP_s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=Lu2IQjRwUTs:5pbaoKylP_s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=Lu2IQjRwUTs:5pbaoKylP_s:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/Lu2IQjRwUTs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html</feedburner:origLink></item>
		<item>
		<title>索尼恶搞工信部 – 绿坝犹如预装的定时炸弹</title>
		<link>http://feedproxy.google.com/~r/dvbhack/~3/Ank4Deg2o5w/sony-disclaimer-for-supply-green-dam.html</link>
		<comments>http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 11:59:52 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[指手划脚]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[绿坝]]></category>
		<category><![CDATA[评论]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html</guid>
		<description><![CDATA[我不禁想起以前在二外工作的时候，我同事的一句话：作为一个本来就不讨人喜欢的部门，要做出一项人人都满意的决策当然是很难的。但是要做出一个让涉及的各方都不满意的决策，恐怕也很不容易吧！工信部如今就做到了。做得非常彻底，就像过街老鼠。]]></description>
			<content:encoded><![CDATA[<p>据新浪科技讯，索尼在工信部通知要求的七月一日尚未到来之前，率先在自己品牌下的笔记本电脑中预置（只是预置在硬盘中，并未预装）了绿坝软件。但是更引起人们关注的，却是索尼随机文档中的一份关于绿坝软件的独立的免责声明。</p>
<p> <span id="more-834"></span>
<p align="center"><a href="http://file.wukangrui.com/attachments/2009/07/2009630122349.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2009630122349" border="0" alt="2009630122349" src="http://file.wukangrui.com/attachments/2009/07/2009630122349_thumb.jpg" width="354" height="439" /></a>&#160;</p>
<p>看惯了互联网上摆出一本正经地架势来搞一些荒谬事情的“恶搞”文化，你不得不感叹索尼的这一款免责声明实在是深得网络“恶搞”文化的精髓。引用声明中的部分文字如下：</p>
<blockquote><p>根据政府部门的相关要求，索尼做为PC厂商，按照与本软件供应商之间的协议，在中国大陆地区范围内向用户分发本软件。<strong>索尼不保证本软件的任何内容、功能、服务或其他特性的真实性、合法性、安全性、兼容性（包括但不限于与索尼或其关联公司或者第三方公司的任何产品或服务的兼容性）。对用户或其他任何第三方因为本软件引起的个人或身体损伤、财产损失或其他损失（包括但不限于对本PC的损失）的要求、诉状、索赔、诉讼、费用和其他责任（包括但不限于合理的律师费、专家费用和法律费用：修改、替换或者处理任何本软件有关的成本、费用和损害赔偿），由本软件供应商独资承担。索尼就此不承担任何责任。</strong></p>
</blockquote>
<p>虽然是小日本搞的，但是这段文字还是深得汉语博大精深的精髓，冠冕堂皇冷冰冰的文字背后，很清晰地表达出了“我们只是PC厂商，做这件事情实属无奈；冤有头债有主，各位上帝一定要相信我，我是无辜的，以后你千万别来找我啊……”（仅代表个人观点）。</p>
<p>虽然中国的网民和业主签霸王条款已经是家常便饭，不过相信任何人看到这段声明还是会倒吸一口冷气的。为什么？因为除了不承担造成不良后果的一切责任之外，索尼甚至连软件的“真实性、合法性、安全性、兼容性”完全不予保证，而且对于“个人或身体损害、财产损失或其它损失”也一概推给软件商。也就是说，索尼在不得不预置绿坝的同时，为了避免明知必然会发生的不良后果砸了自己的招牌，宁可先把软件商和工信部卖了。它的意思就是“明告诉你，这玩意儿是个三无产品，你用了它后果有多严重，只有天知道。”。</p>
<p>看了这篇免责声明，我总算是明白索尼为什么这么积极地预装了，这是跟其他PC厂商采取的不同的战略。在这次针对绿坝的应对手段上，我们现在已经能够看到的，有欧美厂商采取政治施压（美国和WTO的职责和反对）、有日本厂商采取先发制人（索尼），还有国内厂商采取拖延政策（联想、华硕等以需要进一步评估为理由），总的来说都是一样，不想合作。</p>
<p>我们欢迎这些厂商的不合作（虽然他们考虑的是自己的商业利益），我们尤其欢迎索尼这样的充满了草根精神和恶搞元素的不合作，在绿坝给我们带来的众多幽默元素中，又添上了浓浓的一笔。</p>
<p>我不禁想起以前在二外工作的时候，我同事的一句话：作为一个本来就不讨人喜欢的部门，要做出一项人人都满意的决策当然是很难的。但是要做出一个让涉及的各方都不满意的决策，恐怕也很不容易吧！工信部如今就做到了。做得非常彻底，就像过街老鼠。</p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-07-01 -- <a href="http://wukangrui.net/2009/07/01/green-dam-delay-means-nothing.html" title="推迟的本质就是不了了之">推迟的本质就是不了了之</a></li><li>2009-06-24 -- <a href="http://wukangrui.net/2009/06/24/seven-ways-refuse-green-dam.html" title="七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠">七条对策帮你摆脱&ldquo;绿坝&rdquo;的纠缠</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/we-naver-fear-any-dam.html" title="不管是什么颜色的&ldquo;坝&rdquo;我们都不怕">不管是什么颜色的&ldquo;坝&rdquo;我们都不怕</a></li><li>2009-06-28 -- <a href="http://wukangrui.net/2009/06/28/google-event-effection.html" title="google域名劫持事件的影响">google域名劫持事件的影响</a></li><li>2009-07-06 -- <a href="http://wukangrui.net/2009/07/06/china-cyblepolice-ridiculous-illegal-information-comments.html" title="到底谁被&ldquo;墙&rdquo;了">到底谁被&ldquo;墙&rdquo;了</a></li><li>2009-07-03 -- <a href="http://wukangrui.net/2009/07/03/china-cyblepolice-ridiculous-illegal-information.html" title="一个小网警的龌龊思想">一个小网警的龌龊思想</a></li><li>2009-06-23 -- <a href="http://wukangrui.net/2009/06/23/china-websites-damned-google-spread-pornography-information.html" title="国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;">国内媒体联合打击google是举国之力玩&ldquo;不正当竞争&rdquo;</a></li><li>2009-06-19 -- <a href="http://wukangrui.net/2009/06/19/green-dam-is-not-for-people.html" title="绿坝：初衷是好的就够了吗？">绿坝：初衷是好的就够了吗？</a></li><li>2009-06-04 -- <a href="http://wukangrui.net/2009/06/04/china-internet-law-in-wrong-way.html" title="中国互联网管理需要清醒一下找找方向">中国互联网管理需要清醒一下找找方向</a></li><li>2009-07-02 -- <a href="http://wukangrui.net/2009/07/02/transformer-2-alternative-comment.html" title="变形金刚2的重大教育意义">变形金刚2的重大教育意义</a></li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dvbhack?a=Ank4Deg2o5w:XubNuJFXje0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dvbhack?i=Ank4Deg2o5w:XubNuJFXje0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dvbhack?a=Ank4Deg2o5w:XubNuJFXje0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dvbhack?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dvbhack/~4/Ank4Deg2o5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://wukangrui.net/2009/07/01/sony-disclaimer-for-supply-green-dam.html</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 2.209 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-10 00:12:15 --><!-- Compression = gzip -->
