<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>hijack</title>
    <description>http://jack.lifegoo.com</description>
    <link>http://hijack.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>[好书推荐] Getting Real -- 快速构建web应用</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/123528" style="color:red;">http://hijack.javaeye.com/blog/123528</a>&nbsp;
          发表时间: 2007年09月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p> 想构建一个成功的Web应用么? 那么正是时候Getting Real. Getting Real 是一种更小规模，更快速，更高质量的软件构建方法。 </p>
<ul>
    <li>想构建一个成功的Web应用么? 那么正是时候Getting Real. Getting Real 是一种更小规模，更快速，更高质量的软件构建方法。</li>
    <li>Getting Real是关于省略所有表达现实（图表，曲线，矩形，箭头，统计图），而构建现实。 </li>
    <li>Getting real 是追求精炼。更少的代码量，更少的软件，更少的功能，更少的文档工作，更少无所谓的东西（而且大部分你认为必要的，其实不是）。 </li>
    <li>Getting Real 是保持精益，变得敏捷。 </li>
    <li>Getting Real从界面开始，也就是用户使用的屏幕。它从实际的用户体验开始，并且构建似曾相识的体验。这让你在软件误入歧途之前得到正确的用户界面。 </li>
    <li>Getting Real 是关于迭代和降低变化成本的方法。Getting Real基本上是关于上线，调整，持续改进，其目标的开发Web软件的最佳途径。 </li>
    <li>Getting Real只交付客户所需的，摒弃任何客户不需要的。 </li>
</ul>
<strong>Getting Real的优点</strong>
<p> Getting Real能够交付更好的结果，是因为它强迫你处理真正要解决的问题，而不是关于那些问题的空想。它迫使你面对当下。 </p>
<p> Getting Real更注重实际的用户界面，而不是功能规格说明书和其他昙花一现的文档。只有当一个真实的网页呈现出来，相关的功能规格才是可信的，被证明是可接受 的。那才是是我们的客户将要看到和使用的。那才是需要关心的。Getting Real帮助你更快达到这个目的。并且那意味着你正在基于真实需求，而不是异想天开来构建软件。 </p>
<p> 最后，Getting Real是适合于Web软件的理想途径。那种把软件包装在盒子里，再等一年到两年才发布一个更新的学院派方法已经过时了。不像需要安装的软件，Web应用能够以天为单位持续改进。Getting Real利用了这种优势来提升Web应用的价值。 <br />
</p>
<div align="center"><a href="http://nextlib.lifegoo.com/user/jack/article/2068"><strong><font size="4">开始阅读 &gt;&gt;</font></strong></a></div>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/123528#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>Thu, 13 Sep 2007 12:34:30 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/123528</link>
        <guid>http://hijack.javaeye.com/blog/123528</guid>
      </item>
      <item>
        <title>RXML</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/123301" style="color:red;">http://hijack.javaeye.com/blog/123301</a>&nbsp;
          发表时间: 2007年09月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>原文：<a href="http://jack.lifegoo.com/?p=166">http://jack.lifegoo.com/?p=166</a></p>
<p><br />
</p>
<p>Rails里面的XML模板是RXML(由Ruby&rsquo;s XML builder做支持)，它可以很方便的生成XML文件，但是关于RXML的文档并不是很多，我在这里分享一些在项目中使用到的技巧 <img class="wp-smiley" src="http://jack.lifegoo.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> </p>
<table cellspacing="1" border="1" height="124" cellpadding="1" width="708">
    <tbody>
        <tr>
            <th>代码</th>
            <th>输出</th>
            <th>描述</th>
        </tr>
        <tr>
            <td>xml.a</td>
            <td><a></a></td>
            <td>创建一个a元素</td>
        </tr>
        <tr>
            <td>xml.a my_text</td>
            <td><a></a><a>my_text</a></td>
            <td>创建一个a元素，text是my_text</td>
        </tr>
        <tr>
            <td>xml.a attr1=my_attr my_text</td>
            <td><a attr1="my_attr"></a><a attr1="my_attr">my_text</a></td>
            <td>创建一个a元素，有一个属性attr1的值是my_attr</td>
        </tr>
        <tr>
            <td>xml.a :my_ns my_text</td>
            <td><a:my_ns><a:my_ns>my_text</a:my_ns></a:my_ns></td>
            <td>创建一个元素a，它的命名空间是my_ns</td>
        </tr>
        <tr>
            <td>
            <p>xml.a do<br />
            &nbsp;&nbsp;&nbsp; xml.b b_text<br />
            end</p>
            </td>
            <td><a></a><a><br />
            &nbsp; <strong><strong>b_text</strong><br />
            </strong></a><strong><br />
            </strong>             </td>
            <td>创建a的子元素b</td>
        </tr>
    </tbody>
