<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>bryanzk</title>
    <description></description>
    <link>http://bryanzk.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>坐视——做事——做势</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/121432" style="color:red;">http://bryanzk.javaeye.com/blog/121432</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 晚上跟老大，还有泰稳以及其他几位，见到了<a href="http://www.hhtong.com/blog1/" title="道喜技术日记">骆老师——骆古道</a>。骆老师人如其名，自88年去德国，到现在已近20年，虽然已过不惑之年，仍然奋战在编程第一线，这次回国，是为了商量有关JRuby的图书写作出版一事，愿意与我们分享他在JRuby方面的思考和实践。恳谈过程中，骆老师屡次强调：软件产业作为一个国家的工业基础，对国家的重要性是毋庸置疑的；而且，国家现在就要从官方开始，重视开源软件，并应将其作为一个产业来做，否则中国软件产业前途堪忧。不过，在这一点上，我跟老大意见一致：惜乎官不随人愿，现在的官方环境，众所周知；似我等这样的&#8220;升斗小民&#8221;，纵有天大的&#8220;意见和建议&#8221;，苦无&#8220;门路&#8221;，要想&#8220;上达天听&#8221;，完全是天方夜谭了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 老大现在的境况，我完全理解，每日事务繁杂不堪，具体而微，而且多方都有求于他。所发出的声音，其影响力更多是在业界之内，对于前述议题，以及今天提及的关于IT教育的一些话题（德国那边的大学现在已经有了RoR的课程，吃惊么？我其实不&#8230;&#8230;），确实很难找到合适的场合、合适的对象来阐述一腔肺腑之言。不过我个人觉得，这些论题，其实是影响更为深远，造福更多人的选择。从我的角度来讲，应该尽快进入角色，从他肩上卸下一些担子，让他能够有时间更深入地思考更有价值的东西；并应该试图寻找一条途径，让他的声音，能够为目标人所知。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 与骆老师一席谈，收获颇丰，近20年在德国的经历，养成的严谨、认真之工作习惯与风格，从下面言论可见一斑（并非原文，大意如此）：&#8220;我要写书，其中的代码，一定是从现有可用的系统中摘录出来的，我不希望人家把我的代码输入进去，结果不能运行&#8221;，&#8220;要搞懂人家的思路，一定要看人家的源代码，否则你是不会知道人家是怎么想的&#8221;。只这两句话，便可以让我汗颜了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此前的工作，说是坐井观天，并不过分，坐视人家勤勉实干，自己每日介不知在搞些什么，时有碌碌无为之感；到了现在的岗位，每日的工作，接触的人，所做的事，都与以往不同，新鲜之余，总有些惶惶然，可能做的事情，确实有很多，虽有繁琐之虞，但仍有其意义，只是以现在的方法，恐仍需改进；将来，是很难预测的，尤其是目前这个敏感时期，但就软件开发行业来说，那盏橘灯已慢慢变大变亮，大的方向应该说是越来越清晰了，在此种情势下，如何顺应潮流，引导人群，看清大势，也应该算是做势方式之一种吧。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;告别之时，骆老师热情邀请，如有机会到慕尼黑一游，莫忘与他联系。要是真有这等好事，我一定叨扰，借机品尝天下闻名的慕尼黑啤酒，只是不知骆老师酒量如何？
<img src="http://www.cnblogs.com/bryanzk/aggbug/885052.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-09-07 00:57 <a href="http://www.cnblogs.com/bryanzk/archive/2007/09/07/885052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/121432#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Sep 2007 16:57:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/121432</link>
        <guid>http://bryanzk.javaeye.com/blog/121432</guid>
      </item>
      <item>
        <title>歌者、隐者、乐者——记一双寻找光明的黑色眼睛</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/116962" style="color:red;">http://bryanzk.javaeye.com/blog/116962</a>&nbsp;
          发表时间: 2007年08月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p dir="ltr" style="margin-right: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;你快乐吗？如果你不快乐，去听<a href="http://blog.sina.com.cn/xiaojuan1234321music">小娟</a>吧，她的声音会让你变得快乐；如果你快乐，也去听小娟吧，她的声音能让你变得更快乐。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 山间小溪的一捧清泉，水面掠过的一只碧鸟，月下竹林的一杯清茶，寒冬雪夜的一壶温酒。这些你都可以从小娟和她伙伴们的声音中找到。不相信么？你来听听看： <br />
《绿岛小夜曲》<br />
《细说往事》<br />
</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 晚上和LP去听了小娟的现场演唱。这还要感谢<a href="http://www.bullog.cn/blogs/immusoul/">土摩托</a>在自己的博客中对小娟不遗余力的推荐和报道，我才能知道在中国还有这样动人心魄、沁人心脾的声音，而且这样的声音就在我们身边，每周六天都在离我们不远的通州月亮河度假村向世人传达着她的豁达，她的快乐。这样的声音，应该让更多的人听到。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小娟和她的乐队——<a href="http://www.douban.com/subject_search?search_text=%E5%B1%B1%E8%B0%B7%E9%87%8C%E7%9A%84%E5%B1%85%E6%B0%91">山谷里的居民</a>——在月亮河度假村的演出环境完全称不上优秀，更不用说完美了。那是一个自助餐用餐大厅，在这里用餐的人们，大多是在楼下洗完桑拿或是做完按摩才上来的。我们专程来听的这一天，正巧有一班老板模样的人，桑拿过后上来吃饭。席间杯觥交错，叮叮当当，与小娟那天籁般的声音交杂在一起。这种奇怪的交响让我觉得我身处的环境是如此不真实。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 山谷的居民们今天演绎的曲目仍然符合他们一贯的风格，以民谣与老歌为主。开场是一首西班牙民歌《鸽子》，此后一首接一首的美国乡村民谣、日本民歌，以及我们耳熟能详的多首老歌，如《I Swear》、《康定情歌》、《草原之夜》，从他们口中娓娓道来，在当时的环境中，便如闷热夏夜中的一阵清风，引领我的灵魂随着他们的歌声，扶摇直上九天，脱离这红尘俗世，脱离那世间烦恼。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在中间的休息的时候，于宙走过来主动跟我们进行了面对面的交流（我想应该是因为我们是今天专程来听他们演唱的八个人之一的缘故吧）。我们聊了他们的音乐和唱片，聊了这个环境，聊了小娟这个人。我和LP都认为这个环境对他们来说不太好，可他说&#8220;这里挺不错的，我们已经在这里演出了六年了&#8221;，他还说&#8220;下面有人听，我们就好好唱歌；没人的话也没关系，我们就自娱自乐。&#8221;（后来从网上了解到，月亮河度假村的老板也是一个三十多岁的文艺青年，经常喜欢拿着吉他自弹自唱。我要感谢这个老板，因为他，山谷的居民们才能做自己喜欢做的事。）于宙还提到，其实平时是没有今晚这么多人的，今天也奇怪了，不知道这些人都是从什么地方冒出来的。当聊到小娟的时候，于宙说&#8220;她的心态特别好，她很快乐&#8221;。在演出的过程中，我也看出来，小娟有一双能够发现快乐的眼睛，同时也在带给别人快乐。我想也正是因为她拥有这般心境，才能用她的声音带给我们平和与纯净。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下来，是他们今晚的最后一段演出了。他们应我LP的要求，演唱了洪启写的《雨水》，又因为小娟与我LP是湖北同乡，特地唱了《洪湖水，浪打浪》。我特别要说，在这首歌的演唱过程中，小娟的歌声，让我感受到了温和的夕阳在湖面上反射出的粼粼波光，而于宙的手鼓，更是极其精确到位的表现了那一个接一个的浪头温柔地打在船桨上的情景。今夕何夕？此时此刻，我已经醉了&#8230;&#8230;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 演出的结尾，于宙、小娟和小强夫妇俩，三人共同演绎了一首完美无瑕的《星星索》。小娟的宛转嗓音，配上于宙和黎强温润低沉的和声，&#8220;此曲只应天上有，人间哪得几回闻？&#8221;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 结束了，我们有幸与山谷的居民们合了影。我想，我可能以后每周都要来听一次了。</p>
<p>ps:<br />
1、于宙主动留下了我的手机号码，以后有什么演出，他会提前通知我，届时我也一定会在这里放出相关信息。<br />
2、他们在通州月亮河度假村的演出信息（摘自土摩托的博客文章：<a href="http://www.bullog.cn/blogs/immusoul/archives/92104.aspx">幸福的本源</a>）：<br />
小娟他们每周6天（除了礼拜一）在月亮河度假村唱歌，每晚6点15分开始，唱3个小时。如果你坐城铁的话，坐到&#8220;九棵树&#8221;站，然后打车10块钱，就到了。<br />
</p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/869826.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-27 01:05 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/27/869826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/116962#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/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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 26 Aug 2007 17:05:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/116962</link>
        <guid>http://bryanzk.javaeye.com/blog/116962</guid>
      </item>
      <item>
        <title>编辑絮语</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/115952" style="color:red;">http://bryanzk.javaeye.com/blog/115952</a>&nbsp;
          发表时间: 2007年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1、一本杂志的硬实力和软实力？<br />
