<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>IceskYsl@1.s.t 放任思想 天马行空</title>
    <description>我们创建“技能云” 就是为了重建软件开发者的声望。我们希望记录下自己辛勤工作的成果，并与他人分享我们的骄傲。我们希望让别人知道我们掌握什么技能、参与过什么项目、帮助过什么客户、做出过什么贡献。我们希望让自己、让同事、让朋友、让所有关注我们的人有机会了解：我们是多么优秀的软件开发者。</description>
    <link>http://iceskysl.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>遭遇Magick::ImageMagickError</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/191996" style="color:red;">http://iceskysl.javaeye.com/blog/191996</a>&nbsp;
          发表时间: 2008年05月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>一段调用RMagic的Ruby脚本,在本地跑的好好的代码,放到服务器上出现这个错误:<br />
&nbsp;Non-conforming drawing primitive definition&nbsp; (Magick::ImageMagickError)</p>
<p>查了下服务器和本地,貌似只有Rmagic的版本不一样,如下:</p>
<p>重复的就不写了,有经验的朋友帮忙到我blog上的分析和记录文章上帮忙瞧瞧.</p>
<p><a href="http://iceskysl.1sters.com/?action=show&amp;id=275&amp;page=1#cm253">http://iceskysl.1sters.com/?action=show&amp;id=275&amp;page=1#cm253</a>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/191996#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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</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, 11 May 2008 21:48:04 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/191996</link>
        <guid>http://iceskysl.javaeye.com/blog/191996</guid>
      </item>
      <item>
        <title>使用XMPP4R在RubyOnRails中集成IM功能</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/165732" style="color:red;">http://iceskysl.javaeye.com/blog/165732</a>&nbsp;
          发表时间: 2008年02月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>受到<a href="http://www.rubyfleebie.com/" title="Frank" id="hbsm" target="_blank">Frank</a>
文章的感染，决定把我使用XMPP4r在RubyOnRails中集成IM的过程按照其写的两篇文章的流程整理、分享给大家，谢谢Frank。</p>
<p>本文根据Frank的风格，结合我在&ldquo;技能云&rdquo;中使用的实际过程写的，分成如下几个大的章节：</p>
<p>一、XMPP概念以及原理简介<br />
二、实现方法篇<br />
三、结合&ldquo;技能云&rdquo;演示</p>
<p>四、可能出现的问题</p>
<p>五、技能云XMPP机器人使用说明</p>
<p>&nbsp;</p>
<p>本文采用Google在线文档编写、发布的，格式比较简洁，且能随时更新和完善，就不在重复贴在这里了，文章地址如下，请自行查看：</p>
<p>&nbsp;<a href="https://docs.google.com/Doc?id=dhf86kr9_188gmpnw5hf" target="_blank">使用XMPP4r在RubyOnRails中集成IM功能</a>
</p>
<p>如果对文章有疑问或者有错误的地方，请在这里回复指出，我将尽快给予回复和完善，谢谢！</p>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/165732#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><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Feb 2008 13:55:46 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/165732</link>
        <guid>http://iceskysl.javaeye.com/blog/165732</guid>
      </item>
      <item>
        <title>我的blog</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/164908" style="color:red;">http://iceskysl.javaeye.com/blog/164908</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          blog，为什么这里要填写？
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/164908#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><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><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 22:33:22 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/164908</link>
        <guid>http://iceskysl.javaeye.com/blog/164908</guid>
      </item>
      <item>
        <title>Ubuntu Mobile Edition：这个世界太疯狂了</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/164907" style="color:red;">http://iceskysl.javaeye.com/blog/164907</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>虽然我使用Ubuntu工作已经很长一段时间，虽然我也使用过Kubuntu、Xubuntu，虽然我也对ubuntu的前途比较看好，虽然。。<br />
N多的虽然，但当我第一次看到<strong>Ubuntu Mobile Edition</strong>的时候，还是不免呢喃了一句&ldquo;世界太疯狂了！&rdquo;难道不是么。<br />
<img src="http://www.ubuntu.com/files/u1/html-small.jpg" alt="" /><br />
自从iphone的成功，到Google的潜力修行，加上nokia的大半市场和windowmobile的无可奈何，现在又多了Ubuntu Mobile Edition。</p>
<blockquote>
<p>&ldquo;Ubuntu Mobile Edition 是 Ubuntu 家族的又一新成员。与 Kubuntu、Xubuntu、Edubuntu 这些版本相同的是，Ubuntu Mobile 一样基于 Ubuntu；不同的是，Ubuntu Mobile 是专门为 MID (Mobile Internet Devices，移动互联网设备) 而设计的。&rdquo;</p>
<p>&ldquo;Ubuntu Mobile 不仅包含丰富的应用软件，而且集成了流行的 Web 2.0 服务，如 Facebook、MySpace、YouTube 等。使用者通过 Ubuntu Mobile 能够执行诸如网络浏览、收发邮件、分享视频/音乐/照片、即时通讯、撰写博客、玩游戏等常见操作。&rdquo;</p>
</blockquote>
<p>其他的介绍：</p>
<p><a href="http://linuxtoy.org/archives/ubuntu-mobile-edition.html" target="_blank">http://linuxtoy.org/archives/ubuntu-mobile-edition.html</a></p>
<p><a href="http://moblin.org/" target="_blank">http://moblin.org/</a></p>
<p>&nbsp;</p><br /><br /><a href="http://iceskysl.1sters.com/?action=show&amp;id=220" target="_blank">阅读全文</a><br /><br />
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/164907#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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 22:07:00 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/164907</link>
        <guid>http://iceskysl.javaeye.com/blog/164907</guid>
      </item>
      <item>
        <title>我的个人blog地址</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/164416" style="color:red;">http://iceskysl.javaeye.com/blog/164416</a>&nbsp;
          发表时间: 2008年02月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个博客我不是经常更新，我经常更新的是我自己的一套博客，地址在：<br /><a href="http://iceskysl.1sters.com/" target="_blank">http://iceskysl.1sters.com/</a><br /><br />如果您想得到我最新的信息，请按照如上地址查看，谢谢。
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/164416#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 23 Feb 2008 12:27:52 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/164416</link>
        <guid>http://iceskysl.javaeye.com/blog/164416</guid>
      </item>
      <item>
        <title>请教一个奇怪的问题：java.util.zip.ZipException: oversubscribed dynamic</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/124690" style="color:red;">http://iceskysl.javaeye.com/blog/124690</a>&nbsp;
          发表时间: 2007年09月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          应用是跑在Tomcat上的，以前貌似都没有问题，上次升级後发现日志中有一段：<br />
IOException:java.util.zip.ZipException: oversubscribed dynamic bit lengths tree<br />
<br />
google了一下，发现只有这个地方有资料：<br />
<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4188883" target="_blank">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4188883</a><br />
其中说到：<font face=""><strong>Bug ID:</strong></font>                                              <font face="">4188883</font><br />
<br />
我代码中报错的这个地方的处理逻辑是：<br />
1、先使用enterprisedt的FTP包，到远程FTP服务器上取一个Gzip包文件存在本地（已经设定了二进制模式），然后解压。接着解析解压后的文件（TXT格式），生成SQL入库。。但是解析过程发现文件的后半部分很多乱码，导致部分数据入库不成功。<br />
<br />
<br />
2、于是我取回程序FTP下来的gzip文件，手工解压后发现文件是有乱码。<br />
<br />
3、我手工FTP到远程服务器，在命令行下取回该gzip文件，手工解压后却没有乱码存在。<br />
<br />
<br />
另外，以前这个过程是没有问题的，且在我的测试环境也是正常的，唯独上到服务器上存在该问题，该服务器的Java版本为：<br />
[Ysl@web11 logs]$ java -version<br />
java version &quot;1.4.2_11&quot;<br />
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_11-b06)<br />
Java HotSpot(TM) Client VM (build 1.4.2_11-b06, mixed mode)<br />
<br />
Tomcat的版本是：apache-tomcat-5.5.17<br />
<br />
不晓得是enterprisedt的问题，还是ZIib的问题，还是我代码的问题，还请遇到这个问题的人帮忙看看，谢谢～
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/124690#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><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 17 Sep 2007 11:41:31 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/124690</link>
        <guid>http://iceskysl.javaeye.com/blog/124690</guid>
      </item>
      <item>
        <title>特来请教如何实现以下几个功能（在线人数和列表更新）～</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/60892" style="color:red;">http://iceskysl.javaeye.com/blog/60892</a>&nbsp;
          发表时间: 2007年03月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />
<strong>1.关于在线人数统计</strong><br />
&nbsp;参考了下yige论坛的做法，发现也不是很好，我暂时只能做到在会员有动作的时候记录其时间，最后按照活动时间设定在线的间隔时间，定期把标识位置0或者1，这样做就显得很不准确，也不理想，不能统计到非会员的访问。<br />
有个思路是：在每个请求过来的时候，取ip地址，单独入库或者更新。然后定期检查，这样就可以记录每个游客的动作，应该是可行的，还可以做成一个比较通用的插件，不晓得javaEye是怎么实现的。<br />
<br />
<strong>2.关于下拉列表更新另外一个列表选项</strong><br />
就如同javaeye里面在写blog的时候，选择加入论坛的时候，先选择一个版块，会AJAX更新后面的那个标签的选项，应该是用JS配合AJAX实现的，可否指点一二。<br />
<br />
如上两个问题，希望牛牛提些建议，谢谢～
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/60892#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><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><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 19 Mar 2007 13:09:54 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/60892</link>
        <guid>http://iceskysl.javaeye.com/blog/60892</guid>
      </item>
      <item>
        <title>如何让apache支持中文文件名的URL.</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/50398" style="color:red;">http://iceskysl.javaeye.com/blog/50398</a>&nbsp;
          发表时间: 2007年01月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          问题是这样的:<br />
在weblogic的实现的资源上传功能,保存到一个指定的目录中,显示页面使用JAVA的遍历功能,遍历出该目录下的文件,如果是文件,则给出相对于apache的连接地址,使得可以直接点击该文件,下载.<br />
<br />
我在本地WINDOW上测试完全正常,带有中文的文件名就用 java.net.URLEncoder.encode编码了下,就可以直接点击下载;但是移植到UNIX上就无法下载了,点击的时候会报说404错误.<br />
<br />
<br />
这个URL是编码后直接请求到apache的,看到网上说apache对中文的文件名支持不好,解决办法如下几个:<br />
<br />
&nbsp;&nbsp; a.增加 AddDefaultCharset GB2312 &mdash;&mdash; 经测试无效，这个只影响页面输出的缺省编码，但是页面应该是自己指定编码的，由Server指定不符合逻辑，尤其存在Virtual Server的情况下；<br />
&nbsp;&nbsp;<br />
&nbsp; &nbsp;b. 取消IE始终使用UTF-8传送URL &mdash;&mdash; 经测试有效，但是又不能强迫所有客户端修改IE配置，而且是IE的缺省配置<br />
<br />
<br />
很多人都建议不要使用中文文名作为下载的URL,但是没办法,需求中就要这样,呵呵,找了半天,没有找到好的解决方案,特来请教前辈,望赐教!谢谢...<br />
<div id="dictdiv" style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;">&nbsp;</div>
<div id="dictaudio">&nbsp;</div>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/50398#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 25 Jan 2007 16:20:36 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/50398</link>
        <guid>http://iceskysl.javaeye.com/blog/50398</guid>
      </item>
      <item>
        <title>Re: [公告]JavaEye服务器已经恢复访问，感谢大家的支持</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/39609" style="color:red;">http://iceskysl.javaeye.com/blog/39609</a>&nbsp;
          发表时间: 2006年12月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          针对上面提到的那个网页木马的地址,我花了点时间,做了下分析,原代码比较BT,加了很多密,ASCII,16进制,JScript.Encode,unescape等加密手段都用上了.. 会自动下载http://cool.47555.com/xxxx.exe这个EXE运行,本来想分析下这个EXE文件是哪个木马的,但是不小心被我杀毒软件查杀了,就没分析,应该不是很牛的,一般杀毒软件应该都可以查杀.. 另外,这个网马用的是ms06014这个漏洞进行下载传播的,各位需要注意确定这个补丁已经打上.. 另外针对这个网马,写了下分析的过程和解密后的网页代码,比较长,就不贴上来了,放在我自己的论坛,有兴趣了解的朋友可以去看看:http://www.1steam.cn/bbs/viewthread.php?tid=1064
