<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>JavaEye博客</title>
    <description>Java博客,Ruby on Rails博客,AJAX博客,Agile博客 -- JavaEye做最棒的软件开发交流社区</description>
    <link>http://www.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>幸运52发生的真实笑话!!!!!!!</title>
        <author>sunsja</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://sunsja.javaeye.com">sunsja</a>&nbsp;
                    链接：<a href="http://sunsja.javaeye.com/blog/192503" style="color:red;">http://sunsja.javaeye.com/blog/192503</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>幸运52发生的真实笑话!!!!!!!<br />幸运52发生的真实笑话,李咏都笑趴下了!<br />一对夫妻，猜食品名称，老婆比划老公猜。大屏幕上跳出"馒头"一词&nbsp;<br />老婆描述：圆圆的，白白的，能吃的&nbsp;<br />老公：&hellip;&hellip;&hellip;&hellip;&nbsp;<br />老婆继续描述：就是白白的，软软的，你昨晚上还吃来着！&nbsp;<br />老公看来是急坏了，脱口而出："mimi！"&nbsp;<br />李咏都笑趴下了。。。。。&nbsp;<br />一对夫妻，猜颜色，老公比划老婆猜。大屏幕上跳出"白色"一词&nbsp;<br />..........老公不断比划,老婆还是不知道.....&nbsp;<br />老公急了,于是......&nbsp;<br />老公描述：李永的内衣!&nbsp;<br />老婆:白色!&nbsp;<br />全场倒...&nbsp;<br />(当天李永穿着西服,内穿白衬衫)&nbsp;<br />大屏幕上跳出"醋"一字&nbsp;<br />老公:女人最喜欢吃男人的什么呀?&nbsp;<br />老婆(兴高采烈地):豆腐!!&nbsp;<br />女的比划，男的猜，题板是宋庆龄。&nbsp;<br />女的说：是个女的，很漂亮，国母，她的姓是唐朝后面的那个朝代&nbsp;<br />男的脱口而出：s**（宋祖英）&nbsp;<br />全场哗然!!!!&nbsp;<br />李咏曰：玩笑开大了&nbsp;<br />猜词环节，比画的说：三国演义中关羽骑的是什么马？猜的人不知道，比画的又提示：再&nbsp;<br />想想，这马吕布也骑过。&nbsp;<br />猜的人大喊：是貂禅。&nbsp;<br />比画的大怒：你傻啊，我说的是白天<br />李咏当时笑翻在地!!!!&nbsp;<br />　　还是那对夫妻，猜物品名称，老婆比划老公猜。大屏幕上跳出&ldquo;V3手机&ldquo;一词&nbsp;<br />　　老婆描述：有一款是粉红色的，今年最流行的，你给我买过的&nbsp;<br />　　老公：&hellip;&hellip;&hellip;&hellip;&nbsp;<br />　　老婆继续描述：那个美女萨拉波娃也用过的，也是我最喜欢的，四个字的&nbsp;<br />　　老公豁出去了，又脱口而出：&ldquo;情趣内衣&rdquo;&nbsp;<br />　　倒霉的李咏又笑趴下了&hellip;&hellip;&nbsp;<br />　　一对夫妻，猜动物，老公比划老婆猜。大屏幕上跳出&ldquo;野猪&rdquo;&nbsp;<br />　　老公说：&ldquo;你哥属什么的？&rdquo;&nbsp;<br />　　老婆：&ldquo;猪！&rdquo;&nbsp;<br />　　老公：&ldquo;不是家养的！&rdquo;&nbsp;<br />　　&ldquo;野猪&rdquo;老婆大叫</p>
          <br/>
          <span style="color:red;">
            <a href="http://sunsja.javaeye.com/blog/192503#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 10:46:35 +0800</pubDate>
        <link>http://sunsja.javaeye.com/blog/192503</link>
        <guid>http://sunsja.javaeye.com/blog/192503</guid>
      </item>
          <item>
        <title>大富豪们如何省小钱</title>
        <author>titanfoot</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://titanfoot.javaeye.com">titanfoot</a>&nbsp;
                    链接：<a href="http://titanfoot.javaeye.com/blog/192502" style="color:red;">http://titanfoot.javaeye.com/blog/192502</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-family: 宋体;">台塑集团王永庆<br />