</table>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/123301#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>Wed, 12 Sep 2007 14:51:42 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/123301</link>
        <guid>http://hijack.javaeye.com/blog/123301</guid>
      </item>
      <item>
        <title>url_for in ActionMailer</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/121258" style="color:red;">http://hijack.javaeye.com/blog/121258</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h3><a href="http://jack.lifegoo.com/?p=161" title="Permanent Link to url_for in ActionMailer" rel="bookmark">url_for in ActionMailer</a></h3>
<p><span class="nlLink" _counted="undefined" nltag="actionmailer"><a href="http://nextlib.lifegoo.com/articles/tag/actionmailer" target="_blank"><span style="MARGIN-LEFT: 18px">ActionMailer</span></a></span>是Rails中发送email的一个controller。今天遇到的一个问题就是在ActionMailer controller/viewer中生成URL。我说的生成URL主要指url_for方法生成绝对路径，也就是 url_for(:only_path =&gt; false, :controller =&gt; xxx, :action =&gt; xxx)。我们都知道组成一个绝对路径需要有protocol, host, port和相对路径。在ActionMailer里面， request instance是不存在的，所以组成绝对路径的protocol, host 和 port是得不到的。</p>
<p><span class="nlLink" _counted="undefined" nltag="dynamic-lang"><a href="http://nextlib.lifegoo.com/articles/tag/dynamic-lang" target="_blank"><span style="MARGIN-LEFT: 18px">动态语言</span></a></span>在AOP方面有着天然的优势。上面的问题可以很方面用一个around filter来解决。下面是代码片断</p>
<blockquote>
<p>&nbsp;&nbsp;&nbsp; module InstanceMethods<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def url_for_everywhere<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request = self.request<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::ActionController::UrlWriter.module_eval do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @old_default_url_options = default_url_options.clone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:host] = request.host<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:port] = request.port unless request.port == 80<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protocol = /(.*):\/\//.match(request.protocol)[1] if request.protocol.ends_with?(&quot;://&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:protocol] = protocol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yield<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ensure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::ActionController::UrlWriter.module_eval do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:host] = @old_default_url_options[:host]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:port] = @old_default_url_options[:port]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default_url_options[:protocol] = @old_default_url_options[:protocol]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp; end</p>
</blockquote>
<p>思路很简单，::ActionController::UrlWriter中有默认的default_url_options的一些参数，filter选把这些参数保存起来，尝试去取当前request对应的参数，如果有那么应用，并继续执行后面的程序(url_for就在这里)，最后需要把最原始的default_url_options restore。通过这样一个around filter我们就可以透明地解决ActionMailer中url_for不能使用的问题。当然也可以把它插件化 <img class="wp-smiley" src="http://jack.lifegoo.com/wp-includes/images/smilies/icon_wink.gif" alt=";)" /> </p>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/121258#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>Thu, 06 Sep 2007 12:56:00 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/121258</link>
        <guid>http://hijack.javaeye.com/blog/121258</guid>
      </item>
      <item>
        <title>Share methods in Controller and Helper (Rails)</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/121256" style="color:red;">http://hijack.javaeye.com/blog/121256</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://jack.lifegoo.com/?p=158" target="_blank"><strong>Share methods in Controller and Helper (Rails)</strong></a><br /><br />在Ruby on Rails里面，首先应该明确的一点 —– Helper是view的helper，根据这个原则，在默认实现下，controller是不允许访问helper里面的方法的。当然helper在本质上是一个module，所以要在controller和helper之间共享一些方法的办法还是很多的。因为是双方都拥有的方法，所以就面临一个问题 —— 方法放在那里比较合理？controller还是helper？我阐述一下我的原则：<br /><br />如果方法中需要引入其他helper方法，那么我们建议该方法放在helper中；否则，可以放在controller中或者写一个公共module。放在controller里面需要注意安全性，因为controller里面public的方法很有可能通过URL加以执行，所以我们建议所有的helper 方法都用private 加以约束。<br /><br />下面我就详细说一下4中方法。<br /><br />Helper方法放在controller中，通过ApplicationHelper来实现公用。代码存在一定的安全隐患。 <br />module ApplicationHelper<br />  def method_missing(method, *args, &block)<br />    if ApplicationController.instance_methods.include? method.to_s<br />      controller.send(method, *args, &block)<br />    else<br />      super<br />    end<br />  end<br />end <br /><br />Helper方法放在controller中，通过helper_method来实现公用。代码安全。 <br />private<br /><br />heper_method :login?<br />def login?<br />  # your logic goes here<br />end <br /><br />Helper方法放在Helper中，通过include module_name向controller暴露，代码安全 <br />include FullModuleName <br /><br />Helper方法放在一个独立的module中，helper和controller通过include这个module来获得公共方法。 <br />include CommonModuleName <br /><br />关于include module需要注意的是，它不会帮助你去自动解决module依赖性的问题。
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/121256#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>Thu, 06 Sep 2007 12:52:24 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/121256</link>
        <guid>http://hijack.javaeye.com/blog/121256</guid>
      </item>
      <item>
        <title>如何成为一个高效的程序开发人员</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/121253" style="color:red;">http://hijack.javaeye.com/blog/121253</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial"><a href="http://jack.lifegoo.com/?p=164">&nbsp;<span class="dark_c" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt">如何成为一个高效的程序开发人员</span></a></font></p>