2、要坚决杜绝错别字，这是是否专业的表现</p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/866442.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-23 10:43 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/23/866442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/115952#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/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, 23 Aug 2007 02:43:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/115952</link>
        <guid>http://bryanzk.javaeye.com/blog/115952</guid>
      </item>
      <item>
        <title>今年……</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/115034" style="color:red;">http://bryanzk.javaeye.com/blog/115034</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          是某一项运动的五十周年，还有人记得是什么么？
<img src="http://www.cnblogs.com/bryanzk/aggbug/864215.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-21 17:14 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/21/864215.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/115034#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, 21 Aug 2007 09:14:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/115034</link>
        <guid>http://bryanzk.javaeye.com/blog/115034</guid>
      </item>
      <item>
        <title>书店的风景</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/115035" style="color:red;">http://bryanzk.javaeye.com/blog/115035</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font size="3" color="#000000" face="Times New Roman">http://www.edubridge.com/erxiantang/library/shudian.htm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看了这篇文章，让我重新拾起了被我遗忘多时的梦想。其中提到的《<a href="http://www.douban.com/subject/1084223/">书店风景</a>》，早在2001年我就已经买了，只是现在已经淹没在我的书柜之中了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实，人生真的有很多可能&#8230;&#8230;<br />
</font>
<img src="http://www.cnblogs.com/bryanzk/aggbug/864122.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-21 16:23 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/21/864122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/115035#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, 21 Aug 2007 08:23:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/115035</link>
        <guid>http://bryanzk.javaeye.com/blog/115035</guid>
      </item>
      <item>
        <title>要敏捷一点，再敏捷一点</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/115036" style="color:red;">http://bryanzk.javaeye.com/blog/115036</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 马上要离开现在这个地方了，我与大家在一起共事，时间最长的已经有四年了。四年，在现在的职场里面，在我这个年龄阶段，应该说不是特别多见的。这么长的时间里，可以回顾的东西很多，可以总结的东西也很多。这四年的时间，虽然不能说特别理想，但是对我的职业发展起到了重要的作用。尤其是最近一年以来，我有了自己将来的发展规划，也明确了发展方向。这是我对这四年最大的感激。也由此，心情逐渐有些失落。要知道，我是最怕离别的。大学毕业时，为了不与同学们执手相看泪眼，我做了胆小鬼，一个人拖着行李偷偷的离开了学校。没成想，还是没能逃脱命运，只不过变成了&#8220;执话筒相听泣声&#8221;。每每想起此事，总是觉得遗憾。人生之中唯一的一次机会，能够看到那几个平时总是嘻嘻哈哈的兄弟是怎么哭成一坨的，就这样被我错过了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下来要面临的，是全新的行业，全新的工作，全新的环境，全新的挑战。我能否适应这个岗位？能否做出成绩？目前还不能轻易下结论。但我必竭尽所能。我不会现在就去预测将来的困难，因为这些东西想多了也是白搭。我要敏捷一点，再敏捷一点。&#8220;积极、沟通、协作、适应&#8221;，这就是我为自己定下的工作信条。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 抄一首《祷告良辰歌》的歌词，祈祷我和所有看到我文字的人都能找到心中的平静和安详。<br />
<font size="3" color="#000000" face="Times New Roman"><br />
祷告之时甘甜之时<br />
使我离开烦恼之事<br />
来到神的座前发表<br />
所有意愿所有需要<br />
当我遇到重压忧愁<br />
我灵却常得着自由<br />
不陷恶者所有布置<br />
因为有你祷告之时<br />
祷告之时甘甜之时<br />
如有只翼载我愿辞<br />
来她宝座向她求恳<br />
她是信实她是全真<br />
她既命我寻求她面<br />
信阿话语靠她恩典<br />
我要将我重担卸释<br />
在于你前甘甜之时<br />
<br />
</font></p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/864071.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-21 15:39 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/21/864071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/115036#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/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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 21 Aug 2007 07:39:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/115036</link>
        <guid>http://bryanzk.javaeye.com/blog/115036</guid>
      </item>
      <item>
        <title>对Ruby中Kernel的callcc方法的研究</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/109915" style="color:red;">http://bryanzk.javaeye.com/blog/109915</a>&nbsp;
          发表时间: 2007年08月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &apos;Times New Roman&apos;; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp; Kernel中的callcc方法，经过调用后，会产生一个Continuation对象，其中包含返回地址和执行上下文，允许从程序的任何地方返回callcc block的结尾处。<br /><img src="http://www.cnblogs.com/images/cnblogs_com/bryanzk/callcc_prog.jpg" border="0" /><br />&nbsp;&nbsp;&nbsp; 上面代码中的strange()的定义中，调用了callcc方法，因此将当前的执行上下文置为了cont这个对象实例，而且一个返回地址也在其中；并且strange将cont作为自己的返回值。在接下来的代码中，顺序执行第5行、第6行、第7行代码。在执行第6行代码的时候，strange中的&lt;print &#8220;Back in method, &#8220;&gt;这一句，也就是第3行代码并未被执行，因为在上面的callcc的block中，return语句把生成的Continuation这个class的实例cont返回了，同时cont对象已经保存了当前的堆栈返回地址与当前的执行上下文。当执行到第8行代码中的cont.call的时候，从strange中的callcc所带的block的末尾开始执行，也就是说，接下来执行的是print &#8220;Back in method, &#8220;这一句。然后根据cont对象中保存的堆栈位置，继续执行第7行代码，这样就完成了这段代码的运行。<br />实际的语句调用顺序是：<br /><img src="http://www.cnblogs.com/images/cnblogs_com/bryanzk/callcc_run.jpg" border="0" /><br />最后的输出结果为：<br /><br /><img src="http://www.cnblogs.com/images/cnblogs_com/bryanzk/callcc_result.jpg" border="0" /><br />不妨把对callcc的调用想为设定了一个堆栈调用指针到cont上，当在程序中调用cont.call的时候，堆栈调用回指到callcc所在位置的下一个位置上，执行完成后，再根据cont中保存的上下文返回到cont.call的执行位置，并向下执行接下来的代码。</span>