&nbsp;
在2006年《蒙代尔》中国500富豪榜上，台湾共有7人上榜，台塑集团创始人王永庆排在第二，他的个人资产多达430亿人民币，但他生活相当简单。他在
台塑顶楼开辟了一个菜园，母亲去世前，他吃的都是自己种的菜。台湾人喝咖啡时喜欢加入奶精球，每次王永庆总要用小勺舀一些咖啡将装奶精球的容器洗一洗，再
倒回咖啡杯中，一点都不浪费。生活上，他极崇尚节俭：用的肥皂剩下一小片，还要粘在整块上继续使用；每天做健身毛巾操，一条毛巾用了27年。王永庆同时也
是一个很低调的人，从不接受个人采访。在他眼里，一个人只要努力工作就可以了，不需要把个人的经历告诉大家。<br />
&nbsp;&nbsp; 在这个迷乱的时代，他坚守着自己的行为方式，坚守着一个传统的产业。<br />
&nbsp;&nbsp; 华人首富李嘉诚<br />
&nbsp;&nbsp; 2006年度美国《蒙代尔》中国500富豪排行榜上，李嘉诚以1580亿人民币排名第1位。而对于自己的衣服和鞋子是什么牌子，他却不怎么讲究。皮鞋坏了，李嘉诚觉得扔掉太可惜，补好了照样可以穿，所以他的皮鞋十双有五双是旧的。西装穿十年八年是平常事。<br />
&nbsp;&nbsp;
李嘉诚清晨六点起床，大多数时间都是打高尔夫球，或者游泳，然后便投身忙碌的工作之中。他坚持身着蓝色传统西服，佩带的一块手表仅值26美元；喜欢看各种
各样的书籍，主要是哲学、政治、经济、中国文化以及新技术方面的书。李嘉诚大约20%的时间花在慈善事业上，已经捐出5亿美元，用于在香港、大陆以及美国
和英国修建各类学校、医院，以及开展医疗研究活动，将来还准备为慈善事业投入更多的精力与资金。<br />
&nbsp;&nbsp;&nbsp; 蒙牛集团牛根生<br />
&nbsp;&nbsp;&nbsp; 公共场合，牛根生总是系着那条18块钱的领带，上面有绿色的草原、蒙古包、奶牛，以及蒙牛的LOGO。老牛每次到北京出差，就住在蒙牛驻北京办事处&mdash;&mdash;一个绝不会超过三星级的宾馆。<br />
&nbsp;&nbsp;&nbsp; 财聚人散，财散人聚是牛根生常说的一句话。<br />
&nbsp;&nbsp; 早在伊利工作的时候，牛根生就乐善好施。老牛手下的一个大学生杨文俊，刚毕业两年，又要结婚，又要集资购房，自己农民家庭出身，月工资四五十元，根本没有经济实力。他东挪西借凑了2000元，但还差2000元，怎么办？<br />
&nbsp;&nbsp;&nbsp; 老牛主动跟他说：&ldquo;那2000元我帮你想办法，你干好工作就行了。老牛从自己的存折里拿了2000元出来。十几年后，这个当年的员工成为了蒙牛集团的总裁。<br />
&nbsp;&nbsp; &ldquo;当时自己的总资产也就5000元，其中4000元是借来的，而40%的资产是向牛总借的。假设我自己现在的股票卖了5000万，我会不会将我40%的钱借给别人？&ldquo;杨文俊如此反问自己。<br />
&nbsp;&nbsp;&nbsp; 几年后的1999年，牛根生被迫离开伊利时，他当初的散财得到了回报。杨文俊和妻子决定，要将工作10年的积蓄全部拿出来，跟着老牛去创业。<br />
&nbsp;&nbsp; 新希望集团刘永好<br />
&nbsp;&nbsp; 刘永好从来不太关心自己的富豪身家。他说，实际上我用的、吃的、穿的都很简单。人的资产要是超过1000万，更多的就是社会责任感了。<br />
&nbsp;&nbsp;
刘永好自称，他在16岁时最想吃的是红薯白米饭，后来当老师最想吃的是回锅肉。结果这个习惯到现在都没改变，和他出差的人都知道，他一般就点麻婆豆腐、回
锅肉、蚂蚁上树三样菜。喜欢看书看报，喜欢运动，经常带着相机到处走，把旅游和休闲、学习结合在一起，但不会高尔夫，不敢冲浪。<br />
&nbsp;&nbsp;
刘永好十几年来未变的发型曾经让央视的主持人们打趣了老半天，说最不喜欢他的行业就是理发业。刘永好哈哈一笑，说他从来就没有去烫过头，总是选择5块钱1
次的剪发。&ldquo;我们不是一夜暴富者，深知创业的艰辛与不易。&rdquo;刘永好经常和员工一起在食堂吃饭，和员工共用一个厕所，让员工感到亲切、亲近。刘永好也不喜欢
参加宴会，觉得在食堂或在家里吃饭比较亲切、温馨。<br />
&nbsp;&nbsp;&nbsp; 刘永好用一句古训告诫新希望集团员工：历数前代国与家，成由节俭败由奢！<br />
&nbsp;&nbsp;&nbsp; 世界船王包玉刚<br />
&nbsp;&nbsp;&nbsp; 世界船王、著名商人包玉刚是世界上拥有10亿美元以上资产的12位华人富豪之一。他曾经有一句名言：在经营中，每节约一分钱，就会使利润增加一分，节约与利润是成正比的。许多海外商人们也正是守住了这一优良品格，才使得他们不断地走向成功。<br />
&nbsp;&nbsp;&nbsp; 也许是银行家出身的缘故，包玉刚对控制成本和费用开支特别重视。他一直坚持不让他的船长耗费公司一分钱，他总是说：不要跟那些与花费目标有关系的人一起休息。他也不允许管理技术的负责人直接向船坞支付修理费用，原因是他们没有金钱意识。<br />
&nbsp;&nbsp;&nbsp; 一位在包玉刚身边服务多年的高级职员回忆道：在我为他服务的日子里，他给我的办事指示都用手写的条子传达。写这些条子的白纸，纸质粗劣，而且如果写一张一行的窄条子，他会把写的字撕成一张长条子送出，这样的话，一张信纸大小的白纸可以写三四张最高指示。<br />
&nbsp;&nbsp; 吉利集团李书福<br />
&nbsp;&nbsp;&nbsp; 李书福身上，最著名的是他那双鞋。在接受中央电视台采访时，李书福曾当场把鞋脱下，表示该皮鞋为浙江一家企业生产，物美价廉，结实耐用。价格只有80元。<br />
&nbsp;&nbsp;&nbsp;
就是这双鞋&mdash;&mdash;李书福一边承认确有其事，一边把自己的鞋子在记者面前展示，&ldquo;今天太忙没有擦亮，擦亮是非常漂亮的&rdquo;。这双鞋已经穿了两年了。同时，他拉着
自己的衬衣问坐在旁边的总裁助理，&ldquo;咱们的衬衣多少钱？&rdquo;&ldquo;30元&rdquo;。助理回答。&ldquo;这是纯棉的，质量很不错。&rdquo;李书福说。<br />
&nbsp;&nbsp;&nbsp;
吉利内部人员透露，吉利员工很难见到李书福买500元以上的衣服，让秘书去买西装时，还特别强调要300块钱一套的。平时，李书福总喜欢穿一件黄不拉叽的
夹克；在厂区干脆就穿工作服，以致数来数去，李书福似乎只有一套稍好点的西服，这是他在非常重要的场合才穿的形象服。<br />
&nbsp;&nbsp;&nbsp; 也正是因为李书福的抠门理念，吉利汽车才有更大的成本优势，吉利汽车一直保持同级车中价格最优的水平。<br />
&nbsp;&nbsp;&nbsp; 中芯国际张汝京<br />
&nbsp;&nbsp;&nbsp; 中芯国际的节省是从其总裁张汝京本人做起的。张汝京住在中芯员工宿舍，平时吃的工作餐也就是7元的盒饭；为了省油，张汝京不坐排量1.6的桑塔纳，而是坐排量1.3的经济型轿车。<br />
&nbsp;&nbsp;&nbsp;
商务旅行，中芯国际的人都坐经济舱。如果去美国拜访客户，坐经济舱要比坐商务舱一次节省差不多2000美金，如果一年有1000人次的这种旅行，一年就可
以省200万美金。200万美金就可以买一台设备了，对某种产品而言，多一台设备可以增加1000片的产能。这就是为什么预算相同，中芯国际买的设备总是
比别人多，产能比别人高。<br />
&nbsp;&nbsp;&nbsp; 许多公司在盖厂的时候一般会在外面租办公室，中芯国际在旁边修一个铁皮屋，做临时办公室，等工厂盖好后，可以把这个铁皮屋当仓库用，又可以省出一两台机器出来。中芯国际在省电方面做了很多。灯都是分区的，有人的地方才开，没人的地方关掉。</span>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://titanfoot.javaeye.com/blog/192502#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 10:46:08 +0800</pubDate>
        <link>http://titanfoot.javaeye.com/blog/192502</link>
        <guid>http://titanfoot.javaeye.com/blog/192502</guid>
      </item>
          <item>
        <title>项目管理：规范化的过程及关键概念</title>
        <author>eway819</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://eway819.javaeye.com">eway819</a>&nbsp;
                    链接：<a href="http://eway819.javaeye.com/blog/192494" style="color:red;">http://eway819.javaeye.com/blog/192494</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: small;">[转]</span><br /><br /><span style="font-size: small;">公司内所有的任务都可以是项目 　　 </span><br /><br /><span style="font-size: small;">　　在公司中，有很多的任务就是项目，大到整个公司的经营，小到组织一次活动或会议，有很多人就是&ldquo;项目经理&rdquo;，因为他们计划、协调、执行，并为结果负责。在项目管理中，项目最好的定义是&ldquo;定好时间解决问题&rdquo;，问题指的可以是消极的麻烦，也可以是积极的新业务机会。项目团队的成员一般是跨部门的，项目有明确的任务、开始时间、结束时间、规模与预算。 　　</span><br /><br /><span style="font-size: small;">　　以项目的方式完成公司内任务，可以使战略得到很好的执行。项目通常有非常明确的目标，在启动项目之前管理层会确保项目与公司战略一致，在不长的项目周期内也能很快地根据战略变化对目标作出调整。在项目实施的过程中，目标导向的项目会让参与成员们把注意力放在目标上。公司内固定的部门虽然在设立之初也适应公司战略，但通常来说一个固定机构建立之后，它就会自成一个生命体，把自身延续放在公司目标之前，它实质上是&ldquo;永续经营&rdquo;。在不适应公司战略时，撤销固定机构也通常比解散临时性项目团队要困难得多。 　　</span><br /><br /><span style="font-size: small;">　　企业经营中经常需要跨部门合作，组建跨部门项目团队是很好的应对方法。各种专家组成目标导向的项目团队，可以快速地解决问题。跨部门团队的一个辅助好处是打破员工和组织的常态，让团队成员接触到更多不同的人、不同的想法、不同的工作方法。差异带来员工的变化，减少他们思维上的惰性。 　　</span><br /><br /><span style="font-size: small;">　　项目管理是培养新领导者的优秀途径。项目管理已经形成一系列规范化的方法，这有助于管理者的快速成长。项目管理通常会涉及企业经营的三个主要方面&mdash;&mdash;人、钱、事。可以把项目看成良好的外部环境中经营的&ldquo;缩微企业&rdquo;，它无疑是训练新管理者的良好途径。项目管理要涉及管理的所有方面，如计划、激励、领导、团队、成本、争取支持等。公司各种规模的项目可以培养不同层次的管理者。 </span><br /><br /><span style="font-size: small;">　　项目的组织结构 　　</span><br /><br /><span style="font-size: small;">　　在公司中，以目标导向的项目通常涉及这样五个方面的人：高层支持者、项目经理（项目领导者）、项目团队成员、项目的客户以及职能部门。项目的客户是因项目受益的人，在项目进行过程中需要职能部门的支持。下面主要讨论项目管理所涉及的前三类人。 　　</span><br /><br /><span style="font-size: small;">　　高层支持者是指批准项目、为项目提供资源、提供指导、替项目扫清障碍的公司高层主管。在一个公司中，没有高层主管支持的项目是无法取得成功的，没有他们的支持，无法建立跨部门团队，没有资源（时间、钱、人），项目无法获得较高的优先度。任何项目都必须在高层找到对项目感兴趣的、强有力的上级，他能推动项目进展，保护项目免受不利因素的影响，为项目经理提供正式权力的支持。（通常情况下，项目经理并不拥有组织的正式权力，他的主要工具是沟通与协商。）&ldquo;我是这个项目团队的拥护者，我不会让任何事物阻挡他们前进的道路！&rdquo; 有一个能这样说的高层主管是项目成功的关键，&ldquo;孤儿项目&rdquo;必然失败。富有经验的高层主管对项目的指导、对项目经理的指导也极有价值。 　　</span><br /><br /><span style="font-size: small;">　　项目领导者为项目的最终结果负责，他有两个角色，一是怎样解决问题本身，一是协调解决问题的过程。这两个角色可以是一个人兼任，也可能是两个人分别承担。对于后一种情况，以软件项目为例，项目领导者有两个：项目经理与技术领导者。项目经理是协调者，他负责产品需求、计划、流程控制、在组织内为项目寻求支持，技术领导者负责产品本身，这样做的一个原因是让创造型的技术领导者集中力量于创意。项目经理与技术领导者都要为项目目标负责，但是，最终责任通常会落在项目经理身上。 　　</span><br /><br /><span style="font-size: small;">　　项目团队成员是那些一起来解决问题的人，他们通常来自不同的部门，是各个方面的专业人员。譬如，筹建一个新工厂的团队可能包括厂房建设、设备、工厂运营、财务、人力资源等各个方面的专家，他们来自公司不同的职能部门，在项目结束后这个项目团队即告解散，有的人将继续运营工厂，有的则去做别的事情。项目团队成员管理的关键之一是创造参与感，可以借用沃尔沃公司总裁佩尔&middot;格林汉姆的话来说明：&ldquo;我想让工人们在晚上回家时说，&lsquo;是我生产了那辆车。&rsquo;&rdquo; 　　</span><br /><br /><span style="font-size: small;">　　在项目团队内，要将成员间的竞争减小到最低程度，一方面是因为没有人能真正做到既竞争又合作，另一方面是如张树新所说的，现在公司外部环境竞争非常激烈，在内部要制造融洽的小环境。通常来说，在项目团队建立之初、项目的进展过程中都应采取多种措施（正式、非正式的）增进项目团队成员间的了解。 　　</span><br /><br /><span style="font-size: small;">　　在项目中，所有的人、所有的事都是重要的，不重要的事就不需要做，不重要的人就不会在项目团队之中。在项目团队中，每个成员都应该为项目的目标努力，对项目有价值，如果不，那就应该请他出去。通常松散型的项目团队组织使得这样做不会像开除一个员工那么困难。 项目管理的几个关键观念 　　</span><br /><br /><span style="font-size: small;">　　项目管理提供了一个规范的思考过程，其中包括项目的过程、工具以及风险。按照知名项目管理专家詹姆斯&middot;刘易斯的观点，他将项目过程分为项目定义、制定战略计划、制定实施计划、执行与控制、总结与结束五个阶段。项目管理提供的管理工具以及对可能遇到的项目风险的提示能提高项目的执行效果。被广泛应用的项目管理软件产品尽管不必过于强调，但它们的确能把项目经理从许多重复性工作中解脱出来。　　</span><br /><br /><span style="font-size: small;">　　项目管理特别强调计划。项目的定义是关于要&ldquo;做什么&rdquo;的详尽计划，项目的战略计划和实施计划不必赘言，前者是关于怎么做，后者是关于具体的步骤、时间安排、人员安排。关于计划，有两个典型的错误：一个是不愿进行计划，认为与其花时间计划，不如去做完成工作；另一错误是，制定太少细节的计划和太多细节的计划，太少细节会使得计划根本不具指导意义，太多细节的计划（譬如以小时为单位的项目整体计划）可能因跟不上变化而失效。 　　</span><br /><br /><span style="font-size: small;">　　过程决定项目的成败。项目管理提供了管理过程的工具，譬如进度表法、挣值分析法、工作分解结构法等。这些管理工具提供了规范化&ldquo;形式&rdquo;，有形式可以利用比重新发明轮子要简单，当然也要谨防掉入形式主义的陷阱。项目管理花费大量时间进行计划的原因是，如果没有计划，就无法对项目的过程进行有效的控制。 　　</span><br /><br /><span style="font-size: small;">　　项目管理是沟通过程。沟通失败是项目失败的主要原因。项目立项需要沟通，项目要做什么，要争取高层支持者对项目的支持，项目计划时要与各个方面沟通协调，项目成员间要建立最紧密的沟通，在项目完成之后要总结经验与教训。项目的跨部门性质和缺乏正式的组织权力使得沟通成为获得支持的关键工具，詹姆斯&middot;刘易斯说，&ldquo;项目经理们要面对公司内的方方面面，他们必须具备特别的政治和外交技巧。&rdquo; </span><br /><br /><br /><span style="font-size: small;">从技术到管理，从优秀到卓越！实现你的卓越梦想！</span>
          <br/>
          <span style="color:red;">
            <a href="http://eway819.javaeye.com/blog/192494#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 10:39:26 +0800</pubDate>
        <link>http://eway819.javaeye.com/blog/192494</link>
        <guid>http://eway819.javaeye.com/blog/192494</guid>
      </item>
          <item>
        <title>写了一个一元一次方程的程序</title>
        <author>fsj0101</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://fsj0101.javaeye.com">fsj0101</a>&nbsp;
                    链接：<a href="http://fsj0101.javaeye.com/blog/192489" style="color:red;">http://fsj0101.javaeye.com/blog/192489</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          早两天，有一个朋友要我帮忙做一个一元一次方程的程序，要求如下： <br /><br />时限:1秒 <br />内存:32M <br /><br />比如： <br />2x-4+5x+300=98x <br />每一个方程的一般形式是这样的： <br />'='两边分别为以x为变量的表达式 <br />每个表达式都是由'+'或'-'号的项组成 <br />表达式中不会出现一元的'+'或'-' <br />每一个项，或都是一个单独的整数，或都是由一个整数和一个小写的字符x或由一个小写的字符x组成，这里，一个小写的字符x表示为1x <br />请你写一个程序求得x的值。要注意的是，给出的方程可以没有解或都有无穷解。 <br /><br />数据输入 <br />输入数据包括多组测试数据，请处理到EOF结束。 <br /><br />每组输入数据为一行长度小于260个字符的字符串，表示给出的一元一次方程。字符串里没有多余的空格，并且变量都为小写字符x。x的系数为一个整数，整数的范围为[0,1000]。 <br /><br />数据输出 <br />数据输出为给出的方程的解。 <br /><br />如果S是原方程的解，请输出S的向下取整后的整数（即小于或等于s的最大的整数）。 <br />如果原方程没有解，请输出"IMPOSSIBLE"。 <br />如果原方程有无穷多解，请输出"IDENTITY"。 <br />样例输入 <br />2x-4+5x+300=98x <br />x+2=2+x <br />样例输出 <br />3 <br />IDENTITY <br /><br />我的思路大概是这样的，最后是要把一元一次方程变成这样的形式：[coef]x=[cons],其中coef为x前的系数，cons为常数，这样再用cons/coef就可以得出方程的解。所以问题就是合并x前的系数，常数。 <br />程序如下： <br /><br /><br /><pre name="code" class="java">package org.fsj.lib;