<p>Sun Microsystems亚太区的工程师Lee Chuk Munn写了一篇不错的小文，介绍一个高效程序开发人员的应该有的7个习惯(<strong class="a4"><span nluser="jack" class="nlLink" _counted="undefined" nlaid="1965"><a href="http://nextlib.lifegoo.com/user/jack/article/1965" target="_blank"><span style="MARGIN-LEFT: 18px">Seven habits of effective developers</span></a></span></strong>):</p>
<ol>
    <li><strong>Understand the problem</strong>
    <p>For instance, Lee said, there are different algorithms engineers can use to write a sorting program.</p>
    <p>To select the right one to use, developers need to first understand the size of the data&ndash;that the sorting program will be administered on&ndash;in order to decide which is the right algorithm to use. &quot;Choosing the wrong one would put your application in jeopardy in future,&quot; he said.</p>
    </li>
    <li><strong>Use appropriate tools</strong>
    <p>Quoting American psychologist Abraham Maslow, Lee read: &quot;If the only tool you have is a hammer, you will see every problem as a nail.&quot;</p>
    <p>This Maslow concept has become so popular among software developers that it has been dubbed the &quot;Golden Hammer&quot; rule, which cautions engineers with limited knowledge or training of solutions that they run the risk of using only tools they are familiar with, but that may not be the most appropriate, when they develop a new program.</p>
    </li>
    <li><strong>Strive for simplicity</strong>
    <p>Programmers should develop applications that are:<br />
    Easy to understand;&nbsp; Easy to explain;&nbsp; Easy to maintain; andEasy to document. </p>
    </li>
    <li><strong>Keep your code clear</strong>
    <p>Lee said: &quot;Put yourself as an author, how would you write something that others can easily understand and follow your thoughts? That&rsquo;s how a programmer should code as well.&quot; </p>
    </li>
    <li><strong>Learn to debug</strong>
    <p>&quot;Sometimes, there are bugs in your codes, or in other [software] libraries that you may have bought or downloaded that you cannot control,&quot; Lee said, underscoring the need for developers to &quot;test early, test often&quot;. </p>
    </li>
    <li><strong>Leverage what is available<br />
    </strong><br />
    Developers should also look for solutions or algorithms that are already publicly available, such as those highlighted in developer forums and mailing lists. <br />
    </li>
    <li><strong>Continue to learn<br />
    </strong>
    <p>Can developers then balance the commercial need to push out applications as quickly as possible, with the need to write codes that are clean?</p>
    <p>Lee believes they can. &quot;A lot of people say if they don&rsquo;t have quantity time, at least they have quality. That&rsquo;s not true&hellip; You can&rsquo;t have quality time if you don&rsquo;t put in quantity time,&quot; he said. &quot;There&rsquo;s commercialization [in software development] but there&rsquo;s also &lsquo;art&rsquo; and &lsquo;good&rsquo; codes. And you can achieve both.&quot;&nbsp;</p>
    </li>