<img src="http://www.cnblogs.com/bryanzk/aggbug/846113.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-07 13:10 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/07/846113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/109915#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/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 Aug 2007 05:10:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/109915</link>
        <guid>http://bryanzk.javaeye.com/blog/109915</guid>
      </item>
      <item>
        <title>理解ruby核心概念：Object, Class, Module, Kernel</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/109916" style="color:red;">http://bryanzk.javaeye.com/blog/109916</a>&nbsp;
          发表时间: 2007年08月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>作为一个</span><span>Ruby</span><span>初学者，最让我感到头痛的就是</span><span>Proc</span><span>，</span><span>Class</span><span>，</span><span>Module</span><span>，</span><span>Kernel</span><span>，</span><span>Object</span><span>这几者之间的关系，如果能把他们搞懂，并且可以玩弄于股掌之间的话，感觉这样才算是真正进了</span><span>Ruby</span><span>的大门。</span><span>本文记录我在学习并感受这几个类时的点点滴滴。</span>
<ul>
    <li><span>关于</span><span>Class</span><span>：</span></li>
</ul>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class</span><span>的官方文档</span><span>url</span><span>：</span><span><a href="http://corelib.rubyonrails.org/classes/Class.html">http://corelib.rubyonrails.org/classes/Class.html</a></span></p>
<p><span>(</span><span>虽然《</span><span>Programming Ruby </span><span>中文版第二版》翻译的已经算是不错了，但是在后面内置类库的一些译法上，我认为有可商榷之处。当我遇到书中有些话不能理解的时候，我会直接到</span><span>ruby</span><span>的网站上去看官方的英文文档。</span><span>)</span></p>
<ul dir="ltr" style="MARGIN-RIGHT: 0px">
    <ul>
        <li><span><span>&nbsp;</span></span><span>Parent: Module</span></li>
    </ul>
</ul>
<p><span>说明：<strong><span>请注意，</span></strong></span><strong><span>Class</span></strong><strong><span>是</span><span>Module</span></strong><strong><span>的子类。</span></strong></p>
<p><span>在</span><span>irb</span><span>中运行：</span></p>
<p><span>Class.ancestors </span></p>
<p><span>输出：</span></p>
<p><span>=&gt; [Class, Module, Object, Kernel]</span></p>
<p><span>运行：</span></p>
<p><span>Module.ancestors </span></p>
<p><span>输出：</span></p>
<p><span>=&gt; [Module, Object, Kernel]</span></p>
<p><span>运行：</span></p>
<p><span>Object.ancestors </span></p>
<p><span>输出：</span></p>
<p><span>=&gt; [Object, Kernel]</span></p>
<p><span>运行：</span></p>
<p><span>Kernel.ancestors </span></p>
<p><span>输出：</span></p>
<p><span>=&gt; [Kernel]</span></p>
<p>&nbsp;</p>
<ul>
    <li><span>其中</span><span>Class, Module, Object </span><span>都是</span><span>class,</span><span>而</span><span>Kernel</span><span>是</span><span>Module</span><span>。</span></li>
    <li><span><a href="http://corelib.rubyonrails.org/classes/Object.html">Object</a> mixes in the <a href="http://corelib.rubyonrails.org/classes/Kernel.html">Kernel</a> module, making the built-in kernel functions globally accessible. Although the instance methods of <a href="http://corelib.rubyonrails.org/classes/Object.html">Object</a> are defined by the <a href="http://corelib.rubyonrails.org/classes/Kernel.html">Kernel</a> module, we have chosen to document them here for clarity.</span></li>
    <li><span>Object</span><span>混入了</span><span>Kernel</span><span>这个模块，又由于</span><span>Object</span><span>是</span><span>Ruby</span><span>中所有类的父类，这样以来，</span><span>Kernel</span><span>中内建的核心函数就可以被</span><span>Ruby</span><span>中所有的类和对象访问。</span></li>
    <li><span>Object</span><span>的实例方法由</span><span>Kernel</span><span>模块定义。</span></li>
    <li><span>Kernel</span><span>模块中定义了</span><span>private method</span><span>和</span><span>public method</span></li>
    <ul>
        <li><span>对于一个普通的对象，可以直接调用</span><span>Kernel</span><span>的</span><span>public method</span></li>
    </ul>
    <li><span>在</span><span>irb</span><span>中运行: </span><span>a=Object.new</span></li>
</ul>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><span><span>输出：</span><span>=&gt; #&lt;Object:0x2ee9470&gt;</span></span></p>
</blockquote></blockquote>
<ul>
    <li><span>运行</span><span>:</span><span><span>&nbsp; </span>a.public_methods</span></li>
</ul>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>输出：</span></p>
<p><span>=&gt; ["inspect", "clone", "public_methods", "display", "instance_variable_defined?", "equal?", "freeze", "methods", "respond_to?", "dup", "to_yaml_style", </span></p>
<p><span>"instance_variables", "__id__", "method", "eql?", "id", "singleton_methods", "send", "taint", "to_yaml_properties", "frozen?", "instance_variable_get", "__send__", "instance_of?", "to_a", "to_yaml", "type", "protected_methods", "instance_eval", "object_id", "require_gem", "==", "require", "===", "taguri", "instance_variable_set", "kind_of?", "extend", "gem", "to_s", "taguri=", "hash", "class", "private_methods", "=~", "tainted?", "untaint", "nil?", "is_a?"]</span></p>
<ul>
    <li>&nbsp;<span>而要想调用一个普通对象所包含的</span><span>Kernel</span><span>的函数，用一般的调用方法无法做到，只有通过</span><span>Send</span><span>来实现：</span></li>
</ul>
<p><span>&nbsp;</span></p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/846108.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-07 13:05 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/07/846108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/109916#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Aug 2007 05:05:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/109916</link>
        <guid>http://bryanzk.javaeye.com/blog/109916</guid>
      </item>
      <item>
        <title>再试试看</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/109917" style="color:red;">http://bryanzk.javaeye.com/blog/109917</a>&nbsp;
          发表时间: 2007年08月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle">try again&#8230;&#8230;<a href="http://www.cnblogs.com/bryanzk/archive/2007/08/02/840315.html" class="postTitle2" id="viewpost1_TitleUrl"><font color="#1a8bc8"><br />被人成为&#8220;疯子&#8221;&#8220;狂人&#8221;的张五常教授是如何学英文的</font></a> </div>
