<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>我也不知道想记点什么,乱写吧</title>
    <description></description>
    <link>http://caol.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>acts_as_ferret 在使用中无法更新</title>
        <author>thundercao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://caol.javaeye.com">thundercao</a>&nbsp;
          链接：<a href="http://caol.javaeye.com/blog/115185" style="color:red;">http://caol.javaeye.com/blog/115185</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />
起因:<br />
&nbsp;&nbsp;&nbsp; 有一文章系统,用acts_as_ferret做了全文检索,在搜索时并无问题,但在浏览者有评论时按要求去更新文章相关的最后评论时间等字段时就会发生如下错误<br />
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>Ferret::FileNotFoundError&nbsp;(</span><span class="builtin">File</span><span>&nbsp;Not&nbsp;Found&nbsp;Error&nbsp;occured&nbsp;at&nbsp;&lt;except.c&gt;:117&nbsp;</span><span class="keyword">in</span><span>&nbsp;xpop_context&nbsp;&nbsp;</span></span></li>
    <li class=""><span>Error&nbsp;occured&nbsp;<span class="keyword">in</span><span>&nbsp;fs_store.c:329&nbsp;-&nbsp;fs_open_input&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;tried&nbsp;to&nbsp;open&nbsp;<span class="string">&quot;/article/public/../config/../index/production/news/_kg_2.del&quot;</span><span>&nbsp;but&nbsp;it&nbsp;doesn't&nbsp;exist:&nbsp;&lt;No&nbsp;such&nbsp;file&nbsp;</span><span class="keyword">or</span><span>&nbsp;directory&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>):&nbsp;&nbsp;</span></li>
</ol>
</div>
&nbsp;&nbsp;&nbsp; 还有就是一创建新文章时也会偶尔出现类似的状况,<br />
<br />
看起来是因为Ferret不能正确更新检索导致的,看了acts_as_ferret的文档说是要是Drb来解决,但不知道这个Drb怎么使用<br />
<br />
希望大家帮助一下
          <br/>
          <span style="color:red;">
            <a href="http://caol.javaeye.com/blog/115185#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 10:49:29 +0800</pubDate>
        <link>http://caol.javaeye.com/blog/115185</link>
        <guid>http://caol.javaeye.com/blog/115185</guid>
      </item>
      <item>
        <title>Html过滤时标记不匹配怎么解决</title>
        <author>thundercao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://caol.javaeye.com">thundercao</a>&nbsp;
          链接：<a href="http://caol.javaeye.com/blog/70722" style="color:red;">http://caol.javaeye.com/blog/70722</a>&nbsp;
          发表时间: 2007年04月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">用一个简单的例子说明吧,就像JE的博客一样,每篇日志下面都会有一些内容的描述,也就是内容截取了一部分显示出来,在截取这部分时如果内容里带有HTML的标记,就有可能将标记截断(&lt;div&gt;&lt;/div&gt;不成对).</font></p>
<p>不知道大家碰到这种问题是怎么解决,有什么好的方法可以分享一下吗</p>
<p>&nbsp;</p>
<p>我现在遇到的就是截取后的字符因为不成对匹配,搞的我的页面都乱了版,很是郁闷</p>
          <br/>
          <span style="color:red;">
            <a href="http://caol.javaeye.com/blog/70722#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 13 Apr 2007 20:45:16 +0800</pubDate>
        <link>http://caol.javaeye.com/blog/70722</link>
        <guid>http://caol.javaeye.com/blog/70722</guid>
      </item>
      <item>
        <title>Rails单元测试的一点点疑惑</title>
        <author>thundercao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://caol.javaeye.com">thundercao</a>&nbsp;
          链接：<a href="http://caol.javaeye.com/blog/51922" style="color:red;">http://caol.javaeye.com/blog/51922</a>&nbsp;
          发表时间: 2007年02月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天在做单元测试时发现一个小问题,就是如果运行多个测试类,会因为外键问题无法删除测试数据导致测试失败.如下:<br />
<br />
测试类一<br />
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>require&nbsp;</span><span class="builtin">File</span><span>.dirname(__FILE__)&nbsp;+&nbsp;'/../test_helper'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;ShareTest&nbsp;&lt;&nbsp;Test::Unit::TestCase&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;<span class="keyword">self</span><span>.use_transactional_fixtures&nbsp;=&nbsp;</span><span class="keyword">true</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;fixtures&nbsp;<span class="symbol">:users</span><span>,</span><span class="symbol">:share_catagories</span><span>,</span><span class="symbol">:shares</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;<span class="comment">#&nbsp;Replace&nbsp;this&nbsp;with&nbsp;your&nbsp;real&nbsp;tests.</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;test_last_shares&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;assert_not_nil&nbsp;Share.last_shares(5)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
测试类二<br />
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>require&nbsp;</span><span class="builtin">File</span><span>.dirname(__FILE__)&nbsp;+&nbsp;'/../test_helper'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;BlogTest&nbsp;&lt;&nbsp;Test::Unit::TestCase&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;<span class="keyword">self</span><span>.use_transactional_fixtures&nbsp;=&nbsp;</span><span class="keyword">true</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;fixtures&nbsp;<span class="symbol">:users</span><span>,</span><span class="symbol">:blogs</span><span>,</span><span class="symbol">:blog_members</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;test_hearty_seniority&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;assert_not_nil&nbsp;Blog.hearty_seniority(2)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
<font color="#ff6600">表间关系</font>:<br />
&nbsp;&nbsp; user 与 blog 是一对一,blog与 blog_members是一对多,<span><span class="symbol">share_catagories</span><span>与</span><span class="symbol">shares也是一对多,user与shares也是一对多<br />
<font color="#ff6600">问题症状</font>:<br />
&nbsp;&nbsp; 如果先运行ShareTest,测试通过.再运行BlogTest时夹具在测试方法运行前初始化数据,实际上是删除表再建表的一个过程,但因为前面运行过ShareTest了,此时在对user表初始时就会发生有外键引用(shares),无法初始化(fixtures),导致测试失败.<br />
</span></span><font color="#ff6600">解决方法</font>:<br />
&nbsp;&nbsp; 将表间的外键关系删除.<br />
<img src="/javascripts/fckeditor/editor/images/smiley/msn/confused_smile.gif" alt="" /><br />
这个问题到也不是什么大问题,后来看了一下typo的建表脚本,确实是没有外键,但有点想不明白,难道在设计数据库时不需要用到外键?还是说在测试时将外键删除掉,正式发布时还在用带有外键的脚本建表.typo已经是一个可以放在生产环境下使用的系统了,它就不需要外键,全部通过程序控制?或者说在Model里定义表关联时用dependent参数来保证外键?<br />
<br />
我个人也不喜欢使用各种数据库自有的特性,但外键却是大多数数据库支持的东西,如果仅是因为测试而去除这个强大的功能,好像有点........<br />
          <br/>
          <span style="color:red;">
            <a href="http://caol.javaeye.com/blog/51922#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 03 Feb 2007 00:10:42 +0800</pubDate>
        <link>http://caol.javaeye.com/blog/51922</link>
        <guid>http://caol.javaeye.com/blog/51922</guid>
      </item>
      <item>
        <title>如何实现Cookies的跨域同步</title>
        <author>thundercao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://caol.javaeye.com">thundercao</a>&nbsp;
          链接：<a href="http://caol.javaeye.com/blog/43184" style="color:red;">http://caol.javaeye.com/blog/43184</a>&nbsp;
          发表时间: 2007年01月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用户登录时我会将登录信息放入Cookies里，如下：<br /><br />    cookies[:uname]= {:value=>user.name,:domain=>"thunder.com",:path=>"/"}<br />    cookies[:uid]= {:value=>user.id.to_s,:domain=>"thunder.com",:path=>"/"}<br /><br />退出清除Cookies时如下<br />    cookies[:uname]= nil<br />    cookies[:uid]= nil<br /><br />但现在在子域abc.thunder.com用户点退出时子域已经清除了Cookies了，返回thunder.com时发现Cookies信息还在，应该是不同步，怎么样能解决这样的问题呢
          <br/>
          <span style="color:red;">
            <a href="http://caol.javaeye.com/blog/43184#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Jan 2007 11:04:53 +0800</pubDate>
        <link>http://caol.javaeye.com/blog/43184</link>
        <guid>http://caol.javaeye.com/blog/43184</guid>
      </item>
      <item>
        <title>Lighttpd在署Rails应用时还需要权限的配置?</title>
        <author>thundercao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://caol.javaeye.com">thundercao</a>&nbsp;
          链接：<a href="http://caol.javaeye.com/blog/41372" style="color:red;">http://caol.javaeye.com/blog/41372</a>&nbsp;
          发表时间: 2006年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我在Lighttpd1.4.13下布署了两个Rails应用,应用是在服务器上直接用<br />rails app-name 产生的,然后在本地通过FTP把本地应用上传,直接覆盖服务端已有的代码.<br />(说明一下,我的FTP用户是通过Pam认证的虚拟用户,在服务器上对应的用户是ftpuser)<br />然后 <br /><pre name="code" class="java">chmod 755 app-name/public/dispatch.fcgi
chown -R  app-name/public/dispatch.fcgi</pre><br /><br />问题是现在如果 应用现在的属主是root:root的话,Lighttpd运行一切正常,如果是ftpuser:ftpuser就启动不了,也不报异常信息<br />,还有就是如果是FTP直接上传Rails应用,也是无法启动,即使是将通过FTP上传的应用属主再次改为root:root也不是,无奈下试了<br />试在服务器上生成Rails应用的框架,再下载到本地,然后写一些代码,再通过FTP上传,直接覆盖相应文件,就没问题,但这个前提是<br />已经把在服务器上生成的Rails应用的属主改为ftpuser.<br /><br /><br />这个问题怎么就有点想不通,不知道是哪里出了问题,大家一般是怎么布署应用的呢.<br /><br />如果现在FTP的用户目录如下:<br /><br />/var/www/html/appname   且这个目录的属主是ftpuser<br />在Lighttpd里的虚拟主机指向上面这个目录,应该如果去布署呢,问题是出在操作有误上还是我分配的权限不对路啊
          <br/>
          <span style="color:red;">
            <a href="http://caol.javaeye.com/blog/41372#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Dec 2006 09:42:27 +0800</pubDate>
        <link>http://caol.javaeye.com/blog/41372</link>
        <guid>http://caol.javaeye.com/blog/41372</guid>
      </item>
  </channel>
</rss>