</ol>
<p>如何成为一个高效的程序员，我觉得这是每个开发者应该去思考一下的问题。聪明 不等于高效。在我看来，所谓的高效是能够快速适应问题领域，分析面对的问题，最后快速找到解决方案。在这个过程中，很多品质(Lee Chuk Munn把他叫习惯)决定了是否高效。比如KISS原则，在一个team中，如果大家都一致认同这个原则，并在产品设计，需求分析甚至编码的时候时刻提醒自己，那么在brainstorm的时候，很容易达到一致或者可以很快明确当前的主要TODO是什么。相反的，如果有人忽略了KISS，那么很容易纠缠于细节，导致最后的讨论失去主方向。请记住：<strong>把一个系统设计的复杂要比简单来的容易得多</strong>。</p>
<p>我很喜欢Lee关于写代码的比喻 &mdash;&mdash;&nbsp; 编写应用程序，就像你再写一本书。写书的时候你应该尽量保持结构清晰并且让你的读者不会觉得很晦涩。如果写书人能够尝试用40%的时间站在读者的角度去思考问题，我觉得这种书成为畅销书的可能性很大。</p>
<p>最后是自我学习，我在面试一些技术人员的时候，我很少问到一些很生僻，很刁难的问题。我更愿意了解他/她在项目中的角色和对新技术的态度。如果一个开发者愿意学习，并且能够学习，我觉得这种品质要比让他记住一些问题的答案重要的多。现在互联网上公开的文献资料和课程都很多，只要愿意学习，视野一定会慢慢扩大 &mdash;&mdash; <a href="http://nextlib.lifegoo.com/">NextLib</a>也是帮助你管理个人知识的一个好工具 <img class="wp-smiley" src="http://jack.lifegoo.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> 。这是很重要的，还记得&ldquo;黄金锤子&rdquo;吧 : <strong>如果你手上只有一把锤子，那么你会把所有问题看成是钉子</strong> <img class="wp-smiley" src="http://jack.lifegoo.com/wp-includes/images/smilies/icon_wink.gif" alt=";)" /> </p>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/121253#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>Thu, 06 Sep 2007 12:48:45 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/121253</link>
        <guid>http://hijack.javaeye.com/blog/121253</guid>
      </item>
      <item>
        <title>RoR在扩建复杂系统中的问题</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/76080" style="color:red;">http://hijack.javaeye.com/blog/76080</a>&nbsp;
          发表时间: 2007年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          多年来Ruby社区一直以来都承受一个压力，那就是runtime performance scalability。现在很多人也用同样的眼光看待RoR，然而在Cal Henderson的书 中指出网站运行时性能的扩展性可以通过增加服务器来解决。这在RoR里面实现是很简单的。<br /><br />RoR在现实中遇到的更多的问题是面对复杂性表现出来的可伸缩性(scalability in terms of complexity)。当系统变得越来越复杂的时候，我们发现可伸缩性越来越小，或者说我们需要花费更多的精力到系统维护中。那么这种成本怎么会产生的呢?<br /><br />我们先来看看人们为什么会采用RoR开发项目。首先Ruby是一种high level programming language。它区别于C/C++这些low level programming language在于指针不暴露给编程人员，这样就避免了编程人员整天浸泡因为指针而犯的错误中。在这个层面上我觉得Ruby和Java、C#不存在什么区别。其次RoR是full stack solution， 在这一点上，也有人认为Ruby社区没有提供足够的lib供开发人员选择。我不知道当RoR提供了Seaside的实现后，这种优势是否存在。<br /><br />下面我们讨论RoR在构建复杂系统可伸缩性减小的原因:<br /><br />http://jack.lifegoo.com/?p=134
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/76080#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>Sun, 29 Apr 2007 13:14:29 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/76080</link>
        <guid>http://hijack.javaeye.com/blog/76080</guid>
      </item>
      <item>
        <title>Layout in Rails - Part I</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/75125" style="color:red;">http://hijack.javaeye.com/blog/75125</a>&nbsp;
          发表时间: 2007年04月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Rails里面的layout的主要思想是template的merge机制 &mdash; 即在布局中留下若干占位符(或者是pointcut, AOP中的术语)。当HTTP请求过来，响应页面将具体内容插入到对应的占位符合并而成完成的内容。这和以及<!--p includ-->在使用理念上是完全不一样的。站在具体响应页面的角度看，rails采用的是推(push)的技术，而后两者则是拉(pull)的技术。当然&ldquo;推&rdquo;的处理方法项目可维护性更好。下面我们主要说说在Rails的controller中对layout的控制范围。</p>