<a href="http://blog.sina.com.cn/u/47841af7010003rn"><font color="#1a8bc8">http://blog.sina.com.cn/u/47841af7010003rn</font></a><br /><br />I will try to use short sentences when I am writing in English. 
<img src="http://www.cnblogs.com/bryanzk/aggbug/846082.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-07 12:52 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/07/846082.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/109917#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/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 Aug 2007 04:52:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/109917</link>
        <guid>http://bryanzk.javaeye.com/blog/109917</guid>
      </item>
      <item>
        <title>越来越觉得自己的博客像个包子</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/109918" style="color:red;">http://bryanzk.javaeye.com/blog/109918</a>&nbsp;
          发表时间: 2007年08月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;外面看起来挺好，可是里面没什么陷儿，没辙，疲了，倦了，觉得累了。怎么攒点字就那么难呢？
<img src="http://www.cnblogs.com/bryanzk/aggbug/846078.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-07 12:51 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/07/846078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/109918#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/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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Aug 2007 04:51:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/109918</link>
        <guid>http://bryanzk.javaeye.com/blog/109918</guid>
      </item>
      <item>
        <title>翻译作品：为敏捷团队设计协作空间</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/109548" style="color:red;">http://bryanzk.javaeye.com/blog/109548</a>&nbsp;
          发表时间: 2007年08月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.infoq.com/cn/articles/agile-team-room-wishlist">http://www.infoq.com/cn/articles/agile-team-room-wishlist</a>
<img src="http://www.cnblogs.com/bryanzk/aggbug/845109.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-06 17:18 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/06/845109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/109548#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Aug 2007 09:18:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/109548</link>
        <guid>http://bryanzk.javaeye.com/blog/109548</guid>
      </item>
      <item>
        <title>被人成为“疯子”“狂人”的张五常教授是如何学英文的</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/108345" style="color:red;">http://bryanzk.javaeye.com/blog/108345</a>&nbsp;
          发表时间: 2007年08月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://blog.sina.com.cn/u/47841af7010003rn">http://blog.sina.com.cn/u/47841af7010003rn</a><br /><br />I will try to use short sentences when I am writing in English. 
<img src="http://www.cnblogs.com/bryanzk/aggbug/840315.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-08-02 14:56 <a href="http://www.cnblogs.com/bryanzk/archive/2007/08/02/840315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/108345#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/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>Thu, 02 Aug 2007 06:56:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/108345</link>
        <guid>http://bryanzk.javaeye.com/blog/108345</guid>
      </item>
      <item>
        <title>用元编程的方式向Ruby添加properties</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/107540" style="color:red;">http://bryanzk.javaeye.com/blog/107540</a>&nbsp;
          发表时间: 2007年07月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          偷乐一下，是俺翻译的，哈哈<a href="http://www.infoq.com/cn/articles/properties-metaprogramming"><br />http://www.infoq.com/cn/articles/properties-metaprogramming</a>
<img src="http://www.cnblogs.com/bryanzk/aggbug/837830.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-31 16:32 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/31/837830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/107540#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/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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 31 Jul 2007 08:32:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/107540</link>
        <guid>http://bryanzk.javaeye.com/blog/107540</guid>
      </item>
      <item>
        <title>【翻译】在ruby中实现attributes的lazily initialization（惰性初始化）</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/107121" style="color:red;">http://bryanzk.javaeye.com/blog/107121</a>&nbsp;
          发表时间: 2007年07月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><br />【翻译】Ruby: Lazily Initialized Attributes <br />url（注：原文网址访问不到，估计是被和谐了）：<br /><a href="http://blog.jayfields.com/2007/07/ruby-lazily-initialized-attributes.html">http://blog.jayfields.com/2007/07/ruby-lazily-initialized-attributes.html</a><br /><a href="http://95555.info/index.php?q=aHR0cDovL2Jsb2cuamF5ZmllbGRzLmNvbS8yMDA3LzA3L3J1YnktbGF6aWx5LWluaXRpYWxpemVkLWF0dHJpYnV0ZXMuaHRtbA%3D%3D&amp;hl=0111101001&amp;s=mza5mdcxmjewndjon01vbjbwbq">http://95555.info/index.php?q=aHR0cDovL2Jsb2cuamF5ZmllbGRzLmNvbS8yMDA3LzA3L3J1YnktbGF6aWx5LWluaXRpYWxpemVkLWF0dHJpYnV0ZXMuaHRtbA%3D%3D&amp;hl=0111101001&amp;s=mza5mdcxmjewndjon01vbjbwbq</a>==</p>
<p><br />在第一次访问一个attribute时对其进行初始化，而不是在构造函数里面完成。<br />[code]<br />class Employee&nbsp; <br />&nbsp;def initialize&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;@emails = []&nbsp; <br />&nbsp;end<br />end<br />[/code]<br />变为<br />[code]<br />class Employee&nbsp; <br />&nbsp;def emails&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;unless instance_variable_defined?(:@emails)&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;@emails = [] <br />&nbsp;&nbsp;end<br />&nbsp;&nbsp;@emails&nbsp; <br />&nbsp;end<br />end<br />[/code]<br />动机：<br />增加代码可读性。<br />上述例子非常简单。如果Employee这个类有多个属性需要初始化的话，构造函数就需要包含所有的初始化逻辑。而采取lazy initialization的方式可以把各个属性的初始化逻辑放置在它们自己的访问函数中。<br />运作机制：<br />将初始化逻辑移到属性的getter方法中<br />示例见上。</p>
<p>&nbsp;</p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/836501.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-30 16:00 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/30/836501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/107121#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/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><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>Mon, 30 Jul 2007 08:00:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/107121</link>
        <guid>http://bryanzk.javaeye.com/blog/107121</guid>
      </item>
      <item>
        <title>《Programming Ruby 中文版第二版》P577页singleton_method_undefined方法说明有点问题</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/106233" style="color:red;">http://bryanzk.javaeye.com/blog/106233</a>&nbsp;
          发表时间: 2007年07月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &#8220;当一个singleton方法在这个接受者中<span style="COLOR: red">没有定义（？？）</span>时，singleton_method_undefined作为回调函数会被调用&#8221;<br />这是书上P577页的说法，看看官网的<a href="http://corelib.rubyonrails.org/classes/Object.html#M001120" title="原文
