<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky7.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/index" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/index" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 03 Jul 2007 06:23:50 GMT</lastBuildDate><title>孙斌's Weblog</title><description>Niarevol</description><link>http://my.donews.com/niarevol</link><language>en</language><pubDate>Tue, 03 Jul 2007 06:23:50 GMT</pubDate><dc:date>2007-07-03T06:23:50Z</dc:date><dc:language>en</dc:language><item><title>Blog搬家了</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731905/1219225/1/item.html</link><content:encoded>&lt;p&gt;Blog搬家了！&lt;br /&gt;
终于受不了my.donews.com的blog服务了，现在简直是垃圾，不明白为什么换成WordPress2.0后总是出这样那样的错误，提交文章不成不说，最重要的是还会丢失文章。一个字——搬！&lt;br /&gt;
考察了一下三大门户的blog发现都差不多，不过看起来好像sohu的好些，但是由于一些注册名的原因，不采用他们的，至少，不作为主要的发布blog（做备份还行）&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
sina的rainbow686和niarevl都被注册&lt;br /&gt;
163的niarevol被注册，rainbow686是以前注册的还好被保留下来&lt;br /&gt;
sohu的rainibow686都被注册，只有niarevol没有被注册，因此幸存niarevol@sohu.com帐号&lt;br /&gt;
百度的niarevol在最开始就没有了，只剩下rainbow686&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
索性现在同步更新csdn，javaeye，msn，hi百度的blog，其中主要是CSDN的blog，当初离开是觉得他的blog不好用，不过现在不错，毕竟是技术社区啊。javaeye的也不错，msn和hi百度的作为blog镜像。&lt;br /&gt;
FeedSky的订阅地址(http://feed.feedsky.com/niarevol)我将转向CSDN的blog，今后的订阅用户看到的就是我在CSDN上发布的blog了。&lt;br /&gt;
CSDN : &lt;a href=&quot;http://blog.csdn.net/rainbow686/&quot;&gt;http://blog.csdn.net/rainbow686/&lt;/a&gt;&lt;br /&gt;
MSN  : &lt;a href=&quot;http://rainbow686.spaces.live.com/&quot;&gt;http://rainbow686.spaces.live.com/&lt;/a&gt;&lt;br /&gt;
javaeye: &lt;a href=&quot;http://rainbow686.javaeye.com/&quot;&gt;http://rainbow686.javaeye.com&lt;/a&gt;&lt;br /&gt;
hi百度 : &lt;a href=&quot;http://hi.baidu.com/rainbow686/&quot;&gt;http://hi.baidu.com/rainbow686/&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/07/03/post-070703-141805-544/feed/</wfw:commentRss><description>Blog搬家了！
终于受不了my.donews.com的blog服务了，现在简直是垃圾，不明白为什么换成WordPress2.0后总是出这样那样的错误，提交文章不成不说，最重要的是还会丢失文章。一个字——搬！
考察了...</description><category>pop up</category><pubDate>Tue, 03 Jul 2007 14:23:50 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/07/03/post-070703-141805-544/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/07/03/post-070703-141805-544/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/07/03/post-070703-141805-544/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731905/1219225</fs:itemid></item><item><title>在Ibatis中调用存储过程或存储的函数</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731906/1219225/1/item.html</link><content:encoded>&lt;p&gt;在Ibatis中调用存储过程或存储的函数。&lt;br /&gt;
和调用sql语句不同的是需要设置入参和出参&lt;br /&gt;
这篇文章已经说的很详细了。&lt;br /&gt;
&lt;a href=&quot;http://www.delphibbs.com/keylife/iblog_show.asp?xid=28107&quot; title=&quot;http://www.delphibbs.com/keylife/iblog_show.asp?xid=28107&quot;&gt;http://www.delphibbs.com/keylife/iblog_show.asp?xid=28107&lt;/a&gt;&lt;br /&gt;
可是我配置的时候确怎么也得不到正确的结果，错误大致是“记录数太多”，查询了很多资料才发现原来Ibatis2.2之前是不支持存储过程返回CURSOR，所以请需要使用Ibatis调用存储过程并且获取记录集游标的同学注意了。下面帖一个我的配置：&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
&amp;lt;!&amp;#8211; 获取用户列表 &amp;#8211;&amp;gt;&lt;br /&gt;
&amp;lt;resultMap id=&amp;#8221;rm_out_getUserList&amp;#8221;&lt;br /&gt;
class=&amp;#8221;&lt;span&gt;java.util.HashMap&lt;/span&gt;&amp;#8220;&amp;gt;&lt;br /&gt;
&amp;lt;result property=&amp;#8221;id&amp;#8221; column=&amp;#8221;id&amp;#8221; /&amp;gt;&lt;br /&gt;
&amp;lt;result property=&amp;#8221;name&amp;#8221; column=&amp;#8221;name&amp;#8221;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&amp;lt;result property=&amp;#8221;gname&amp;#8221; column=&amp;#8221;gname&amp;#8221;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&amp;lt;result property=&amp;#8221;cname&amp;#8221; column=&amp;#8221;cname&amp;#8221;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&amp;lt;/resultMap&amp;gt;&lt;br /&gt;
&amp;lt;parameterMap id=&amp;#8221;pm_in_getUserList&amp;#8221;&lt;br /&gt;
class=&amp;#8221;java.util.Map&amp;#8221;&amp;gt;&lt;br /&gt;
&amp;lt;parameter property=&amp;#8221;result&amp;#8221;&lt;br /&gt;
jdbcType=&amp;#8221;ORACLECURSOR&amp;#8221; javaType=&amp;#8221;java.sql.ResultSet&amp;#8221; mode=&amp;#8221;OUT&amp;#8221;&lt;br /&gt;
resultMap=&amp;#8221;rm_out_getUserList&amp;#8221; /&amp;gt;&lt;br /&gt;
&amp;lt;parameter property=&amp;#8221;p_name&amp;#8221;&lt;br /&gt;
jdbcType=&amp;#8221;VARCHAR2&amp;#8243; javaType=&amp;#8221;java.lang.String&amp;#8221; mode=&amp;#8221;IN&amp;#8221; /&amp;gt;&lt;br /&gt;
&amp;lt;parameter property=&amp;#8221;p_gname&amp;#8221;&lt;br /&gt;
jdbcType=&amp;#8221;VARCHAR2&amp;#8243; javaType=&amp;#8221;java.lang.String&amp;#8221; mode=&amp;#8221;IN&amp;#8221; /&amp;gt;&lt;br /&gt;
&amp;lt;parameter property=&amp;#8221;p_cname&amp;#8221;&lt;br /&gt;
jdbcType=&amp;#8221;VARCHAR2&amp;#8243; javaType=&amp;#8221;java.lang.String&amp;#8221; mode=&amp;#8221;IN&amp;#8221; /&amp;gt;&lt;br /&gt;
&amp;lt;/parameterMap&amp;gt;&lt;br /&gt;
&amp;lt;procedure id=&amp;#8221;getUserList&amp;#8221;&lt;br /&gt;
parameterMap=&amp;#8221;pm_in_getUserList&amp;#8221;&amp;gt;&lt;br /&gt;
{? = call PCK_USER.F_GET_USER(?,?,?)}&lt;br /&gt;
&amp;lt;/procedure&amp;gt;&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
绿色部分要注意（配置的第一行），如果是要将结果集以map形式返回，一定要写HashMap。&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/06/29/post-070629-115208-522/feed/</wfw:commentRss><description>在Ibatis中调用存储过程或存储的函数。
和调用sql语句不同的是需要设置入参和出参
这篇文章已经说的很详细了。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=28107
可是我配置的时候确怎么也得不到...</description><category>Java</category><pubDate>Fri, 29 Jun 2007 11:53:31 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/06/29/post-070629-115208-522/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/06/29/post-070629-115208-522/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/06/29/post-070629-115208-522/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731906/1219225</fs:itemid></item><item><title>gmail中又添新服务了</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731907/1219225/1/item.html</link><content:encoded>&lt;p&gt;gmail中又添新服务了。&lt;br /&gt;
&lt;img src=&quot;http://farm1.static.flickr.com/212/502733920_b0181fb0eb.jpg?v=0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在more下面列出了更多的服务，可以尝试一下哦。&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/05/18/post-070518-094844-486/feed/</wfw:commentRss><description>gmail中又添新服务了。

在more下面列出了更多的服务，可以尝试一下哦。...</description><category>google</category><pubDate>Fri, 18 May 2007 09:50:43 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/05/18/post-070518-094844-486/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/05/18/post-070518-094844-486/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/05/18/post-070518-094844-486/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731907/1219225</fs:itemid></item><item><title>如何在IBatis中使用BLOB和CLOB</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731908/1219225/1/item.html</link><content:encoded>&lt;p&gt;下面有一个例子在Ibatis中使用Custom Type Handler (CTH)操作BLOB（二进制字节）和CLOB（字符类型）数据类型。Ibatis2.09后提供了对BLOB和CLOB的支持，下面的例子是 oracle上的但也可以用于任何支持Jdbc的数据库。如果用oracle你需要使用最新的ojbc14.jar。&lt;/p&gt;
&lt;p&gt;&lt;span&gt;创建表：&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;
&lt;p class=&quot;codeHeader&quot;&gt;&lt;strong&gt;Report.sql&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codeContent&quot;&gt;
&lt;pre&gt;REPORT {
        id              varchar2(5),
        name            varchar2(25),
        description     varchar2(1000),
        data            BLOB
}&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;创建表对应的POJO：&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;
&lt;p class=&quot;codeHeader&quot;&gt;&lt;strong&gt;Report.java&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codeContent&quot;&gt;
&lt;pre&gt;/*
 * Report.java
 *
 * Created on March 23, 2005, 11:00 AM
 */
&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt; reporting.viewer.domain;

/**
 *
 * @author Nathan Maves
 */
&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class Report {

    /**
     * Holds value of property id.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; id;
    /**
     * Holds value of property name.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; name;
    /**
     * Holds value of property description.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; id;
    /**
     * Holds value of property data.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;byte&lt;/span&gt;[] data;

    &lt;span class=&quot;code-comment&quot;&gt;//Standard accessors and mutators
&lt;/span&gt;
   &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;byte&lt;/span&gt;[] getData() {
       &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.data;
   }

   &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void setData(&lt;span class=&quot;code-object&quot;&gt;byte&lt;/span&gt;[] data) {
       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.data = data;
   }
}&lt;/pre&gt;
&lt;p&gt;iBatis配置文件：&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;
&lt;p class=&quot;codeHeader&quot;&gt;&lt;strong&gt;Report.xml&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codeContent&quot;&gt;
&lt;pre&gt;&amp;lt;typeAlias alias=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;Report&amp;#8221;&lt;/span&gt; type=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;reporting.viewer.domain.Report&amp;#8221;&lt;/span&gt;/&amp;gt;

&lt;span&gt;&amp;lt;resultMap class=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;Report&amp;#8221;&lt;/span&gt;&lt;span&gt; id=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;ReportResult&amp;#8221;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;        &amp;lt;result column=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;id&amp;#8221;&lt;/span&gt;&lt;span&gt; property=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;id&amp;#8221;&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;        &amp;lt;result column=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;name&amp;#8221;&lt;/span&gt;&lt;span&gt; property=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;name&amp;#8221;&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;        &amp;lt;result column=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;description&amp;#8221;&lt;/span&gt;&lt;span&gt; property=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;description&amp;#8221;&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;        &lt;span&gt;&amp;lt;result column=&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;data&amp;#8221;&lt;/span&gt;&lt;span&gt; property=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;data&amp;#8221;&lt;/span&gt;&lt;span&gt; jdbcType=&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;&lt;span&gt;BLOB&lt;/span&gt;&amp;#8220;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/resultMap&amp;gt;&lt;/span&gt;

&amp;lt;select id=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;getReportById&amp;#8221;&lt;/span&gt; parameterClass=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;string&amp;#8221;&lt;/span&gt; resultMap=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;ReportResult&amp;#8221;&lt;/span&gt;&amp;gt;
        SELECT
            *
        FROM
            REPORT
        WHERE
            id = #value#
&amp;lt;/select&amp;gt;

&amp;lt;insert id=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;insertReport&amp;#8221;&lt;/span&gt; parameterClass=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;Report&amp;#8221;&lt;/span&gt;&amp;gt;
        INSERT INTO
            REPORT (
                id,
                name,
                description,
                data
                )
            values (
                #id#,
                #name#,
                #description#,
                #data#
            )
&amp;lt;/insert&amp;gt;

&amp;lt;update id=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;updateReport&amp;#8221;&lt;/span&gt; parameterClass=&lt;span class=&quot;code-quote&quot;&gt;&amp;#8220;Report&amp;#8221;&lt;/span&gt;&amp;gt;
        UPDATE REPORT set
                name = #name#,
                description = #description#,
                data = #data#
        WHERE
                id = #id#
&amp;lt;/update&amp;gt;&lt;/pre&gt;
&lt;p&gt;就这么多ok。&lt;br /&gt;
更多请看http://opensource.atlassian.com/confluence/oss/display/IBATIS/How+do+I+use+a+BLOB+or+CLOB&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/05/11/post-070511-183426-941/feed/</wfw:commentRss><description>下面有一个例子在Ibatis中使用Custom Type Handler (CTH)操作BLOB（二进制字节）和CLOB（字符类型）数据类型。Ibatis2.09后提供了对BLOB和CLOB的支持，下面的例子是 oracle上的但也可以用于任何支持Jdbc的数...</description><category>New Incoming</category><category>Java</category><pubDate>Fri, 11 May 2007 18:35:44 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/05/11/post-070511-183426-941/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/05/11/post-070511-183426-941/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/05/11/post-070511-183426-941/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731908/1219225</fs:itemid></item><item><title>svchost.exe占CPU 100%的解决方法</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731909/1219225/1/item.html</link><content:encoded>&lt;p&gt;&lt;span class=&quot;post-footers&quot;&gt;作者：&lt;a href=&quot;http://www.chedong.com/&quot;&gt;车东&lt;/a&gt; 发表于：2007-04-15 12:04 最后更新于：2007-05-07 09:05&lt;br /&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/deed.zh&quot;&gt;版权声明&lt;/a&gt;：可以任意转载，转载时请务必以超链接形式标明文章&lt;a href=&quot;http://www.chedong.com/blog/archives/001286.html&quot; class=&quot;permalink&quot;&gt;原始出处&lt;/a&gt;和作者信息及&lt;a href=&quot;http://www.chedong.com/blog/archives/001249.html&quot;&gt;本版权声明&lt;/a&gt;。&lt;br /&gt;
&lt;a href=&quot;http://www.chedong.com/blog/archives/001286.html&quot; class=&quot;permalink&quot;&gt;http://www.chedong.com/blog/archives/001286.html&lt;/a&gt; &lt;/span&gt; &lt;hr /&gt;&lt;/p&gt;
&lt;p class=&quot;entry&quot;&gt;
&lt;p class=&quot;entry-content&quot;&gt;
&lt;p class=&quot;entry-body&quot;&gt;         现象：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;           机器启动运行几分钟后 svchost.exe就会占系统cpu资源的100%&lt;/li&gt;
&lt;li&gt;           拔掉网线就好了，重连上网后一会儿：svchost.exe又占cpu资源的99%；&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;解决：&lt;/p&gt;
&lt;p&gt;假设你已经使用了&lt;a href=&quot;http://www.chedong.com/blog/archives/000741.html&quot;&gt;免费杀毒软件&lt;/a&gt;排除了病毒和已经使用&lt;a href=&quot;http://www.microsoft.com/athome/security/spyware/software/default.mspx&quot;&gt;防间谍软件&lt;/a&gt;排除了恶意软件的影响：&lt;strong&gt;&lt;br /&gt;
想办法清空C:\WINDOWS\SoftwareDistribution 目录下所有的文件重启机器即可&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;如果机器提示文件正在使用（&amp;#8221;Automatic Updates&amp;#8221;服务正在运行）无法删除相应目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;           则想办法打开控制面板==&amp;gt;管理工具==&amp;gt;服务，找到&amp;#8221;Automatic Updates&amp;#8221;，设置成手动启动，&lt;/li&gt;
&lt;li&gt;           重启后再删除 C:\WINDOWS\SoftwareDistribution。问题就解决了。&lt;/li&gt;
&lt;li&gt;           然后再打开控制面板==&amp;gt;管理工具==&amp;gt;服务，找到&amp;#8221;Automatic Updates&amp;#8221;，恢复成自动启动重启。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;注意：重启后最好在上网条件比较好的地方让系统顺利完成一次系统自动更新。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;推广： 遇到&lt;a href=&quot;http://www.chedong.com/blog/archives/001117.html&quot;&gt;类似问题&lt;/a&gt;的应该挺多的，如果你也发现这个方法有用，请将 &lt;a href=&quot;http://www.chedong.com/blog/archives/001286.html&quot; title=&quot;svchost&quot;&gt;http://www.chedong.com/blog/archives/001286.html&lt;/a&gt;&lt;br /&gt;
这个链接加到你的blog里。&lt;br /&gt;
html代码： &amp;lt;a xhref=&amp;#8221;http://www.chedong.com/blog/archives/001286.html&amp;#8221;&amp;gt;svchost.exe&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p class=&quot;entry-more&quot;&gt;         原因分析：&lt;/p&gt;
&lt;p&gt;先说说什么是svchost.exe：简单的说没有这个服务机器几乎就上不了网了。很多应用服务都是以来于这个接口RPC的，如果发现这个进程占了太多的CPU资源，&lt;/p&gt;
&lt;p&gt;&lt;em&gt;直接把系统的RPC服务禁用了会是一场灾难：因为连恢复这个界面的系统服务设置界面都无法使用了。恢复的方法需要&lt;strong&gt;使 用注册表编辑器，找到 HKEY_LOCAL_MACHINE &amp;gt;&amp;gt; SYSTEM &amp;gt;&amp;gt; CurrentControlSet &amp;gt;&amp;gt; Services &amp;gt;&amp;gt; RpcSs, 右侧找到Start属性，把它的值改为2再重启即可&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;造成svchost占系统CPU 100%的原因并非svchost服务本身：以上的情况是由于Windows Update服务下载/安装失败而导致更新服务反复重试造成的。而Windows的自动更新也是依赖于svchost服务的一个后台应用，从而表现为 svchost.exe负载极高。 常发生这类问题的机器一般是上网条件（尤其是去国外网站）不稳定的机器，比如家里的父母的机器，往往在安装机器几个月以后不定期发生，每个月的第二个星期 是高发期：因为最近几年MS很有规律的在每个月的第二个星期发布补丁程序）。&lt;/p&gt;
&lt;p&gt;上面的解决方法并不能保证不重发作，但是为了svchost文件而每隔几个月重装一次操作系统还是太浪费时间了。&lt;/p&gt;
&lt;p&gt;教训：&lt;a href=&quot;http://www.chedong.com/blog/archives/001117.html&quot; title=&quot;spoolsv.exe&quot;&gt;spoolsv.exe&lt;/a&gt;和svchost.exe的问题都是应用遇到失败/例外情况后自动重试造成的，本想为用户节省时间的设计，但是重试的频度过高反而导致了和病毒一样的效果。&lt;/p&gt;
&lt;p&gt;参考资料:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;           &lt;a href=&quot;http://forums.microsoft.com/WindowsOneCare/ShowPost.aspx?PostID=906329&amp;amp;SiteID=2&quot; title=&quot;svchost.exe&quot;&gt;&lt;span class=&quot;forumName&quot;&gt;svchost.exe CPU Usage 100%, when my Windows using Automatic Update&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;           &lt;a href=&quot;http://www.yannicafe.info/wp/2007/02/18/61.html&quot;&gt;svchost.exe 吃掉所有 CPU 資源&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;           &lt;a href=&quot;http://support.microsoft.com/kb/932494/zh-cn&quot;&gt;微软官方说明： 使用“自动更新”搜索更新或对使用 Windows Installer 的应用程序应用更新时，遇到涉及 Svchost.exe 进程的问题&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/05/11/post-070511-093330-916/feed/</wfw:commentRss><description>作者：车东 发表于：2007-04-15 12:04 最后更新于：2007-05-07 09:05
版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/0012...</description><category>New Incoming</category><pubDate>Fri, 11 May 2007 09:34:44 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/05/11/post-070511-093330-916/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/05/11/post-070511-093330-916/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/05/11/post-070511-093330-916/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731909/1219225</fs:itemid></item><item><title>股市&amp;烧饼</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731910/1219225/1/item.html</link><content:encoded>&lt;p&gt;先帖一段&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;假设一个市场，有两个人在卖烧饼，有且只有两个人，姑且称他们为烧饼甲、烧饼乙。&lt;br /&gt;
假设他们的烧饼价格没有物价局监管。&lt;br /&gt;
假设他们每个烧饼卖一元钱就可以保本（包括他们的劳动力价值）&lt;br /&gt;
假设他们的烧饼数量一样多。&lt;br /&gt;
——经济模型都这样，假设需要很多。&lt;br /&gt;
再假设他们生意很不好，一个买烧饼的人都没有。这样他们很无聊地站了半天。&lt;br /&gt;
甲说好无聊。&lt;br /&gt;
乙说好无聊。&lt;br /&gt;
看故事的你们说：好无聊。&lt;br /&gt;
这个时候的市场叫做很不活跃！&lt;br /&gt;
为了让大家不无聊，甲对乙说：要不我们玩个游戏？乙赞成。&lt;br /&gt;
于是，故事开始了。。。。。。&lt;br /&gt;
甲花一元钱买乙一个烧饼，乙也花一元钱买甲一个烧饼，现金交付。&lt;br /&gt;
甲再花两元钱买乙一个烧饼，乙也花两元钱买甲一个烧饼，现金交付。&lt;br /&gt;
甲再花三元钱买乙一个烧饼，乙也花三元钱买甲一个烧饼，现金交付。&lt;br /&gt;
。。。。。。&lt;/p&gt;
&lt;p&gt;于是在整个市场的人看来（包括看故事的你）烧饼的价格飞涨，不一会儿就涨到了每个烧饼60元。但只要甲和乙手上的烧饼数一样，那么谁都没有赚钱，谁也没有亏钱，但是他们重估以后的资产“增值”了！甲乙拥有高出过去很多倍的“财富”，他们身价提高了很多，“市值”增加了很多。&lt;br /&gt;
这个时候有路人丙，一个小时前路过的时候知道烧饼是一元一个，现在发现是60元一个，他很惊讶。&lt;br /&gt;
一个小时以后，路人丙发现烧饼已经是100元一个，他更惊讶了。&lt;br /&gt;
又一个小时以后，路人丙发现烧饼已经是120元一个了，他毫不犹豫地买了一个，因为他是个投资兼投机家，他确信烧饼价格还会涨，价格上还有上升空间，并且有人给出了超过200元的“目标价”（在股票市场，他叫股民，给出目标价的人叫研究员）。&lt;br /&gt;
在烧饼甲、烧饼乙“赚钱”的示范效应下，甚至路人丙赚钱的示范效应下，接下来的买烧饼的路人越来越多，参与买卖的人也越来越多，烧饼价格节节攀升，所有的人都非常高兴，因为很奇怪：所有人都没有亏钱。。。。。。&lt;br /&gt;
这个时候，你可以想见，甲和乙谁手上的烧饼少，即谁的资产少，谁就真正的赚钱了。参与购买的人，谁手上没烧饼了，谁就真正赚钱了！而且卖了的人都很后悔——因为烧饼价格还在飞快地涨。。。。。。&lt;br /&gt;
那谁亏了钱呢？&lt;br /&gt;
答案是：谁也没有亏钱，因为很多出高价购买烧饼的人手上持有大家公认的优质等值资产——烧饼！而烧饼显然比现金好！现金存银行能有多少一点利息啊？哪比得上价格飞涨的烧饼啊？甚至大家一致认为市场烧饼供不应求，可不可以买烧饼期货啊？于是出现了认购权证。。。。。。&lt;br /&gt;
有人问了：买烧饼永远不会亏钱吗？看样子是的。但这个世界就那么奇怪，突然市场上来了一个叫李子的，李子曰：有亏钱的时候！那哪一天大家会亏钱呢？&lt;br /&gt;
假设一：市场上来了个物价部门，他认为烧饼的定价应该是每个一元。（监管）&lt;br /&gt;
假设二：市场出现了很多做烧饼的，而且价格就是每个一元。（同样题材）&lt;br /&gt;
假设三：市场出现了很多可供玩这种游戏的商品。（发行）&lt;br /&gt;
假设四：大家突然发现这不过是个烧饼！（价值发现）&lt;br /&gt;
假设五：没有人再愿意玩互相买卖的游戏了！（真相大白）&lt;br /&gt;
如果有一天，任何一个假设出现了，那么这一天，有烧饼的人就亏钱了！那谁赚了钱？就是最少占有资产——烧饼的人！&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/04/28/post-070428-095144-498/feed/</wfw:commentRss><description>先帖一段
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;
假设一个市场，有两个人在卖烧饼，有且只有两个人，姑且称他们为烧饼甲、烧饼乙。
假设他们的烧饼价格没有物价...</description><category>New Incoming</category><category>pop up</category><pubDate>Sat, 28 Apr 2007 09:58:15 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/04/28/post-070428-095144-498/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/04/28/post-070428-095144-498/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/04/28/post-070428-095144-498/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731910/1219225</fs:itemid></item><item><title>请问我的好友列表到哪里去了？</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731911/1219225/1/item.html</link><content:encoded>&lt;p&gt;一段时间没有更新blog了，今天上来想加一个好友的blog链接，可是他却不见了，登录后台，发现侧边栏的管理很混乱啊，我怎么改啊？还有blogroll怎么才能显示在我的侧边栏？&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/04/27/post-070427-174418-867/feed/</wfw:commentRss><description>一段时间没有更新blog了，今天上来想加一个好友的blog链接，可是他却不见了，登录后台，发现侧边栏的管理很混乱啊，我怎么改啊？还有blogroll怎么才能显示在我的侧边栏？...</description><category>Blogroll</category><pubDate>Fri, 27 Apr 2007 17:46:29 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/04/27/post-070427-174418-867/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/04/27/post-070427-174418-867/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/04/27/post-070427-174418-867/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731911/1219225</fs:itemid></item><item><title>杂</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731912/1219225/1/item.html</link><content:encoded>&lt;p&gt;每天上班下班，每天重复的生活，每天不算紧张的工作，按月领着薪水。这是我最近的生活，可能也是大多数人的生活。无聊但又必须。&lt;/p&gt;
&lt;p&gt;我不是一个喜欢平淡的人，但很多时候我又不想为我不平淡的理想付出。也许这就是矛盾，也许这也是大多数人的一个问题。&lt;/p&gt;
&lt;p&gt;前进，也许有时候不是因为他懒惰而不去前进，有时候是不知道该如何去迈出前进的一步。&lt;/p&gt;
&lt;p&gt;回想起在学校我对这个世界的看法，和现在的看法，差别很大，太大。而我现在的看法又和真实的世界有多大距离呢，我无从得知，可能没有人知道。&lt;/p&gt;
&lt;p&gt;现实使人们学会如何去面对他，去接受他，或者去改变他。我属于哪一种呢？说实话我很迷惑，也许都有吧，生活就是学会在现实中去斡旋。&lt;/p&gt;
&lt;p&gt;很想有些一步到位的想法，可是想法却几乎是每天都在改变，也许这就是在进步。一成不变是不可能的。&lt;/p&gt;
&lt;p&gt;希望几年后我对这些问题有不同的看法和更加精彩的解释。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/03/05/%e6%9d%82/feed/</wfw:commentRss><description>每天上班下班，每天重复的生活，每天不算紧张的工作，按月领着薪水。这是我最近的生活，可能也是大多数人的生活。无聊但又必须。
我不是一个喜欢平淡的人，但很多时候我又不想为我不...</description><category>New Incoming</category><category>pop up</category><pubDate>Mon, 05 Mar 2007 18:27:07 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/03/05/%e6%9d%82/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/03/05/%e6%9d%82/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/03/05/%e6%9d%82/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731912/1219225</fs:itemid></item><item><title>方向：转贴</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731913/1219225/1/item.html</link><content:encoded>&lt;p&gt;很有意思，原文地址&lt;a href=&quot;http://www.javaeye.com/topic/52335&quot;&gt;http://www.javaeye.com/topic/52335&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;方向&lt;/p&gt;
&lt;p&gt;（2006年9月26日 写在废纸上的胡思乱想）&lt;/p&gt;
&lt;p&gt;现在的我没有方向？真的没有方向。&lt;br /&gt;&amp;#8220;再就业&amp;#8221;快两个月了，两个月里面我做了些什么？工作，轻松的工作。&lt;br /&gt;工作异常的轻松，没有加班也没有太严格的时间限制。&lt;br /&gt;真的很轻松，真的轻松吗？轻松的工作，心为什么这么累。&lt;br /&gt;心为什么这么累?&lt;br /&gt;人说：书写是自己与自己的对话。&lt;br /&gt;此时，我问我的心：为什么这么累？&lt;br /&gt;心说：没有方向&lt;br /&gt;我问：我的方向在那里？&lt;br /&gt;心说：不知道，但是我本着心的职责告诉你&amp;#8211;你真的没有方向&lt;br /&gt;混乱、迷失&amp;#8230;&lt;br /&gt;在我与我的心的对话中都得不到一个确切得答案。&lt;br /&gt;似乎&amp;#8230;有些逻辑错误&amp;#8230;&lt;br /&gt;看来，我真得没有方向。&lt;br /&gt;&amp;#8220;我的方向在那?&amp;#8221;&lt;br /&gt;我把问题告诉我正在敲打键盘的手。&lt;br /&gt;手说：肯定不在上面那些无里头的文字里。&lt;br /&gt;我问：我的方向在那里？&lt;br /&gt;手，有点不听使唤。近似疯狂的速度敲击键盘。&lt;br /&gt;我呵斥道：嘿！伙计，我的方向在那里？&lt;br /&gt;手，沉默！&lt;br /&gt;注视着我的手，手依旧沉默。&lt;br /&gt;我无趣的抬头，短暂晕眩，密密麻麻的一片。&lt;br /&gt;整屏的System.out.println（#$%^&amp;amp;*);&lt;br /&gt;达芬奇秘密，我清醒时的第一反映。&lt;br /&gt;我问手：这是什么意思？&lt;br /&gt;手说：你的工作&lt;br /&gt;我强调：我的方向在那？&lt;br /&gt;手，又一次沉默。&lt;br /&gt;我有些沮丧，想哭&amp;#8230;&lt;br /&gt;喃喃：轻松的工作，心累？心，为什么会累？&lt;br /&gt;我感性的心和我赖以为生的手没能给我答案。&lt;br /&gt;谁？谁能给我答案？&lt;br /&gt;筋疲力尽,眼皮开始亲热&amp;#8230;&lt;br /&gt;似乎是梦。&lt;br /&gt;梦中，好多人和我说话。&lt;br /&gt;他们把我围在里面，喃喃的和我说话。&lt;br /&gt;看不清是谁，却一刻不停&lt;br /&gt;我有些浮躁，想努力的摆脱他们的包围。&lt;br /&gt;徒劳，一次一次的徒劳&amp;#8230;&lt;br /&gt;我有些愤怒，大声的喊：Quietly！&lt;br /&gt;不知是我声音太小，还是底气不足，他们依旧喃喃&lt;br /&gt;我近乎绝望，又无力抗拒，他们依旧喃喃&lt;br /&gt;心，我的心。越来越重&amp;#8230;越来越累&amp;#8230;&lt;br /&gt;渐渐迷睡。&lt;br /&gt;我也喃喃：心，怎么会累？&lt;br /&gt;猛的醒来，他们依旧喃喃。话语却清晰可辩.&lt;br /&gt;&amp;#8230;&lt;br /&gt;&amp;#8220;&amp;#8230;不会C，我觉得就像手里面少把刷子&amp;#8230;;不过没关系，就你应该学起来快&amp;#8230;&amp;#8221;&lt;br /&gt;&amp;#8220;&amp;#8230;Hibernate就是好用，多对多的表操作一条语句就可以搞定&amp;#8230;&amp;#8221;&lt;br /&gt;&amp;#8220;&amp;#8230;小伙，有前途啊，好好学。Linux很有前途的&amp;#8221;&lt;br /&gt;&amp;#8220;&amp;#8230;怎么还在用JB啊，现在是Java程序员都会用Eclipes了&amp;#8230;&amp;#8221;&lt;br /&gt;&amp;#8230;&lt;br /&gt;&amp;#8220;&amp;#8230;你们项目用什么架构啊？什么，什么也不用&amp;#8230; 晕！..我们现在的项目用Struts＋Spring＋&lt;br /&gt;Hibernate＋EJB ^_^&amp;#8221;&lt;br /&gt;&amp;#8220;&amp;#8230;你们也用WebService啊？用Apache Soap那只能说才入门 &amp;#8230; 呵呵&amp;#8221;&lt;br /&gt;&amp;#8230;&lt;br /&gt;&amp;#8220;&amp;#8230;要想考研的就要好好看书，特别是英语。你什么时候开始复习高数啊&amp;#8230;&amp;#8221;&lt;br /&gt;&amp;#8230; &amp;#8230;&lt;br /&gt;话语如风，轻抚而过。心如海洋，波澜涌动。风四方起，海水无方向。&lt;br /&gt;我似有触动问：我的方向在那里？&lt;br /&gt;四周寂静，他们不见了。&lt;br /&gt;手和心强烈抗议道：没见眼皮如漆似胶了吗？你忍心吗？&lt;br /&gt;该睡觉了，梦里我喃喃道：我的方向在那里？&lt;br /&gt;我的朋友请告诉我。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/02/05/lcozGxKOBzvfiTpMWTRvTtxLzHeiRzYdBmDi/feed/</wfw:commentRss><description>很有意思，原文地址http://www.javaeye.com/topic/52335

方向
（2006年9月26日 写在废纸上的胡思乱想）
现在的我没有方向？真的没有方向。&amp;#8220;再就业&amp;#8221;快两个月了，两个月里面我做了些什么？工...</description><category>emotion</category><category>New Incoming</category><category>pop up</category><pubDate>Mon, 05 Feb 2007 18:15:11 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/02/05/lcozGxKOBzvfiTpMWTRvTtxLzHeiRzYdBmDi/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/02/05/lcozGxKOBzvfiTpMWTRvTtxLzHeiRzYdBmDi/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/02/05/lcozGxKOBzvfiTpMWTRvTtxLzHeiRzYdBmDi/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731913/1219225</fs:itemid></item><item><title>居然还有9个人订阅我的blog</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731914/1219225/1/item.html</link><content:encoded>&lt;p&gt;早晨一来不小心看到了&lt;a href=&quot;http://my.donews.com/niarevol&quot; target=&quot;_blank&quot;&gt;我的blog&lt;/a&gt;，居然还有9个人订阅哈哈，值得庆贺，以前最多的时候可是有50个人啊。不过那个时候的数据多半是错误的，rojo占据的大部分，而现在的9个人中有6个来自抓虾，2个&lt;a href=&quot;http://www.bloglines.com/&quot; target=&quot;_blank&quot;&gt;bloglines&lt;/a&gt;，1个&lt;a href=&quot;http://reader.google.com/&quot; target=&quot;_blank&quot;&gt;google reader&lt;/a&gt;，不过我敢肯定的是用google reader订阅我的一定不止一个，呵呵9个人的订阅数可是含金量很高的哦。&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/02/02/FlkZZcNaoZybAzEoVXIBTWdABdgOhlRNwbNv/feed/</wfw:commentRss><description>早晨一来不小心看到了我的blog，居然还有9个人订阅哈哈，值得庆贺，以前最多的时候可是有50个人啊。不过那个时候的数据多半是错误的，rojo占据的大部分，而现在的9个人中有6个来自抓虾，2...</description><category>New Incoming</category><category>pop up</category><pubDate>Fri, 02 Feb 2007 09:12:10 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/02/02/FlkZZcNaoZybAzEoVXIBTWdABdgOhlRNwbNv/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/02/02/FlkZZcNaoZybAzEoVXIBTWdABdgOhlRNwbNv/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/02/02/FlkZZcNaoZybAzEoVXIBTWdABdgOhlRNwbNv/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731914/1219225</fs:itemid></item><item><title>苦闷 差距 梦想</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731915/1219225/1/item.html</link><content:encoded>&lt;p&gt;每当我发现我和别人的差距的时候我总是会去思考，可是结果往往是苦闷。&lt;/p&gt;
&lt;p&gt;每当我发现差距是如此之大的时候，我会越发的苦闷。&lt;/p&gt;
&lt;p&gt;梦想使我阿Q式的告诉我自己，有一天我会填补这个差距，甚至让这个差距变成负数。然后我心情好了一些。&lt;/p&gt;
&lt;p&gt;可是一些时间过去了，差距依然在拉大，苦闷也就越发的变大。&lt;/p&gt;
&lt;p&gt;这是一个及其不好的循环。&lt;/p&gt;
&lt;p&gt;怎么解决这个问题呢？&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/02/01/GSlqaukneBFcDwxHRwlPezvgELGitjwabIrc/feed/</wfw:commentRss><description>每当我发现我和别人的差距的时候我总是会去思考，可是结果往往是苦闷。
每当我发现差距是如此之大的时候，我会越发的苦闷。
梦想使我阿Q式的告诉我自己，有一天我会填补这个差距，甚...</description><category>emotion</category><category>New Incoming</category><category>pop up</category><pubDate>Thu, 01 Feb 2007 17:06:21 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/02/01/GSlqaukneBFcDwxHRwlPezvgELGitjwabIrc/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/02/01/GSlqaukneBFcDwxHRwlPezvgELGitjwabIrc/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/02/01/GSlqaukneBFcDwxHRwlPezvgELGitjwabIrc/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731915/1219225</fs:itemid></item><item><title>Blogger们都怎么了？</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731916/1219225/1/item.html</link><content:encoded>&lt;p&gt;最近发现很多bloger们写作的速度都明显慢了下来，甚至有些bloger们很久都没有更新他们的blog了，有些blog更多的是充满着&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;links for 2007-01-28&lt;/p&gt;
&lt;p&gt;某某某昨日关注&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;可能是我关注的面比较窄，互联网，开发类占据了绝大多数。但是比起国外的一些bloger们，我们的速度和热度明显的下降了，难道是股市热潮把bloger们也吸引过去了？&lt;/p&gt;
&lt;p&gt;在中国互联网也许不是2007最关注的话题了，也许，股市是大家更加关注的话题，也许股市让你觉得更加赚钱，但是我希望中国互联网积攒下来的这些优秀的bloger们不要再流失了。毕竟我们不是为了利益才去写blog。&lt;/p&gt;
&lt;p&gt;update：就连前一段时间在中国极火的&lt;a href=&quot;http://groups.google.com/group/RORBeijing?hl=en&quot; target=&quot;_blank&quot; title=&quot;RoR北京group&quot;&gt;RoR&lt;/a&gt;最近也销声匿迹了。难道在中国什么东西就只能这样？昙花一现？&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/30/jimgpckvkvlkpfagdnszccwjyswceumndyus/feed/</wfw:commentRss><description>最近发现很多bloger们写作的速度都明显慢了下来，甚至有些bloger们很久都没有更新他们的blog了，有些blog更多的是充满着

links for 2007-01-28
某某某昨日关注

可能是我关注的面比较窄，互联网，...</description><category>New Incoming</category><category>pop up</category><pubDate>Tue, 30 Jan 2007 11:07:28 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/30/jimgpckvkvlkpfagdnszccwjyswceumndyus/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/30/JiMgPcKvkvLkPfAGdNszCcWjYsWcEUmndYuS/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/30/jimgpckvkvlkpfagdnszccwjyswceumndyus/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731916/1219225</fs:itemid></item><item><title>关于DB2的JDBC驱动</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731917/1219225/1/item.html</link><content:encoded>&lt;p&gt;昨天在用java链接db2的数据库时发现以前没有注意的一些问题，之前链接db2的jdbc通常是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;JDBC Driver：COM.ibm.db2.jdbc.net.DB2Driver&lt;/p&gt;
&lt;p&gt;JDBC URL：jdbc:db2://127.0.0.1:6789/sample&lt;/p&gt;
&lt;p&gt;组合后也就是：&lt;/p&gt;
&lt;p&gt;Class.forName( &amp;#8221; com.ibm.db2.jdbc.net.DB2Driver &amp;#8221; );&lt;br /&gt;String url = &amp;#8221; jdbc:db2://192.9.200.108:6789/SAMPLE &amp;#8220;&lt;br /&gt;Connection conn = DriverManager.getConnection( url, sUsr, sPwd );&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这是我们通常意义上所说的type3纯java驱动，这类驱动程序使用纯 JAVA 客户机，并使用独立于数据库的协议与中间件服务器通信，然后中间件服务器将客户机请求传给数据源。这个中间件服务器就是安装DB2后在服务中显示为&amp;#8221;DB2 JDBC小应用程序服务器&amp;#8211;对DB2应用程序提供JDBC服务支持&amp;#8221;（当然我是在windwos上安装DB2的），务必使这个服务启动，否则type3型的JDBC是链接不上的。&lt;/p&gt;
&lt;p&gt;此外用的比较多的是type4型的纯java驱动&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;JDBC Driver：com.ibm.db2.jcc.DB2Driver&lt;/p&gt;
&lt;p&gt;JDBC URL：jdbc:db2://127.0.0.1:50000/sample&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;下面是一段IBM网站的引用：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;依照 JDBC 规范，有四种类型的 JDBC 驱动程序体系结构：&lt;/p&gt;
&lt;p&gt;Type 1：这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现，如开放式数据库连通性（Open Database Connectivity，ODBC）。这类驱动程序通常依赖本机库，这限制了其可移植性。JDBC-ODBC 桥驱动程序就是 Type 1 驱动程序的最常见的例子。&lt;br /&gt;Type 2：这类驱动程序部分用 JAVA 编程语言编写，部分用本机代码编写。这些驱动程序使用特定于所连接数据源的本机客户端库。同样，由于使用本机代码，所以其可移植性受到限制。&lt;br /&gt;Type 3：这类驱动程序使用纯 JAVA 客户机，并使用独立于数据库的协议与中间件服务器通信，然后中间件服务器将客户机请求传给数据源。&lt;br /&gt;Type 4：这类驱动程序是纯 JAVA，实现针对特定数据源的网络协议。客户机直接连接至数据源。&lt;br /&gt;对于DB2 UDB V7.2来说，它不支持 Type 1 和 Type 4 的驱动程序，但是提供了分别支持 Type 2 和 Type 3 的驱动程序。&lt;/p&gt;
&lt;p&gt;示例如下：&lt;/p&gt;
&lt;p&gt;两种驱动程序均随产品安装由 db2java.zip 提供。&lt;/p&gt;
&lt;p&gt;COM.ibm.db2.jdbc.app.DB2Driver&lt;br /&gt;这是一种 Type 2 的 JDBC 驱动程序，它通过 DB2 本地客户机库的帮助建立和 DB2本地数据库或是远程数据库的连接（事先将远程数据库编目到本地）。因此，我们必须在应用系统所在的机器上同时部署 DB2 本地客户机库，这也许是它最大的一个不足之处。&lt;/p&gt;
&lt;p&gt;使用格式如下：&lt;/p&gt;
&lt;p&gt;Driver Name：COM.ibm.db2.jdbc.app.DB2Driver&lt;/p&gt;
&lt;p&gt;URL Pattern：jdbc:db2:databasename&lt;/p&gt;
&lt;p&gt;databasename: 需要访问的数据库名&lt;/p&gt;
&lt;p&gt;COM.ibm.db2.jdbc.net.DB2Driver&lt;br /&gt;这是一种 Type 3 的 JDBC 驱动程序，它通过与一台已经部署了 DB2 本地客户机库的机器通信来建立和 DB2 远程数据库的连接。&lt;/p&gt;
&lt;p&gt;使用格式如下：&lt;/p&gt;
&lt;p&gt;Driver Name：COM.ibm.db2.jdbc.net.DB2Driver&lt;/p&gt;
&lt;p&gt;URL Pattern：jdbc:db2:ServerIP:databasename&lt;/p&gt;
&lt;p&gt;ServerIP: 需要访问的数据库所在机器IP地址&lt;/p&gt;
&lt;p&gt;databasename: 需要访问的数据库名&lt;/p&gt;
&lt;p&gt;（目标DB2系统侦听该服务于默认端口6789，否则还需要在 URL Pattern 中指定目标端口号）&lt;/p&gt;
&lt;p&gt;对于 DB2 UDB V8.1 来说，它仍然不支持 Type 1 的驱动程序。同时，它在 DB2 UDB V8.1的基础上，新增加了对 Type 4 驱动程序的支持。&lt;/p&gt;
&lt;p&gt;示例如下：&lt;/p&gt;
&lt;p&gt;DB2 UDB V8.1 仍然支持上面所述 V7.2 支持的两种驱动程序，随产品安装由 db2java.zip 提供，但具体实现上和 DB2 UDB V7.2 产品发布的包有所不同，所以可能存在下文所要进行实验验证的兼容性问题。&lt;/p&gt;
&lt;p&gt;除了 COM.ibm.db2.jdbc.app.DB2Driver 之外，DB2 UDB V8.1 还提供了另外一种 Type 2 的驱动程序，随产品安装由 db2jcc.jar 提供。其实现包名是 com.ibm.db2.jcc.DB2Driver，在DB2 UDB V8.1 最初的实现中，此驱动程序只用于使用 Type 4 驱动程序体系结构与 DB2 服务器进行直接的 JAVA 连接，这类驱动程序由于不需要另外部署 DB2 本地客户机库以及性能相对较好而收到开发人员的欢迎。自从 DB2 UDB V8.1.2（安装了 FixPack 2）之后，开发人员还可以在 Type 2 体系结构中使用该驱动程序，以提高本地应用程序的性能。&lt;/p&gt;
&lt;p&gt;这里，两种驱动程序具有相同的实现类名称，有两种不同的方法可以区分 DB2 系统在内部最终会实例化哪个驱动程序：&lt;/p&gt;
&lt;p&gt;使用不同的 URL Pattern 来区分两种不同的驱动程序&lt;br /&gt;Type 2 Driver URL Pattern：jdbc:db2:databasename&lt;/p&gt;
&lt;p&gt;这当中 databasename 是需要访问的数据库名&lt;/p&gt;
&lt;p&gt;Type 4 Driver URL Pattern：jdbc:db2://ServerIP:50000/databasename&lt;/p&gt;
&lt;p&gt;这当中 ServerIP 是需要访问的数据库所在机器IP地址，databasename 是需要访问的数据库名，DB2 服务器会在默认端口 50000 上进行侦听。&lt;/p&gt;
&lt;p&gt;使用连接特性来区分数据库连接是否会使用 DB2 本地客户机库，或者是使用JAVA 直接连接。&lt;br /&gt;DB2 UDB V8.1 新增加支持的这种 Type 4 驱动程序，常被称为&amp;#8221;通用 JDBC 驱动程序&amp;#8221;，是一种与驱动程序类型连通性或目标平台无关的抽象 JDBC 处理器，因此常用于进行分布式和本地 DB2 UDB 访问。因为&amp;#8221;通用 JDBC 驱动程序&amp;#8221;独立于任何特定 JDBC 驱动程序类型连通性或目标平台，所以它在一个 DB2 UDB 驱动程序实例中同时支持所有 JAVA 连通性（Type 4 驱动程序）和基于 JNI 的连通性（Type 2 驱动程序）。该驱动程序可以用于独立 JAVA 应用程序或多层应用程序，是开发人员一个不错的选择。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;关于DB2 JDBC驱动的jar包：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;db2java.zip包含两个驱动类COM.ibm.db2.jdbc.app.DB2Driver.class(第二类驱动，现在不推荐使用），另一个COM.ibm.db2.jdbc.net.DB2Driver.class(第三类驱动，也叫applet驱动，网络驱动）&lt;br /&gt;db2jcc.jar是IBM推荐使用的，其包含一个新的第二类驱动和一个第四类驱动，二者通过uril来区分&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;p&gt;参考信息：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/&quot; target=&quot;_blank&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/&quot; target=&quot;_blank&quot; title=&quot;理解 DB2 UDB JDBC 通用驱动程序&quot;&gt;http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/&lt;/a&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/&quot; target=&quot;_blank&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/cn/db2/library/techarticles/0402chenjunwei/0402chenjunwei.html&quot; target=&quot;_blank&quot; title=&quot;使用 JDBC 连接不同版本 DB2 数据库的兼容性问题&quot;&gt;http://www.ibm.com/developerworks/cn/db2/library/techarticles/0402chenjunwei/0402chenjunwei.html&lt;/a&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/&quot; target=&quot;_blank&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/25/XDzjryNpfyPwYApYMmLIeweAJeSJZpqXTPgk/feed/</wfw:commentRss><description>昨天在用java链接db2的数据库时发现以前没有注意的一些问题，之前链接db2的jdbc通常是：


JDBC Driver：COM.ibm.db2.jdbc.net.DB2Driver
JDBC URL：jdbc:db2://127.0.0.1:6789/sample
组合后也就是：
Class.forName( &amp;#8221; c...</description><category>New Incoming</category><category>Java</category><pubDate>Thu, 25 Jan 2007 09:37:58 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/25/XDzjryNpfyPwYApYMmLIeweAJeSJZpqXTPgk/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/25/XDzjryNpfyPwYApYMmLIeweAJeSJZpqXTPgk/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/25/XDzjryNpfyPwYApYMmLIeweAJeSJZpqXTPgk/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731917/1219225</fs:itemid></item><item><title>充足的带宽</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731918/1219225/1/item.html</link><content:encoded>&lt;p&gt;看到keso的文章&lt;a href=&quot;http://blog.donews.com/keso/archive/2007/01/23/1118134.aspx&quot; target=&quot;_blank&quot;&gt;东拉西扯：当每个人都有充足的带宽&lt;/a&gt;，有了下面一些想法。&lt;/p&gt;
&lt;p&gt;1.Microsoft Office和Visual Studio不是因为带宽的增长就不需要购买了，这个和音乐，电影这些数据不一样。带宽可以解决数据传输的问题，但是你需要的不仅仅是数据，你需要的是服务。&lt;/p&gt;
&lt;p&gt;2.如果没有Box.net这样的网络资源的存储地，或者是下载网站这些类似的存储地，恐怕你需要把所以的东西都要备份在硬盘上了，带宽更加没有用了。&lt;/p&gt;
&lt;p&gt;3.BitTorrent、eMule、P2P的价值不在于缓解带宽的不足，带来下载的速度。他们的意义是一种资源的交流和共享。&lt;/p&gt;
&lt;p&gt;4.个人认为充足的带宽带来的是服务的多样话，多元化，和分散，也许以后没有像google，微软这样的巨无霸的，我们需要的服务都分散在各地，各人。也许以后连上班都不用了，每个人提供一种服务，用自己提供的服务，去换取别人的服务。呵呵，希望有这么一天。&lt;/p&gt;
&lt;p&gt;5.随着互联网的发展，人们似乎越来越倾向于把应用都搬到互联网上了，可是似乎人们都走上了浏览器这个方式，当然目前你需要上网就必然需要浏览器，以至于人么在浏览器中做出各种各样的应用，以至于OS。我总觉得大家似乎走了弯路，难道没有浏览器互联网就不是互联网？那天大家都没有浏览器的概念，一开电脑什么都有了，音乐从音乐的服务商那里取得，新闻从专门提供新闻的服务商那里获取。让互联网服务想用自来水一样，打开电脑想要什么就有了，而不是现在，大家首先要开一个浏览器。&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/23/eHRFNnVdwwfUqkqjZdXQKejBONYhIfRNMIsz/feed/</wfw:commentRss><description>看到keso的文章东拉西扯：当每个人都有充足的带宽，有了下面一些想法。
1.Microsoft Office和Visual Studio不是因为带宽的增长就不需要购买了，这个和音乐，电影这些数据不一样。带宽可以解决数...</description><category>互联网</category><category>New Incoming</category><pubDate>Tue, 23 Jan 2007 16:43:53 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/23/eHRFNnVdwwfUqkqjZdXQKejBONYhIfRNMIsz/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/23/eHRFNnVdwwfUqkqjZdXQKejBONYhIfRNMIsz/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/23/eHRFNnVdwwfUqkqjZdXQKejBONYhIfRNMIsz/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731918/1219225</fs:itemid></item><item><title>google.cn有意思的变化</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731919/1219225/1/item.html</link><content:encoded>&lt;p&gt;今天在搜索时发现google.cn的有趣变化（也许早变化了，我没有发现）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2007/01/google_cn.JPG&quot; rel=&quot;lightbox&quot; title=&quot;google_cn.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2007/01/google_cn_tn.jpg&quot; height=&quot;147&quot; width=&quot;200&quot; alt=&quot;google_cn.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;google.com&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2007/01/google_com.JPG&quot; rel=&quot;lightbox&quot; title=&quot;google_com.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2007/01/google_com_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;google_com.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;图片可以看出google.cn多出了搜索建议和相应的结果数。记得以前iask.com（新浪的爱问）好像有这个功能，现在没有了。不过&lt;a href=&quot;http://www.yodao.com/&quot; target=&quot;_blank&quot; title=&quot;网易的搜索引擎&quot;&gt;有道&lt;/a&gt;似乎一开始就提供了这个功能。回头在看看google.com却发现并没有这个功能，呵呵，很有意思，这意味着什么？难道&lt;a href=&quot;http://www.google.cn/&quot; target=&quot;_blank&quot; title=&quot;谷歌&quot;&gt;谷歌&lt;/a&gt;又有什么新动作了？&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/23/bativbvofseqeybxylgzbqfqngjworzqstyo/feed/</wfw:commentRss><description>今天在搜索时发现google.cn的有趣变化（也许早变化了，我没有发现）

google.com

图片可以看出google.cn多出了搜索建议和相应的结果数。记得以前iask.com（新浪的爱问）好像有这个功能，现在没有...</description><category>互联网</category><category>New Incoming</category><category>google</category><pubDate>Tue, 23 Jan 2007 13:58:05 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/23/bativbvofseqeybxylgzbqfqngjworzqstyo/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/23/BatIvbVOFsEQEybxylGzBQfqNgJWORzqSTYo/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/23/bativbvofseqeybxylgzbqfqngjworzqstyo/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731919/1219225</fs:itemid></item><item><title>CakePHP Manual翻译2.5：基础概念</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731920/1219225/1/item.html</link><content:encoded>&lt;h1&gt;基础概念&lt;/h1&gt;
&lt;h2&gt;第一节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;介绍&lt;/h3&gt;
&lt;p&gt;这一节很短，只是介绍一下MVC在Cake中的实现。加入你刚刚得知MVC模式，那么这一节将非常适合你。下面我们通过CakePHP里面的一些MVC应用来讨论基础的MVC概念，然后展示一些简单的CakePHP中使用MVC模式的例子。&lt;/p&gt;
&lt;h2&gt;第二节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;MVC模式&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;Model-View-Controller（模型-视图-控制器）是一种软件设计模式，他可以帮助你分离一些逻辑代码，使他们可以复用，更加易于维护，从而变得更好。MVC是有author group Gang of Four（译者注：《设计模式》那本书的四位作者，简称四人组）首先提出的。Dean Helman写到（从Objective Toolkit Pro white paper截取）：&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;The MVC paradigm is a way of breaking an application, or even just a piece of an application&amp;#8217;s interface, into three parts: the model, the view, and the controller. MVC was originally developed to map the traditional input, processing, output roles into the GUI realm.&lt;/p&gt;
&lt;p&gt;Input -&amp;gt; Processing -&amp;gt; Output&lt;/p&gt;
&lt;p&gt;Controller -&amp;gt; Model -&amp;gt; View&lt;/p&gt;
&lt;p&gt;&amp;#8220;The user input, the modeling of the external world, and the visual feedback to the user are separated and handled by model, view port and controller objects. The controller interprets mouse and keyboard inputs from the user and maps these user actions into commands that are sent to the model and/or view port to effect the appropriate change. The model manages one or more data elements, responds to queries about its state, and responds to instructions to change state. The view port manages a rectangular area of the display and is responsible for presenting data to the user through a combination of graphics and text.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在CakePHP中，Model描述了一条数据库表中的记录，并且它可以关联其他表的记录。Model中还包含数据的验证规则，这些规则将在model中的数据向数据库插入和更新的时候起作用。View描述了CakePHP的展现文件，这些文件是一些嵌入了php代码的规则的HTML文件。Cake （CakePHP）的Controller从服务器处理请求。他们获得用户输入（从URL和POST数据中），运行业务逻辑，使用Model从数据库读写数据，然后输出数据到对应的展现文件。&lt;/p&gt;
&lt;p&gt;为了尽可能简单的组织你的应用，Cake使用这种模式（当然不是仅仅使用MVC）管理object（对象）如何同你的应用交互，同时也管理你的文件，我们在下一节将详细讨论这个。&lt;/p&gt;
&lt;h2&gt;第三节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;Cake文件布局概览&lt;/h3&gt;
&lt;p&gt;当你解压Cake后在你的服务器上你会看到下面一些文件夹&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
      app      cake      vendors
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;cake&lt;/strong&gt;文件夹放置了Cake的核心库，一般情况下不需要做修改。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;app&lt;/strong&gt;文件夹是你应用的文文件存放的地方。&lt;strong&gt;将cake和app文件夹分开可以使你的多个应用共享一个Cake库。这样也使你升级CakePHP更加便捷：你只需要下载最新的Cake覆盖你现有的Cake库，而不需要担心这样会覆盖你写的应用程序。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;vendors&lt;/strong&gt;目录用于存储第三方的类库。你可以通过Cake的&lt;strong&gt;vendor()函数来访问你放置在vendors目录中的类。关于vendors在后面我们会详细介绍。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;让我们看看整个文件的布局：&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
/app    /config          - 包含数据库、ACL等的配置文件. 

    /controllers     - Controllers放在这里         /components  - Components放在这里

    /index.php       - 可以部署cake和/app为服务器的DocumentRoot

    /models          - Models放在这里

    /plugins         - Plugins放在这里

    /tmp             - 用于存储缓存（cache）和日志（logs）

    /vendors         - 应用程序中用到的第三方库放在这里

    /views           - Views放在这里        /elements    - Elements,和少量的views放在这里        /errors      - 自定义的错误页面放在这里        /helpers     - Helpers放在这里        /layouts     - 应用程序布局文件放在这里        /pages       - 静态的展现页面放在这里

    /webroot         - web应用的根目录（DocumentRoot）        /css        /files        /img        /js

/cake                - Cake的核心库。不要编辑这里的文件

index.php           

/vendors             - 用于服务器端的第三方类库。

VERSION.txt          - 你运行的CakePHP的版本信息文件。
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/09/GTSyiexvUGGlpzkxftNLkZHRndzylEOSyHqH/feed/</wfw:commentRss><description>基础概念
第一节

介绍
这一节很短，只是介绍一下MVC在Cake中的实现。加入你刚刚得知MVC模式，那么这一节将非常适合你。下面我们通过CakePHP里面的一些MVC应用来讨论基础的MVC概念，然后展示...</description><category>CakePHP</category><category>New Incoming</category><category>PHP</category><pubDate>Tue, 09 Jan 2007 13:48:50 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/09/GTSyiexvUGGlpzkxftNLkZHRndzylEOSyHqH/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/09/GTSyiexvUGGlpzkxftNLkZHRndzylEOSyHqH/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/09/GTSyiexvUGGlpzkxftNLkZHRndzylEOSyHqH/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731920/1219225</fs:itemid></item><item><title>CakePHP Manual翻译5：脚手架（Scaffolding）</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731921/1219225/1/item.html</link><content:encoded>&lt;h1&gt;脚手架（Scaffolding）&lt;/h1&gt;
&lt;div&gt;
&lt;h2&gt;第一节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;Cake的Scaffolding非常的优美并且酷毙了&lt;/h3&gt;
&lt;p&gt;它非常酷，你会想在你的应用中应用它。现在，我们都认为它非常的酷，但是脚手架是……哦，……它仅仅是一个脚手架。在项目的开始他能够快速的为你的项目创造原型。这也就是说他不是很灵活。所以，如果你想真的自定义你的业务逻辑和试图（views），那么是时候放下脚手架，写一些代码了。脚手架是在开发 web应用开始阶段，获得早期版本的非常好的方式。早期的数据库定义会时常发生变化，脚手架非常适合早期的设计过程。一个web开发人员非常讨厌创佳一些不会真正使用的表单，脚手架可以减少这些表单的创建。为了减少开发人员的变化，Cake提供了脚手架。脚手架分析数据库中的表，为数据库的每一条记录创建标准列表的增加，删除和编辑按钮，标准的编辑表单和标准的视图（view）。为应用添加脚手架只需要在controller中添加&lt;strong&gt;$scaffold&lt;/strong&gt;变量：&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt;class CategoriesController extends AppController&lt;br /&gt;{&lt;br /&gt;var $scaffold;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;关于脚手架要注意非常重要的一条：它假设&lt;strong&gt;以 _id 结尾的字段为外键，并且_id前是外键表的名称。例如，有一个嵌套的类别，你可能有一个列，列名叫&lt;/strong&gt;&lt;strong&gt;parent_id。当他发布，他会调用他的&lt;/strong&gt;parentid。同样，当你有一个外键在表中（例如titles表中有&lt;strong&gt;category_id&lt;/strong&gt;），他会关联一个正确的model（参见《理解关联》6.2），一个查询会自动从外键表对应的model中组装结果。title类中代码如下：&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;class Title extends AppModel&lt;br /&gt;{&lt;br /&gt;var $name = &amp;#8216;Title&amp;#8217;;&lt;/p&gt;
&lt;p&gt;var $displayField = &amp;#8216;title&amp;#8217;;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;h2&gt;第二节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;自定义脚手架视图&lt;/h3&gt;
&lt;p&gt;如果你想脚手架有一些不同，你可以自己创建他们。我们仍然不建议在成型的产品中使用这中技术，但是这样的定制对于原型的迭代非常有效。&lt;/p&gt;
&lt;p&gt;如果你想改变脚手架的视图，你需要自己提供：&lt;/p&gt;
&lt;h3&gt;为单个的Controller定制视图&lt;/h3&gt;
&lt;pre&gt;
在下面这些地方为PostsController定制脚手架视图：
&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;/app/views/posts/scaffold/index.scaffold.thtml&lt;br /&gt;/app/views/posts/scaffold/show.scaffold.thtml&lt;br /&gt;/app/views/posts/scaffold/edit.scaffold.thtml&lt;br /&gt;/app/views/posts/scaffold/new.scaffold.thtml&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;为整个应用定制脚手架视图&lt;/h3&gt;
&lt;pre&gt;
在下面这些地方为整个应用定制脚手架视图：
&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;/app/views/scaffold/index.scaffold.thtml&lt;br /&gt;/app/views/scaffold/show.scaffold.thtml&lt;br /&gt;/app/views/scaffold/edit.scaffold.thtml&lt;br /&gt;/app/views/scaffold/new.scaffold.thtml&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;如果你想自己定义controller的逻辑，那么是时候让从脚手架上下来，自己创建他们了。&lt;/p&gt;
&lt;p&gt;有一个特性可能会非常有用，那就是Cake的代码生成器：Bake。Bake可以生为脚手架生成一个代码版本，然后你可以修改这些代码，按照需求去定制你的应用。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/09/DYjepderAsbqXubCsSOehqAyhWgQRMVuKfzZ/feed/</wfw:commentRss><description>脚手架（Scaffolding）

第一节

Cake的Scaffolding非常的优美并且酷毙了
它非常酷，你会想在你的应用中应用它。现在，我们都认为它非常的酷，但是脚手架是……哦，……它仅仅是一个脚手架。在...</description><category>CakePHP</category><category>New Incoming</category><category>PHP</category><pubDate>Tue, 09 Jan 2007 13:37:48 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/09/DYjepderAsbqXubCsSOehqAyhWgQRMVuKfzZ/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/09/DYjepderAsbqXubCsSOehqAyhWgQRMVuKfzZ/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/09/DYjepderAsbqXubCsSOehqAyhWgQRMVuKfzZ/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731921/1219225</fs:itemid></item><item><title>CakePHP Manual翻译4：配置</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731922/1219225/1/item.html</link><content:encoded>&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;配置&lt;/h1&gt;
&lt;h2&gt;第一节&lt;/h2&gt;
&lt;h3&gt;数据库配置&lt;/h3&gt;
&lt;p&gt;所有的数据库配置都在 &lt;strong&gt;app/config/database.php&lt;/strong&gt; 文件中。 新安装的Cake中没有 &lt;strong&gt;database.php&lt;/strong&gt;, 所以你需要拷贝一份 &lt;strong&gt;database.php.default&lt;/strong&gt; 将它重命名为&lt;strong&gt;database.php。&lt;/strong&gt;你会看到如下内容在&lt;strong&gt;app/config/database.php&lt;/strong&gt; 文件中:&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;app/config/database.php&lt;/h3&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;div&gt;var $default = array(&amp;#8217;driver&amp;#8217; =&amp;gt; &amp;#8216;mysql&amp;#8217;,&lt;br /&gt;&amp;#8216;connect&amp;#8217; =&amp;gt; &amp;#8216;mysql_connect&amp;#8217;,&lt;br /&gt;&amp;#8216;host&amp;#8217; =&amp;gt; &amp;#8216;localhost&amp;#8217;,&lt;br /&gt;&amp;#8216;login&amp;#8217; =&amp;gt; &amp;#8216;user&amp;#8217;,&lt;br /&gt;&amp;#8216;password&amp;#8217; =&amp;gt; &amp;#8216;password&amp;#8217;,&lt;br /&gt;&amp;#8216;database&amp;#8217; =&amp;gt; &amp;#8216;project_name&amp;#8217;,&lt;br /&gt;&amp;#8216;prefix&amp;#8217; =&amp;gt; &amp;#8221;);&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;p&gt;为你的应用配置数据库链接信息，只需要替换一些默认的配置。&lt;/p&gt;
&lt;p&gt;关于前缀：输入的这些配置将会在应用执行SQL之前配置数据库。你只需要在这里定义一次。如果你的主机只有一个数据库可以使用（译者注：在一个数据库上跑多个应用），同样也要遵循Cake的表命名约定。注：对于HABTM（hasAndBelongsToMany，参见Model章节）连接表，你只需要增加前缀一次，如：prefix_apples_bananas，而不是 prefix_apples_prefix_bananas（apples和bananas是两张关联表）。&lt;/p&gt;
&lt;p&gt;CakePHP提供如下数据库驱动：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;mysql&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;postgres&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;sqlite&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;pear-&lt;strong&gt;drivername&lt;/strong&gt; (so you might enter pear-mysql, for example)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;adodb-&lt;strong&gt;drivername&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在&lt;strong&gt;$default中的&lt;/strong&gt;&amp;#8216;connect&amp;#8217;链接允许你指定要做持久化的数据库链接。database.php.default中的注释详细说明了数据库配置中的连接类型。&lt;/p&gt;
&lt;p&gt;数据库的表必须遵循如下约定：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;表名习惯用英文单词的复数形式组成，如：&amp;#8221;users&amp;#8221;, &amp;#8220;authors&amp;#8221; 或 &amp;#8220;articles&amp;#8221;。对应的models用单数形式，如：&amp;#8221;user&amp;#8221;, &amp;#8220;author&amp;#8221; 或 &amp;#8220;article&amp;#8221;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;表必须要有一个主键，名称为id。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果表需要做关联，则外键必须看起来像这样： article_id，关联表名的单数形式后面接下划线（_）后面接id。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果表中包含&amp;#8217;created&amp;#8217; 或者 &amp;#8216;modified&amp;#8217; 列，Cake将自动向改列中写入和修改其值。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在database.php文件中有$test连接设置，在models中添加如下语句：&lt;/p&gt;
&lt;p&gt;var $useDbConfig = &amp;#8216;test&amp;#8217;;&lt;/p&gt;
&lt;p&gt;你就可以运用$test中的连接设置。&lt;/p&gt;
&lt;p&gt;你可以用这种添加多个连接设置。&lt;/p&gt;
&lt;/div&gt;
&lt;h4&gt;第二节&lt;/h4&gt;
&lt;div&gt;
&lt;h3&gt;全局配置&lt;/h3&gt;
&lt;p&gt;CakePHP的全局配置在文件&lt;strong&gt;app/config/core.php中。我们不喜欢配置文件，它仅仅是一些必要的配置。这里只有一些内容，你可以改变，每一个配置你都可以在&lt;/strong&gt; &lt;strong&gt;core.php&lt;/strong&gt; 的注释中找到说明。&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DEBUG：设置它为不同的值，将会帮助你调试你的应用。将他设置成一个非0的值，Cake将会打印出pr()和debug()函数的调用结果，并且自动停止页面的跳转。将他设置成2或者更大将作用鱼SQL语句，SQL语句将被打印在输出页面的底部。同样，当处于调试模式（DEBUG被设置成0或者更大），Cake将提示一些页面生成的错误，如&amp;#8221;Missing Controller&amp;#8221;，&amp;#8221;Missing Action&amp;#8221;，等待。尽管在产品模式（DEBUG被设置成0），Cake显示的&amp;#8221;Not Found&amp;#8221;页面，也可以在 &lt;strong&gt;app/views/errors/error404.thtml&lt;/strong&gt; 中被重写。&lt;/p&gt;
&lt;p&gt;CAKE_SESSION_COOKIE：设定在Cake应用中使用的用户session的cookie的名字。&lt;/p&gt;
&lt;p&gt;CAKE_SECURITY：这个值设定你的sessions检查级别。Cake中的sessions过期时间，生成新sessions的id，删除旧sessions文件，会依赖你在这里的设置。设置的值如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;high: sessions将在处于不活动状态10分钟后过期，并且为每一个请求重新生成一个新的session id。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;medium: sessions将在处于不活动状态20分钟后过期。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;low: sessions将在处于不活动状态30分钟后过期。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;CAKE_SESSION_SAVE：设定保存session数据的保存方式. 设置的值如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;cake: Session数据保存在应用中的 tmp/ inside 下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;php: 按照 php.ini 中设置的方式保存Session数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;database: Session数据保存在数据库连接设置中&amp;#8217;default&amp;#8217;关键词设置的数据库中。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;h2&gt;第三节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;路由配置&lt;/h3&gt;
&lt;p&gt;路由（Routing）是一个纯PHP的类似mod_rewrite的功能，它可以映射URL到controller/action/params这样的模式，并且返回数据。它可以美化URL而不需要mod_rewrite，并且可配置。尽管如此，使用mod_rewrite，可以使地址栏看起来非常整洁。&lt;/p&gt;
&lt;p&gt;路由有独立的规则将URL映射到指定的controllers和actions。在&lt;strong&gt;app/config/routes.php配置路由。设置如下：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;路由模式&lt;/h3&gt;
&lt;p&gt;
&lt;blockquote&gt;&amp;lt;?php&lt;br /&gt;$Route-&amp;gt;connect (&lt;br /&gt;&amp;#8216;URL&amp;#8217;,&lt;br /&gt;array(&amp;#8217;controller&amp;#8217;=&amp;gt;&amp;#8217;controllername&amp;#8217;,&lt;br /&gt;&amp;#8216;action&amp;#8217;=&amp;gt;&amp;#8217;actionname&amp;#8217;, &amp;#8216;firstparam&amp;#8217;)&lt;br /&gt;);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;在上面代码中:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;URL&lt;/strong&gt; 是一个你希望在Cake中映射的URL的正则表达式,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;controllername&lt;/strong&gt; 是你希望调用的controller的名称,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;actionname&lt;/strong&gt; 是你希望调用的action的名称,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;and &lt;strong&gt;firstparam&lt;/strong&gt; 调用action的第一个参数.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;任何在&lt;strong&gt;firstparam&lt;/strong&gt; 后的参数同样被当作参数传递给controller action.&lt;/p&gt;
&lt;p&gt;下面的例子演示将所有的在/blog后的URL映射到BlogController。controller中默认的action是BlogController::index()。&lt;/p&gt;
&lt;p&gt;
&lt;h3&gt;路由示例&lt;/h3&gt;
&lt;p&gt;
&lt;blockquote&gt;&amp;lt;?php&lt;br /&gt;$Route-&amp;gt;connect (&amp;#8217;/blog/:action/*&amp;#8217;, array(&amp;#8217;controller&amp;#8217;=&amp;gt;&amp;#8217;Blog&amp;#8217;, &amp;#8216;action&amp;#8217;=&amp;gt;&amp;#8217;index&amp;#8217;));&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;像 /blog/history/05/june 的URL将被捕获：&lt;/p&gt;
&lt;h3&gt;Controller中的路由捕获&lt;/h3&gt;
&lt;div&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;?php&lt;br /&gt;class BlogController extends AppController&lt;br /&gt;{&lt;br /&gt;function history ($year, $month=null)&lt;br /&gt;{&lt;br /&gt;// .. Display appropriate content&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;在Blog的路由中&amp;#8217;history&amp;#8217;将匹配:action（也就是&amp;#8217;history&amp;#8217;做为controller的action）。匹配*的URL中的元素将被作为参数传递给当前活动controller（如上面代码的BlogController）的方法，上面的代码中就是参数$year 和 $month。请求URL /blog/history/05 只传递一个参数05给history()方法。&lt;/p&gt;
&lt;p&gt;下面的示例是CakePHP中默认的路由，它用于PagesController::display(&amp;#8217;home&amp;#8217;)。Home是一个可以在&lt;strong&gt;/app/views/pages/home.thtml&lt;/strong&gt;中重写的view（视图）。&lt;/p&gt;
&lt;h3&gt;默认路由设置&lt;br /&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;?php&lt;br /&gt;$Route-&amp;gt;connect (&amp;#8217;/', array(&amp;#8217;controller&amp;#8217;=&amp;gt;&amp;#8217;Pages&amp;#8217;, &amp;#8216;action&amp;#8217;=&amp;gt;&amp;#8217;display&amp;#8217;, &amp;#8216;home&amp;#8217;));&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;h4&gt;第四节&lt;/h4&gt;
&lt;div&gt;
&lt;h3&gt;高级路由设置: Admin 路由和 Webservices&lt;/h3&gt;
&lt;p&gt;你可以利用/app/config/core.php文件中的一些设置，组织你的应用，优化URL，使用户获得更好的体验。&lt;/p&gt;
&lt;p&gt;第一个是admin路由。假如在你的应用中有ProductsController和NewsController两个controller，也许你希望有管理权限的用户能够访问这些controller中某个特别的action。为了保持URL的美观和易读，人们希望URL是 /admin/products/add 和 /admin/news/post 这样，而不是/products/adminAdd and /news/adminPost。&lt;/p&gt;
&lt;p&gt;如果你想这样，首先，取消/app/config/core.php文件中CAKE_ADMIN行的注释。CAKE_ADMIN的默认值是&amp;#8217;admin&amp;#8217;，你也可以把它改成你想要的任何值。&lt;/p&gt;
&lt;p&gt;记住这个值，因为你需要根据这个值，对管理权限的用户能够访问的action做一些预处理。所以，在这种情况中admin action可能命名为admin_actionName()。下面的例子，是一些你希望看到的URL，CAKE_ADMIN相应的值，和 controller中相应action的设置。&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;/admin/products/add CAKE_ADMIN = &amp;#8216;admin&amp;#8217;&lt;br /&gt;name of action in ProductsController = &amp;#8216;admin_add()&amp;#8217;&lt;/p&gt;
&lt;p&gt;/superuser/news/post CAKE_ADMIN = &amp;#8217;superuser&amp;#8217;&lt;br /&gt;name of action in NewsController = &amp;#8217;superuser_post()&amp;#8217;&lt;/p&gt;
&lt;p&gt;/admin/posts/delete CAKE_ADMIN = &amp;#8216;admin&amp;#8217;&lt;br /&gt;name of action in PostsController = &amp;#8216;admin_delete()&amp;#8217;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;使用admin路由能够更有效的组织你的逻辑。&lt;br /&gt;请记住一点，admin路由不等同于任何类型的认证和安全机制。你需要自己去实现他们。&lt;br /&gt;同样，你也可以这样使用Cake的webservices路由。你想将一个controller的action作为webservice暴露出来么？首先，将/app/config/core.php文件中的WEBSERVICES的值设置成&amp;#8217;on&amp;#8217;。在设置了路由前缀后，这些设置可以做一些如同 admin的路由，路由前缀如下：
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;rss&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;xml&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rest&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;soap&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;xmlrpc&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这些前缀可以提供一个可选的view（视图），当访问 /rss/controllerName/actionName 或 /soap/controllerName/actionName 时会自动应用这些view。这样可以创建一个action并且拥有两个表现的view：如一个为普通的HTML浏览者，另外一个提供给 webservices用户。通过这些你可以轻松的将应用中的功能以webservices的方式暴露出来。例如，我的应用中有一些逻辑告诉用户我办公室中谁在打电话。对于这些数据我已经有了一个HTML的view，但是我还想有一个XML的，使这些数据能够运用在桌面的&lt;a href=&quot;http://www.google.com/search?q=widget&amp;amp;hl=zh-CN&amp;amp;lr=&amp;amp;nxpt=10.564224969051857892541&quot; target=&quot;blank_&quot; title=&quot;windget&quot;&gt;windget&lt;/a&gt;或者被其他应用使用。首先我们需要应用Cake的webservice路由：&lt;/p&gt;
&lt;h3&gt;/app/config/core.php (部分)&lt;/h3&gt;
&lt;div&gt;
&lt;blockquote&gt;&lt;p&gt;/**&lt;br /&gt;* The define below is used to turn cake built webservices&lt;br /&gt;* on or off. Default setting is off.&lt;br /&gt;*/&lt;br /&gt;define(&amp;#8217;WEBSERVICES&amp;#8217;, &amp;#8216;on&amp;#8217;);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/div&gt;
&lt;p&gt;下面我们和以前一样在controller中构建我们的应用逻辑:&lt;/p&gt;
&lt;h3&gt;messages_controller.php&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;?php&lt;br /&gt;class PhonesController extends AppController&lt;br /&gt;{&lt;br /&gt;function doWhosOnline()&lt;br /&gt;{&lt;br /&gt;// 这个action完成查看我的办公室里谁在打电话……&lt;/p&gt;
&lt;p&gt;// 如果我想使这个action以Cake的xml webservices路由方式获得,&lt;br /&gt;// 我需要在定义一个view&amp;#8211;/app/views/posts/xml/do_whos_online.thtml&lt;br /&gt;// 注意：默认的view布局模版使用/app/views/layouts/xml/default.thtml.&lt;/p&gt;
&lt;p&gt;// 如果请求 /phones/doWhosOnline, 结果将是一个HTML版本。&lt;br /&gt;// 如果请求 /xml/phones/doWhosOnline, 将获得一个XML版本。&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;h2&gt;第五节&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;(可选) 自定义变形配置（Inflections Configuration）&lt;/h3&gt;
&lt;p&gt;Cake的命名约定非常优美，你可以命名你的model，controller，一切都可以设计出来。但有一些时候（特别是对于一些非英语国家的朋友） Cake的词尾变化（class的复数，单数，大小写分隔和下划线分隔单词）可能并不是像你希望的那样工作。如果Cake不能够处理 Foci 或者 Fish（处理这些单词的单数复数形式的变化），编辑自定义变形配置文件（custom inflections configuration）能够满足你的需要。&lt;/p&gt;
&lt;p&gt;/app/config/inflections.php列出了一些Cake的变量，你可以使用他们去判别Cake中class名称的单数，复数形式，根据定义的规则，并不能变换所有的单、复数形式，例如一些不规则的单复数单词Foci或者Fish（Fish的单数、复数形式相同）。&lt;/p&gt;
&lt;p&gt;根据配置文件中的说明，或者取消文件中的一些注释来配置规则。在你做这些之前，你需要懂得一些正则表达式。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/08/MqIZCbYhPinCZKXOOfMzhvqEbIndYaIKrqKT/feed/</wfw:commentRss><description>配置
第一节
数据库配置
所有的数据库配置都在 app/config/database.php 文件中。 新安装的Cake中没有 database.php, 所以你需要拷贝一份 database.php.default 将它重命名为database.php。你会看到如下内容在ap...</description><category>CakePHP</category><category>New Incoming</category><category>PHP</category><pubDate>Mon, 08 Jan 2007 10:35:54 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/08/MqIZCbYhPinCZKXOOfMzhvqEbIndYaIKrqKT/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/08/MqIZCbYhPinCZKXOOfMzhvqEbIndYaIKrqKT/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/08/MqIZCbYhPinCZKXOOfMzhvqEbIndYaIKrqKT/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731922/1219225</fs:itemid></item><item><title>CakePHP Manual翻译3：安装CakePHP</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731923/1219225/1/item.html</link><content:encoded>&lt;/p&gt;
&lt;h3&gt;安装CakePHP &lt;/h3&gt;
&lt;h4&gt;第一节 &lt;/h4&gt;
&lt;h5&gt;介绍 &lt;/h5&gt;
&lt;p&gt;你现在已经知道CakePHP的目的和结构了，如果你仅仅是想开始使用CakePHP，不关心这些文档，而跳过这部分，那么后面你将会遇到一些麻烦。
&lt;p&gt;这一章将讲述服务器上必须安装的东西，配置服务器的不同方式，下载安装CakePHP，展现CakePHP的默认页面，和一些不在计划内的问题的解决方式。&lt;br /&gt;
&lt;h4&gt;第二节 &lt;/h4&gt;
&lt;h5&gt;安装需求 &lt;/h5&gt;
&lt;p&gt;为了使用CakePHP，你必须先有一个包含能够运行CakePHP的库和程序的服务器。&lt;br /&gt;
&lt;h5&gt;服务器需求 &lt;/h5&gt;
&lt;p&gt;下面是一些运行CakePHP的服务器需求：
&lt;p&gt;Here are the requirements for setting up a server to run CakePHP:
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;一个HTTP服务器(例如：Apache) 并且使这些模块有效—— sessions, mod_rewrite (这个不是必须的但是最好有这个功能)。 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;PHP 4.3.2 或者更新的版本。CakePHP可以工作在PHP 4和5或者更新的版本。 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;一个数据库引擎(现在CakePHP支持MySQL, PostgreSQL 和一个wrapper for ADODB).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;第三节 &lt;/h4&gt;
&lt;h5&gt;安装CakePHP &lt;/h5&gt;
&lt;h5&gt;获得最新的稳定版本 &lt;/h5&gt;
&lt;p&gt;通过这些方式你可以安全的获取一份CakePHP的拷贝：从CakeForge获取稳定版本，抓取每日构建，或者从SVN获取最新的代码。
&lt;p&gt;去http://cakeforge.org/projects/cakephp/下载CakePHP项目的稳定版本。
&lt;p&gt;去http://cakephp.org/downloads/index/nightly获得一个每日构建的版本。这些版本是稳定的，但是在发布成稳定版本之前常常会有一些bug需要修订。
&lt;p&gt;选择你最喜欢的SVN客户端去https://svn.cakephp.org/repo/trunk/cake/获得一份你想要版本的CakePHP代码。&lt;br /&gt;
&lt;h5&gt;解压缩 &lt;/h5&gt;
&lt;p&gt;现在你已经下载了最新的版本，把下载的压缩包放在你web服务器上的根目录下。现在你需要将CakePHP解压缩。解压有两种方式，一种是使用开发设置，这种方式可以方便的在一个域上放置多个CakePHP应用；另外一种是产品设置，这种方式可以在一个域上运行一个单独的CakePHP应用。&lt;br /&gt;
&lt;h4&gt;第四节 &lt;/h4&gt;
&lt;h5&gt;设置CakePHP &lt;/h5&gt;
&lt;p&gt;设置CakePHP的第一种方式使用开发环境的设置，但是这种方式不是很安全。另外一种更加安全的方式是使用产品环境设置。
&lt;p&gt;注：当你的web服务器运行的时候&lt;strong&gt;/app/tmp 目录必须可写。&lt;/strong&gt;&lt;br /&gt;
&lt;h5&gt;开发方式的设置 &lt;/h5&gt;
&lt;p&gt;在开发方式时，我们可以把整个Cake的安装目录放到web服务器的根目录下（DocumentRoot）像下面这样：&lt;br /&gt;
&lt;blockquote&gt;
&lt;pre&gt;/wwwroot    /cake        /app        /cake        /vendors        .htaccess        index.php&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;在这种设置下wwwroot文件夹是你web server的根目录，你的url可能像下面这样（如果你启用web server的mod_rewrite功能） &lt;/p&gt;
&lt;p&gt;www.example.com/cake/controllerName/actionName/param1/param2 &lt;/p&gt;
&lt;h5&gt;产品方式的设置 &lt;/h5&gt;
&lt;p&gt;为了使用产品方式的设置，你需要有一些修改web server的根目录（DocumentRoot ）的权限。这样做可以使整个web server的域运行一个CakePHP应用。 &lt;/p&gt;
&lt;p&gt;产品方式设置的文件布局如下： &lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;../path_to_cake_install    /app        /config        /controllers        /models        /plugins        /tmp        /vendors        /views        /webroot &amp;lt;&amp;#8211; 将web server的根目录（DocumentRoot ）指向这里        .htaccess        index.php    /cake    /vendors    .htaccess    index.php&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h5&gt;建议产品方式的web服务器配置httpd.conf &lt;/h5&gt;
&lt;pre&gt;DocumentRoot /path_to_cake/app/webroot&lt;/pre&gt;
&lt;p&gt;在这种设置下wwwroot文件夹是你web server的根目录，你的url可能像下面这样（如果你启用web server的mod_rewrite功能） &lt;/p&gt;
&lt;p&gt;http://www.example.com/controllerName/actionName/param1/param2 &lt;/p&gt;
&lt;h5&gt;高级设置: 可选的安装选项 &lt;/h5&gt;
&lt;p&gt;下面有一些案例，展示了将Cake的目录放在不同的地方。这些情况是当你的应用在一台共享的主机（译者注：如在租用的空间上放置你的web应用），或者当你想多个应用共享一个Cake库。 &lt;/p&gt;
&lt;p&gt;Cake应用有三个主要的部分： &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;CakePHP的核心库 - 在 &lt;strong&gt;/cake&lt;/strong&gt;&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;应用的代码 (如：controllers, models, layouts和views) - 在 &lt;strong&gt;/app&lt;/strong&gt;&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;应用的根目录访问文件 (如：images, javascript和css) - 在 &lt;strong&gt;/app/webroot&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这些文件夹可以放在文件系统的任何位置，除了webroot，他是需要被web server访问的。你可以将webroot放到app的外面，当你移动webroot的时候同时也要告诉Cake你把他放到哪里了。 &lt;/p&gt;
&lt;p&gt;如果你这样做了，你需要修改&lt;strong&gt;/app/webroot/index.php 。有三个常量需要更改：&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;ROOT 必须设置成包含 &lt;strong&gt;app&lt;/strong&gt; 文件夹的目录. &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;APP_DIR 别需设置成 &lt;strong&gt;app&lt;/strong&gt; 目录（译者注：通常就是&amp;#8217;app&amp;#8217;）. &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;CAKE_CORE_INCLUDE_PATH 应该被设置成 Cake 库的目录（译者注：是指包含Cake的目录）. &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;/app/webroot/index.php (去掉了部分注释) &lt;/h5&gt;
&lt;blockquote&gt;&lt;p&gt;if (!defined(&amp;#8217;ROOT&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define(&amp;#8217;ROOT&amp;#8217;, dirname(dirname(dirname(__FILE__))));&lt;br /&gt;}&lt;br /&gt;if (!defined(&amp;#8217;APP_DIR&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define (&amp;#8217;APP_DIR&amp;#8217;, basename(dirname(dirname(__FILE__))));&lt;br /&gt;}&lt;br /&gt;if (!defined(&amp;#8217;CAKE_CORE_INCLUDE_PATH&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define(&amp;#8217;CAKE_CORE_INCLUDE_PATH&amp;#8217;, ROOT);&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;用一个例子说明可能会更容易理解。假设我想设置Cake工作在下面的方式： &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;我像让Cake被其他应用共享， 并且Cake在 &lt;strong&gt;/usr/lib/cake&lt;/strong&gt;. &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;我Cake的webroot目录是 &lt;strong&gt;/var/www/mysite/&lt;/strong&gt;. &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;我的应用的文件存储在 &lt;strong&gt;/home/me/mysite&lt;/strong&gt;. &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;那么文件的布局可能会像这样:

/home    /me        /mysite                  &amp;lt;&amp;#8211; 相当于 /cake_install/app            /config            /controllers            /models            /plugins            /tmp            /vendors            /views            index.php/var    /www        /mysite                  &amp;lt;&amp;#8211; 相当于 /cake_install/app/webroot            /css            /files            /img            /js            .htaccess            css.php            favicon.ico            index.php/usr    /lib        /cake                    &amp;lt;&amp;#8211; 相当于 /cake_install/cake            /cake                /config                /docs                /libs                /scripts                app_controller.php                app_model.php                basics.php                bootstrap.php                dispatcher.php            /vendors

在这种设置下，我需要修改我webroot下的index.php文件（在该示例中文件应该是/var/www/mysite/index.php）如下：这里推荐使用&amp;#8217;DS&amp;#8217;常量，而不是用斜线（&amp;#8217;/'）分隔文件路径。这种方式避免了你可能误用错误的分隔符而导致的“文件丢失错误”，并且这样会使你的代码更加轻便。                &lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;if (!defined(&amp;#8217;ROOT&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define(&amp;#8217;ROOT&amp;#8217;, DS.&amp;#8217;home&amp;#8217;.DS.&amp;#8217;me&amp;#8217;);&lt;br /&gt;}&lt;br /&gt;if (!defined(&amp;#8217;APP_DIR&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define (&amp;#8217;APP_DIR&amp;#8217;, &amp;#8216;mysite&amp;#8217;);&lt;br /&gt;}&lt;br /&gt;if (!defined(&amp;#8217;CAKE_CORE_INCLUDE_PATH&amp;#8217;))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; define(&amp;#8217;CAKE_CORE_INCLUDE_PATH&amp;#8217;, DS.&amp;#8217;usr&amp;#8217;.DS.&amp;#8217;lib&amp;#8217;.DS.&amp;#8217;cake&amp;#8217;);&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;
&lt;h4&gt;第五节 &lt;/h4&gt;
&lt;h5&gt;配置 Apache 的 mod_rewrite &lt;/h5&gt;
&lt;p&gt;当CakePHP没有mod_rewrite支持时候，我们发现许多用户由于不能完美运行他们的系统而苦恼。下面是一些可能需要尝试并且使之正确运行的事情： &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;确认.htaccess 允许被重载:在httpd.conf，你的服务器上你必须确认为每一个Directory（虚拟目录）定义一个section。 确认当前Directory的&lt;strong&gt;AllowOverride&lt;/strong&gt; 选项被设置成 &lt;strong&gt;All&lt;/strong&gt;。&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;确定你修改的是系统的httpd.conf，而不是用户或者特定站点的httpd.conf。&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;由于一些原因你可能获得了一份没有.htaccess文件的CakePHP的拷贝。这种情况有可能是因为一些操作系统将以&amp;#8217;.'开头的文件看作隐藏文件，从而没有拷贝他们。确认你的CakePHP拷贝是从官方网站或者SVN库中下载的。 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;确认你正确的加载了mod_rewrite模块。你需要在你的httpd.conf中查看一下&lt;strong&gt;LoadModule rewrite_module libexec/httpd/mod_rewrite.so 和&lt;/strong&gt;&lt;strong&gt; AddModule mod_rewrite.c&lt;/strong&gt; 。 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;如果你安装CakePHP在一个用户目录 (如：http://example.com/~myusername/), 你需要在Cake安装的根目录中修改.htaccess文件，添加一行 &amp;#8220;&lt;code&gt;RewriteBase /~myusername/&lt;/code&gt;&amp;#8220;. &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;如果因为某些原因你的URL后缀太长， 如令人讨厌的session ID (http://example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska)，你可以在Cake安装的根目录中的.htaccess文件添加&amp;#8221;&lt;code&gt;php_flag session.trans_id off&lt;/code&gt;&amp;#8221; 。 &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;第六节&lt;/h4&gt;
&lt;h5&gt;确认他在工作 &lt;/h5&gt;
&lt;p&gt;好的，让我们看看Cake是如何工作在你的设置下的。在浏览器中输入http://www.example.com 或者 http://www.example.com/cake，你会看到CakePHP的默认页面，页面上会显示一些数据库链接的信息。那么恭喜你，你已经准备好创建一个基于Cake的应用了。 &lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/07/xfsyuplhokyitecnzobdbfsseqxtwtzuzssu/feed/</wfw:commentRss><description>安装CakePHP 
第一节 
介绍 
你现在已经知道CakePHP的目的和结构了，如果你仅仅是想开始使用CakePHP，不关心这些文档，而跳过这部分，那么后面你将会遇到一些麻烦。
这一章将讲述服务器上必须...</description><category>CakePHP</category><category>New Incoming</category><category>PHP</category><pubDate>Sun, 07 Jan 2007 12:47:08 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/07/xfsyuplhokyitecnzobdbfsseqxtwtzuzssu/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/07/XFSyuPLhOKYitecNZoBdBfSSEQxTWtZUZSsu/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/07/xfsyuplhokyitecnzobdbfsseqxtwtzuzssu/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731923/1219225</fs:itemid></item><item><title>CakePHP Manual翻译2：CakePHP介绍</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731924/1219225/1/item.html</link><content:encoded>&lt;/p&gt;
&lt;h3&gt;CakePHP介绍 &lt;/h3&gt;
&lt;h4&gt;第一节 &lt;/h4&gt;
&lt;h5&gt;CakePHP是什么? &lt;/h5&gt;
&lt;p&gt;CakePHP是一个免费、开源的PHP快速开发框架。它是一个用于创建web应用的给予类库的运行时框架，最开始的灵感来自于Ruby on Rails框架。我们的主要目标是使你的开发更加快速有条理，而不失灵活性。&lt;br /&gt;
&lt;h4&gt;第二节 &lt;/h4&gt;
&lt;h5&gt;为什么选择CakePHP? &lt;/h5&gt;
&lt;p&gt;CakePHP的一些特性使他成为一个更加快速而少争议的应用开发框架。下面是他的一些特性：
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;活跃，友好的社区支持 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;灵活的监听 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;兼容 PHP4 和 PHP5 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;整合数据库CRUD操作和简单的查询 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;应用脚手架（译者注：这里是指不需要写代码即可对一个表进行简单的CRUD，来源与ROR） &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;基于MVC构架 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;支持漂亮并且可以定制的url的请求分发 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;内置数据验证 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;快速灵活的框架 (PHP 语法, 结合helpers类) &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;提供展示AJAX, Javascript, HTML Forms……的帮助类 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;安全, Session, 和处理请求的组件 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;灵活的访问控制 &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;Data Sanitization &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;Flexible View Caching &lt;/p&gt;
&lt;li&gt;
&lt;p&gt;可以工作在你站点的任何目录下，并且只需要很少的apache配置 &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;第三节 &lt;/h4&gt;
&lt;h5&gt;CakePHP的历史 &lt;/h5&gt;
&lt;p&gt;2005年，Michal Tatarynowicz写了一个很小的PHP快速开发框架。他发现这是一个非常不错的框架，于是他在MIT license下发布了这个框架，叫做Cake，并且向社区的开发者开放，这就是现在的CakePHP。 &lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/06/bkwtnjcnmteamybxvdnyehigutchzapblluz/feed/</wfw:commentRss><description>CakePHP介绍 
第一节 
CakePHP是什么? 
CakePHP是一个免费、开源的PHP快速开发框架。它是一个用于创建web应用的给予类库的运行时框架，最开始的灵感来自于Ruby on Rails框架。我们的主要目标是使你...</description><category>CakePHP</category><category>New Incoming</category><category>PHP</category><pubDate>Sat, 06 Jan 2007 11:36:01 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/06/bkwtnjcnmteamybxvdnyehigutchzapblluz/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/06/bKWtNjcNMteamybXVDnYeHiGUtChZaPbLLuz/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/06/bkwtnjcnmteamybxvdnyehigutchzapblluz/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731924/1219225</fs:itemid></item><item><title>CakePHP Manual翻译：前言</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731925/1219225/1/item.html</link><content:encoded>&lt;p&gt;随着ROR的火热，PHP世界中也出现了不少类似的框架，CakePHP就是其中的佼佼者。在学习的过程中把Manual（手册）翻译出来，其中有不少不当或者是错误，希望高手指点。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;h3&gt;前言&lt;/h3&gt;
&lt;h4&gt;第一节&lt;/h4&gt;
&lt;h5&gt;Audience &lt;/h5&gt;
&lt;p&gt;这个手册是为那些想更愉快和快速的建立web应用的人们写的。CakePHP的目标是帮助所有水平的PHP用户快速而简单的建立健壮，可维护的应用程序。
&lt;p&gt;读这个手册需要一些基础的PHP和HTML知识。如果你熟悉MVC编程模式会更有帮助，但是我们会帮助那些刚刚了解MVC的人们学习这个手册。配置web服务器，将不在本手册的讨论范围内。此外一些基础知识也不在本手册的讨论范围。&lt;br /&gt;
&lt;h4&gt;第二节 &lt;/h4&gt;
&lt;h5&gt;CakePHP是免费的 &lt;/h5&gt;
&lt;p&gt;CakePHP是免费的。你可以用任何方式使用他，而并不需要为他付费。CakePHP是在&lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;MIT License&lt;/a&gt;下开发的。CakePHP是一个开放源代码的项目，也就是说你可以看到他所有的源码。获得最新代码的最好地方是CakePHP的网站 (&lt;a href=&quot;http://www.cakephp.org/&quot;&gt;http://www.cakephp.org&lt;/a&gt;)。在那里你可以浏览最新和最伟大的代码。&lt;br /&gt;
&lt;h4&gt;第三节&lt;/h4&gt;
&lt;h5&gt;社区 &lt;/h5&gt;
&lt;p&gt;CakePHP是有社区的人努力开发的。他们来自世界各国，聚集在一起创建CakePHP框架，提供了最广泛的功能。访问&lt;a href=&quot;http://www.cakephp.org/&quot;&gt;http://www.cakephp.org&lt;/a&gt;可以得到更多的Cake开发者和用户社区的消息。
&lt;p&gt;我们的IRC频道总是有很多技术精通、友好的志愿者。如果你在代码上有什么棘手的问题、需要了解或讨论代码规范，请发给我们。我们希望听到你的声音。请访问irc.freenode.com。 &lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/05/idetXdWCAHNXTZpHAoNRtYTDVUUstxXCBbWy/feed/</wfw:commentRss><description>随着ROR的火热，PHP世界中也出现了不少类似的框架，CakePHP就是其中的佼佼者。在学习的过程中把Manual（手册）翻译出来，其中有不少不当或者是错误，希望高手指点。
&amp;#160;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212...</description><category>CakePHP</category><category>PHP</category><pubDate>Fri, 05 Jan 2007 17:53:45 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/05/idetXdWCAHNXTZpHAoNRtYTDVUUstxXCBbWy/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/05/idetXdWCAHNXTZpHAoNRtYTDVUUstxXCBbWy/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/05/idetXdWCAHNXTZpHAoNRtYTDVUUstxXCBbWy/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731925/1219225</fs:itemid></item><item><title>关于Oracle的JDBC驱动</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731926/1219225/1/item.html</link><content:encoded>&lt;p&gt;一直以来oracle的jdbc驱动拿过来就用，也没有仔细去看看oracle官方关于jdbc驱动的说明。直到某天看着同事用classes12.jar(classes12.zip)做为oracle的jdbc驱动，而我却一直用ojdbc14.jar。看了oracle官方的说明才知道他们的区别，原来&lt;strong&gt;classes12.jar(classes12.zip)&lt;/strong&gt;是用于&lt;strong&gt;JDK1.2和JDK1.3&lt;/strong&gt;的而&lt;strong&gt;ojdbc14.jar&lt;/strong&gt;是用于&lt;strong&gt;JDK1.4和JDK1.5&lt;/strong&gt;的同时还有classes12_g.jar和classes12dms.jar，具体的可以看下面的官方说明：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;&lt;a title=&quot;oracle官方jdbc驱动下载&quot; href=&quot;http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html&quot; target=&quot;_blank&quot;&gt;JDBC Thin for All Platforms&lt;/a&gt;&lt;/b&gt;
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/classes12.jar&quot;&gt;classes12.jar&lt;/a&gt; (1,594,191 bytes) - for use with JDK 1.2 and JDK 1.3
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/classes12_g.jar&quot;&gt;classes12_g.jar&lt;/a&gt; (2,038,127 bytes) - same as classes12.jar, except that classes were compiled with &amp;#8220;javac -g&amp;#8221; and contain some tracing information.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/classes12dms.jar&quot;&gt;classes12dms.jar&lt;/a&gt; (1,601,843 bytes) - same as classes12.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/classes12dms_g.jar&quot;&gt;classes12dms_g.jar&lt;/a&gt; (2,046,467 bytes) - same as classes12dms.jar except that classes were compiled with &amp;#8220;javac -g&amp;#8221; and contain some tracing information.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/ojdbc14.jar&quot;&gt;ojdbc14.jar&lt;/a&gt; (1,540,457 bytes) - classes for use with JDK 1.4 and 1.5
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/ojdbc14_g.jar&quot;&gt;ojdbc14_g.jar&lt;/a&gt; (1,932,834 bytes) - same as ojdbc14.jar, except that classes were compiled with &amp;#8220;javac -g&amp;#8221; and contain some tracing information.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/ojdbc14dms.jar&quot;&gt;ojdbc14dms.jar&lt;/a&gt; (1,548,006 bytes) - same as ojdbc14.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/ojdbc14dms_g.jar&quot;&gt;ojdbc14dms_g.jar&lt;/a&gt; (1,940,478 bytes) - same as ojdbc14dms.jar, except that classes were compiled with &amp;#8220;javac -g&amp;#8221; and contain some tracing information.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/orai18n.jar&quot;&gt;orai18n.jar&lt;/a&gt; (1,645,109 bytes) - NLS classes for use with JDK 1.2, 1.3, 1.4, and 1.5. This jar file replaces the old nls_charset jar/zip files.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/ons.jar&quot;&gt;ons.jar&lt;/a&gt; (48,492 bytes) - for use by the pure Java client-side Oracle Notification Services (ONS) deamon.
&lt;p&gt;&lt;img height=&quot;16&quot; src=&quot;http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif&quot; width=&quot;16&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/demo.tar&quot;&gt;demo.tar&lt;/a&gt; (604,160 bytes) or &lt;a href=&quot;http://download.oracle.com/otn/utilities_drivers/jdbc/10202/demo.zip&quot;&gt;demo.zip&lt;/a&gt; (529,267 bytes) - contains sample JDBC programs.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2007/01/04/gvguglzbypxfcobtzbyznaevdkoyzkvggcam/feed/</wfw:commentRss><description>一直以来oracle的jdbc驱动拿过来就用，也没有仔细去看看oracle官方关于jdbc驱动的说明。直到某天看着同事用classes12.jar(classes12.zip)做为oracle的jdbc驱动，而我却一直用ojdbc14.jar。看了oracle官方的说...</description><category>New Incoming</category><category>Java</category><pubDate>Thu, 04 Jan 2007 11:19:22 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2007/01/04/gvguglzbypxfcobtzbyznaevdkoyzkvggcam/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2007/01/04/gvGUgLzbYpXFcobTzByZnaEvdKOyzkVGGCAM/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2007/01/04/gvguglzbypxfcobtzbyznaevdkoyzkvggcam/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731926/1219225</fs:itemid></item><item><title>积极的生活</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731927/1219225/1/item.html</link><content:encoded>&lt;p&gt;看了&lt;a title=&quot;韩磊&quot; href=&quot;http://blog.hanlei.name&quot; target=&quot;_blank&quot;&gt;韩磊&lt;/a&gt;的&lt;a title=&quot;小习惯，大变化&quot; href=&quot;http://blog.hanlei.name/archive/2006/12/16/60310.aspx&quot;&gt;《小习惯，大变化》&lt;/a&gt;很有感触，尤其是第二条，我也有这个习惯，吃完的碗筷从来都是放到那里，很多时候是在第二次用的时候再去洗。其实用完就洗并不费事，可是就是不想动，这直接反映了一些问题，在一些小事上面，总是能不做就不做，也许很多时候是省事，可是久而久之难免会影响一个人的做事方式。对于这一条，坚决改正之。&lt;/p&gt;
&lt;p&gt;其实我也是一个散漫的家伙，虽然很多时候我总是对别人和我的后辈们说要如何做如何做，当然说的这些话都为了他们好，但是，往往做不到的是自己。人总是这样，对自己要求的宽松些。所以，从今天开始，我想用行动表达，告诉别人，应该如何去做。&lt;/p&gt;
&lt;p&gt;从今天开始，不算晚吧，呵呵。&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2006/12/18/WBtwauLptHDShlocBNjIsdZzFUDJfbNbChyD/feed/</wfw:commentRss><description>看了韩磊的《小习惯，大变化》很有感触，尤其是第二条，我也有这个习惯，吃完的碗筷从来都是放到那里，很多时候是在第二次用的时候再去洗。其实用完就洗并不费事，可是就是不想动，...</description><category>New Incoming</category><category>pop up</category><pubDate>Mon, 18 Dec 2006 09:50:27 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2006/12/18/WBtwauLptHDShlocBNjIsdZzFUDJfbNbChyD/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2006/12/18/WBtwauLptHDShlocBNjIsdZzFUDJfbNbChyD/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2006/12/18/WBtwauLptHDShlocBNjIsdZzFUDJfbNbChyD/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731927/1219225</fs:itemid></item><item><title>互联网带给我们的是什么？</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731928/1219225/1/item.html</link><content:encoded>&lt;p&gt;互联网带给我们的是什么？程序员说互联网带给了我们便捷的信息获取方式；孩子们说互联网带给我们更多的游戏；blogger们说互联网带给我们发表我们看法的空间；经营者说互联网带给我们大把的钞票……。你可以继续这个排比句，但不管是什么，互联网带给我们的是一个多元化的世界，在这个世界中没有什么是对的，也没有什么是错误的，没有标准答案，你需要自己去判断，自己去决定，就向&lt;a href=&quot;http://blog.donews.com/keso&quot; target=&quot;_blank&quot; title=&quot;keso&quot;&gt;keso&lt;/a&gt;所说的那样&amp;#8221;&lt;a href=&quot;http://blog.donews.com/keso/archive/2006/11/23/1084001.aspx&quot; target=&quot;_blank&quot; title=&quot;心存感激&quot;&gt;我知道，世界已经跟过去不一样了。在一个失去权威的&amp;#8221;混乱的&amp;#8221;新世界中，我们必须依赖我们自己的判断力&lt;/a&gt;&amp;#8220;。是啊，互联网就是这样，在这里你永远找不到绝对的东西，哪怕是一个暂时绝对的东西，对于一个事务，一个说法，都会有着大量的信息，你需要凭借自己去做这个判断，是相信还是不相信，是对还是错？也许在我们儿时，在没有互联网的时候，我们能做的只能是接受，老师说什么就是什么，你能有什么异议？如果你有你就是异类！如果你说你今天不想上学，我只是想研究一下我的小泥人怎样能过做的更漂亮，那么无疑，你就是那个被认为是不爱学习，没有出息的孩子（那么我们的世界会不会又少了一个做泥人的大亨？）。如果你看到某条新闻，或者是某条评论，你会觉得，书本就是书本，说的就是对的，哪怕你有异议，你会提出来么？提出来了，又有谁会理会你呢？你的思想被这种所谓的正统一条一条的束缚着，当你看到光凭借搜索广告做大的google你会觉得无法理解和相信，你呢，只有老老实实的记着老师的教导，好好学习，多学技术，找个好工作，到一家大公司工作。你永远都不会想到，自己有没有可能成为那家公司的主人？&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kuangrenriji.blogbus.com/index.html&quot; target=&quot;_blank&quot; title=&quot;狂人日记&quot;&gt;大米&lt;/a&gt;在&lt;a href=&quot;http://kuangrenriji.blogbus.com/logs/2006/10/3702718.html&quot; target=&quot;_blank&quot; title=&quot;狂人日记——《真小人还是伪君子》&quot;&gt;《真小人还是伪君子》&lt;/a&gt;中说到孔庆东、老罗、宋祖德，他们到底是君子，还是小人？我想这些完全需要自己去判断，因为这种问题，对于每种答案，在互联网上你总是会找出一大批的有力证据，那么你到底应该如何去选择呢？我喜欢这种选择，因为我所做的决定，都代表这我自己思想的一部分，我不需要别人给我安排好要走的一切，我不需要现在就看到10年后，我还是在这张办公桌上做着同样的事情。&lt;/p&gt;
&lt;p&gt;再次引用&lt;a href=&quot;http://blog.donews.com/keso&quot; target=&quot;_blank&quot;&gt;keso&lt;/a&gt;大哥的一句话&amp;#8221;&lt;a href=&quot;http://blog.donews.com/keso/archive/2006/11/23/1084001.aspx&quot; target=&quot;_blank&quot; title=&quot;心存感激&quot;&gt;不要给我一个无菌的环境，请让我自己建立免疫力。感谢互联网，它让我知道，至少，我们的大脑并不完全是一个接受灌输的容器&lt;/a&gt;&amp;#8220;，当你觉得你以前的想法是错误或者不妥的时候，那么不代表你错了，它意味着你又进步了，世界在变化，我们也在变化，只有不断的变化人才会成长。我也同样想像keso大哥一样，说一声感谢互联网！&lt;/p&gt;
&lt;p&gt;
  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;
  Technorati : &lt;a href=&quot;http://technorati.com/tag/%E4%BA%92%E8%81%94%E7%BD%91&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;互联网&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://my.donews.com/niarevol/2006/11/26/cLBkOLEiUbHxvlGIztvxWwVhfoLAlYgoJIyy/feed/</wfw:commentRss><description>互联网带给我们的是什么？程序员说互联网带给了我们便捷的信息获取方式；孩子们说互联网带给我们更多的游戏；blogger们说互联网带给我们发表我们看法的空间；经营者说互联网带给我们大...</description><category>互联网</category><category>New Incoming</category><category>pop up</category><pubDate>Sun, 26 Nov 2006 19:56:17 +0800</pubDate><author>niarevol</author><comments>http://my.donews.com/niarevol/2006/11/26/cLBkOLEiUbHxvlGIztvxWwVhfoLAlYgoJIyy/#comments</comments><guid isPermaLink="false">http://my.donews.com/niarevol/2006/11/26/cLBkOLEiUbHxvlGIztvxWwVhfoLAlYgoJIyy/</guid><dc:creator>niarevol</dc:creator><fs:srclink>http://my.donews.com/niarevol/2006/11/26/cLBkOLEiUbHxvlGIztvxWwVhfoLAlYgoJIyy/</fs:srclink><fs:srcfeed>http://my.donews.com/niarevol/feed/</fs:srcfeed><fs:itemid>feedsky/index/~1217480/73731928/1219225</fs:itemid></item><item><title>用zend studio调试php程序</title><link>http://item.feedsky.com/~feedsky/index/~1217480/73731929/1219225/1/item.html</link><content:encoded>&lt;p&gt;在调试PHP的时候如果直接用文本编辑器，我们会遇到很多的问题，比如会用很多的echo，和var_dump来打印出一些调试信息，如果用ide的话就方便多了。目前最好用的PHP IDE恐怕就是Zend Studio了，可以在&lt;a href=&quot;http://www.zend.com/&quot; target=&quot;_blank&quot; title=&quot;下载zend studio&quot;&gt;Zend&lt;/a&gt;下载试用版。Zend Studio分Client和Server，Zend Studio Client 是PHP的IED，其中内置了PHP，Zend Studio Server是用于调试服务端的PHP程序。如果直接用Zend Studio Server可以调试几个关联的PHP程序，但是如果想调试web程序，比如从一个页面提交到另外一个页面，那么这个时候你就需要Zend Studio Server了，结合Zend Studio Server你就可以调试PHP的web应用了。下面介绍一下在windows下如何使用Zend Studio Client和Zend Studio Server调试PHP的web应用。&lt;/p&gt;
&lt;p&gt;首先需要安装PHP和Apache，具体的配置可以参考&lt;a href=&quot;http://my.donews.com/niarevol/2006/04/13/windows%e4%b8%8b%e5%ae%89%e8%a3%85%e5%92%8c%e9%85%8d%e7%bd%aephp5apche2mysql5phpmyadmin2803/&quot; target=&quot;_blank&quot; title=&quot;windows下安装和配置php5,apche2,mysql5,phpMyAdmin2.8.0.3&quot;&gt;这篇文章&lt;/a&gt;，不过注意在配置Apache的时候一定注意 DocumentRoot的配置，在后面Zend Studio Server的管理工具（是一个web应用）会安装在这里。&lt;/p&gt;
&lt;p&gt;配置好PHP和Apache后，首先安装Zend Studio Client，目前最新的是Zend Studio Client 5.5 bate，这里没有特别注意的。&lt;/p&gt;
&lt;p&gt;然后我们安装Zend Studio Server这里有几个地方需要注意。运行Zend Studio Server安装程序，选择你的安装位置&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_1.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_1_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_1.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择你web服务器的类型（对于Apache目前好像还没有2.2.x的支持，2.2.x自动识别为other web Server）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_2.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_2_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_2.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择PHP的安装位置，这里默认选择内置的PHP，不过建议选择你之前安装的PHP&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_3.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_3_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_3.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择PHP.ini的目录&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_4.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_4_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_4.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择web服务器的安装目录&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_5.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_5_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_5.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择web服务器的DocumentRoot目录，Apache的用户请注意，这里是您在Apache中设置的DocumentRoot的目录，Zend Studio Server会将管理的web应用安装在这个目录，请保证这个目录一定是Apache的DocumentRoot，也就是Apache指定的web应用存放的目录。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_6.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_6_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_6.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;指定允许访问Zend Studio Server的ip，这个用于远程调试&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_7.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_7_tn.jpg&quot; height=&quot;151&quot; width=&quot;200&quot; alt=&quot;zend_server_install_7.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;随后系统会提示输入访问Zend Studio Server管理应用的密码。在确认配置后开始安装Zend Studio Server，安装程序会修改php.ini，和pache的配置文件httpd.conf。安装完成后会自动启动web服务器，并且启动Zend Studio Server的管理程序，如果您的web服务器的访问端口不是默认的80，则需要修改Zend Studio Server的管理程序的访问地址（添加端口，如Zend Studio Server的管理程序的默认地址是&lt;a href=&quot;http://localhost/ZendStudioServer/index.html&quot;&gt;http://localhost/ZendStudioServer/index.html&lt;/a&gt;，你的web服务器的端口是8080，则需要将地址修改成&lt;a href=&quot;http://localhost:8080/ZendStudioServer/index.html&quot;&gt;http://localhost:8080/ZendStudioServer/index.html&lt;/a&gt;，同时修改开始菜单启动Zend Studio Server的快捷方式）。如果出现输入口令的界面，表示Zend Studio Server安装成功&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_8.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_server_install_8_tn.jpg&quot; height=&quot;132&quot; width=&quot;200&quot; alt=&quot;zend_server_install_8.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;从Zend Studio Client调试PHP的web应用&lt;/p&gt;
&lt;p&gt;在Zend Studio Client建立项目后，在项目属性中，需要配置调试方式为&amp;#8221;服务器&amp;#8221;，将Debug Server URL配置成Zend Studio Server安装的Server地址&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_client_config.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_client_config_tn.jpg&quot; height=&quot;140&quot; width=&quot;200&quot; alt=&quot;zend_client_config.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;检查Debug Server 是否能正确链接&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://my.donews.com/niarevol/files/2006/11/zend_client_config_2.JPG&quot;&gt;&lt;img src=&quot;http://my.donews.com/niarevol/files/2006/11/zend_client_config_2_tn.jpg&quot; height=&quot;108&quot; width=&quot;200&quot; alt=&quot;zend_client_config_2.JPG&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在Zend Studio Client中内置的浏览器输入应用的地址如&lt;a href=&quot;http://localhost:8080/demo/index.PHP&qu