<p>1. method级别的控制。在某些特定的请求(对应rails controller里面一个method)需要特定的layout, 这时候可以</p>
<blockquote>
<p>class ExampleController &lt; AppplicationController<br />
&nbsp;&nbsp; def index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; render :layout =&gt; &lsquo;my_layout&rsquo;<br />
&nbsp;&nbsp; end<br />
&nbsp;&nbsp; def list<br />
&nbsp;&nbsp; end<br />
end</p>
</blockquote>
<p><a href="http://jack.lifegoo.com/?p=131">Read more</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/75125#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>Thu, 26 Apr 2007 16:46:13 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/75125</link>
        <guid>http://hijack.javaeye.com/blog/75125</guid>
      </item>
      <item>
        <title>个人知识库系统</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/71307" style="color:red;">http://hijack.javaeye.com/blog/71307</a>&nbsp;
          发表时间: 2007年04月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>个人知识库系统</p>
<p><a href="http://zhishi.lifegoo.com">http://zhishi.lifegoo.com</a> </p>
<p>欢迎使用 :)</p>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/71307#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>Sun, 15 Apr 2007 21:57:35 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/71307</link>
        <guid>http://hijack.javaeye.com/blog/71307</guid>
      </item>
      <item>
        <title>发布Rails程序的Rakefile一般怎么写</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/59800" style="color:red;">http://hijack.javaeye.com/blog/59800</a>&nbsp;
          发表时间: 2007年03月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          大家一般都是怎么写发布rails程序的Rakefile. 有没有一种持续发布的概念?
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/59800#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, 14 Mar 2007 14:50:34 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/59800</link>
        <guid>http://hijack.javaeye.com/blog/59800</guid>
      </item>
      <item>
        <title>GetText怎么来支持动态参数</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/54288" style="color:red;">http://hijack.javaeye.com/blog/54288</a>&nbsp;
          发表时间: 2007年02月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          The 1st parameter is %1, the 2nd is %2 and the 3nd %3<br />其中%1, %2, %3作为参数传入的<br />类似java里面的{1}的功能是不是有的?
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/54288#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>Tue, 13 Feb 2007 22:21:34 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/54288</link>
        <guid>http://hijack.javaeye.com/blog/54288</guid>
      </item>
      <item>
        <title>MinimalInterface?</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/29923" style="color:red;">http://hijack.javaeye.com/blog/29923</a>&nbsp;
          发表时间: 2006年10月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Martin Fowler引起的关于MinimalInterface和HumaneInterface争论上周粗略浏览过。<a href="http://sishen.lifegoo.com/?p=12" target="_blank">今天sishen在自己blog上作了一些总结</a>，同时zhouyan在BBS上也说起同样的问题。<br /><br /><div class="quote_title">引用</div><div class="quote_div">写个程序用到java.util.regex.Matcher。这个类有find()、find(int)、lookingAt()，可就是没有lookingAt(int)。只好写一段程序自己实现。<br /><br />后来觉得不爽，google了一下原来在1.4的时候就有人把“没有lookingAt(int)”作为一个bug报上去了。sun给的答复“Closed, will not be fixed”，理由是在5.0版本里面已经提供了region(int, int)，通过它和lookingAt()就可以实现lookingAt(int)的功能。拜托，就算这样，你加一个lookingAt(int)会有多少工作量啊，能节省coder多少时间。而且，find、find(int)都不会reset该Matcher的，而region则会reset。万一碰到需要lookingAt(int)但是不能reset的时候你叫人家怎么办呢？</div><br /><br />More: <a href="http://jack.lifegoo.com/?p=68" target="_blank">http://jack.lifegoo.com/?p=68</a>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/29923#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>Wed, 25 Oct 2006 01:55:39 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/29923</link>
        <guid>http://hijack.javaeye.com/blog/29923</guid>
      </item>
      <item>
        <title>Functional Ant</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/29399" style="color:red;">http://hijack.javaeye.com/blog/29399</a>&nbsp;
          发表时间: 2006年10月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://jack.lifegoo.com/?p=61" target="_blank">http://jack.lifegoo.com/?p=61</a> 主要介绍ant 1.6中的macrodef和subant, 比较落后的说。知道的人略过好了 <img src="/images/smiles/icon_smile.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/29399#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>Sun, 22 Oct 2006 17:25:56 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/29399</link>
        <guid>http://hijack.javaeye.com/blog/29399</guid>
      </item>
      <item>
        <title>setTimeout vs. setInterval (2)</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/27938" style="color:red;">http://hijack.javaeye.com/blog/27938</a>&nbsp;
          发表时间: 2006年10月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在<a href="http://jack.lifegoo.com/?p=44" target="_blank">上一个 post</a> 里我说明了setTimeout和setInterval在运行机制和使用上面的区别。今天在更新<a href="http://jack.lifegoo.com/?p=30" target="_blank">RSSGo! Firefox extension</a>(主要加入Live Strong blog的RSS feeds，<a href="http://jack.lifegoo.com/wp-content/uploads/2006/10/rssgo_0.2.1.xpi" target="_blank">可以在点击这里下载</a>) 又发现一个区别。概括的说在调度动态参数的函数时，setTimeout 比 setInterval 要强大很多。<br /><br /><strong>例子场景设计：</strong>有一个RSS feeds容器，周期性的从容器中选取出一个feed, 如果遇到最后一条，那么下次选取跳到第一条。也就是说feed list是一个环形列表。<br /><br /><strong>实现：</strong>我发现这个例子只能用setTimeout来实现，如果你能用setInterval做到同样的效果，welcome commets  .<br /><br /><pre name="code" class="java">  
var feeds = [’http://jack.lifegoo.com/?feed=rss2′,
                     ‘http://jack.lifegoo.com/?feed=comments-rss2′,
                     ‘http://sishen.lifegoo.com/?feed=rss2′,
                     ‘http://sishen.lifegoo.com/?feed=comments-rss2′];

function myalert(i){
    if(i &lt; feeds.length) {
    alert(feeds[ i ++]);
 } else {
    i = 0;
    alert(feeds[ i ++]);
 }
 setTimeout("myAlert(" + i +")", 5000);
}

myAlert(0);</pre>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/27938#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>Mon, 16 Oct 2006 16:00:04 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/27938</link>
        <guid>http://hijack.javaeye.com/blog/27938</guid>
      </item>
      <item>
        <title>Web Application Security</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/27919" style="color:red;">http://hijack.javaeye.com/blog/27919</a>&nbsp;
          发表时间: 2006年10月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">Web application security现在(2006年)还是一个处于探索阶段的话题，我个人比较感兴趣的是JavaScript在web application中的威胁。(这不能说明我是JavaScript的反对者，恰恰相反的是我在努力掌握JavaScript —— 一个强大的脚本语言)。今年7月就有人利用javascript注入在hi.baidu上发现安全漏洞，同样Gmail里面也发现XSS安全问题。</div><br /><br /><a href="http://jack.lifegoo.com/?p=50" target="_blank">read more..</a>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/27919#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>Mon, 16 Oct 2006 12:26:13 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/27919</link>
        <guid>http://hijack.javaeye.com/blog/27919</guid>
      </item>
      <item>
        <title>Secure &quot;Remember me&quot; </title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/27252" style="color:red;">http://hijack.javaeye.com/blog/27252</a>&nbsp;
          发表时间: 2006年10月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          original: <a href="http://jack.lifegoo.com/?p=49" target="_blank">http://jack.lifegoo.com/?p=49</a><br />author: jack<br /><br />“Remember me”或者”Remember me on this computer“是现在很多web application<br /> sign on的一个特征。其实现都是借用persistent cookie. Cookie里面应该记住什<br />么？安全机制怎么来设置？我遇到的很多情况是Cookie里面直接保存username和password<br />。他们的假设是供给者不会去sniff http信息…..<br /><br />下面是我对″Remember me”和应用程序安全结合提供的一个设计思路。<br />read more: <a href="http://jack.lifegoo.com/?p=49" target="_blank">http://jack.lifegoo.com/?p=49</a>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/27252#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 Oct 2006 15:24:21 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/27252</link>
        <guid>http://hijack.javaeye.com/blog/27252</guid>
      </item>
      <item>
        <title>MySql数据库点对点复制</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/27096" style="color:red;">http://hijack.javaeye.com/blog/27096</a>&nbsp;
          发表时间: 2006年10月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          双向的点对点数据复制(bidirectional peer-to-peer replication)是一个应用程序达到high-availability的一个重要途径。MySql在5.0提供了replication的功能。在其reference里是这样介绍的：<br /><br />MySQL features support for one-way, asynchronous replication, in which one server acts as the master, while one or more other servers act as slaves. This is in contrast to the synchronous replication which is a characteristic of MySQL Cluster (see Chapter 15, MySQL Cluster).<br /><br />In single-master replication, the master server writes updates to its binary log files and maintains an index of those files to keep track of log rotation. The binary log files serve as a record of updates to be sent to any slave servers. When a slave connects to its master, it informs the master of the position up to which the slave read the logs at its last successful update. The slave receives any updates that have taken place since that time, and then blocks and waits for the master to notify it of new updates.<br /><br />A slave server can itself serve as a master if you want to set up chained replication servers.<br /><br /><a href="http://jack.lifegoo.com/?p=48" target="_blank">在我的blog里我给出了一个实现方案</a>，大家有其他好的方案么？
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/27096#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, 11 Oct 2006 23:25:08 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/27096</link>
        <guid>http://hijack.javaeye.com/blog/27096</guid>
      </item>
      <item>
        <title>my final blog</title>
        <author>hijack</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hijack.javaeye.com">hijack</a>&nbsp;
          链接：<a href="http://hijack.javaeye.com/blog/24475" style="color:red;">http://hijack.javaeye.com/blog/24475</a>&nbsp;
          发表时间: 2006年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://jack.lifegoo.com" target="_blank">http://jack.lifegoo.com</a>
          <br/>
          <span style="color:red;">
            <a href="http://hijack.javaeye.com/blog/24475#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, 15 Sep 2006 23:25:12 +0800</pubDate>
        <link>http://hijack.javaeye.com/blog/24475</link>
        <guid>http://hijack.javaeye.com/blog/24475</guid>
      </item>
  </channel>
</rss>