import java.util.List;
import java.util.ArrayList;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * Author: fsj
 * Date: 2008-5-12
 * Time: 1:29:46
 */
public class Equation {

    //输入的方程列表
    private List equationList = new ArrayList();

    public void input() {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        try {
            while ((str = br.readLine()) != null) {
                equationList.add(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void compute() {
        for (String equation : equationList) {
            computeEquation(equation);
        }
    }

    public void computeEquation(String equation) {
        int coefficient = 0;  //系数
        int constant = 0;   //常数
        int coefficientSymbol = 1; //系数的符号，=号左边为正
        int constantSymbol = -1; //常数的符号号，=号左边为负
        int item = 0;  //方程的数字项
        int symbol = 1; //系数和常数前的正负号
        int i = 0;
        boolean zero = true;
        char ch;
        char[] charItem = new char[260];

        for (int index = 0; index &lt; equation.length(); index++) {
            ch = equation.charAt(index);
            item = 0;

            //循环取出数字项
            while (ch >= '0' && '9' >= ch) {
                item = item * 10 + ch - '0';
                if (item == 0) zero = false;
                if (++index &lt; equation.length()) {
                    ch = equation.charAt(index);
                } else {
                    break;
                }
            }
            charItem[i++] = ch;
            if (i > 1) {
                //取出系数或者是常数前的正负号
                symbol = (charItem[i - 2] == '-' ? -1 : 1);
            }
            //如果是x，累加x前的系数到coefficient
            if (ch == 'x') {
                if (item == 0 && zero) item = 1;
                coefficient = coefficient + item * coefficientSymbol * symbol;
            } else {
                //否则累加常数到constant
                constant = constant + item * constantSymbol * symbol;
               //如果当前的字符为=，系数前的符号变成负，常数前的符号变成正
                if (ch == '=') {
                    coefficientSymbol = -1;
                    constantSymbol = 1;
                }
            }
        }

        //输出:系数不为0，输出解;否则系数为0，常数也为0，输出无穷解，否则输出无解
        if (coefficient != 0) {
            System.out.println((int) Math.floor((float) constant / coefficient));
        } else {
            if (constant == 0) {
                System.out.println("IDENTITY");
            } else {
                System.out.println("IMPOSSIBLE");
            }
        }

    }


    public static void main(String[] args) {
        Equation eq = new Equation();
        eq.input();
        eq.compute();
    }
}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://fsj0101.javaeye.com/blog/192489#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 10:31:06 +0800</pubDate>
        <link>http://fsj0101.javaeye.com/blog/192489</link>
        <guid>http://fsj0101.javaeye.com/blog/192489</guid>
      </item>
          <item>
        <title>Tomcat 6 启动过程分析 (6) - Logging</title>
        <author>JackyCheng2007</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://jackycheng2007.javaeye.com">JackyCheng2007</a>&nbsp;
                    链接：<a href="http://jackycheng2007.javaeye.com/blog/192480" style="color:red;">http://jackycheng2007.javaeye.com/blog/192480</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium"><strong>Commons Logging</strong></span><br /><br /><span style="color: blue"><strong>介绍</strong></span><br />对于程序来说，Log是很有用甚至是必不可少的，Tomcat程序自然也不例外。Tomcat应用Apache Commons Logging来实现日志。Commons Logging 是Apache 下面的一个项目。它提供了一个各种不同日志的抽象。我们知道常用的日志实现有Log4J，Avalon LogKit (the Avalon Framework's logging infrastructure)以及 JDK 1.4等等。试用Commons Logging我们的程序可以灵活的改变具体的日志实现类，尽管我们不常这样做。<br /><br /><span style="color: blue"><strong>配置</strong></span><br />应用Commons Logging几乎不需要什么配置，它会自动寻找具体的日志实现。路径按先后顺序如下：<br /><br />1. 在classpath下寻找commons-logging.properties 文件，如果有，找里面的org.apache.commons.logging.Log属性值，找到了就用这个实现类。如：<br /><pre name="code" class="java">org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger</pre><br />表示用Log4j；<br /><pre name="code" class="java">org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger</pre><br />表示用JDK 1.4的日志；<br />2. 如果1做不到，就尝试在system property中寻找org.apache.commons.logging.Log。接下来和1一样。<br />3. 如果1和2做不到，就在classpath下面寻找log4j的lib，如果有就用log4j。注意，你还得在classpath下提供log4j.properties。不然会遇到如下错误：<br /><pre name="code" class="java">log4j:WARN No appenders could be found for logger (commons.logging.TestLogging).
log4j:WARN Please initialize the log4j system properly.</pre><br />4. 如果上面的做不到，就找jdk1.4的实现。<br />5. 最后如果上面都找不到，就用它自己提供的简单实现：org.apache.commons.logging.impl.SimpleLog。<br /><br />可见，我们如果想用log4j的话，你只需要把commons-logging-1.1.1.jar 和 <br />log4j-1.2.11.jar放到你的classpath下面，然后，写一个log4j.properties，也放在classpath下面。<br /><br /><span style="color: blue"><strong>例子</strong></span><br />一个java class，可以打印出所有的系统属性。<br /><pre name="code" class="java">package commons.logging;

import java.util.Enumeration;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class TestLogging {
	private static Log log = LogFactory.getLog(TestLogging.class);

	public static void main(String args[]) throws Exception {
		printSystemProperties();
	}

	private static void printSystemProperties() {
		Properties sysprops = System.getProperties();
		for (Enumeration e = sysprops.propertyNames(); e.hasMoreElements();) {
			String key = (String) e.nextElement();
			String value = sysprops.getProperty(key);
			if (log.isDebugEnabled())
				log.debug(key + "=" + value);
			if (log.isInfoEnabled())
				log.info(key + "=" + value);
		}

	}
}


</pre><br /><br />log4j.properties<br /><br /><pre name="code" class="java">log4j.rootLogger=info, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n</pre>
          <br/>
          <span style="color:red;">
            <a href="http://jackycheng2007.javaeye.com/blog/192480#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 10:19:24 +0800</pubDate>
        <link>http://jackycheng2007.javaeye.com/blog/192480</link>
        <guid>http://jackycheng2007.javaeye.com/blog/192480</guid>
      </item>
          <item>
        <title>各个浏览器并发连接数比较</title>
        <author>masterkey</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://masterkey.javaeye.com">masterkey</a>&nbsp;
                    链接：<a href="http://masterkey.javaeye.com/blog/192477" style="color:red;">http://masterkey.javaeye.com/blog/192477</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h3>&nbsp;</h3>
<h3>The HTTP/1.1 RFC</h3>
<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4"><span style="color: #546188;">Section 8.1.4 of the HTTP/1.1 RFC</span></a> says a &ldquo;single-user client SHOULD NOT maintain more than 2 connections with any server or proxy.&rdquo; The key here is the word &ldquo;should.&rdquo; Web clients don&rsquo;t <em>have</em> to follow this guideline. IE8 isn&rsquo;t the first to exceed this guideline. Opera and Safari hold that honor supporting 4 connections per server.</p>
<p>8.1.4节提到单用户客户端不能维护超过2个连接对任何一个服务器或代理。这里的关键词：&ldquo;应该&rdquo;，很多浏览器的实现不严格遵从这个规定，IE8不是第一个超越此标准，Opera Saari已经支持超过4个并发连接。</p>
<h3>Settings for Current Browsers</h3>
<p>The table below shows the number of connections per server supported by current browsers for HTTP/1.1 as well as HTTP/1.0.</p>
<p>
<table border="0" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td><span style="text-decoration: underline;">Browser</span></td>
<td><span style="text-decoration: underline;">HTTP/1.1</span></td>
<td><span style="text-decoration: underline;">HTTP/1.0</span></td>
</tr>
<tr>
<td>IE 8</td>
<td align="center">6</td>
<td align="center">?<sup>1</sup></td>
</tr>
<tr>
<td>IE 6,7</td>
<td align="center">2</td>
<td align="center">4</td>
</tr>
<tr>
<td>Firefox 3</td>
<td align="center">2<sup>2</sup></td>
<td align="center">?<sup>1</sup></td>
</tr>
<tr>
<td>Firefox 1.5, 2</td>
<td align="center">2</td>
<td align="center">8</td>
</tr>
<tr>
<td>Opera 9</td>
<td align="center">4</td>
<td align="center">?<sup>1</sup></td>
</tr>
<tr>
<td>Safari 3</td>
<td align="center">4</td>
<td align="center">?<sup>1</sup></td>
</tr>
</tbody>
</table>
</p>
<p>下面一个测试并发速度的页面:</p>
<p><a href="http://stevesouders.com/hpws/parallel-downloads.php">http://stevesouders.com/hpws/parallel-downloads.php</a></p>
<p>&nbsp;</p>
<p>一般而言，浏览器所支持对同一Server的并发数越多多好，IE8应该不错。</p>
<p>我本机IE7：</p>
<p>
<table border="0">
<tbody>
<tr>
<td align="right">Page load time: </td>
<td align="right"><span id="t_page">&nbsp;<strong>5203 ms</strong>&nbsp;</span></td>
</tr>
</tbody>
</table>
</p>
<p>本机FF2:
<td align="right">&nbsp;</td>
</p>
<p>Page load time:
<td align="right">&nbsp;</td>
<span id="t_page">&nbsp;<strong>10891 ms</strong>&nbsp;</span></p>
<p>&nbsp;</p>
<p><span>怎么都是2个并发，差异会这么大，哈哈，用的IE还是较多一些。</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://masterkey.javaeye.com/blog/192477#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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>Tue, 13 May 2008 10:08:06 +0800</pubDate>
        <link>http://masterkey.javaeye.com/blog/192477</link>
        <guid>http://masterkey.javaeye.com/blog/192477</guid>
      </item>
          <item>
        <title>10 Useful Gadgets for Mobile Computing</title>
        <author>numenzq</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://numenzq.javaeye.com">numenzq</a>&nbsp;
                    链接：<a href="http://numenzq.javaeye.com/blog/192472" style="color:red;">http://numenzq.javaeye.com/blog/192472</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h3>1.  <a title="LapStrap" href="http://www.thelapstrap.com/" title="LapStrap">LapStrap</a>
</h3>
<p> <img src="http://images.sixrevisions.com/2008/05/08-01_lapstrap.jpg" alt="LapStrap" width="350" height="350" />
</p>
<p>&nbsp;</p>
<h3>2.<a title="WiFi Finder Plus" href="http://us.kensington.com/html/5703.html" title="WiFi Finder Plus">WiFi Finder Plus</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-02_wifi_finder_plus.jpg" alt="WiFi Finder Plus" width="350" height="350" />
</p>
<h3>3. <a title="USB Port Blocker" href="http://www.lindy.co.uk/usb-port-blocker-pack-of-4-colour-code-blue/40452.html" title="USB Port Blocker">USB Port Blocker</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-03_usb_port_blocker.jpg" alt="USB Port Blocker" width="350" height="350" />
</p>
<h3>4. <a title="Solio  Solar Charger" href="http://store.solio.com/s.nl/it.A/id.257/.f" title="Solio  Solar Charger">Solio  Solar Charger</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-04_solio_mobile_charger.jpg" alt="Solio Classic Solar Charger" width="350" height="350" />
</p>
<h3>5. <a title="LinkStation Mini" href="http://www.buffalotech.com/products/network-storage/linkstation/linkstation-mini/" title="LinkStation Mini">LinkStation Mini&trade;</a>
</h3>
<p><img src="http://images.sixrevisions.com/2008/05/08-05_linkstation_mini.jpg" alt="LinkStation Mini" width="350" height="350" />
</p>
<h3>6. <a title="IronKey" href="https://www.ironkey.com/" title="IronKey">IronKey</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-06_iron_key.jpg" alt="IronKey" width="350" height="350" />
</p>
<h3>7. <a title="DiskGO&trade; USB Watch Drive" href="http://www.edgetechcorp.com/usb-flash-drives/diskgo-combos-watch.asp" title="DiskGO&trade; USB Watch Drive">DiskGO&trade; USB Watch Drive</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-07_diskgo_usb_watch_drive.jpg" alt="" width="350" height="350" />
</p>
<h3>8. <a title="Samsung Ultra Slim Mouse" href="http://www.sem.samsung.com/cms/ifweb/en/products/productOverview.jsp?pcode=Z016&amp;pname=Slim%20Mouse&amp;loca=a&amp;locag=1&amp;navi=overview&amp;pimage=N&amp;tmp02=app" title="Samsung Ultra Slim Mouse">Samsung Ultra Slim Mouse</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-08_samsung_slim_mouse.jpg" alt="Samsung Ultra Slim Mouse" width="350" height="350" />
</p>
<h3>9. <a title="Canon Compact iP100 Mobile Printer" href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&amp;fcategoryid=184&amp;modelid=16505" title="Canon Compact iP100 Mobile Printer">Canon Compact iP100 Mobile Printer</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-09_pixma_ip100.jpg" alt="Canon Compact iP100 Mobile Printer" width="350" height="350" />
</p>
<h3>10. <a title="RFID Security Mobile Disk" href="http://www.stysen.com/eng/product/product.asp?main_id=1&amp;sub_id=35" title="RFID Security Mobile Disk">RFID Security Mobile Disk</a>
</h3>
<p>&nbsp;</p>
<p><img src="http://images.sixrevisions.com/2008/05/08-10_stysen_e08.jpg" alt="RFID Security Mobile Disk" width="350" height="350" />
</p>
<p>&nbsp;</p>
<p>原文链接：</p>
<p><a title="Permanent Link to 10 Useful Gadgets for Mobile Computing" rel="bookmark" href="http://sixrevisions.com/tools/useful_gadgets_mobile_computing/" title="Permanent Link to 10 Useful Gadgets for Mobile Computing">10 Useful Gadgets for Mobile Computing</a>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://numenzq.javaeye.com/blog/192472#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 09:45:23 +0800</pubDate>
        <link>http://numenzq.javaeye.com/blog/192472</link>
        <guid>http://numenzq.javaeye.com/blog/192472</guid>
      </item>
          <item>
        <title>谷歌金山词霸图什么?--個人評論</title>
        <author>morris</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://morris.javaeye.com">morris</a>&nbsp;
                    链接：<a href="http://morris.javaeye.com/blog/192456" style="color:red;">http://morris.javaeye.com/blog/192456</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          日前,谷歌中国和金山软件正式推出“谷歌金山词霸”软件,这是两家公司共同发布的联合品牌产品,将免费向用户开放.透过这个事情,我们能看出什么?金山词 霸本身是一个收费软件,如今免费推出,凭借广告收入来支持,对金山来说,究竟是拾到芝麻还是西瓜?对谷歌来说,推出免费的谷歌金山词霸的意义又在哪里?<br /><br />用李开复的话说,推出谷歌金山词霸根本不赚钱,是为用户提供一个极好的使用体验,那么究竟是不是如此?谷歌真的愿意仅仅是为了推广用户体验而不求利润?<br /><br />金山词霸作为金山三大支柱产业的发展已经十几年了,据悉,自1997年金山词霸发布以来,该产品市场占有率目前第一,用户累计超过3000万.虽然在雷军离职之后,求伯君更看好网游,对WPS和词霸系列产品的发展莫衷一是,但起码是自己养大的孩子,十几年的感情还是有的.如今拿出来让别人抱养,总是有点割舍不下.<br /><br />李开复堂而皇之地表示,谷歌是互联网应用免费的倡导者和实施者,与金山合作是实现这一目标的又一例证.但是不是如此,谷歌真的不看重其间是不是有利可图?谷歌的算盘是,词霸免费开放,通过广告模式盈利,谷歌和金山对广告收入进行分成.<br /><br />可以看出,谷歌希望谷歌金山词霸能与谷歌中文输入法一样,成为谷歌中国又一拓展用户的得力产品,从而在搜索市场份额上进一步缩小与本土搜索龙头百度之间的差距.<br /><br />在谷歌输入法方面,因为和搜狐存在的纠葛,谷歌的第一炮并没有打得很漂亮,如今能和金山携手推出免费词霸,在一定方面对吸纳新增用户还是非常有益的.并且,李开复表示,谷歌全文机器翻译技术,开发了5年多,在业界有颠覆式成功.我们拥有2千亿双语资料,还有基于更多的几十万亿的单语资料库,这个库是全世界最大的.<br /><br />我们可以看出的是,金山词霸经过多年的发展,虽然市场影响力巨大,但是由于盗版的严重,虽然使用者居多,但收费用户究竟有多少,相信并不是很尽如人意.而谷歌在中国市场发展,希望能缩短和百度的差距,于是渴望寻求各种能够集中用户的方法,中国市场的独特性,一切的免费因素都是可能潜在吸引用户的方法.<br /><br />当然,在用户体验方面,对谷歌来说是需要思量的一个方面,毕竟当初的一场流氓软件事件,让人们对肆意横行的“广告”有些深恶痛绝.当然,有付出必然有回报,在推出免费的词霸之后,谷歌在广告的吸纳和用户的增长方面必然会有一定的提高,人们对免费的东西总是趋之若骛.<br /><br />谷歌在中国市场一直寻求能够尽快找到缩短和百度差距的短板,经过多年的耕耘,这个差距的减小速度并没有增长,也就是说谷歌在中国市场和百度的差距还很大,这是谷歌中国一直耿耿于怀的地方,不断地寻求变化,包括谷歌输入法和谷歌金山词霸的推出,就是通过一种使用习惯,在一定范围内吸引更多的用户关注,至于广告收益,对谷歌中国来说,相信这不是短期内期待增长的一个重点.用户的变化才是谷歌不断推出免费产品的一个内因,有了用户再图谋天下也才能顺理成章.
          <br/>
          <span style="color:red;">
            <a href="http://morris.javaeye.com/blog/192456#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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>Tue, 13 May 2008 08:43:04 +0800</pubDate>
        <link>http://morris.javaeye.com/blog/192456</link>
        <guid>http://morris.javaeye.com/blog/192456</guid>
      </item>
          <item>
        <title>如何快速面试筛选，找到合适的人</title>
        <author>stingchen</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://stingchen.javaeye.com">stingchen</a>&nbsp;
                    链接：<a href="http://stingchen.javaeye.com/blog/192453" style="color:red;">http://stingchen.javaeye.com/blog/192453</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          对任何公司来说，找到合适的人都是非常重要的工作。这十几年来，面试的人几乎快上千了。总的来说，公司之间的竞争越发激烈，找人的成本越来越高。<br /><br />好在技术的发展很快，开发的门槛也越来越低，做好技术，对人的聪明才智要求也在降低。只要不是过分挑剔，总是可以找到可以培养的合适的人。<br /><br />招人最难的是筛选，简历筛选，面试筛选。如何能很快地筛选出好的人呢？<br /><br />筛选简历：<br /><br />每次职位都会贴出多个，避免有人搜索不到。收到的简历每天都有上百。一般，我会设置邮件过滤器，把不同职位的人自动放进相应的文件夹。<br />然后，每两天搜索关键词“一年以上”（51job）或者“1年工作经验”(chinahr)，直接筛选出复合要求的简历。<br /><br />如果发现某个人一下子投了2个以上的职位，比如一个资历很浅的人经常投架构设计师，项目经理等职位，基本上就不怎么考虑这些人，他们可能根本不看工作要求，乱投一气。一般随便看看，就很快把这些人从候选简历中去掉。这些人要么是没有自知之明，要么是不尊重面试者劳动的人，一个不懂得尊重别人的人，再好的技术也没有用，在团队中会有很坏的影响。<br /><br />然后主要看简历的工作经验部分，查看以下能力：<br />- 描述能力<br />如果一个人能够很清楚地描述一个项目的情况，特色，自己从事的工作，且项目的工作时间和人数比较合理，说明这个团队可能不错，这个人也知道很好地书面沟通，若项目有跟目前的状况相似的，值得一见。<br /><br />- 担任的责任<br />一个人在某个项目中承担的责任越大，说明其有可能超过同龄人中的水平。<br /><br />- 自学能力<br />最好的是：已经掌握一门基本的语言，如C#,Java，同时对python, rails, php等有相当的了解。<br />如果能参加一些技术社区或论坛，并经常写一些技术相关的心得，或者能够回答很多的问题，则较好。<br />一般的是：一个非计算机专业的人能自己通过创造条件，能够很好地掌握一门语言。<br />最差的是：通过达内，北大青鸟等机构培训出来的。<br /><br />- 解决问题能力<br />以往的工作经验中，项目一般越复杂，可能存在的问题越多，解决问题可能越强。<br /><br />- 其他因素<br />英语水平，一般英语水平好些的人，在找问题的时候可以参照的资料多一些。<br />知识面，知识面适度，不要太分散，也不应太集中在某个技术。<br /><br />面试的时候，主要查看以下能力：<br />- 理解沟通能力<br />最好的是：被面试人能够很容易理解面试官的问题意图，并给出言简意赅的回答。<br />其次的是：能理解问题意图，可能说的过多，没有重点。<br />再次的是：对问题的意图基本上不理解，但是能再次询问和确认而理解，给出适当回答。<br />最差的是：不了解问题意图，随便一两句话就回答了。<br /><br />- 对工作环境最关心的事情<br />人人都关心上班地点，良好的培训，团队气氛和公司发展前景。看看每个人最关心的是什么，如果能说出理由来，可能是环境对自身发展的关系有比较好的思考。<br /><br />- 对工资福利的态度<br />如果第一次面试就非常关注于收入和公司福利，可能是过于注重利益。有些人刻意夸大自己以前的收入水平，或者要求的收入水平远超过正常收入水平。这样的人可能是对公司的薪资没有概念，也许非常不稳定。其实一般来说福利都差异不大，工资水平则是每家公司根据市场水平确定的，绝对不会因为一个新人的要求破坏整个现有的工资体系。如果期望的工资超过这个水平，基本上不会考虑。即使是在公司处于特别的状态，对非常稀缺的人也不会作为首选。<br /><br />- 团队合作<br />是否能从团队成员中学到东西<br />是否能帮助团队其他成员解决问题<br /><br />- 离职原因<br />大部分人离职都是因为工资水平，也有部分是被公司要求离开的。离职的理由和原因也是比较能看出问题的。被开除的最差，没有特别的追求，就是想多赚点的次之，能提出对公司某些事情的不满，想换个更好的发展空间的较好。能明确地描述自己的兴趣和发展，对行业和公司有着一定认识最好。<br /><br />- 技术能力<br />主要了解技术掌握的广度和深度。<br /><br />- 解决问题能力<br />工作中，一般碰到什么问题，如何解决的<br />提出一个现实问题，了解其运用技术用于实际问题中解决的一些办法。<br /><br />- 提问<br />能否提出好的问题？<br /><br />- 其他<br />是否来之前，对公司做过基本了解<br />礼貌程度<br />责任心<br /><br />其实一般我面试的时候，随机性问几个问题，如果有两三个已经得分很差，就基本上结束了。但是总会最后再给一两个机会，如果有特别的，可以接着问，否则就在三分钟内结束面试。<br /><br />既然是选人，人的性格和沟通能力，理解能力是最关键的，如果人本身不适合我们团队，而性格的改变，沟通能力和理解能力的培养是个长期的过程，而且比技术的掌握复杂得多，结果也带有不确定性。<br /><br />可能许多人觉得大部分问题都还没有围绕具体的技术。<br />我认为技术在一个人的考察选拔过程中实际上是次要的，一个人哪怕什么相关技术都没有掌握，只要具有很好的理解能力和学习能力，在很短的时间就能被培训成为很好的技术人才。<br /><br />大家时间都很宝贵，匹配的过程快，对大家都有好处。<br /><br />拿出来跟大家分享，请大家先不要忙着指责，想些有深度的问题讨论。
          <br/>
          <span style="color:red;">
            <a href="http://stingchen.javaeye.com/blog/192453#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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>Tue, 13 May 2008 07:47:57 +0800</pubDate>
        <link>http://stingchen.javaeye.com/blog/192453</link>
        <guid>http://stingchen.javaeye.com/blog/192453</guid>
      </item>
          <item>
        <title>推背贴（本次地震预言）鉴定</title>
        <author>hax</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://hax.javaeye.com">hax</a>&nbsp;
                    链接：<a href="http://hax.javaeye.com/blog/192450" style="color:red;">http://hax.javaeye.com/blog/192450</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以下是对目前所谓神贴或推背贴的总结和鉴定：<br /><br />1. 百度地震吧5月9日，贴主号称在临沂看到大片地震云，怀疑会有6级以上地震。<br /><a href="http://tieba.baidu.com/f?z=373553982&ct=335544320&lm=0&sc=0&rn=50&tn=baiduPostBrowser&word=%B5%D8%D5%F0&pn=0" target="_blank">http://tieba.baidu.com/f?z=373553982&ct=335544320&lm=0&sc=0&rn=50&tn=baiduPostBrowser&word=%B5%D8%D5%F0&pn=0</a><br /><br />鉴定：发帖时间基本属实。<br />且帖主所述极有可能属实。<br /><br />2. 百度气象吧4月23日，贴主预测2008中国会发生水灾并预测在6月前后在中国西南地区的西部会发生7级左右地震。 <br /><a href="http://tieba.baidu.com/f?kz=362116554" target="_blank">http://tieba.baidu.com/f?kz=362116554</a><br /><br />鉴定：发帖时间基本属实。Google的5月5日快照与当前内容一致。<br />帖主预测的地点是“西南地区的西部,江拆点的南岸,滇的西北”，其中“江拆点”疑指长江L形上游的转折点，联系西南地区西部和云南西北，应该指丽江一带，距离汶川超过500公里。所以地震发生地点的预测是失准的。但是地震时间和大体方位是完全切合的。帖主还预测地震深度为10km到80km（即浅源地震），与目前报道相符（不过80%的地震都是浅源地震）。值得注意的是，帖主预测在7到15天后（5月20日到5月28日）将发生水灾，并且预测4月到6月间苏门答腊附近也会发生7.5级地震（目前尚未有发生）。<br /><br />3. 天涯娱乐八卦版2月12日，帖主觉得今年可能有天灾或战争，并取名为“五月里的某一天”。<br /><a href="http://cache.tianya.cn/publicforum/content/funinfo/1/1080275.shtml" target="_blank">http://cache.tianya.cn/publicforum/content/funinfo/1/1080275.shtml</a><br /><br />鉴定：发帖时间和用户名都属实。天涯的其他帖子可以证明至少4月时该帖主的名字已经是“五月里的某一天”。但是总的看来，这个帖子纯属娱乐，帖主今天凌晨也开贴说明其ID纯属巧合。不过这个玩笑不幸成了真，自帖主发贴之后，陆续发生了拉萨事件、列车相撞、手足口等，这个帖子的神奇程度在地震之后更达到了一个新的巅峰。<br /><br />4. 天涯娱乐八卦版5月1日，帖主号称在北京方庄看到狗乱叫麻雀乱飞，怀疑会发生地震。<br /><a href="http://cache.tianya.cn/publicforum/content/funinfo/1/1143691.shtml" target="_blank">http://cache.tianya.cn/publicforum/content/funinfo/1/1143691.shtml</a><br /><br />鉴定：发帖时间估计属实。帖主昨日已经另开贴声明当时并无足够证据。<br />且此次震中在四川，如有动物异常现象应该靠近震中并靠近昨天的更多。所以在没有其他持续反常现象的后续报道的情况下，是地震预兆的可能性不大。<br /><br />5. 某无名论坛5月7日，帖主自称武汉人预测到地震，并贴图。 <br /><a href="http://wuhan.sojiji.com/bbs/2610084829~-1~690/74986_74986_1.htm" target="_blank">http://wuhan.sojiji.com/bbs/2610084829~-1~690/74986_74986_1.htm</a> <br /><br />鉴定：拙劣的造假贴。经过Google验证，所有与该贴有关的内容都是在地震后才出现的。其所贴图为美国地震局的截图。<br /><br /><br />以下两则并非推背贴，但是由于与地震预测有关，也列入。<br /><br />6. 四川省人民政府网站，5月9日来自四川省地震局的消息《阿坝州防震减灾局成功平息地震误传事件》。<br /><a href="http://www.sc.gov.cn/zwgk/zwdt/szdt/200805/t20080509_277807.shtml" target="_blank">http://www.sc.gov.cn/zwgk/zwdt/szdt/200805/t20080509_277807.shtml</a>（目前访问网页已成404）<br /><br />鉴定：消息真实。在网页被删之前，我也亲自验证过。并由Google快照5月10日验证，可证明并非黑客篡改。<br />虽然消息属实，但实际情况不明。网站删除该文件更是一个极其愚蠢的做法，使得问题更加复杂。<br /><br />7. 5月10日四川媒体报道绵竹有大规模蟾蜍迁徙。<br /><a href="http://news.tfol.com/10026/10157/12214/2008/5/10/10559121.shtml" target="_blank">http://news.tfol.com/10026/10157/12214/2008/5/10/10559121.shtml</a><br /><br />鉴定：消息真实。很有可能是被忽视的地震预兆。
          <br/>
          <span style="color:red;">
            <a href="http://hax.javaeye.com/blog/192450#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 05:13:30 +0800</pubDate>
        <link>http://hax.javaeye.com/blog/192450</link>
        <guid>http://hax.javaeye.com/blog/192450</guid>
      </item>
          <item>
        <title>递归－汉诺塔</title>
        <author>shenyu</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://shenyu.javaeye.com">shenyu</a>&nbsp;
                    链接：<a href="http://shenyu.javaeye.com/blog/192432" style="color:red;">http://shenyu.javaeye.com/blog/192432</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>汉诺塔问题。</p>
<p>这里顺便可以求出一共需要搬运的次数。</p>
<p>以下是汉诺塔问题的解法：</p>
<pre name="code" class="java">class Hanoi {
	public static void main(String[] args) {
		int times = hanoi(3,'a','b','c');
		System.out.println(&quot;一共搬运&quot; + times + &quot;次&quot;);
	}

	//from: 搬运的起点， to：搬运的目标地，middle： 临时中转地
	private static int hanoi(int level, char from, char to, char middle) {
		if(level == 1) {	//递归结束条件，只有一个塔
			System.out.println(level + &quot;: &quot; + from + &quot; to &quot; + to);
			return 1;
		}
		int times = hanoi(level - 1, from, middle, to); //将n-1层搬运的临时中转地
		System.out.println(level + &quot;: &quot; + from + &quot; to &quot; + to);	//将第n层搬运到目标地
		return times + 1 + hanoi(level - 1, middle, to, from);	//将n-1层从临时中转地搬运到目标地
	}
}</pre>
&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://shenyu.javaeye.com/blog/192432#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 00:13:03 +0800</pubDate>
        <link>http://shenyu.javaeye.com/blog/192432</link>
        <guid>http://shenyu.javaeye.com/blog/192432</guid>
      </item>
          <item>
        <title>Groovy, JRuby, Jython, Scala:谁是胜利者？</title>
        <author>Eastsun</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://eastsun.javaeye.com">Eastsun</a>&nbsp;
                    链接：<a href="http://eastsun.javaeye.com/blog/192427" style="color:red;">http://eastsun.javaeye.com/blog/192427</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: red">原文地址</span>:<a href="http://blogs.sun.com/seapegasus/entry/groovy_jruby_jython_scala_who" target="_blank">Groovy, JRuby, Jython, Scala: Who Wins the Script Bowl? </a><br /><br />　　<span style="font-size: medium"><span style="color: blue">简介:</span>　</span>这是一场关于脚本语言的“擂台赛”(严格说，Scala应该不属于脚本语言)，　Guillaume LaForge代表Groovy，Charles Nutter代表JRuby，Frank Wierzbicki代表Jython以及Jorge Ortiz代表Scala。他们展开了三轮的竞赛，每次比赛他们都需要展示一个Demo，然后有三分钟的时间向观众解说这个Demo，而观众可以通过短信对比赛进行投票。<br />　　这三轮比赛包括一个桌面应用，一个Web应用，以及一个自由发挥的项目用来展示各个脚步语言最擅长的东东。擂台赛的最后结果是：JRuby获得了第一，Groovy其次，然后是Scala与Jython。<br /><img src="http://www.javaeye.com/upload/picture/pic/14281/f3a88429-b601-3299-9a16-05be8682caa2.jpg?1210639370" /><br />A=Groovy, B=JRuby, C=Jython, D=Scala<br /><br /><br /><div class="quote_title">引用</div><div class="quote_div">Wednesday's <a href="http://weblogs.java.net/blog/rags/archive/scriptbowlresults.jpg/voting." target="_blank">Script Bowl </a>was indeed what the caption promised, a rapid-fire comparison of scripting languages. Four developers took on the challenge to convince the audience of their language of choice -- in only three minutes per round. Guillaume LaForge represented Groovy, Charles Nutter represented JRuby, Frank Wierzbicki represented Jython, and Jorge Ortiz represented Scala. <br /><br />All four languages compile to Java bytecode, but what distinguishes them? The jury, made up of Roberto Chinnici, Carol McDonald, and Ola Bini, made the four contestants compete in three categories: Each developer had prepared three demos, a desktop application, a web application, and one free-form app that shows off what the particular scripting language does best. After each round, the host Rags Srinivas encouraged the attendees to vote by sending text messages. <br /><br />The rich client app demos were first. The task was to implement a desktop client that allows you to log on to Twitter and view your friends' feeds and status, and search for text in their postings. The ability to post was not required, but some of the demo'ed clients could. <br /><br />The Groovy implementation clearly followed the MVC pattern and the language features made it very easy to parse the XML input; the GUI made a good impression. The JRuby implementation was designed using the NetBeans GUI builder (Matisse) and the Profligacy library, and therefor looked like a native app on MacOS; the users of this JRuby app will also appreciate that the build script generated native executables for different operating systems. The Jython app could save time by reusing an already existing model for accessing Twitter APIs; still the app was an odd one out, since it had to be started from the Terminal, and despite having a GUI with buttons to select Twitterers, the output was printed to the Terminal (frankly it looked as if he didn't have time to complete the UI). The Scala developer got started quickly by extending a SimpleGuiApplication class for desktop apps; Scala also made it easy to parse XML input, and the jury pointed out the clean error handling. <br /><br />Next came the web applications. The application should access a MySQL database containing a world factbook, allow the user to browse facts about countries, and sort entries by criteria (language, population, etc). Additionally it should display the selected cities on a map. <br /><br />The Groovy developer of course relied on the Grails framework together with Hibernate to access the database. The web application contributed by the JRuby community relied on the Rails framework and hooked up the components using the NetBeans IDE. The Jython web application relied on the Django framework with good-looking results. All three web applications made good use of their respective web frameworks and came with nice user-friendly web interfaces. Only the Scala team failed to produce the required web application and lost votes accordingly; instead, they demo'ed two other web apps, a chat client and a task list that use Ajax to keep the view up-to-date. <br /><br />A quick look at the votes shows that JRuby and Groovy are presently the most popular choices in the audience... Will Scala and Jython catch up in the last round, where each team gets a chance to show off what their language can do best? <br /><br />The Groovy representative decides not to show off demo apps, but instead he convinces the audience by talking about the seamless Java integration that Groovy is famous for. But then the JRuby submissions wow the audience with their smooth visual beauty: The first demo is a Star Wars-like scrolling Twitter client; the second demo is a 'Face For Steven Hawkins', a flock of colored dots that vibrate and change colors in response to audio input. Yes, admittedly, not very useful, but... pretty! The Jython representative chose to demo the Terminal-based Python help system that will soon be integrated into Jython too. The Scala demo was an application that searches and counts words in RSS feeds; it showed very well how Scala handles concurrency in minithreads. <br /><br />Before the results were made public, the audience had a chance to pose questions to the experts. Asked about the relation of JavaFX to the other languages demonstrated today, Charles Nutter explained that each language was justified by its unique approach, so he does not see JavaFX as competition, but a powerful contribution to the variety of scripting languages. Another attendee asked how exactly languages such as Scala integrate with Java? All scripts written in these four languages compile to Java bytecode (war or jar files) that run on the standard JVM. Regarding Scala, Jorge Ortiz remarked that calling Java libraries from Scala apps is however easier than calling Scala from Java apps. <br /><br />Finally, Rags announces the winner: <span style="color: red">JRuby</span>! <span style="color: orange">Groovy</span> comes second, then <span style="color: blue">Scala</span>, and <span style="color: violet">Jython</span> (<a href="http://weblogs.java.net/blog/rags" target="_blank">Check the final results in Rags' Blog, A=Groovy, B=JRuby, C=Jython, D=Scala</a>). Jython had produced good results, but may have lost a few points for the terminal hacking required to start the applications, since all other contestants used IDEs. Although it felt a bit rushed and it was sometimes hard to pick up the details, this format of comparison is very suitable to get an overview of the "contestants". </div>
          <br/>
          <span style="color:red;">
            <a href="http://eastsun.javaeye.com/blog/192427#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 May 2008 00:04:25 +0800</pubDate>
        <link>http://eastsun.javaeye.com/blog/192427</link>
        <guid>http://eastsun.javaeye.com/blog/192427</guid>
      </item>
          <item>
        <title>Tapestry5每日播报(20080512)</title>
        <author>tapestry</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://tapestry.javaeye.com">tapestry</a>&nbsp;
                    链接：<a href="http://tapestry.javaeye.com/blog/192400" style="color:red;">http://tapestry.javaeye.com/blog/192400</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1.介绍Tapestry5的新文章发布<a href="http://www.infoq.com/articles/tapestry5-intro"><span style="color: #285ab5;">Tapestry for Nonbelievers</span>
</a>
，写的很好，推荐大家阅读。</p>
<p>2.邮件列表<a href="http://www.nabble.com/T5.0.11:-onActivate()-called-twice,-more-questions-td17184571s302.html"><span style="color: #285ab5;">T5.0.11: onActivate() called twice, more 
questions</span>
</a>
，问题跟Tapesetry5的路径问题有关，这个也是一直困扰我的地方，例如生成的url为</p>
<p><span style="color: #285ab5;">http://localhost:8607/myApp/start/testmessage</span>
,图像路径为myApp/images/image.jpg,如果使用相对路径&lt;img 
src=&quot;images/image.jpg&quot;/&gt;,生成的图片url则为</p>
<p><span style="color: #285ab5;">http://localhost:8607/myApp/start/images/image.jpg</span>
<a href="http://localhost:8607/myApp/start/images/image.jpg,%E6%94%B9%E4%B8%BA">
</a>
 
改为&lt;img src=&quot;/images/image.jpg&quot;/&gt;则可正常显示，也就是说开发的应用只能放在根目录，无法部署到目录中，</p>
<p>不知道有没有什么两全的方式解决。</p>
<p>3.邮件列表<a href="http://www.nabble.com/T5:-select-within-table-grid-td17145791s302.html">T5: 
Calling method with parameter in 
prop</a>
，在T4升级到T5的过程中，碰到了prop中无法执行函数的问题，T5Components中有个<a href="http://87.193.218.134:8080/t5components/t5c-commons/howto_ognlbinding.html">ognl 
binding</a>
，可以重新使用ognl取值。</p>
          <br/>
          <span style="color:red;">
            <a href="http://tapestry.javaeye.com/blog/192400#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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, 12 May 2008 22:30:16 +0800</pubDate>
        <link>http://tapestry.javaeye.com/blog/192400</link>
        <guid>http://tapestry.javaeye.com/blog/192400</guid>
      </item>
          <item>
        <title>通过htmlParser抓取百度的相关内容</title>
        <author>wangdei</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://wangdei.javaeye.com">wangdei</a>&nbsp;
                    链接：<a href="http://wangdei.javaeye.com/blog/192391" style="color:red;">http://wangdei.javaeye.com/blog/192391</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>最近这两天我做了个<a href="http://www.tondou.cn/"><span style="color: #8d8c8c;">最新电影网</span></a>的视频网站,主要是从土豆抓取来的.所以<a href="http://www.tondou.cn/c/2008-05-12/313744"><span style="color: #8d8c8c;">内容页</span></a>就是框架,不便于搜索的抓取。所以我就想加些相关内容,像这样的<a href="http://www.bt285.cn/"><span style="color: #8d8c8c;">内容</span></a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于我就是通过百度搜索关键字来填充内容。下面就是我通过htmlParser抓取的代码。</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><img id="Codehighlighter1_50_2161_Open_Image" onclick="this.style.display='none'; Codehighlighter1_50_2161_Open_Text.style.display='none'; Codehighlighter1_50_2161_Closed_Image.style.display='inline'; Codehighlighter1_50_2161_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_50_2161_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_50_2161_Closed_Text.style.display='none'; Codehighlighter1_50_2161_Open_Image.style.display='inline'; Codehighlighter1_50_2161_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" align="top" /><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;BaiduResultAction&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;BaseAction&nbsp;</span><span id="Codehighlighter1_50_2161_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_50_2161_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Logger<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getLogger(BaiduResultAction.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br /><img id="Codehighlighter1_139_187_Open_Image" onclick="this.style.display='none'; Codehighlighter1_139_187_Open_Text.style.display='none'; Codehighlighter1_139_187_Closed_Image.style.display='inline'; Codehighlighter1_139_187_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_139_187_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_139_187_Closed_Text.style.display='none'; Codehighlighter1_139_187_Open_Image.style.display='inline'; Codehighlighter1_139_187_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_139_187_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">/**&nbsp;*/</span><span id="Codehighlighter1_139_187_Open_Text"><span style="color: #008000;">/**</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;组装新闻<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;url<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span></span><span style="color: #000000;"><br /><img id="Codehighlighter1_225_1702_Open_Image" onclick="this.style.display='none'; Codehighlighter1_225_1702_Open_Text.style.display='none'; Codehighlighter1_225_1702_Closed_Image.style.display='inline'; Codehighlighter1_225_1702_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_225_1702_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_225_1702_Closed_Text.style.display='none'; Codehighlighter1_225_1702_Open_Image.style.display='inline'; Codehighlighter1_225_1702_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;compNews(String&nbsp;url)&nbsp;</span><span id="Codehighlighter1_225_1702_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_225_1702_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;returnContent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /><img id="Codehighlighter1_264_1468_Open_Image" onclick="this.style.display='none'; Codehighlighter1_264_1468_Open_Text.style.display='none'; Codehighlighter1_264_1468_Closed_Image.style.display='inline'; Codehighlighter1_264_1468_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_264_1468_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_264_1468_Closed_Text.style.display='none'; Codehighlighter1_264_1468_Open_Image.style.display='inline'; Codehighlighter1_264_1468_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;</span><span id="Codehighlighter1_264_1468_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_264_1468_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParserModel&nbsp;parserModel&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ParserModel();<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">table&nbsp;的抓取标签</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;content&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">border=\</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">\</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;cellpadding=\</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">\</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;cellspacing=\</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">\</span><span style="color: #000000;">""</span><span style="color: #000000;">;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parserModel.setContent(content);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NodeClassNameFilter&nbsp;contentNodeClassNameFilter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;NodeClassNameFilter(<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableTag.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,&nbsp;parserModel);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NodeList&nbsp;contentList&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getAllNodeList(url,<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contentNodeClassNameFilter);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;对table的处理&nbsp;只取第一个table中的一项记录<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果全部抓取内容,则要去掉最后一个break;</span><span style="color: #008000;"><br /><img id="Codehighlighter1_749_1462_Open_Image" onclick="this.style.display='none'; Codehighlighter1_749_1462_Open_Text.style.display='none'; Codehighlighter1_749_1462_Closed_Image.style.display='inline'; Codehighlighter1_749_1462_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_749_1462_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_749_1462_Closed_Text.style.display='none'; Codehighlighter1_749_1462_Open_Image.style.display='inline'; Codehighlighter1_749_1462_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;contentList.size();&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;</span><span id="Codehighlighter1_749_1462_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_749_1462_Open_Text"><span style="color: #000000;">{<br /><img id="Codehighlighter1_805_1446_Open_Image" onclick="this.style.display='none'; Codehighlighter1_805_1446_Open_Text.style.display='none'; Codehighlighter1_805_1446_Closed_Image.style.display='inline'; Codehighlighter1_805_1446_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_805_1446_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_805_1446_Closed_Text.style.display='none'; Codehighlighter1_805_1446_Open_Image.style.display='inline'; Codehighlighter1_805_1446_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&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;(contentList.elementAt(i)&nbsp;</span><span style="color: #0000ff;">instanceof</span><span style="color: #000000;">&nbsp;TableTag)&nbsp;</span><span id="Codehighlighter1_805_1446_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_805_1446_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableTag&nbsp;tableContent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(TableTag)&nbsp;contentList<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;.elementAt(i);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;rowCount&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tableContent.getRowCount();<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableRow[]&nbsp;arrRows&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tableContent.getRows();<br /><img id="Codehighlighter1_1025_1440_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1025_1440_Open_Text.style.display='none'; Codehighlighter1_1025_1440_Closed_Image.style.display='inline'; Codehighlighter1_1025_1440_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1025_1440_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1025_1440_Closed_Text.style.display='none'; Codehighlighter1_1025_1440_Open_Image.style.display='inline'; Codehighlighter1_1025_1440_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;arrRows.length;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;</span><span id="Codehighlighter1_1025_1440_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1025_1440_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;TableRow&nbsp;tableRow&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;arrRows[j];<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;TableColumn[]&nbsp;arrColumm&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tableRow.getColumns();<br /><img id="Codehighlighter1_1169_1433_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1169_1433_Open_Text.style.display='none'; Codehighlighter1_1169_1433_Closed_Image.style.display='inline'; Codehighlighter1_1169_1433_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1169_1433_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1169_1433_Closed_Text.style.display='none'; Codehighlighter1_1169_1433_Open_Image.style.display='inline'; Codehighlighter1_1169_1433_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" 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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;k&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;k&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;arrColumm.length;&nbsp;k</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;</span><span id="Codehighlighter1_1169_1433_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1169_1433_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;String&nbsp;columContent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;arrColumm[k].toHtml();<br /><img id="Codehighlighter1_1254_1411_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1254_1411_Open_Text.style.display='none'; Codehighlighter1_1254_1411_Closed_Image.style.display='inline'; Codehighlighter1_1254_1411_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1254_1411_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1254_1411_Closed_Text.style.display='none'; Codehighlighter1_1254_1411_Open_Image.style.display='inline'; Codehighlighter1_1254_1411_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" 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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(columContent&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)</span><span id="Codehighlighter1_1254_1411_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1254_1411_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;String[]&nbsp;split&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;columContent.split(</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(split.length</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;returnContent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;split[</span><span style="color: #000000;">1</span><span style="color: #000000;">].substring(</span><span style="color: #000000;">0</span><span style="color: #000000;">,split[</span><span style="color: #000000;">1</span><span style="color: #000000;">].length()</span><span style="color: #000000;">-</span><span style="color: #000000;">4</span><span style="color: #000000;">);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" 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;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" 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;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" 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;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_1505_1587_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1505_1587_Open_Text.style.display='none'; Codehighlighter1_1505_1587_Closed_Image.style.display='inline'; Codehighlighter1_1505_1587_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1505_1587_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1505_1587_Closed_Text.style.display='none'; Codehighlighter1_1505_1587_Open_Image.style.display='inline'; Codehighlighter1_1505_1587_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(IllegalArgumentException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_1505_1587_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1505_1587_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /><img id="Codehighlighter1_1609_1675_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1609_1675_Open_Text.style.display='none'; Codehighlighter1_1609_1675_Closed_Image.style.display='inline'; Codehighlighter1_1609_1675_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1609_1675_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1609_1675_Closed_Text.style.display='none'; Codehighlighter1_1609_1675_Open_Image.style.display='inline'; Codehighlighter1_1609_1675_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_1609_1675_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1609_1675_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;returnContent;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br /><img id="Codehighlighter1_1762_2159_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1762_2159_Open_Text.style.display='none'; Codehighlighter1_1762_2159_Closed_Image.style.display='inline'; Codehighlighter1_1762_2159_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_1762_2159_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1762_2159_Closed_Text.style.display='none'; Codehighlighter1_1762_2159_Open_Image.style.display='inline'; Codehighlighter1_1762_2159_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_1762_2159_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1762_2159_Open_Text"><span style="color: #000000;">{<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BaiduResultAction&nbsp;action&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BaiduResultAction();<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">抓取sohu的内容.通过百度</span><span style="color: #008000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.baidu.com/s?wd=%BA%DA%BF%CD%B5%DB%B9%FAII+11%28112%29++site%3Asohu.com</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;String&nbsp;url&nbsp;=&nbsp;"</span><span style="color: #008000; text-decoration: underline;">http://bbs.hoopchina.com/htm_data/96/0712/274754.html</span><span style="color: #008000;">";<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;List&lt;String&gt;&nbsp;hrefList&nbsp;=&nbsp;sinaAction.parseLink(url,&nbsp;getIndexFilter());</span><span style="color: #008000;"><br /><img id="Codehighlighter1_2088_2132_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2088_2132_Open_Text.style.display='none'; Codehighlighter1_2088_2132_Closed_Image.style.display='inline'; Codehighlighter1_2088_2132_Closed_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_2088_2132_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_2088_2132_Closed_Text.style.display='none'; Codehighlighter1_2088_2132_Open_Image.style.display='inline'; Codehighlighter1_2088_2132_Open_Text.style.display='inline';" src="http://wangdei.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2088_2132_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">/**/</span><span id="Codehighlighter1_2088_2132_Open_Text"><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;logger.debug(sinaAction.compNews(url));&nbsp;</span><span style="color: #008000;">*/</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action.compNews(url);<br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://wangdei.javaeye.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span></div>
<p>效果如下：http://www.tondou.cn/c/2008-05-12/314146 </p>
          <br/>
          <span style="color:red;">
            <a href="http://wangdei.javaeye.com/blog/192391#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 May 2008 22:16:47 +0800</pubDate>
        <link>http://wangdei.javaeye.com/blog/192391</link>
        <guid>http://wangdei.javaeye.com/blog/192391</guid>
      </item>
          <item>
        <title>Facebook取消对java版Client Library的官方支持</title>
        <author>Nighthaven</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://nighthaven.javaeye.com">Nighthaven</a>&nbsp;
                    链接：<a href="http://nighthaven.javaeye.com/blog/192386" style="color:red;">http://nighthaven.javaeye.com/blog/192386</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>facebook在5月5号发布的官方声明：</p>
<p><a href="http://developers.facebook.com/news.php?blog=1&amp;story=106">http://developers.facebook.com/news.php?blog=1&amp;story=106</a></p>
<p>声明的内容很容易引起口水，所以我会做一点背景解释。</p>
<p>声明的大致内容是：出于快速开发的需要，facebook开发团队认为没有必要继续维持一个官方的java版Client Library，而是希望由现存的社区主导的非官方library来完成这项工作。</p>
<p>现在如果你去<a href="http://developers.facebook.com/resources.php">http://developers.facebook.com/resources.php</a>下载facebook开发包，在Client Library目录下只有php版的可以直接下载，而java版的client Library则被下放到所谓Unofficial Client Libraries当中。</p>
<p>下面补充一些背景解释和我个人的看法：</p>
<p>首先，目前官方Client Libraries只有php版的了。官方只支持一种语言的Client Libraries是一项英明的决定。同时维护两种语言的api将会减慢开发速度；而且，在维持一个php团队前提下，再维护一个java团队，绝对不便宜。</p>
<p>其次，facebook开放的api是用来与facebook的服务器的数据交互的，所以具体在表现层使用什么技术，不会受到太大影响。实际上facebook的照片上传工具就是用java编写的。</p>
<p>好了，至于为什么选择官方维护PHP而不是JAVA，尽管这很大程度上取决于facebook开发团队的偏好，不过语言之争，永远都是口水之源，有兴趣的人开始辩论吧！</p>
          <br/>
          <span style="color:red;">
            <a href="http://nighthaven.javaeye.com/blog/192386#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 May 2008 22:05:50 +0800</pubDate>
        <link>http://nighthaven.javaeye.com/blog/192386</link>
        <guid>http://nighthaven.javaeye.com/blog/192386</guid>
      </item>
          <item>
        <title>网络上的评论真真假假！</title>
        <author>王贵伟</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://paulandjoy.javaeye.com">王贵伟</a>&nbsp;
                    链接：<a href="http://paulandjoy.javaeye.com/blog/192384" style="color:red;">http://paulandjoy.javaeye.com/blog/192384</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前些天找工作有了三个offer,其中有一个口碑特别差，后来我还就真的去了这个公司，工作将近十天了，也没有发现里面怎么象网络上的说的那样。突然感觉好象网络上很难找到对某个公司正面言论。以前在一个很大的公司也有很多同事在离开公司在网络上发表公司副面评论。<br /><br />现在想一想，有句话叫好事不出门，坏事传千里应该就是这个道理。<br /><br />其实北京的软件公司大多没有什么不同，而且对员工的福利待遇也基本一样，普遍存在加班问题。相信网上的留言可能就找不到合适自己的公司了。在我工作的经历看来一般的员工能在 一个公司干一到两年，对公司也基本满意，只是不会把这个满意说在网上。但是对公司不满的人就不一样，在各论坛到处相传这个公司怎么垃圾，怎么剥削......其实这个只能说明他本人不适合这个公司.......。<br /><br />我也跳过两次曹，以为跳曹会找到更好的公司，但是最后和以前一样，没有什么显著的改善。<br /><br />人吗！难免会这山看着那山高。到了那山..........
          <br/>
          <span style="color:red;">
            <a href="http://paulandjoy.javaeye.com/blog/192384#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 May 2008 22:01:31 +0800</pubDate>
        <link>http://paulandjoy.javaeye.com/blog/192384</link>
        <guid>http://paulandjoy.javaeye.com/blog/192384</guid>
      </item>
          <item>
        <title>displaytag 分页的简单例子</title>
        <author>zhou568xiao</author>
        <description>
          <![CDATA[
          <br/>
          网站: <a href="http://www.javaeye.com">JavaEye</a>&nbsp;
          作者: <a href="http://zhou568xiao.javaeye.com">zhou568xiao</a>&nbsp;
                    链接：<a href="http://zhou568xiao.javaeye.com/blog/192366" style="color:red;">http://zhou568xiao.javaeye.com/blog/192366</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium;">一.display tag </span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp; DisplayTag是一个非常好用的表格显示标签，适合MVC模式。可以对的Table进行分页、数据导出、分组、对列排序等.下面将用Struts2+display tag做个最简单的分页程序.</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp; 1.首先要下它的jar包，将jar包放到WEB-INF的lib文件夹下它的核心jar包是jstl-1.2.jar，另外需要一些辅助jar包，这些辅助包都有不同的功能，具体的功能可以访问<a href="http://displaytag.sourceforge.net/10/dependencies.html">http://displaytag.sourceforge.net/10/dependencies.html</a>，根据需要下载不同的jar包。例子中用到jar包如下：</span></p>
<p><span style="font-size: medium;">commons-logging-1.0.4.jar<br />displaytag-1.1.1.jar<br />freemarker-2.3.8.jar<br />ognl-2.6.11.jar<br />struts2-core-2.0.11.jar<br />xwork-2.0.4.jar<br />commons-lang-2.3.jar<br />standard-1.1.2.jar<br />commons-beanutils-1.7.0.jar<br />commons-collections-3.2.jar<br />jstl-1.2.jar<br />itext-1.3.jar<br />commons-digester-1.7.jar</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp; 2.然后在web.xml下添加一个filter<br />&nbsp;&nbsp;&nbsp; &lt;filter&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;exportFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.displaytag.filter.ResponseOverrideFilter&lt;/filter-class&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/filter&gt;</span></p>
<p><span style="font-size: medium;">在jsp页面做一个引用：<br />&lt;%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %&gt;</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp; 3.在src下面com.hua.example先建一个bean</span></p>
<p><span style="font-size: medium;">package com.hua.example;</span></p>
<p><span style="font-size: medium;">public class StudentInfo {<br />&nbsp;private String name;<br />&nbsp;private String age;<br />&nbsp;private String mark;<br />&nbsp;public String getName() {<br />&nbsp;&nbsp;return name;<br />&nbsp;}<br />&nbsp;public void setName(String name) {<br />&nbsp;&nbsp;this.name = name;<br />&nbsp;}<br />&nbsp;public String getAge() {<br />&nbsp;&nbsp;return age;<br />&nbsp;}<br />&nbsp;public void setAge(String age) {<br />&nbsp;&nbsp;this.age = age;<br />&nbsp;}<br />&nbsp;public String getMark() {<br />&nbsp;&nbsp;return mark;<br />&nbsp;}<br />&nbsp;public void setMark(String mark) {<br />&nbsp;&nbsp;this.mark = mark;<br />&nbsp;}<br />&nbsp;<br />}</span></p>
<p><span style="font-size: medium;">建action</span></p>
<p><span style="font-size: medium;">package com.hua.example;</span></p>
<p><span style="font-size: medium;">import java.util.ArrayList;<br />import java.util.List;</span></p>
<p><span style="font-size: medium;">import com.opensymphony.xwork2.ActionSupport;</span></p>
<p><span style="font-size: medium;">public class StudentAction extends ActionSupport{<br />&nbsp;private List&lt;StudentInfo&gt;studentInfos;<br />&nbsp;public List&lt;StudentInfo&gt; getStudentInfos() {<br />&nbsp;&nbsp;return studentInfos;<br />&nbsp;}</span></p>
<p><span style="font-size: medium;">&nbsp;public void setStudentInfos(List&lt;StudentInfo&gt; studentInfos) {<br />&nbsp;&nbsp;this.studentInfos = studentInfos;<br />&nbsp;}</span></p>
<p><span style="font-size: medium;">&nbsp;public String dispayAllStudents()<br />&nbsp;{</span></p>
<p><span style="font-size: medium;">//定义一个list存放要显示的记录<br />&nbsp;&nbsp;studentInfos=new ArrayList&lt;StudentInfo&gt;();<br />&nbsp;&nbsp;for(int i