<div id="dictdiv" style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;">&nbsp;</div>
<div id="dictaudio">&nbsp;</div>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/39609#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><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><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Dec 2006 21:29:41 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/39609</link>
        <guid>http://iceskysl.javaeye.com/blog/39609</guid>
      </item>
      <item>
        <title>请教一个关于Find的问题..</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/39343" style="color:red;">http://iceskysl.javaeye.com/blog/39343</a>&nbsp;
          发表时间: 2006年12月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          大大们,最近在做一个ROR的程序,很多问题都是自己一个人解决的,有些实在不是很好想明白,特来请教,需求描述如下:<br /><br />在论坛或者别的上面程序中,首页都会显示各个论坛板块的最新的帖子,请问这个是怎么实现的,<br />按照我的设想,应该是这个的:<br />@posts=Post.find(:all,:order=>"forum_id,create_at DESC" )<br />然后在显示的时候按照forum_id来显示各自板块的最新帖子,但是这个在RHTML中怎么取出最新的帖子呢??<br /><br />我只能完全遍历,如下:<br />&lt;% @posts.each do |post| %><br />&lt;%= post.title %><br />&lt;% end %><br /><br />这样就会全部显示出来,而我想要得只是每个板块的最新的那一个帖子,希望指教一二,谢了...
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/39343#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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 16 Dec 2006 19:42:10 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/39343</link>
        <guid>http://iceskysl.javaeye.com/blog/39343</guid>
      </item>
      <item>
        <title>ROR用户认证．</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/37112" style="color:red;">http://iceskysl.javaeye.com/blog/37112</a>&nbsp;
          发表时间: 2006年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre><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>User&nbsp;&lt;&nbsp;ActiveRecord::Base&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;</span><span class="keyword">self</span><span>.authenticate_unsafely(user_name,&nbsp;password)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;find(<span class="symbol">:first</span><span>,&nbsp;</span><span class="symbol">:conditions</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">&quot;user_name&nbsp;=&nbsp;'#{user_name}'&nbsp;AND&nbsp;password&nbsp;=&nbsp;'#{password}'&quot;</span><span>)&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;</span><span class="keyword">self</span><span>.authenticate_safely(user_name,&nbsp;password)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;find(<span class="symbol">:first</span><span>,&nbsp;</span><span class="symbol">:conditions</span><span>&nbsp;=&gt;&nbsp;[&nbsp;</span><span class="string">&quot;user_name&nbsp;=&nbsp;?&nbsp;AND&nbsp;password&nbsp;=&nbsp;?&quot;</span><span>,&nbsp;user_name,&nbsp;password&nbsp;])&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li></ol></div></pre>
<span lang="EN-US" style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;"></span>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/37112#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</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, 04 Dec 2006 12:34:27 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/37112</link>
        <guid>http://iceskysl.javaeye.com/blog/37112</guid>
      </item>
      <item>
        <title>写代码一定要小心。。</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/37056" style="color:red;">http://iceskysl.javaeye.com/blog/37056</a>&nbsp;
          发表时间: 2006年12月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天写ROR，写到layout的时候，那句很神奇的&lt;%= @content_for_layout %&gt;就是看不到效果，真实奇怪，后来招徕AL看，还是每看到什么不对的，但是页面就是显示不出来&lt;%= @content_for_layout %&gt;的东西。。<br />
<br />
直接告诉我，肯定代码写错了，自习核对，原来写成：&lt;%= @contend_for_layout %&gt;，真是大意。。<br />
<br />
谨记，这样的错误最难发现了。。Redrails又没有自检查功能。还是自己小心的好。。
<div id="dictdiv" style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;">&nbsp;</div>
<div id="dictaudio">&nbsp;</div>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/37056#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 03 Dec 2006 22:10:54 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/37056</link>
        <guid>http://iceskysl.javaeye.com/blog/37056</guid>
      </item>
      <item>
        <title>Top 12 Ruby on Rails Tutorials</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/36939" style="color:red;">http://iceskysl.javaeye.com/blog/36939</a>&nbsp;
          发表时间: 2006年12月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial"><font face="Arial">Top 12 Ruby on Rails Tutorials</font></font></p>
<p><font face="Arial">http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials</font></p>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/36939#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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 02 Dec 2006 00:44:26 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/36939</link>
        <guid>http://iceskysl.javaeye.com/blog/36939</guid>
      </item>
      <item>
        <title>Rails4Days(ChineseVersion)</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/35634" style="color:red;">http://iceskysl.javaeye.com/blog/35634</a>&nbsp;
          发表时间: 2006年11月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoNormal" align="left" style="text-align: left;"><span style="font-family: 宋体;">作者：</span><span lang="EN-US">John McCreesh (<a href="http://rails.homelinux.org/" target="_blank">http://rails.homelinux.org</a>)<br />
</span><span style="font-family: 宋体;">翻译：</span><span lang="EN-US">Ysl@1ster..! (<a href="http://www.1steam.cn/">http://www.1steam.cn/1ster/</a>)<br />
</span><span style="font-family: 宋体;">申明：版权所有，欢迎转载，转载时请保留以上信息！</span><span lang="EN-US"><br />
----------------------------------------------------<br />
</span><strong><span style="font-family: 宋体;">写在前面的话：</span></strong><span lang="EN-US"><br />
</span><span style="font-family: 宋体;">自己正在学习</span><span lang="EN-US">ROR</span><span style="font-family: 宋体;">，鉴于关于</span><span lang="EN-US">ROR</span><span style="font-family: 宋体;">的中文资料比较少，虽然自己</span><span lang="EN-US">E</span><span style="font-family: 宋体;">语不怎么样，但是每次看到</span><span lang="EN-US">E</span><span style="font-family: 宋体;">文资料都尽力翻译过来。一来方便自己日后回头看这些资料比较方便；二是这样可以使自己看的比较认真，仔细揣摩原文的意思；还有一点就是尽量为后来的学习者提供一些关于</span><span lang="EN-US">ROR</span><span style="font-family: 宋体;">的中文资料。</span></p>
<p class="MsoNormal" align="left" style="text-align: left;"><span style="font-family: 宋体;">为了传播、浏览方便，制作成SWF格式，如下显示，若你的浏览器支持SWF格式，还可以下面地址进行观看：</span></p>
<span style="font-family: 宋体;"><a href="http://www.1steam.cn/paper/datas/article/2006/11/Rails4Days%28Chinese%20Version%29.swf">http://www.1steam.cn/paper/datas/article/2006/11/Rails4Days(Chinese%20Version).swf</a><br />
<br />
<embed play="true" scale="showall" src="http://www.1steam.cn/paper/datas/article/2006/11/Rails4Days(Chinese%20Version).swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="800" loop="true" menu="true" width="660"></embed></span>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/35634#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><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><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 23 Nov 2006 14:43:00 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/35634</link>
        <guid>http://iceskysl.javaeye.com/blog/35634</guid>
      </item>
      <item>
        <title>翻译：Appendix A：Introduction to Ruby</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/34324" style="color:red;">http://iceskysl.javaeye.com/blog/34324</a>&nbsp;
          发表时间: 2006年11月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在另外一个BLOG力写了，就不COPY来了，转个地址来。。<br />http://www.1steam.cn/1ster/?action=show&id=4<br /><br /><strong>附录A：Ruby简介<br />原文：Agile_Web_Development_With_Rails-Beta－Appendix A<br />翻译：Ysl.1ster..!(http://www.1ster.cn)<br />来源：http://www.1steam.cn/1ster/<br />欢迎转载，转载时请请注明来源。</strong><br /><br />ruby是个相当简单的语言，虽然话是这么说，但是像在这样一个附录里就把它讲清楚基本上是不可能的。我们只是尽量的多讲解一些书中用到的例子，以使你有着更清晰的认识。本篇中很多内容来源于另外一本书《Programming Ruby》的第二章内容。<br /><br /><strong>A.1 Ruby是面向对象的语言</strong><br />在Ruby中，你所接触的一切都是对象，你操作的是对象，你的操作结果仍然是对象。<br />当你写OO语言时，你所看到的是真实世界的模型，例如，在这种处理方式下，你会发现，事物的类别也是需要描述的。在网上商店中，商品条目也是一种类别。在 Ruby中，你可以使用class来描述任何一个类别。class是状态（比如quantity 和the product_id)和操作这些状态的方法(例如一个计算价格总数的方法)的聚合物。在下面我将给你展示如何来创建classes。<br />一旦你定义了一些classes，你可能就会想着怎样给他们创建实例。例如，在前面的store系统中，你已经把Fred买书和Wilma买PDF的实例 (instances)区分开了。注意这里的我们用object来替代instances，后面我们都是用object这个词了。<br />我们通过调用构造器（constructor）来创建对象（Objects），什么是构造器呢？它是一个和class密切相关的一个比较特殊的方法。标准的构造器是new()。所以给你一个class，它就是LineItem，你怎么来创建它的对象呢，看下面：<br />line_item_one = LineItem.new<br />line_item_one.quantity = 1<br />line_item_one.sku = “AUTO_B_00”<br /><br />line_item_two = LineItem.new<br />line_item_two.quantity = 2<br />line_item_two.sku = “RUBY_P_00”<br />这两个实例来自同一个class，但是却各自有着自己独特的个性。准确的讲，每个都有他们自己的状态，内在实例变量。我们的每一个Line item，都可以拥有一个实例变量来表现自己拥有的书籍本数。<br />在每个class中，你可以定义实例方法（methods），每个方法都有一定的功能，自然，这些方法在class内都是可以访问的；至于在class外面能不能访问，还要取决于权限条件。这些方法可以用来读取变量的状态。<br />方法是通过发送消息给object来调用的。发送的这个消息包含方法名，以及这个方法所需要的参数。当一个object收到一条消息时，就在自己的class中寻找与之匹配的方法。<br />方法和消息到底是怎么联系的，这个逻辑停起来貌似蛮复杂的，其实不然，他们都很自然，让你感到很优雅，让我们来看看一些方法调用的例子吧：<br /><br />    * “dave”.length<br />    * line_item_one.quantity<br />    * -1942.abs<br />    * cart.add_line_item(next_purchase)<br /><br />这里，圆点（.）之前的部分成为接收者，圆点之后的名子就是需要调用的方法。第一行是取得一个字符串（string）的长度（4）。第二个例子是取得 line item这个对象的数量（quantity）。第三个例子是计算一个整数的绝对值。最后一行展示的是添加以个条目到购物车中。<br /><br />A2、Ruby的命名原则<br />本地变量，方法参数以及方法名全部应该以小写字母或者小划线开头，例如：order,line_items以及xr2000都是正确的。实例变量则以” at”符号（@）开头，比如@quantity 和 @product_id都是正确的。Ruby习惯用下划线分割多词名称的方法和变量名（所以line_item就比 lineItem要好）。<br />Class名，module名以及常量名则应该用大写字母开头的字符。按约定，他们使用大写字母，而不是使用下划线，来区别一个名称的开头字母。Class名看上去差不多是这样的：Object,PurchaseOrder,和 LineItem。<br /><br />Rails 使用了大量的符号（symbol），符号看上去和变量名差不多，只是它们都是以冒号（：）开头的，比如下面这几个都是正确的符号，:action, :line_items,and :id。你可以认为符号就是可以神奇的变为常量的字符串。另外，你可以认为冒号的意思是：“叫..名字”，所以呢，:id就可以理解为：“一个叫做id的东西”。<br />Rails使用符号来标识事物，特别的是，可以在命名方法参数或者在散列（hash）中寻找值的时候使用它们作为关键字（key）。例如：<br />redirect_to :action => “edit”, :id => params[:id]<br /><br />A.3 方法<br /><br />让我们来写一个方法用来返回一个问候，一个私人的问候，我们待会会调用这个方法。<br /><br />def say_goodnight(name)<br />result = “Good night, ” + name<br />return result<br />end<br /><br />   1. Time for bed…<br />      puts say_goodnight(“Mary-Ellen”)<br />      puts say_goodnight(“John-Boy”)<br /><br />你不需要在每行后面添加分号(;)，你要做的只是让每句单独成行就可以了。Ruby的注释是以从#字符开开始直到这行结束；缩进排列也不是必须的，自然，你缩进两个字符也是个好习惯。<br />方法以关键字def来定义，接着是方法名（上面的例子中就是say_goodbye）和方法所需要的参数。Ruby也不需要使用弯括号（大括号）来包含函数体（类），你只需要在主题结束的地方标记一个end就可以了。方法体的第一行连接字符串’Good night’和参数name，并把结果赋给自变量result。下一行返回这个结果给调用者（caller）。注意我们并没有申明result这个自变量，我们给他赋值的时候他就可用了。<br />已经定义了方法，我们接着调用了两次，在两种情况下，我们都那这个结果传给方法puts()，这个方法会把他的参数打印到控制台上，并且换行，我们把这个存贮为hello.rb，我们就可以按照下面的方式来运行它了：<br />work> ruby hello.rb<br />Good night, Mary-Ellen<br />Good night, John-Boy<br /><br />前面的puts say_goodnight(“John-Boy”)这行包含了两个方法调用，一个是say_goodnight()；另外一个是puts().为什么一个方法的参数放在括号中，另外一个方法调用的参数却没有放在括号中呢？我们来做个测试，大家看下面的两行是相同的：<br />puts say_goodnight(“John-Boy”)<br />puts(say_goodnight(“John-Boy”))<br /><br />在Rails应用程序中，你将发现很多在表达式中的调用使用括号；而在另外一些看上去像命令或者申明的则不推荐使用括号。<br />这个例子也展示了一些Ruby的字符串对象，一种创建字符串的方法是使用string literals；创建的字符串放在单引号或者双引号之间，自然这两种方式是不相同的，在Ruby中处理这两种申明也是不一样的。在单引号中的字符串， Ruby做的工作很少，仅仅出去仅有的几个例外，Ruby认为你放在单引号中的值就是字符串值。<br />在双引号中，Ruby做了很多的工作。首先查看里面的以反斜杠开始的词，并把它们替换成它们的二进制值，最常碰到的是\n（代表新行的开始），\n强制断行。<br />Ruby接着处理表达式解析，在字符串中，#{expression}格式的将被它的值替代，我们可以按照这个格式来重写我们前面的方法。<br /><br />def say_goodnight(name)<br />result = “Good night, #{name}”<br />return result<br />end<br />puts say_goodnight(‘Pa’)<br /><br />当Ruby构造这个字符串时，它会取得当前的name值，并把他替换在字符串中。其他的复杂表达式也可以包含在#{...}中。这里我们调用capitalize( )方法，来定义这些字符串以大写字母开头的形式输出我们的参数。<br /><br />def say_goodnight(name)<br />result = “Good night, #{name.capitalize}”<br />return result<br />end<br />puts say_goodnight(‘uncle’)<br /><br />最后我们来优化下这个方法，在Ruby中，返回的就是是最后的表达式的值，所以我们可以去掉临时变量，直接返回值。<br /><br />def say_goodnight(name) “Good night, #{name.capitalize}”<br />end<br />puts say_goodnight(‘ma’)<br /><br />A.4 类<br /><br />下面是Ruby的类的定义方式：<br />class Order &lt; ActiveRecord::Base<br />- has_many :line_items<br />- def self.find_all_unpaid<br />- find(:all, ‘paid = 0’)<br />- end<br />-<br />- def total sum = 0<br />- line_items.each {|li| sum += li.total}<br />- end<br />- end<br /><br />类定义以关键字class开头，接着是类的名字（必须是以大写字母开头），这里的Order就是定义为Basa类的子类，并且符合ActiveRecord模型。<br />Rails 大量应用类级别的申明（class-level declarations），这里的has_many就是在Active Record中定义的一个方法。在这里在定义Order类时被调用，通常这类方法都是类级别的调用，所以我们称为declarations。<br />在class内部，你可以定义类方法，和实例方法，带上前缀self.（像上面的第五行）就是类的方法，这类方法是可以被类调用的。这样的化，我们在任何地方使用下面的方式来进行：<br />to_collect = Order.find_all_unpaid<br />正规的方法定义都是实例方法，（例如上面例子中的第九行定义的total），它们在使用在对象实例上的，在下面的例子中，一个变量order源自Order类，我们在前面类的定义中定义total( )方法。<br />>puts “The total is #{order.total}”<br /><br />注意find_all_unpaid( ) 和 total( )这两个方法之间的不同点。第一个方法不需要指定为某个实际的order。所以我们把它定义为类级别的，然后就可以通过类来调用它了。第二个方法针对某个具体的order，所以我们定义它为实例变量，然后就可以在指定的对象上调用它。<br /><br />类的对象用实例变量来保存它们的状态，这些变量的名字全部以@开头，对实例的方法都是可以读取的。每个对象取得它征集的实例变量。<br />class Greeter<br />def initialize(name) @name = name<br />end<br />def say(phrase) puts ”#{phrase}, #{@name}”<br />end<br />end<br />g1 = Greeter.new(“Fred”)<br />g2 = Greeter.new(“Wilma”)<br />g1.say(“Hello”) #=> Hello, Fred<br />g2.say(“Hi”) #=> Hi, Wilma<br /><br />实例变量对于外界来说是不能直接访问的，要使得它们可以被操作，只有写方法来读取。<br />class Greeter<br />def initialize(name)<br />@name = name<br />end<br />def name<br />@name<br />end<br />def name=(new_name) @name = new_name<br />end<br />end<br /><br />g = Greeter.new(“Barney”)<br />puts g.name #=> Barney<br />g.name = “Betty”<br />puts g.name #=> Betty<br /><br />Ruby提供便捷的方式来使用这些方法（这对那些讨厌写那些getters 和setters的人来说真是个好消息）。<br />class Greeter<br />attr_accessor :name # create reader and writer methods<br />attr_reader :greeting # create reader only<br />attr_writer :age # create writer only<br /><br />私有和保护<br />一个类的实例方法默认是公共的，谁都可以调用它们，你可能想重写这些方法使得它们只对指定的对象开放。<br />class MyClass<br />def m1 # this method is public<br />end<br /><br />protected<br />def m2 # this method is protected<br />end<br /><br />private<br />def m3 # this method is private<br />end<br />end<br /><br />这个private标识暗示限制条件，private方法只能在同一个实例内进行调用；Protected方法则可以在同以个实例中和同一个父类的其他子类可以调用。<br /><br />A.5 模块<br />模块看上去和classes很像，它也可以拥有方法，常量，甚至其他的模块或者类定义；但是很类不同的是，你不能创建基于 模块的对象。<br />使用Modules有两个目的。第一，它们相当于namespace，使你定义的方法名不会和其他的地方定义的方法名字冲突。第二，使你可以在类之间共享函数阿（如果一个类混在模里），module的实例方法变成可用的，就像你在类中定义的一样。多个类可以混合在同一个module中，共享module的功能函数二不需要使用继承。你也可以混合多个module到一个类中。<br />Rails使用modules来实现helper的方法，它自动的混合 helper的方法到程序的视图模板，举个例子，如果你想写以个helper方法，使得你在视图层可以通过store控制器来调用它，你就可以在 app/helpers目录下的store_helper.rb中定义一下这个module。<br />module StoreHelper<br />def capitalize_words(string)<br />string.gsub(/\b\w/) { $&.upcase }<br />end<br />end<br /><br />A.6 数组和散列<br />Ruby 的数组和散列都是按照索引来标识的。两者都可以存贮对象，按照key去访问。在arrays中，其key是整数；而在hashes中则支持韧任何对象为 key。数组和散列的存在都是增加新元素。对于数组来说，其访问更加容易；但是散列的弹性很大。数组和散列都可以存贮不同类型的对象，例如你可以在数组中包含整数，字符串，浮点数等等。<br />你可以在中括号中包含的元素来创建数组，给出一个数组对象，你可以在〔〕中包含来取得每个元素，就像下面这个例子表现的一样，Ruby数组的开始标识是0。<br />a = [ 1, ‘cat’, 3.14 ] # array with three elements<br />a0 # access the first element (1)<br />a2 = nil # set the third element<br /><br />   1. array now [ 1, ‘cat’, nil ]<br /><br />你可能已经注意到了，我们在这里使用了以个比较特殊的值nil，在很多语言里，nil(null)的意思是：不是对象。在Ruby中，不是这个意思，nil是一个对象，和其他对象一样，它的意思是不表现上什么。<br />数组对象经常使用到的方法是&lt;&lt;，这个方法的意思是附加值给它的接收者。<br />ages = []<br />for person in @people<br />ages &lt;&lt; person.age<br />end<br />Ruby有一个快捷的方式来创建数组，如下：<br />a = [ ‘ant’, ‘bee’, ‘cat’, ‘dog’, ‘elk’ ]<br /><br />   1. this is the same: #这两个是相同的<br />      a = %w{ ant bee cat dog elk }<br /><br />Ruby中，hash和数字相似，一个hash使用大括号而不是使用中括号。每对实体必须提供两个对象：一个是key，一个是值。例如，你可能想把乐器和它们的部件联系起来。<br />inst_section = {<br />:cello => ‘string’,<br />:clarinet => ‘woodwind’,<br />:drum => ‘percussion’,<br />:oboe => ‘woodwind’,<br />:trumpet => ‘brass’,<br />:violin => ‘string’<br />}<br />=> 符号左边的是key，相应的，其右边的就是其对应的值，一个实例中的key必须是惟一的，就像上面一样，你不能定义两个实体给:drum。key和值都可以是任意的，你可以使用数组中的值来作为散列的hash的值。在Rails中，散列常常使用符号作为key，许多rails的散列都是精心设计的，这样你在取值的时候不仅可以字符串，还可以使用符号来作为key。<br />和数组一样，散列也是用〔〕来索引值。<br />inst_section[:oboe] #=> ‘woodwind’<br />inst_section[:cello] #=> ‘string’<br />inst_section[:bassoon] #=> nil<br />最后一行表示，当饮用散列中一个不存在的key时，将返回nil，按照约定，在条件语句中，nil代表false。<br /><br />散列和参数列表<br />在方法调用时，你可以传递hashes过去作为参数，但是只有当hash 是最后一个参数时，Ruby才允许你忽略括号。rails对这种方式很敏感，下面的代码段展示的就是把一个 两个元素的 hash值传给方法redirect_to( )，事实上，你可以忽略这样的情况，仅仅把它认为是Ruby的关键参数。<br />redirect_to :action => ‘show’, :id => product.id<br /><br />A.7　流程控制<br /><br />在Ruby语言中，基本的控制结构都有，例如IF语句、WHILE循环，JAVA,C和Perl等语言可能会因为少写一个括号而导致错误产生，Ruby则不一样，它使用end关键字来标识循环体的结束。<br /><br />if count > 10<br />puts “Try again”<br />elsif tries == 3<br />puts “You lose”<br />else<br />puts “Enter a number”<br />end<br />Similarly, while statements are terminated with end.<br />while weight &lt; 100 and num_pallets &lt;= 30<br />pallet = next_pallet()<br />weight += pallet.weight<br />num_pallets += 1<br />end<br /><br />如果if或者while的语句只有一句语句，则修改起来很是方便，只要把它写在if和while后面就可以了。例如：<br />puts “Danger, Will Robinson” if radiation > 3000<br /><br />A.8 正则表达式<br />正则表达式是一种特殊的字符格式用来匹配字符串。在Ruby中，你可以按照这样的方式创建正则表达式，/pattern/ 或者 %r{pattern}。<br />例如，你可能想写一个正则表达式来匹配这样一个字符串：包含Perl或者Python，那就可以写出这样的表达式：/Perl|Python/。<br />前划线是正字表达式的限定符，表达式包含我们想匹配的两个字符串，并且用垂直线（｜）分割。这个竖线的意思是：不是左边的，就是右边的。在我们说的这个例子中就是不是Perl就是Python。在模式中，你可以像在算法中使用括号一样来使用括号，所以你也可以重写前面的那个模式：/P(erl|ython) /。语言中使用=～来验证某个字符串是不是符合模式。<br />if line = /P(erl|ython)/<br />　　puts “There seems to be a perturbation in the force”<br />end<br />你也可以在模式中申明字符重复，/ab+c/这个模式匹配的是一个字符串包含一个a，后面紧接着一个或者多个b，最后是一个c。如果把他修改成这样的，/abc/，就匹配一个a，零或者多个b，最后是一个c.<br />Ruby的正则表达式是个很深奥又复杂的主题，这小节的内容只是个皮毛，详细的资料请参考专业的书籍。<br /><br />A.9　块和迭代<br /><br />代码块是一堆放在括号或者do….end之间的代码，按照习惯，如果只有一行，则放在括号里；而如果有多行的话，则习惯放在do…end之间。<br />{ puts “Hello” } # this is a block<br /><br />do　　　　　　　　　　###<br />　　lub.enroll(person) # and so is this<br />　　person.socialize 　#<br />end 　　　　　　　　　###<br /><br />只有在方法调用以后才可以出现代码块，把块的开始放在方法调用的结尾，例如，在下面的代码中，块包含 puts “Hi”和方法greet是相关的。<br />greet { puts “Hi” }<br />如果一个方法有自己的参数，则把这些参数放在块之前。<br />verbose_greet(“Dave”, “loyal customer”) { puts “Hi” }<br /><br />一个方法可以使用yield语句来调用一次或者多次调用代码块。你可以认为yield是一个访问外部的一种调用。你可以通过给yield赋值的办法来给代码块传递参数。在代码块中，你用竖线（｜）分割你需要接收的参数。<br /><br />代码块在Ruby中大量存在，他们常常用来和迭代器进行关联，迭代器是一种可以把返回的值元素放在诸如数组等容器中的方法。<br />animals = %w( ant bee cat dog elk ) # create an array（创建一个数组）<br />animals.each {|animal| puts animal } # iterate over the contents（迭代）<br /><br />每个整数N都有实现了一个times()方法，用他来调用N次这个块。<br />3.times { print “Ho! ” } #=> Ho! Ho! Ho!<br /><br />A.10 异常<br />异常也是对象，（是Exception或者它子类的类）。raise方法产生一个异常，这样就会打断当前的程序流程。所以，Ruby反响搜索这个这个函数的调用者，并把这个异常挂起。<br />捕获异常的方法是把可能产生异常的代码放在begin和 end之间，并且使用关键字rescue进行捕获。<br />begin<br />content = load_blog_data(file_name)<br />rescue BlogDataNotFound<br />STDERR.puts “File #{file_name} not found”<br />rescue BlogDataFormatError<br />STDERR.puts “Invalid blog data in #{file_name}”<br />rescue Exception => exc<br />STDERR.puts “General error loading #{file_name}: #{exc.message}”<br />end<br /><br />A.11 Marshaling对象<br />Ruby可以把一个对象转换成字节流，并把它存在应用程序外。这个过程叫做marshaling.这样保存的对象可以在以后被其它的程实例读取（或者其它的程序），并且把原来的进行备份。<br />当你使用marshaling的时候可能出现两个问题，第一，一些对象不能被保存，如果将要被保存的对象包括其它程序调用，方法体，IO实例等，或者单独的一个对象，或者当你保存一个匿名的类或者方法时，一个TypeError错误就会产生。<br />第二，当你载入一个marshaled对象时，Ruby需要知道这个对象的定义（或者包含的所有对象）<br /><br />Rails 使用marshaling来存储session 数据，如果你想让Rails自动加载这个类，可能会因为某些东西没有定义而是的不能认识session，所以可以在你的controller使用 model来定义所有要加载的集合。这样就可以加载必须的类使得其能正才工作。<br /><br />A.12 交互式 Ruby<br />irb是一个交互式的运行Ruby的工具。irb也就是一个Ruby的shell，在这里你可以使用命令行、编辑器、和作业控制。你在命令行中运行irb。一旦它开始运行，只需要敲入Ruby代码，irb会返回给你表达式的运算结果。<br />% irb<br />irb(main):001:0> def sum(n1, n2)<br />irb(main):002:1> n1 + n2<br />irb(main):003:1> end<br />=> nil<br />irb(main):004:0> sum(3, 4)<br />=> 7<br />irb(main):005:0> sum(“cat”, “dog”)<br />=> “catdog<br /><br />你可以在Rails程序中使用irb，这样你就可以方便的对你写得方法进行校验，（这样可能会影响到数据库）。另外，你可以设置Rails的环境让他自动完成，这样比起手工实现scripts/console要好的多，具体的请参考239页。<br /><br />A.13 Ruby　惯用法<br />Ruby是一门很重视惯用法的语言，在网上有很多这方面的的好资料，下面是一些：<br />? http://www.glue.umd.edu/billtj/ruby.html<br />? http://www.rubygarden.org/faq<br />? http://en.wikipedia.org/wiki/Ruby_programming_language<br />? http://www.zenspider.com/Languages/Ruby/QuickRef.html<br /><br />下面列举几个在本书中使用到的惯用法。<br />empty! 和 empty?　方法<br />Ruby的方法名可以以一个感叹号（!）或者一个问号(?)来结束，使用感叹号的方法要修改接收者本身，或者具有破坏性，则用一个感叹号结尾，简单，直觉。问号的则表示返回的是真或者假。<br /><br />a || b<br />　　　这个表达式的意思是计算a的值，如果a不是false或者nil，则返回a；相对的，则返回b的值。这个通过的方法常常是用来表示：如果第一个值不存在的话，则返回一个默认值。<br /><br />a ||= b<br />　　　这个表示的是一种缩写方式，其意思是：a op= b　和　a = a op b是一样的意思，对于其它的运算符都是通用的，例如：<br />count += 1 　　　　　　　　　# same as count = count + 1<br />price ×= discount 　　　　　# price = price × discount<br />count ||= 0 　　　　　　　　# count = count || 0<br /><br />所以, 当count不存在的时候count ||= 0 会返回一个0。<br /><br />obj = self.new（这个惯用法是比较高级的，我们在这里略微介绍下）<br />通常，一个类的方法需要创建它本身的实例：<br />class Person &lt; ActiveRecord::Base<br />　def self.for_dave<br />　　Person.new(:name => ‘Dave’)<br />　end<br />end<br />上面的这个可以正常工作，返回一个Person对象。但是以后，有人可能会继承我们的这个类。<br />class Employee &lt; Person<br />　# ..<br />end<br />dave = Employee.for_dave # returns a Person<br />这个for_dave( ) 方法会返回一个Person的对象，所以这就是使用Employee.for_dave返回的？使用self.new则会返回一个Employee的对象。<br /><br />require File.dirname(FILE) + ’/../test_helper’<br />Ruby的require method加载一个外部的资源到我们的程序中。这个常常被用来加载我们承袭所需要的类库。通常，Ruby在LOAD_PATH下寻找需要加载的文件。<br />有时候我们想指定加载一些File，我们可以给出这个文件的绝对路径，但是问题是，我们不能确定我们的用户是不是按照我们自己的路径来安装程序的，也不晓得它们的实际路径。<br />但是一旦程序安装好了，它的路径也就确定了，我们可以使用变量 FILE来取得安装目录，然后再加上需要包含的目标文件路径，就是绝对的路径了。。<br /><br />A.14　RDoc文档<br />RDoc 是针对Ruby源代码的闻到文档系统，就像JAVA中的JavaDoc，RDoc会为以大堆的代码生成HTML文档，它会自动的在代码中获取信息，但是和 JavaDoc不同的是，就算代码中没有包含一个注释，它也可以一份很不错的文档，所以写RDOC和写代码一样，并不痛苦，你可以在16章看到它的详细用法。<br />RDoc使用Ruby的文档库，具体依赖你的Ruby是怎么安装的，你可以使用ri命令来读取这个文档。<br />dave> ri String.capitalize<br />String#capitalize<br />　　str.capitalize => new_str<br /><br />　　Returns a copy of str with the first character converted to<br />　　uppercase and the remainder to lowercase.<br /><br />"hello".capitalize #=> "Hello"<br />"HELLO".capitalize #=> "Hello"<br />"123ABC".capitalize #=> "123abc"<br /><br />如果你是使用RubyGems安装的Rails，你可以运行gem_server，然后打开http://localhost:8808.文档API。<br />rake appdoc命令为Rails工程创建HTML文档，并把它保存在doc/app目录下。<br /><br />＝＝＝＝＝＝＝＝附录A完毕＝＝＝＝＝＝＝＝＝＝＝＝<br />－－－－－－－－2006.11.13－－－－－－－－－
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/34324#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><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, 15 Nov 2006 09:23:46 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/34324</link>
        <guid>http://iceskysl.javaeye.com/blog/34324</guid>
      </item>
      <item>
        <title>ruby中的的数组和字符串的转换</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32932" style="color:red;">http://iceskysl.javaeye.com/blog/32932</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          很方便，如下：<br /><pre name="code" class="java">ruby> ary = [1, 2, "3"]
  －－> [1, 2, "3"]

ruby> str = ary.join(":")
  －－> "1:2:3"
ruby> str.split(":")
  －－>["1", "2", "3"]</pre><br /><br />ps:主要就是利用join和split这两个函数就可以完成。。
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32932#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</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, 07 Nov 2006 15:34:40 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32932</link>
        <guid>http://iceskysl.javaeye.com/blog/32932</guid>
      </item>
      <item>
        <title>一个正则表达式的解析</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32930" style="color:red;">http://iceskysl.javaeye.com/blog/32930</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">"Starts with lower case f, which is immediately followed by exactly one upper case letter, and optionally more junk after that, as long as there are no more lower case characters."</div><br />在Ruby中，可以这样匹配：<br />＝><strong>/^f[A-Z][^az]*$/</strong>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32930#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><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><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Nov 2006 15:21:47 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32930</link>
        <guid>http://iceskysl.javaeye.com/blog/32930</guid>
      </item>
      <item>
        <title>Subst命令有妙用</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32906" style="color:red;">http://iceskysl.javaeye.com/blog/32906</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以前竟然没见过这个命令，真可怜，呵呵，今天还是在<strong>Rails4Days</strong>这个PDF上看到的，作用是用一个盘符来代替一个文件夹。<br />如下操作：<br /><br /><pre name="code" class="java">C:\>subst w: D:\webroot
C:\>w:
W:\>dir
 驱动器 W 中的卷是 本地磁盘
 卷的序列号是 E070-4771
 W:\ 的目录
11/07/2006  09:55a      &lt;DIR>          .
11/07/2006  09:55a      &lt;DIR>          ..
11/07/2006  09:55a      &lt;DIR>          .metadata
10/10/2006  01:42p      &lt;DIR>          1ster
10/08/2006  11:30a                 306 install ruby and rail.txt
11/07/2006  09:58a      &lt;DIR>          space
               1 个文件            306 字节
               5 个目录 23,305,601,024 可用字节
W:\></pre><br /><br />PS：需要注意的是：制定的盘符不能是已用的，呵呵。。注意下就OK。否则会报：<br /><div class="quote_title">引用</div><div class="quote_div">C:\>subst e: D:\webroot<br />无效参数 - E:</div>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32906#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Nov 2006 12:28:21 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32906</link>
        <guid>http://iceskysl.javaeye.com/blog/32906</guid>
      </item>
      <item>
        <title>Ruby的callback实现</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32887" style="color:red;">http://iceskysl.javaeye.com/blog/32887</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          初学Ruby给我留下印象最深的callback的实现，即Ruby的block。它给我的感觉是很新颖，很有想法，也很大胆。<br />  以前我也曾接触过一些其他语言的callback的实现，但都没有真正理解其中的精髓。直到看了Ruby的block，我才突感茅塞顿开，好像积压在心头的一块大石一下子被拿开了一样。Ruby似乎就是为了block而生的（好像有些绝对了，只是为了表达一下喜悦的心情：P）。<br />  下面就是一个Ruby的block的小例子：<br /><pre name="code" class="java">        class SayHello
                    def say_hello
                         hello = ‘hi ’
                         yield hello
                    end
        end
        SayHello.say_hello{|greeting| print greeting, ‘tracy’}</pre><br /><br />    <strong>结果如下：</strong><br />    hi tracy<br /><br />    它的执行过程是这样的，系统调用SayHello的say_hello方法，并带有一个block，即{}中的代码，以后简称“块”。块中的代码首先被记录下来，然后开始执行say_hello方法，先是将‘hi’赋值给变量hello,接着遇到yield关键字，这时之前被记录下来的块中的代码会将yield取代，而yield后面的变量hello赋给块里||所夹的变量，这时方法say_hello的代码就好像是下面这样：<br /><pre name="code" class="java">        def say_hello
              hello = ‘hi ’
              print ‘hi’,’tracy’
        end</pre><br /><br />    它所产生的结果会是hi tracy就不难理解了。<br /><br />我觉得这种机制的新颖之处就在于它将一段代码作为了方法的参数，这样就大大增强了方法的灵活性，而如此灵活的设计并非一定是好事，它就像一把双刃剑，程序员需要理解它更深层次的意思，明白Ruby语言设计者的良苦用心，正确的使用，这样它必将发挥巨大的作用！否则，代码将会复杂难懂，破败不堪。
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32887#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><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Nov 2006 11:21:02 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32887</link>
        <guid>http://iceskysl.javaeye.com/blog/32887</guid>
      </item>
      <item>
        <title>关于ROR+MYSQL的中文编码问题</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32884" style="color:red;">http://iceskysl.javaeye.com/blog/32884</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          MYSQL的中文问题确实非常麻烦,在JAVA开发中就曾经耗费我无数脑细胞来解决这个问题,想必在ROR下面也不是一个非常容易的事情,这个帖子谈论这个话题很全面了,在这里记录一下:<br /><a href="http://www.railscn.com/viewtopic.php?t=211" target="_blank">http://www.railscn.com/viewtopic.php?t=211</a>
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32884#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</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, 07 Nov 2006 11:06:45 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32884</link>
        <guid>http://iceskysl.javaeye.com/blog/32884</guid>
      </item>
      <item>
        <title>ROR的目录体系</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32864" style="color:red;">http://iceskysl.javaeye.com/blog/32864</a>&nbsp;
          发表时间: 2006年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          ROR里面,根目录是在public目录,所以在浏览器中访问,如果不加任何路径,访问的是PUBLIC目录下的内容,这样一来,静态页面都要放在这个目录下,并且rhtml中的图片和CSS\JS文件等也要放在这个目录下面才能访问的到.
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32864#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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Nov 2006 09:52:43 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32864</link>
        <guid>http://iceskysl.javaeye.com/blog/32864</guid>
      </item>
      <item>
        <title>powerdesign的使用技巧</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32596" style="color:red;">http://iceskysl.javaeye.com/blog/32596</a>&nbsp;
          发表时间: 2006年11月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、国内大多数人，用powerdesign做数据库建模的时候，table 创建的时候，table的 name 和code 一般是不同的，code用来做表中字段的名字，name用来标识这个字段的意思，但是powderdesign 默认的是table 的name和code 是做了镜像的，就是code和name保持同步，这样很不方便。其实老外也一样有这样的需要所以powerdesign 已经提供这样的功能：<br /><br />处理方法：<br />（1）、打开pdm文件，或者已经处于建模过程中，在菜单：tools－－>general options  打开窗口<br />（2）、鼠标点击dialog，修改右边的窗口选项：operating mode 下面，对name to code mirroring！不要打勾，ok后一切搞定。<br /><br />这样设定后，用起来就方便多了的！
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32596#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</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, 06 Nov 2006 12:26:53 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32596</link>
        <guid>http://iceskysl.javaeye.com/blog/32596</guid>
      </item>
      <item>
        <title>优化网站设计的五种方法</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32582" style="color:red;">http://iceskysl.javaeye.com/blog/32582</a>&nbsp;
          发表时间: 2006年11月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">原文链接：five ways to optimize your design<br />原文作者：Neil Patel</div><br /><br />每天有成千上万的网站被创造出来，这些新网站不是基于浏览者的需要而是基于网站所有者的需要。浏览者被忽视，是大多数网站不成功的最大原因。这里将给出5种方法来优化您的设计。<br /><br /><strong>1. 成为浏览者中的一员</strong> 把自己放在浏览者的地位。浏览者到您的网站来，他想要什么？您的网站的目标不仅仅需要满足您的需求，更重要的是需要满足浏览者的需求。要得出浏览者想要的，有一种好的方法就是，对对您开发的产品和服务感兴趣的人做个调查，并调整您的设计以满足他们的需求和您自己的需求。这并不需要花多少钱，比如您可以问问身边的朋友们。<br /><br /><strong>2. 简约是最终的目标</strong> 假如您看了比较成功的网站，比如 Google、Flickr 和 Blogger，他们都是简约的。为什么要加上臃肿的内容呢？尤其是当只有80%的浏览者使用了20%的上述的内容。当加入每一个特征时，请考虑浏览者的需要！把它当做您的目标吧。<br /><br /><strong>3. 内容为王</strong> 确保网站的内容以一种有效的方式排列。如果您仅仅将注意力集中于网站的视觉及其引起的感受，而忽视了内容，那么由浏览者转化为忠实的会员的比值，您认为会很高吗？如果您想浏览者购买您的产品或服务，就需要一种简洁的、令人心悦诚服的内容和立体化的信息结构。同时最重要的是，内容要通俗易懂。<br /><br /><strong>4. 细节是大的区别</strong> 网站的每一个方面的细节都需要仔细考虑。有一些元素，比如颜色、形状甚至梯度改变后，在整体上就有可能给浏览者很大的冲击。使用蓝色、绿色、青绿色和银白色，能给人一种平静的氛围。在您的设计中，使用圆角比使用尖角更能给人一种柔和的、个性化的感受。通过适当的混合颜色、图形、图片，您可以创造出强烈的氛围和感受，这将对浏览者产生深刻的映像。<br /><br /><strong>5. 指导浏览者</strong> 您并不想要浏览者为了寻找一个产品而点遍您的网站。避免混乱，通过链接、导航菜单指导浏览者，是可行的。在页面上”告诉”浏览者，以便他们仅通过几次点击就可以买到产品和服务。通过降低浏览者点击的次数，可有效的降低浏览者的挫折感，提高从浏览者到会员的转化率。<br /><br />这些优化您的设计的方法可能看起来很简单，但是大多数情况下，他们被忽视了。试着用用，他们所起的作用，通过优化您的设计就能节约很多广告费用，这些将震撼您！
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32582#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</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>Mon, 06 Nov 2006 10:36:04 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32582</link>
        <guid>http://iceskysl.javaeye.com/blog/32582</guid>
      </item>
      <item>
        <title>web 2.0网站命名的7个建议</title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32581" style="color:red;">http://iceskysl.javaeye.com/blog/32581</a>&nbsp;
          发表时间: 2006年11月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">作者：Michael Zhang<br />翻译：htmlor<br /></div><br />开始创业时，为网站/服务命名是无比重要的一步。当前的互联网公司可以极低的成本迅速起步，似乎每隔几秒就有新的诞生。这里有些建议，有助于为你的服务恰当的命名：<br /><br /><strong>1. 尽量简短</strong><br />Google.com和AskJeeves.com两个域名，你认为哪个更便于每天为了搜索而多次输入？正因如此，AskJeeves才把名字缩短为 Ask。如果不能在品质和功能上比竞争对手更出色，就得在服务的易用好用上下功夫。域名是否易于输入，会对访问者是否愿意经常访问产生很大的影响。我经常上CNN.com看新闻的部分原因，就是因为在地址栏里敲这3个字母太容易了。（htmlor注：在中国，QQ.com是这方面的冠军）如果名字是一个词，长度最好为5-6个字母。名字最好不要超过两个词。<br /><br /><strong>2. 要么通用 要么独创</strong><br />当Flickr大红大紫，有相当多的创业者似乎认为它制定了某种Web 2.0的命名标准（htmlor注：“省略”命名法）。其实不然——命名为Locatr、Bookmarkr、Zooomr、Preloadr和 Frappr等的诸多服务，并没有成为Yahoo收购行动的下一个目标。（因此我的建议是）要么以不菲的价格买下通用的、与服务性质高度一致的名字，要么有点创造性，起个与众不同、独一无二的名字。<br /><br /><strong>3. 最好顺口</strong><br />网站的名称不能难读或难写。如果一个名字的发音让舌头无比费劲，那就换个简单的吧。试想一下人们互相询问的情景：“你听说过网络服务 PriceWaterhouseCoopers吗？”反正我是没听过。一旦名字开始口耳相传，就不应该在输入地址栏时让人产生怎么拼写的混淆。<br /><br /><strong>4. 域名要用.com</strong><br />任天堂（Nintendo）发布第七代主机“Wii”时，Wii.com已被人注册。幸运的是，任天堂有钱把域名买回来。如果你的钱包没任天堂鼓，就得动动脑筋起个适合.com的名字，而不是起好名字后再满世界找域名。即便域名已经被注册了，也要查查whois信息，试着找域名所有人谈谈能否买过来。你知道因为Digg的火爆而带给迪斯尼（Disney）的dig.com多少额外的点击量吗？如果Digg得回dig.com，它将如虎添翼。但我怀疑迪斯尼会不会卖。（htmlor注：是我就不卖，又不缺那俩钱儿） thefacebook.com有钱之后马上买回facebook.com，也是这个原因。<br /><br /><strong>5. 避免连字符</strong><br />某些特殊情况下，网站域名用连字符会好一点（如expert数码之家change.com改成experts-exchange.com），但绝大多数时候还是不用为好。别只是因为不含连字符的域名已经被注册，就被迫给自己的域名加上连字符。你怎么告诉人们一个域名含连字符的网站？（很有挑战性哦）如果Myspace的域名换成my-space.com，一天之中会有多少人输入错误？有一群专门干这行的人，他们擅于从域名输入错误中牟利。别因为你的无知而让他们大赚一笔。<br /><br /><strong>6. 避免域名分段</strong><br />不错，曾经有段时间给网站起类似于del.icio.us的名字是很有创意、独一无二的，但现在域名分段已脱离了个性，变得不合时宜。Yahoo购买 delicious.com作为访问del.icio.us的另一个（也是更方便的）地址，或许就是这个原因。英文里的单词不是都能分成多节的，输入这种域名费脑又费时。如果出于某些原因必须使用域名分段，那么请同时也注册.com域名并指到分段的域名（像competitious.com那样）。<br /><br /><strong>7. 要有含义</strong><br />大家都知道，近年来通用的域名很难注册到了。不过，这并不意味着给你的服务起个高质量、有品位的名字有多难。想要名字让人印象深刻，有个简单的窍门：把一个描述性的词和一个有含义的、通用的词组合起来。比如Feed/Burner，You/Tube，Hot/Mail，Tech/Crunch等。描述性的词必须让人们一目了然，知道你是干什么的。有含义的词则要加深人们的印象，并隐含正面的信息。类似FeedPorcupine （Porcupine，豪猪）或PictureSloth（Sloth，懒散）的命名显然不符合这一点，别这么干。（htmlor注：如果你的服务就是立足于吸引眼球、哗众取宠，倒可以试试）
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32581#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><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><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Nov 2006 10:33:46 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32581</link>
        <guid>http://iceskysl.javaeye.com/blog/32581</guid>
      </item>
      <item>
        <title>Tomcat 5的Session Persistent问题  </title>
        <author>iceskysl</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://iceskysl.javaeye.com">iceskysl</a>&nbsp;
          链接：<a href="http://iceskysl.javaeye.com/blog/32282" style="color:red;">http://iceskysl.javaeye.com/blog/32282</a>&nbsp;
          发表时间: 2006年11月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          碰到这样一个问题：<br /><div class="quote_title">引用</div><div class="quote_div">2006-7-26 20:49:41 org.apache.catalina.session.StandardManager start<br />严重: Exception loading sessions from persistent storage<br />java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: ...</div><br /><br />J2ee的session并没有要求session attribute必须要Serializable呀。原来这是tomcat 5的新功能，<strong>服务复位后自动恢复session</strong>。<br /><br />如果要禁用这一特性，到apache-tomcat/conf/Catalina/localhost目录下找到webapp同名的xml，修改成：<br /><br /><div class="quote_title">引用</div><div class="quote_div">&lt;Context path="..." reloadable="..." docBase="..." workDir="..."><br />  &lt;Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/><br />&lt;/Context></div><br /><br />对于使用Netbeans自带tomcat的情况，配置文件在用户Home目录下的.netbeans底下，例如我windows机器上是：<br />C:\Documents and Settings\pinxue\.netbeans\5.5beta\apache-tomcat-5.5.16_base\conf\Catalina\localhost\<br /><br />如果想保留这个功能，但是清除异常的session持久记录，删除相应的SESSION.ser即可，该文件在：<br />.netbeans\5.5beta\apache-tomcat-5.5.16_base\work\Catalina\localhost\{webAppName}\SESSIONS.ser<br /><br /><strong>补充：</strong><br />Netbeans 重新发布 webapp 后，对应的context会重新生成，应该修改项目下META-INF/context.xml。<br />Netbeans生成该文件的模板是：<br />\Program Files\netbeans-5.5beta\enterprise3\apache-tomcat-5.5.16\conf\context.xml
          <br/>
          <span style="color:red;">
            <a href="http://iceskysl.javaeye.com/blog/32282#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</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, 03 Nov 2006 09:55:31 +0800</pubDate>
        <link>http://iceskysl.javaeye.com/blog/32282</link>
        <guid>http://iceskysl.javaeye.com/blog/32282</guid>
      </item>
  </channel>
</rss>