">原文</a>：<br />Invoked as a callback whenever a singleton method is <span style="COLOR: red"><strong>undefined</strong></span> in the receiver<br />再看代码：<br />
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">module&nbsp;Chatty<br /></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;Chatty</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">singleton_method_undefined(id)<br /></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">Undefining&nbsp;#{id.id2name}</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;Chatty</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">one()&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;self<br /></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;undef_method(</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">one)<br /></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
查找关于 <a href="http://corelib.rubyonrails.org/classes/Module.html#M000765" title="undef_method的官网说明">undef_method 的官网说明</a>：
<p>Prevents the current class from responding to calls to the named method. Contrast this with <tt><a href="http://corelib.rubyonrails.org/classes/Module.html#M000764"><font color="#002c99">remove_method</font></a></tt>, which deletes the method from the particular class; Ruby will still search superclasses and mixed-in modules for a possible receiver. <br />《Programming Ruby 中文版第二版》P559页：<br />阻止当前类响应对这些给定方法的调用。这与remove_method形成鲜明对比；remove_method从这个特定的类中删除方法，而Ruby仍然会从它的超类和mixin的模块中寻找一个可能的接收者。<br />回到开头，is undefined 就不应该是&#8220;没有定义&#8221;了，而应该是&#8220;被undef_method方法调用后&#8221;。<br /><br />ps：同样的错误可见p557页，关于method_undefined的说明<br /><br />又ps：extended、method_undefined这两个方法在官网的文档中都没有说明，不知道是不是要发生什么变化？</p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/833586.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-27 17:17 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/27/833586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/106233#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 27 Jul 2007 09:17:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/106233</link>
        <guid>http://bryanzk.javaeye.com/blog/106233</guid>
      </item>
      <item>
        <title>是没有好音乐，还是我们没有好心境？</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/105130" style="color:red;">http://bryanzk.javaeye.com/blog/105130</a>&nbsp;
          发表时间: 2007年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多少次听人说，现在的流行音乐都不能算音乐，都是商业化、浮躁的产物。在某种程度上，我认同这一点。不过即使真的有好音乐放在耳边，我们又是否准备好了来听呢？有了互联网和mp3下载，任何一张专辑在我们浮躁、挑剔的耳边恐怕停留不过20分钟，就被扔到&#8220;回收站&#8221;里面去了吧？然后再次开始等待、搜索下一首可以打动我们的歌曲&#8230;&#8230;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 想起小时候，没有电脑，没有cd，没有mp3，只有磁带。不管是翻录，还是用攒了好长时间的零花钱，磁带到手之后，我会反复的，一遍遍的听，而有些歌也许一开始听没有什么，可它们就像我妈腌过的咸鸡蛋，时间长了，才会让你的耳朵出油。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也许现在好音乐真的不如以前多了，但我还是要把耳朵和心准备好，等待天籁的降临&#8230;&#8230;
<img src="http://www.cnblogs.com/bryanzk/aggbug/830043.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-24 22:25 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/24/830043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/105130#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>Tue, 24 Jul 2007 14:25:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/105130</link>
        <guid>http://bryanzk.javaeye.com/blog/105130</guid>
      </item>
      <item>
        <title>Best of Ruby Quiz 之四 Animal Quiz之我的答案</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/105131" style="color:red;">http://bryanzk.javaeye.com/blog/105131</a>&nbsp;
          发表时间: 2007年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          终于完全靠我自己的思考，做出来一个quiz，就是第四个Animal Quiz，代码贴一下，笔记稍后放出。<br />
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">class&nbsp;AnimalQuiz<br /></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="COLOR: #800080">@animals</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Array</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">new&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;用来保存问题和答案的数组，每个数组元素又是一个数组，<br /></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;[["cat",&nbsp;"Is&nbsp;it&nbsp;cute?",&nbsp;"y"],&nbsp;["dog",&nbsp;"does&nbsp;it&nbsp;bark?","y"]&nbsp;]</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;AnimalQuiz</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">add_animal(animal)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="COLOR: #800080">@animals</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">push</span><span style="COLOR: #000000">(animal)<br /></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;self</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">do_quiz<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match_animal&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">""</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="COLOR: #800080">@animals</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">each</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">animal</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;animal[</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;提问题</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;gets<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;&nbsp;s</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">chomp</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;animal[</span><span style="COLOR: #800000">2</span><span style="COLOR: #000000">]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;答案是否与数组中给定的答案匹配</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">is&nbsp;it&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;animal[</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">?</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;匹配的情况，询问是否是当前数组元素中的动物</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;get_yes_or_no</span><span style="COLOR: #000000">==</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">y</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;读取输入，是当前数组元素中的动物</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match_animal&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;animal[</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;取出动物</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;答案不匹配，向下一个数组元素中的问题进发</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">next</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;match_animal</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">empty</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;循环完毕，没有找到答案</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">you&nbsp;win,&nbsp;what&nbsp;animal&nbsp;do&nbsp;u&nbsp;think&nbsp;of?</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;向数组中累积问题</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_animal&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Array</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">new<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_animal&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;gets</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">chomp</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">give&nbsp;me&nbsp;a&nbsp;question</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_animal&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;gets</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">chomp</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">what&nbsp;is&nbsp;your&nbsp;answer&nbsp;to&nbsp;this&nbsp;question?(y&nbsp;or&nbsp;n)</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_animal&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;gets</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">chomp</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_animal(user_animal)<br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">thanks</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">i&nbsp;win,</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;找到动物</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;self</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">go<br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">Think&nbsp;of&nbsp;an&nbsp;animal<img src="http://www.cnblogs.com/Images/dot.gif" /></span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">is&nbsp;it&nbsp;an&nbsp;elephant?</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;对大象特殊处理</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;get_yes_or_no&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">y</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;不是大象，开始处理</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_quiz<br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;wanna_play_again</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">==</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">y</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;是大象，询问是否想继续</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">47</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">Think&nbsp;of&nbsp;an&nbsp;animal<img src="http://www.cnblogs.com/Images/dot.gif" /></span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;继续，进行后续quiz</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">48</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_quiz<br /></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;private<br /></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;self</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">wanna_play_again</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">wanna&nbsp;play&nbsp;again?</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_yes_or_no<br /></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;self</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">get_yes_or_no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;获取用户输入</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">60</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">gets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;((s</span><span style="COLOR: #000000">=~/^\</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">y</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">nil</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;(s</span><span style="COLOR: #000000">=~/^\</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">nil</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;)<br /></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">please&nbsp;input&nbsp;'y'&nbsp;or&nbsp;'n'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;gets<br /></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">chomp</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;end<br /></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />end<br /></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />AnimalQuiz</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">go</span></div>
<img src="http://www.cnblogs.com/bryanzk/aggbug/829207.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-24 11:15 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/24/829207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/105131#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jul 2007 03:15:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/105131</link>
        <guid>http://bryanzk.javaeye.com/blog/105131</guid>
      </item>
      <item>
        <title>Best of Ruby Quiz 笔记之三：GEDCOM Parser</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/104535" style="color:red;">http://bryanzk.javaeye.com/blog/104535</a>&nbsp;
          发表时间: 2007年07月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p style="COLOR: #000000"><font color="#000000"><span style="COLOR: red"><strong>关键字：<u>XML</u> &nbsp;<u>REXML</u> <u>数组</u> <u>堆栈</u></strong></span><br /><br />本quiz的目的是将一种给定格式的文件转换成为xml文件。<br />需要在ruby中操作xml，可以使用REXML标准库</font></p>
<p style="COLOR: #000000"><font color="#000000">回过头来，看标准答案：<br />1、ARGF 与$&lt;同义<br />看看《Programming Ruby第二版》p335上的解释：<br />$&lt; 返回object，一个可以访问作为命令行参数给出或者$stdin(当没有参数的时候）给出的所有文件的内容对象。 谁能告诉我，介句话是嘛意思？？让我翻译成人话试试看，一个对象，当文件名作为命令行参数给出时，可以使用该对象访问这些文件的内容，如果没有参数，那么访问$stdin给出的文件内容。应该是这样吧？<br />$&lt; 支持的方法和File对象类似。返回的对象可能会改变，因为$&lt;会依次读取命令行上给出的文件。</font></p>
<p style="COLOR: #000000"><font color="#000000">2、\S 在ruby的正则表达式中匹配除空格之外的任何字符</font></p>
<p style="COLOR: #000000"><font color="#000000">3、下面这段代码有点trick<br /># pop off the stack until we get the parent<br />&nbsp;while (level+1) &lt; stack.size<br />&nbsp;&nbsp;stack.pop<br />&nbsp;end<br />&nbsp;parent = stack.last<br />&nbsp;# create XML tag<br />&nbsp;if tag =~ <a>/@.+@/</a><br />&nbsp;&nbsp;el = parent.add_element data<br />&nbsp;&nbsp;el.attributes[' id' ] = tag<br />&nbsp;else<br />&nbsp;&nbsp;el = parent.add_element tag<br />&nbsp;&nbsp;el.text = data<br />&nbsp;end<br />&nbsp;stack.push el<br />&nbsp;<br />&nbsp;当刚刚初始化完成后，doc所代表的xml中只有一个根节点&lt;gedcom/&gt;，此后开始读取给定的GedCOM格式文件，读到第一个有效的行时，其level为0，while判断为false，置parent为根节点&lt;gedcom/&gt;,然后将当前的节点作为子节点，并分析其level、tag和data，然后添加到doc中，并将该元素添加到stack数组中，再继续向下处理文件中的行。当遇到一行，其level与上一行的level相同时，此时的level+1就小于了stack这个数组的size，上一行数据所形成的节点就是当前行数据对应节点的兄弟节点，那么就将上一行数据从数组中移除，这样可以保证stack数组中的最后一个元素，一直是要当前这一行要添加节点的父节点。这样一直处理到最后处理完成。</font></p>
<p style="COLOR: #000000"><font color="#000000">4、doc.write($stdout, 0)</font></p>
<p style="COLOR: #000000"><font color="#000000">write( output=$stdout, indent=-1, transitive=false, ie_hack=false )<br />输出XML树，并带有缩进可选项indent.这个方法输出完整的XML文档，包括XML声明，doctype声明，任何处理指令。一个争论的焦点是Document是否应该总是输出XML声明(&lt;?xml version='1.0'?&gt;)，有人认为这应该由用户决定。如果没有指定的话，REXML不做输出，因为它向类似XML-RPC这样的应用添加了不必要的带宽占用。</font></p>
<p style="COLOR: #000000"><font color="#000000">output： 输出支持'&lt;&lt; string'的对象，document向其中写入<br />indent： 整数。如果是-1，不产生缩进；否则，缩进的该数字指定的空格个数，并且子节点将多产生一个额外的缩进。默认-1.<br />transive： (没看懂，照抄）If transitive is true and indent is &gt;= 0, then the output will be pretty-printed in such a way that the added whitespace does not affect the absolute value of the document — that is, it leaves the value and number of Text nodes in the document unchanged. <br />ie_hack: （这段原文很有趣，而且简单，建议自己看）Internet Explorer is the worst piece of crap to have ever been written, with the possible exception of Windows itself. Since IE is unable to parse proper XML, we have to provide a hack to generate XML that IE&#8217;s limited abilities can handle. This hack inserts a space before the /&gt; on empty tags. Defaults to false 。<br />&nbsp;<br /></font><a href="http://www.cnblogs.com/Files/bryanzk/GedCOM.rar">源代码</a><a href="http://www.cnblogs.com/bryanzk/archive/2007/07/18/822782.html" class="postTitle2" id="_3b94f18b4804_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl"><font color="#1a8bc8"></font></a></p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/828394.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-23 15:32 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/23/828394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/104535#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/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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 23 Jul 2007 07:32:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/104535</link>
        <guid>http://bryanzk.javaeye.com/blog/104535</guid>
      </item>
      <item>
        <title>使用REXML在ruby中处理xml</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/104536" style="color:red;">http://bryanzk.javaeye.com/blog/104536</a>&nbsp;
          发表时间: 2007年07月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><a href="http://www.germane-software.com/software/rexml/docs/tutorial.html" title="REXML简要说明">REXML简要说明</a><br />1、解析XML文件<br />require "rexml/document"<br />file = File.new( "mydoc.xml" )<br />doc = REXML::Document.new file<br /><br />2、解析XML字符串<br />require "rexml/document"<br />include REXML&nbsp; # so that we don't have to prefix everything with REXML::...<br />string = &lt;&lt;EOF<br />&nbsp; &lt;mydoc&gt;<br />&nbsp;&nbsp;&nbsp; &lt;someelement attribute="nanoo"&gt;Text, text, text&lt;/someelement&gt;<br />&nbsp; &lt;/mydoc&gt;<br />EOF<br />doc = Document.new string<br /><br />有了Document之后，可以通过多种方式来访问其中的元素<br />○ Element 类有each_element_with_attributes方法，通常使用它来访问元素<br />○ Element.elements属性是一个Elements类的实例，可以通过Elements类的each和[]来访问其中的元素。这两个方法都支持使用XPath来进行过滤等操作，因此功能非常强大。<br />○ Element是Parent的子类，所以要访问元素的子节点，可以通过类似数组的方法，诸如Element[]、Element.each、Element.find、Element.delete等。这是访问一个确实是数组的子节点的最快方式，不支持XPath搜索，并且所有的子节点元素都在这个数组中，不只是Element的子节点。<br />★ <span style="COLOR: red">在REXML中的Element子节点的索引从1开始，而不是0。因为XPath就是从1开始进行计数的，REXML维持了这种关系</span>。</p>
<p>3、使用XPath<br /># The invisibility cream is the first &lt;item&gt;<br />invisibility = XPath.first( doc, "//item" ) <br /># Prints out all of the prices<br />XPath.each( doc, "//price") { |element| puts element.text }<br /># Gets an array of all of the "name" elements in the document.<br />names = XPath.match( doc, "//name" ) </p>
<p>4、使用Element.elements.to_a()方法，也可以得到匹配解决的数组。<br />all_elements = doc.elements.to_a<br />all_children = doc.to_a<br />all_upc_strings = doc.elements.to_a( "//item/attribute::upc" )<br />all_name_elements = doc.elements.to_a( "//name" )</p>
<p>5、手动添加元素的方式创建XML文档<br /><br />require "rexml/document"</p>
<p>doc = REXML::Document.new "&lt;root/&gt;"<br />root_node = doc.root<br />el = root_node.add_element "myel" <br />el2 = el.add_element "another", {"id"=&gt;"10"} <br /># does the same, but also sets attribute "id" of el2 to "10" <br />el3 = REXML::Element.new "blah" <br />el.elements &lt;&lt; el3 <br />el3.attributes["myid"] = "sean" <br />puts doc.to_s<br /><br />输出：<br />&lt;root&gt;&lt;myel&gt;&lt;another id='10'/&gt;&lt;blah myid='sean'/&gt;&lt;/myel&gt;&lt;/root&gt;</p>
<p>6、为Element添加文本<br /><br />el1 = Element.new "myelement" <br />el1.text = "Hello world!" <br /># -&gt; &lt;myelement&gt;Hello world!&lt;/myelement&gt; <br />el1.add_text "Hello dolly" <br /># -&gt; &lt;myelement&gt;Hello world!Hello dolly&lt;/element&gt; <br />el1.add Text.new("Goodbye") <br /># -&gt; &lt;myelement&gt;Hello world!Hello dollyGoodbye&lt;/element&gt; <br />el1 &lt;&lt; Text.new(" cruel world") <br /># -&gt; &lt;myelement&gt;Hello world!Hello dollyGoodbye cruel world&lt;/element&gt;<br /><br />注意，这些Text对象仍然分开储存的；el1.text返回"Hello world!", el1[2]返回内容为"Goodbye"的Text对象。</p>
<p>7、REXML所有文本节点中都是以UTF-8编码的，所有调用的代码都要注意这一点，在程序中，传递给REXML的字符串必须是经过UTF-8编码的。</p>
<p>REXML不可能总是正确猜测出你的文本的编码方式，所以它总是假定为UTF-8编码。同时，如果你试图添加其他编码方式的文本，REXML不会发出警告。添加者必须保证自己添加的是UTF-8的文本。如果添加标准的ASCII 7位编码，是没有关系的。如果使用ISO8859-1文本，必须在添加之前转换为UTF-8编码。可以使用text.unpack("C*").pack("U*")。变更编码进行输出，只有Document.write()和Document.to_s()支持。如果需要输出特定编码的节点，必须用Output把输出对象包装起来。<br /><br />e = Element.new "&lt;a/&gt;"<br />e.text = "f\xfcr"&nbsp;&nbsp; # ISO-8859-1 '??'<br />o = ''<br />e.write( Output.new( o, "ISO-8859-1" ) )<br /><br />可以向Output传递任何支持的编码。</p>
<p>8、插入元素<br />两种方式：标准的Ruby数组表示法<br /><br />doc = Document.new "&lt;a&gt;&lt;one/&gt;&lt;three/&gt;&lt;/a&gt;" <br />doc.root[1,0] = Element.new "two" <br /># -&gt; &lt;a&gt;&lt;one/&gt;&lt;two/&gt;&lt;three/&gt;&lt;/a&gt; <br /><br />调用Parent.insert_before 或 Parent.insert_after<br />three = doc.elements["a/three"] <br />doc.root.insert_after three, Element.new "four" <br /># -&gt; &lt;a&gt;&lt;one/&gt;&lt;two/&gt;&lt;three/&gt;&lt;four/&gt;&lt;/a&gt; <br /># A convenience method allows you to insert before/after an XPath: <br />doc.root.insert_after( "//one", Element.new("one-five") ) <br /># -&gt; &lt;a&gt;&lt;one/&gt;&lt;one-five/&gt;&lt;two/&gt;&lt;three/&gt;&lt;four/&gt;&lt;/a&gt; <br /># Another convenience method allows you to insert after/before an element: <br />four = doc.elements["//four"] <br />four.previous_sibling = Element.new("three-five") <br /># -&gt; &lt;a&gt;&lt;one/&gt;&lt;one-five/&gt;&lt;two/&gt;&lt;three/&gt;&lt;three-five/&gt;&lt;four/&gt;&lt;/a&gt;<br /></p>
<p>9、元素的迭代<br />除使用Element.each方法迭代全部子节点之外，还有其他四种主要的遍历方式。Element.elements.each,只对子元素进行遍历；Element.next_element和Element.previous_element，用作取得下一个Element兄弟节点；Element.next_sibling和Element.previous_sibling,用作取得下一个和上一个兄弟节点，不管其类型是什么。</p>
<img src="http://www.cnblogs.com/bryanzk/aggbug/828254.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">小熊bryan</a> 2007-07-23 14:00 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/23/828254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/104536#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/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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 23 Jul 2007 06:00:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/104536</link>
        <guid>http://bryanzk.javaeye.com/blog/104536</guid>
      </item>
      <item>
        <title>软件的业务价值来自哪里？——business value generally comes from using software</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/104261" style="color:red;">http://bryanzk.javaeye.com/blog/104261</a>&nbsp;
          发表时间: 2007年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;澄清一个错误观念：<br />Many in the Agile software development world labor under the false assumption that working delivered software = business value. Actually <strong><span style="COLOR: red">business value generally comes from <em>using</em> software</span>.</strong> Building and delivering it is simply cost until then.<br />引自<a href="http://www.agileproductdesign.com/blog/shu_business.html" title="奋力进入?守?之境界">奋力进入&#8220;守&#8221;之境界</a>
<img src="http://www.cnblogs.com/bryanzk/aggbug/827621.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">bryanzk</a> 2007-07-22 22:41 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/22/827621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/104261#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 22 Jul 2007 14:41:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/104261</link>
        <guid>http://bryanzk.javaeye.com/blog/104261</guid>
      </item>
      <item>
        <title>要问五次为什么--业务需求挖掘之道（摘自Wikipedia）</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/104262" style="color:red;">http://bryanzk.javaeye.com/blog/104262</a>&nbsp;
          发表时间: 2007年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h1 class="firstHeading">5 Whys</h1>
<div id="bodyContent">
<h3 id="siteSub">From Wikipedia, the free encyclopedia</h3>
<div id="contentSub">
<div id="jump-to-nav">Jump to: <a href="http://en.wikipedia.org/wiki/5_Whys#column-one">navigation</a>, <a href="http://en.wikipedia.org/wiki/5_Whys#searchInput">search</a></div>
<!-- start content -->
<p>The five whys is a question asking method used to explore the cause/effect relationships underlying a particular problem. Ultimately, the goal of applying the 5 Whys method is to determine a <a href="http://en.wikipedia.org/wiki/Root_cause" title="Root cause">root cause</a> of a <a href="http://en.wikipedia.org/wiki/Defect" title="Defect">defect</a> or problem. The following example demonstrates the basic process.</p>
<ul>
    <li>My car will not start. (the problem)
    </li><li><em>Why?</em> The battery is dead. (first why)
    </li><li><em>Why?</em> The alternator is not functioning. (second why)
    </li><li><em>Why?</em> The alternator has broken beyond repair. (third why)
    </li><li><em>Why?</em> The alternator is well beyond its useful service life and has never been replaced. (fourth why)
    </li><li><em>Why?</em> I have not been maintaining my car according to the recommended service schedule. (fifth why, root cause) </li>
</ul>
<p>The five iterations are not gospel; rather, it is postulated that five <a href="http://en.wikipedia.org/wiki/Iteration" title="Iteration">iterations</a> of asking why is generally sufficient to get to a root cause. The real key is to encourage the troubleshooter to avoid assumptions and logic traps and instead to trace the chain of causality in direct increments from the effect through any layers of abstraction to the first or root cause.</p>
<p>The technique was originally developed by <a href="http://en.wikipedia.org/wiki/Sakichi_Toyoda" title="Sakichi Toyoda">Sakichi Toyoda</a> and was later used within <a href="http://en.wikipedia.org/wiki/Toyota" title="Toyota">Toyota</a> Motor Corporation during the evolution of their manufacturing methodologies. It is a critical component of problem solving training delivered as part of the induction into the <a href="http://en.wikipedia.org/wiki/Toyota_Production_System" title="Toyota Production System">Toyota Production System</a>. The architect of the Toyota Production System, <a href="http://en.wikipedia.org/wiki/Taiichi_Ohno" title="Taiichi Ohno">Taiichi Ohno</a>, described the 5 whys method as "... the basis of Toyota's scientific approach ... by repeating why five times, the nature of the problem as well as its solution becomes clear." <sup class="reference" id="_ref-0"><a href="http://en.wikipedia.org/wiki/5_Whys#_note-0" title="">[1]</a></sup> The tool has seen widespread use beyond Toyota, and is now also used within <a href="http://en.wikipedia.org/wiki/Six_Sigma" title="Six Sigma">Six Sigma</a>.</p>
<p>Some consider the 5 Whys to be a powerful mnemonic for engineers or technically savvy individuals to help get to the true causes of problems. It has also been criticized as being too basic a tool to analyze <a href="http://en.wikipedia.org/wiki/Root_cause" title="Root cause">root causes</a> to the depth that is needed to ensure that the causes are fixed. Reasons for this criticism include:</p>
<ul>
    <li>Tendency for investigators to stop at symptoms rather than going on to lower level root causes.
    </li><li>Inability to go beyond the investigator's current knowledge - can't find causes that they don't already know
    </li><li>Lack of support to help the investigator to ask the right "why" questions.
    </li><li>Results aren't repeatable - different people using 5 Whys come up with different causes for the same problem. </li>
</ul>
<p>These can be significant problems when the method is applied through deduction only. On-the-spot verification of the answer to the current "why" question, before proceeding to the next, is recommended as a good practice to avoid these issues. <sup class="reference" id="_ref-1"><a href="http://en.wikipedia.org/wiki/5_Whys#_note-1" title="">[2]</a></sup></p>
</div>
<img src="http://www.cnblogs.com/bryanzk/aggbug/827615.html" height="1" width="1" /><br /><br /><div align="right"><a href="http://bryanzk.cnblogs.com/" target="_blank" style="text-decoration:none;">bryanzk</a> 2007-07-22 22:35 <a href="http://www.cnblogs.com/bryanzk/archive/2007/07/22/827615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div></div>
          <br/>
          <span style="color:red;">
            <a href="http://bryanzk.javaeye.com/blog/104262#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/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, 22 Jul 2007 14:35:00 +0800</pubDate>
        <link>http://bryanzk.javaeye.com/blog/104262</link>
        <guid>http://bryanzk.javaeye.com/blog/104262</guid>
      </item>
      <item>
        <title>Best of Ruby Quiz 笔记之二： LCD numbers</title>
        <author>bryanzk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bryanzk.javaeye.com">bryanzk</a>&nbsp;
          链接：<a href="http://bryanzk.javaeye.com/blog/102556" style="color:red;">http://bryanzk.javaeye.com/blog/102556</a>&nbsp;
          发表时间: 2007年07月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>quiz2 LCD 数字</p>
<p>题目意图：输出类似LCD风格的数字，内容由命令行参数决定，并根据"-s"命令行参数指定其大小</p>
<p>思路：<br />需要的method<br />1) 转换方法，将正常的数字，转换为LCD风格的数字<br />2) 缩放方法，缩放LCD风格的数字<br />3) 处理命令行参数方法，读取输入的数字和给定的"-s"参数</p>
<p>笔记：<br />1、transpose<br />arr.transpose -&gt; an_array<br />假设 arr是一个由数组组成的数组，并调换其行和列<br />a = [ [1,2], [3,4], [5,6] ]<br />a.transpose -&gt; [[1,3,5], [2,4,6]]<br />2、<br />DIGITS = &lt;&lt;END_DIGITS.split("\n").map { |row| row.split(" # ") }.transpose<br />&nbsp;-&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -&nbsp; # -&nbsp; # -&nbsp; # -<br />| | #&nbsp; | #&nbsp; | #&nbsp; | #| | #|&nbsp;&nbsp; #|&nbsp;&nbsp; #&nbsp; | #| | #| |<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -&nbsp; # -&nbsp; # -&nbsp; # -&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -<br />| | #&nbsp; | #|&nbsp;&nbsp; #&nbsp; | #&nbsp; | #&nbsp; | #| | #&nbsp; | #| | #&nbsp; |<br />&nbsp;-&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -&nbsp; #&nbsp;&nbsp;&nbsp; # -&nbsp; # -<br />END_DIGITS</p>
<p>将上面的字符串进行如下处理后转成数组<br />1) 按换行符号"\n"拆分为数组<br />2) 对数组中每个元素按"#"拆分为数组，并置回原数组中<br />3) 此时的数组形为[ [" -&nbsp; ", "&nbsp;&nbsp;&nbsp; "," -&nbsp; ",...], ["|&nbsp; | ", ...], [...], ... ] 共5个元素，每个元素都是包含十个元素的数组，<br />对大数组进行transpose操作后，大数组变为有十个元素，分别是0-9的lcd风格的数字显示。每个元素都是有5个元素的数组，并且这个5个元素构成一个lcd风格的数字显示，5个元素对应5行。</p>
<p>3、row = line.dup <br />dup obj.dup-&gt;other_obj<br />生成obj的一个浅拷贝--拷贝了obj的实例变量，但是没有拷贝他引用的对象。dup拷贝了obj的tainted （是否受信）状态。同时可参加Object#clone的描述。一般而言，在派生类中clone和dup或许有不同的语义。一般使用clone来复制一个对象以及它的内部状态，而dup通常使用派生对象的类来创建新的实例。</p>
<p>4、scale方法说明<br />def scale( num, size )<br />&nbsp;bigger = [ ]<br />&nbsp;num.each do |line|&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 作为参数传进来的num其实就是一个数字的lcd显示，此处针对其5行字符做处理<br />&nbsp;&nbsp;row = line.dup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;row[1, 1] *= size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# row[1，1]指向下标为1，并且取1个长度的元素的组合，这个元素有可能是"-"或空格，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 该元素总是应该随着size变化的<br />&nbsp;&nbsp;if row.include? "|"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 包含"|"的行，需要纵向缩放<br />&nbsp;&nbsp;&nbsp;size.times { bigger &lt;&lt; row }<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;bigger &lt;&lt; row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 不包含"|"的行，只要处理横向缩放，即"-"和空格即可<br />&nbsp;&nbsp;end<br />&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 缩放完成<br />&nbsp;bigger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb