<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Developer's Notebook</title>
    <description></description>
    <link>http://sam1860.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>搬家了</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/110917" style="color:red;">http://sam1860.javaeye.com/blog/110917</a>&nbsp;
          发表时间: 2007年08月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          新家在http://liuyuanzhi.blogspot.com，由于和谐事业的原因你可能访问不了，可以用http://www.pkblogs.com/liuyuanzhi访问
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/110917#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Aug 2007 15:34:07 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/110917</link>
        <guid>http://sam1860.javaeye.com/blog/110917</guid>
      </item>
      <item>
        <title>来看看自己的linux启动快不快</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/100993" style="color:red;">http://sam1860.javaeye.com/blog/100993</a>&nbsp;
          发表时间: 2007年07月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在<a href="http://linuxtoy.org/archives/bootchart.html" target="_blank">LinuxToy</a>看到了一个计算启动时间的小工具bootchart，会帮你把启动过程所花的时候画成图表，挺有趣的，我也装了个来玩玩<img src="/images/smiles/icon_lol.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/100993#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 14 Jul 2007 09:40:33 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/100993</link>
        <guid>http://sam1860.javaeye.com/blog/100993</guid>
      </item>
      <item>
        <title>linux下Subversion服务架设</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/91243" style="color:red;">http://sam1860.javaeye.com/blog/91243</a>&nbsp;
          发表时间: 2007年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一、工具准备<br /><br />Apache Web服务器：<a href="http://government-grants.org/mirrors/apache.org/httpd/httpd-2.2.4.tar.bz2" target="_blank">httpd-2.2.4.tar.bz2</a><br />Subversion源码包及依赖包：<a href="http://subversion.tigris.org/downloads/subversion-1.4.3.tar.bz2" target="_blank">subversion-1.4.3.tar.bz2</a>,<a href="http://subversion.tigris.org/downloads/subversion-deps-1.4.3.tar.bz2" target="_blank">subversion-deps-1.4.3.tar.bz2</a><br />(下面假设apache和svn源码都解压到了/home/tmp下)<br /><br />二、安装Apache<br /><br />Apache的安装就根平时安装Apache没什么两样，都记得要打开dav模块和动态模块选项。安装安装命令如下：<br /><br /><div class="quote_title">引用</div><div class="quote_div">    tar xfj httpd-2.2.4.tar.bz2<br />    cd httpd-2.2.4<br />    ./buildconf<br />    ./configure --enable-dav --enable-so<br />    make<br />    make install</div><br /><br /><br /><br />三、安装Subversion<br /><br />SVN的安装一定要注意：<br /><br /><br />    * SVN 依赖的APR版本要正确。如果Apache为2.0.x，对应的APR版本应为0.9.x；Apache为2.2.x，对应的APR版本应为1.2.x。由于subversion-deps包里的APR是0.9.x的，因此编译svn时要删除从deps里解压出来的apr, apr-util，改而使用apache 2.2里提供的。<br /><br />    * 如果apache不是安装在默认路径，configure必須加上--with-apxs选项,如：./configure --with-apxs=/home/apache2/bin/apxs<br /><br /><br />安装命令如下：<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />    tar xfj subversion-1.4.3.tar.bz2<br />    tar xfj subversion-deps-1.4.3.tar.bz2<br />    # subversion-deps的文件也会解压到subversion-1.4.3目录中<br />    cd subversion-1.4.3<br />    rm -rf apr<br />    rm -rf apr-util<br />    ln -s /home/tmp/httpd-2.2.4/srclib/apr apr<br />    ln -s /home/tmp/httpd-2.2.4/srclib/apr-util apr-util<br />    ./configure &&amp;amp; make && make install</div><br /><br /><br />安装完成后，查看是否存在文件$APACHE_HOME/modules/mod_dav_svn.so（默认 /usr/local/apache2/modules/mod_dav_svn.so)。另外，如果该机器上以前是装过旧版本的SVN，要把 "/usr/local/lib/libsvn*"文件都删除。<br /><br />四、在apache中配置svn<br /><br />创建SVN库：<br /><br /><div class="quote_title">引用</div><div class="quote_div">    cd /home/svn<br />    svnadmin create repo1</div><br /><br /><br /><br />在Apache 的配置文件httpd.conf中加入以下代码，Apache中就可以配置好一个虚拟主机svn.mydomain.net，并把该域名下的根路径配置给 Subversion。通过AuthzSVNAccessFile和AuthUserFile指令分别配置SVN用户的用户名和密码文件。<br /><br /><div class="quote_title">引用</div><div class="quote_div">    &lt;virtualhost *:80><br />    DocumentRoot /home/svn/htdocs<br />    &lt;directory><br />    Options Includes<br />    AllowOverride All<br />    Order allow,deny<br />    Allow from all<br />    &lt;/directory><br /><br />    &lt;location><br />    DAV svn<br />    SVNParentPath /home/svn/svnroot<br />    AuthzSVNAccessFile /home/svn/svnroot/conf/accessfile<br />    Require valid-user<br />    AuthType Basic<br />    AuthName "Subversion System"<br />    AuthUserFile /home/svn/svnroot/conf/passwdfile<br />    &lt;/location><br /><br />    ServerName svn.mydomain.net<br />    DirectoryIndex index.html<br />    &lt;/virtualhost></div><br /><br /><br /><br /><br />创建文件/home/svn/svnroot/conf/accessfile：<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />    [groups]<br />    user = jarod<br />    anonymous = guest<br />    [/]<br />    * = r<br />    @user = rw<br />    @anonymous = r</div><br /><br /><br /><br />再用htpasswd命令创建/home/svn/svnroot/conf/passwdfile文件：<br /><br /><br /><div class="quote_title">引用</div><div class="quote_div">    htpasswd -c /home/svn/svnroot/conf/passwdfile jarod<br />    # 这时会提示输入密码</div><br /><br /><br /><br />最后把/home/svn目录的拥有者设为启动apache服务的用户，apache-2.2默认会由daemon用户启动：<br /><br /><div class="quote_title">引用</div><div class="quote_div">    chown daemon.daemon -R /home/svn<br />    chmod 777 /home/svn -R</div><br /><br /><br /><br />大功告成，通过浏览器或SVN客户端测试http://svn.mydomain.net/repo1<br />这时在/home/svn/svnroot下添加的新SVN库也将自动使用相同的权限配置
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/91243#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 17 Jun 2007 11:56:11 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/91243</link>
        <guid>http://sam1860.javaeye.com/blog/91243</guid>
      </item>
      <item>
        <title>推荐一个压缩工具7-zip</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/83378" style="color:red;">http://sam1860.javaeye.com/blog/83378</a>&nbsp;
          发表时间: 2007年05月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在Windows下WinRAR可以说是装机必备软件之一了。RAR有着比ZIP更高的压缩比，自从几年前击败WINZIP之后现在一直都维持着桌面压缩工具的老大。<br />
今天无意中碰到了一个开源压缩工具&mdash;&mdash;<a href="http://www.7-zip.org/">7-zip</a>。下了个4.46 beta版回来跟装在机上的winrar-3.60对比了一个。同样压缩安装在机器上的firefox2英文版的目录作测试。winrar把压缩比设成&ldquo;最好&rdquo;，7-zip把压缩比设成&ldquo;极限&rdquo;（其它选项默认）。<br />
<br />
<table border="1">
    <tbody>
        <tr>
            <th>&nbsp;</th>
            <th>压缩前</th>
            <th>winrar3.60</th>
            <th>7-zip4.46beta</th>
        </tr>
        <tr>
            <td>大小(byte)</td>
            <td>22,086,568</td>
            <td>7,685,813</td>
            <td>6,641,360</td>
        </tr>
        <tr>
            <td>时间(s)</td>
            <td>&nbsp;</td>
            <td>21</td>
            <td>33</td>
        </tr>
    </tbody>
</table>
<br />
<br />
虽然速度比起WinRAR要慢，但压缩比更高，而且7-zip工具支持rar格式的解压。还有，7-zip是开源的工具，而winrar是收费的。
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/83378#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 26 May 2007 17:50:50 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/83378</link>
        <guid>http://sam1860.javaeye.com/blog/83378</guid>
      </item>
      <item>
        <title>杀毒软件</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/77514" style="color:red;">http://sam1860.javaeye.com/blog/77514</a>&nbsp;
          发表时间: 2007年05月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          早几天帮别人装了机，装了个最新的瑞星。发现在XP启动前瑞星有个离线杀毒功能（也就是类似DOS杀毒的方式），这是卡巴斯基和NOD32都没有的功能（其它国外杀毒软件有没有不知道，身边的人只用卡巴和NOD32）。国人还是比鬼佬会动脑筋啊。对杀毒软件有点使用经验的朋友应该都知道，各大杀毒软件虽都宣称自己的查杀率多高多高。但很经常的情况是，对于已经加载病毒是杀不干净的。通常要用到DOS杀毒才能搞定（或双系统是到第二个系统杀）。<br />
卡巴斯基貌似两年前已经在国内比较流行了。但我从来都没装过，大学时期我甚至从不装杀毒软件的，觉得太浪费系统资源了。现在工作了用的是双系统linux和xp, 工作一般都是用linux。但为了安全起见在XP装了个nod32（主要是因为占用系统资源低，还有觉得卡巴斯基是菜鸟才用的。。。）。但用了一年多也就报过１，２次警。<br />
对于我的朋友我一直是推荐用国产杀毒软件的，特别是一些平时用电脑只是聊聊Q，上上网的朋友。针对QQ盗号之类的木马其实都是国产的，对于它们的响应当然国产杀毒软件会更快（其实外国杀毒软件会不会杀这些木马我还不知道&quot;_-`）。<br />
加上新版中的离线杀毒功能，这对对电脑的技术不太懂的人就更适合了，一般人谁会弄DOS杀毒（就我所知其实有不少IT专业的人也不懂DOS杀毒的作用的，杀不了毒就重装。。。。）
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/77514#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 07 May 2007 11:11:44 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/77514</link>
        <guid>http://sam1860.javaeye.com/blog/77514</guid>
      </item>
      <item>
        <title>购买本本时的一些常识</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/75491" style="color:red;">http://sam1860.javaeye.com/blog/75491</a>&nbsp;
          发表时间: 2007年04月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          原文标题：揭开&ldquo;扯皮&rdquo;的面纱--笔记本行业的国标VS行规<br />
地址：http://www.pconline.com.cn/notebook/news/gdpl/0704/1007585.html<br />
<br />
在太平洋发现此文，常识学习
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/75491#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 27 Apr 2007 14:05:24 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/75491</link>
        <guid>http://sam1860.javaeye.com/blog/75491</guid>
      </item>
      <item>
        <title>优化网页加载时间</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/74855" style="color:red;">http://sam1860.javaeye.com/blog/74855</a>&nbsp;
          发表时间: 2007年04月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          同事共享的一篇关于优化网页加载时间的文章 <a href="http://www.die.net/musings/page_load_time" target="_blank">Optimzing Page Load Time</a>，还没认真看，先收藏了。
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/74855#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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 26 Apr 2007 11:09:45 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/74855</link>
        <guid>http://sam1860.javaeye.com/blog/74855</guid>
      </item>
      <item>
        <title>Ubuntu社区杂志《Full Circle》第0期</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/71717" style="color:red;">http://sam1860.javaeye.com/blog/71717</a>&nbsp;
          发表时间: 2007年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          《Full Circle》是由ubuntu社区发行的一本杂志，文章都是介绍ubuntu发行版，linux方便的开源技术工具。<br />
第0期已经提供下载，这一期的文章主要介绍Ubuntu的历史版本和将要发布的7.04<br />
主页：http://www.fullcirclemagazine.org/
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/71717#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Apr 2007 09:26:45 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/71717</link>
        <guid>http://sam1860.javaeye.com/blog/71717</guid>
      </item>
      <item>
        <title>各种电器辐射参考</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/71279" style="color:red;">http://sam1860.javaeye.com/blog/71279</a>&nbsp;
          发表时间: 2007年04月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>原标题：最权威的辐射评测报告<br />
转自：http://www.mmug.cn/forum/index.cfm?sPart=G&amp;sForumId=005&amp;iItemId=577<br />
<br />
实行五分制，凡是被评为五分的，都属于严重超标，可要引起您重视了；三星以上也属于超标范围，也<br />
要引起您的注意；一星的，是安全的，您可以放心使用。<br />
电磁辐射分两个级别，其中工频段的单位是&mu;T，如果辐射在0.4&mu;T以上属于较强辐射，对人体有一定危害，长期接触易患白血病。如果辐射在0.4&mu;T以下，相对安全。而射频电磁波的单位是&mu;W/㎝2。<br />
电视<br />
传统显像管电视CRT是第一个接受测试的。我们首先对它进行近距离的测试，在正面半米的范围内，正常开机的瞬间，它所产生的辐射值是0.12&mu;T，正常 观看时的辐射值是0.30&mu;T，换台时为0.27&mu;T，待机状态则是0.11&mu;T，而侧面在正常观看 的情况下，辐射值是0.28&mu;T，总体看来接近警戒值。<br />
因为大多数人看电视是在3 米左右的距离，所以我们在正面3米处也做了测试，发现辐射有很大程度的衰减：开关机、正常观看、换台、待机状态都是0.12&mu;T，测试结果表明传统显像管 电视正常观看不会产生危害。但是令我们意外的是在它的后面辐射强度较大，开机后在半米之内辐射值竟达4 .8&mu;T，而且隔着玻璃、木板，辐射都没有减小，甚至隔着10厘米厚的墙辐射值还有0.9&mu;T。如果你的电视后面正对着卧室的床头可要小心了。不过通常人 们休息和看电视的时间不同，所以问题倒不大。<br />
再看等离子电视，正面半米处，开机、观看、换台都是0.11&mu;T，待机时0.12&mu;T，侧面0.11&mu;T；在正面3米处，开机时0.12&mu;T，正常观看时是0.14&mu;T，换台、待机状态下0.11&mu;T，从测试结果看较之传统电视，等离子的辐射强度要小一 些。<br />
而背投电视，正常观看时，紧贴机身正面0.12&mu;T、侧面0.19&mu;T、后面0.14&mu;T；正面半米处0.11&mu;T；正面3米处0.1&mu;T。<br />
在电视系列中最令人放心的是液晶电视，不论是正面半米还是正面3米的范围内，开机瞬间、正常观看、换台、待机状态的测试结果都是0.1&mu;T，而侧面也只有0.11&mu;T，基本上是辐射强度没有变化。<br />
测试结果：三种电视的比较之后，我们不难发现，液晶电视、背投电视辐射最小，等离子电视辐射稍强一点，CRT电视较大，但主要在电视后面，提示您最好在观看时保持一定距离，尤其是儿童。<br />
影碟机和家庭影院<br />
这几年流行家庭影院，也就是影碟机加音响系统，紧贴测试的结果，DVD1.2&mu;T，OK机1.2&mu;T，功放1.24&mu;T，小音箱1.5&mu;T，大音箱0.49&mu;T，要是同时打开，辐射可不小。<br />
提示：建议您尽量少用家庭影院，如果自己想唱歌最好还是去KTV。<br />
<br />
CRT显示器 液晶显示器 台式电脑主机 小音箱 笔记本电脑<br />
人们一直认为CRT显示器的辐射较大，到底是不是大家认为的那样呢？我们首先对它进行了测试，显示屏前紧贴着1.00&mu;T，显示屏侧面紧贴着 0.55&mu;T，这可是不小呀！在看看显示屏中央，距离0.03米，，辐射还有0.55&mu;T，难道这CRT显示器真的像我们想象的辐射那么大？为了进一步证 实，我们开始寻找它的安全距离，结果发现距离0.2米时，显示屏前面的辐射就衰减到了0.18&mu;T，看 来CRT显示器只要保持0.2米的距离就可以放心使用了。有观众朋友问它是不是和CRT电视一样后面辐射较大，测试后发现并不大。有人喜欢用防辐 ######屏保，那它管用吗？我们也特意对它做了测试，加上屏保辐射只有10％的减少，看来屏保作用并不大。 <br />
CRT显示器的辐射指数：★★★☆☆<br />
如今液晶显示器正替代传统显示器，我们对它也进行了测试。显示屏前0.5米0.11&mu;T，开机瞬间0.12&mu;T，关机0.11&mu;T，显示屏侧面0.5米0.12&mu;T，看来液晶显示器还真是挺让人放心的。<br />
液晶显示器的辐射指数：★☆☆☆☆<br />
让我们再看看台式电脑的主机，前面0.17&mu;T，但主机操作面板中央辐射略强，距离0.03米，0.26&mu;T；主机侧面0.29&mu;T，机箱左侧面中央， 距离0.03米，0.23&mu;T。后面0.46&mu;T，但我们一般离主机后面都有一定距离，所以影响不大 。还有开机瞬间、待机状态都是0.17&mu;T。另外还要说说的是台式电脑电源接线如果再接通状态下的辐射是0.47&mu;T，所以再使用台式电脑时也要保持距 离。<br />
台式电脑的主机的辐射指数：★★★☆☆<br />
可是，接下来的测试就不太让人乐观了，低音炮音箱，操作面板中央，距离0.03米， 0.63&mu;T；音箱右侧面中央，距离0.03米，5.68&mu;T；辐射可是不小，那它的安全距离是多少呢？经过仔细测试发现，当距离0.4米时，它的辐射就 减小到0.17 &mu;T。所以低音炮音箱辐射严重，使用时至少要保持半米的距离。<br />
低音炮音箱的辐射指数：★★★★☆<br />
最后还要说的就是笔记本电脑，显示屏前0.1米0.13&mu;T，显示屏前0.3米0.10&mu;T，显示屏侧面0.3米0.13&mu;T，键盘上方0.19&mu;T，电源适配器0.22&mu;T。测试结果显示笔记本键盘辐射稍强，电源适配器最大。<br />
笔记本的辐射指数：★☆☆☆☆<br />
提示：液晶显示屏的辐射很小，CRT显示器略大一些，但都在安全范围；主机后面、侧面辐射较大，强烈建议您不要为了散热方便，敞开机箱使用；低音炮音箱辐射严重，使用时至少保持半米距离；笔记本辐射集中在键盘上方，使用笔记本时应与电源适配器保持远一 点的距离。<br />
哎，对了，光说这电脑和笔记本辐射不大，不过那个光电鼠标一会儿红一会儿蓝的挺吓人的，有辐射吗？那无线鼠标、无线键盘的是不是辐射就比普通的要小呢？还有那无线局域网发射器！还有数码装备，什么数码相机，MP3、MP4。<br />
告诉你吧，这种用电池的直流电<strong style="color: white; background-color: rgb(153, 0, 153);">电器</strong>是最安全的。<br />
<br />
普通鼠标 普通键盘 无线鼠标 无线键盘 无线网关 打印机 数码相机和MP4的电源适配器<br />
普通鼠标0.1&mu;T<br />
普通键盘0.11&mu;T<br />
无线鼠标 鼠标上方0.53&mu;T<br />
无线键盘 键盘上方 0.96&mu;T<br />
无线网关 网关上方 0.15&mu;T<br />
还有打印机0.11&mu;T<br />
数码相机电源适配器 0.11&mu;T<br />
MP4电源适配器 0.16&mu;T<br />
普通鼠标、普通键盘、无线网关、打印机、数码相机和MP4的电源适配器的辐射指数：★☆☆☆☆；<br />
无线鼠标和无线键盘的辐射指数：★★★☆☆<br />
提示：普通键盘、鼠标，以及无线网关、打印机、数码相机和MP4电源辐射都不大，可放心使用。但无线键盘、无线鼠标辐射较大。</div>
<div>制冷制热家电、电热毯 <br />
空调是卧室里使用时间最长、功率最大的，令人欣慰的是，在开关机瞬间、正常使用时，它的辐射仅为0.1&mu;T，在静音、睡眠等各种模式下的辐射值变化也不大。 <br />
冬季有的家庭喜欢使用小电暖气、暖风机等制热家电，不过它们的辐射可是不小，先看看红外电暖气，在1mm的距离测试的结果是：上面的辐射为1. 8&mu;T，侧面5.4&mu;T，辐射强度很大，我们又在1m之外做了测试，辐射就削减到0.14&mu;T。暖风机紧贴着的测试结果是9. 3&mu;T，在半米处，正面0.34&mu;T，背面0.25&mu;T。不过最让人放心的是油汀电暖气，高档使用时，上方中央0.19&mu;T；侧面中央，贴近时 0.18&mu;T，半米时0.18&mu;T。 <br />
电热毯，在高档使用时，靠近电源处是0.71&mu;T，电源对侧左边角1.15&mu;T，电源对侧右边角0.71&mu;T，电热毯中央部位0.55&mu;T；低档时，电源对侧左边角0.70&mu;T，电源对侧右边角0.49&mu;T。看来电热毯的辐射还真不小。 <br />
卧室里另一个大辐射源是电扇，低档风力时2.6&mu;T，高档风力时0.9&mu;T；不过在2m之外，辐射就衰减到0.11&mu;T。 <br />
提示：空调辐射较小，可放心使用，但是红外管电暖气、暖风机、电扇的辐射较大，建议使用时至少保持一米的距离。电热毯的辐射也较大，建议少用。 <br />
加湿器、空气净化器 <br />
我们在测试中发现这种风扇加湿器的辐射最大，紧贴着它测试的结果是49&mu;T，低档使用时15&mu;T，高档使用时32&mu;T，不过在1m之外就削减为 0.52&mu;T了。超声波喷雾加湿器紧贴着它测试的结果是9&mu;T，1米之外是0.22&mu;T。空气净化器紧贴着它测试的结果是0.35&mu;T，0.5m的范围内 就削减为0.12&mu;T。 <br />
提示：加湿器和空气净化器不宜离人体过近。 <br />
加湿器辐射指数：★★★★★ <br />
空气净化器辐射指数：★★★☆☆ <br />
电磁炉 电火锅 微波炉 <br />
喜欢用电磁炉吃火锅的人可要注意了，它的辐射可是不小，看看测试结果吧，电磁炉上方0.1米2.80&mu;T ，电磁炉上方0.3米1.40&mu;T，电磁炉正前方紧贴8.70&mu;T ，电磁炉正前方0.3米1.00&mu;T。在看看电火锅的测试，开机高档0.53&mu;T，关机0.13&mu;T。 <br />
测试结果显示电磁炉辐射较大，电火锅与电磁炉相比要好一些。 <br />
随后我们首先对大家最关心的微波炉做了测试，发现微波炉门缝处辐射最大，所以做了详细测试： <br />
中档火力时：门缝前0.03米 17.32&mu;W/㎝2， <br />
门缝前0.3米 2.01&mu;W/㎝2 <br />
门缝前1米 0.41&mu;W/㎝2 <br />
微波炉门中央：距门0.05米30.14&mu;W/㎝2 <br />
测试结果显示微波炉启动时辐射最大（数值18到22&mu;W/㎝2左右，）。 <br />
提示：电磁炉辐射较大，电火锅相对较小，建议使用电磁炉、电火锅的时间不要太长，使用时也要保持一定距离。微波炉启动时辐射最大，建议你在用微波炉烹饪时不要过于靠近。 <br />
辐射指数：★★★★★★★ <br />
电冰箱 抽油烟机 臭氧消毒柜 臭氧机 电饭煲 电饼铛 电热水壶 榨汁机 豆浆机 <br />
电冰箱 门外0.13&mu;T 门内（开门）0.16&mu;T <br />
抽油烟机 前面0.1米开机状态下0.38&mu;T，前面0.1米关机瞬间0.11&mu;T <br />
臭氧消毒柜 开门 0.14&mu;T <br />
臭氧机 开盖0.55&mu;T <br />
电饭煲 前面0.16&mu;T <br />
电饼铛 上面紧贴着3.60&mu;T <br />
电热水壶 紧贴着1.20&mu;T 0.1米0.30&mu;T <br />
榨汁机10.00&mu;T <br />
豆浆机 紧贴着0.86&mu;T 0.1米0.30&mu;T <br />
提示：电冰箱、臭氧消毒柜、电饭煲辐射较小可放心使用；电饼铛、抽油烟机辐射略大一点，属于警戒范围，注意使用时不要贴的太近；臭氧机、豆浆机、榨汁机辐射都较大，最好不要让小孩使用。 <br />
吸尘器、电熨斗、吹风机、电源接线板 <br />
我们之前测试这种大个的吸尘器，在正常使用下的辐射有15&mu;T，可是不小呀；现在还流行这种小个的手持吸尘器，它的辐射有多大呢？我们也做了测试，手柄 处距离0.03米，6.64&mu;T；左侧面中央，4.22&mu;T；不过如果您这样使用的话，它的辐射可就 衰减到安全范围了，后面0.2米，0.15&mu;T。 <br />
大吸尘器的辐射指数：★★★★★ <br />
小吸尘器的辐射指数：★★★★☆ <br />
电熨斗的辐射也挺大，我们又做了一次详细的测试，发现电熨斗加温时辐射会加大，在加热状态下，手柄处，1.22&mu;T；不过它在恒温状态，辐射就衰减到0.12&mu;T。所以您要是熨衣服最好能把温度一次加热到位，用一会再继续加热，千万不要边加热边熨衣服 。 <br />
</div>
<div>电吹风也是我们发现的一个大辐射源，之前的测试，低档4.20&mu;T，高档10.00&mu;T；之后又对热风档时，电吹风的不同部位做了详细测试，手柄处0.03米，10.95&mu;T；出风口，7.16&mu;T，看来吹风机还真的要少用呀。 <br />
电吹风的辐射指数：★★★★★ <br />
还有一点要提醒大家的是，电源接线板，如果无用电设备连接时，距离0.03米，它的辐射只有0.11&mu;T，并不大；但是在高功率用电设备连接时，距离0.03米，它的辐射可就有1.25&mu;T。这可要引起您的注意了。 <br />
电源接线板（使用状态下）的辐射指数：★★★★☆ <br />
提示：吸尘器和电吹风的辐射较大，电熨斗的辐射也不小，使用时应离儿童远一些，电源接线板辐射也要引起您的注意，不要把它放在床头。 <br />
电热足盆、跑步机、脂肪运动机 <br />
这是现在流行的电热足盆，让我们看看它的辐射有多大？距电源线0.03米，2.20&mu;T。 <br />
电热足盆的辐射指数：★★★☆☆ <br />
还有人喜欢在家运动，这种跑步机的辐射有多大呢？跑步机工作状态下，面板处0.15&mu;T，传送带前部3.90&mu;T，传送带尾部0.11&mu;T。 <br />
跑步机的辐射指数：★★☆☆☆ <br />
女士爱美，总喜欢瘦身，让我们看看脂肪运动机的辐射有多大？脂肪运动机，侧面，高速档，0.03米处，5.48&mu;T。 <br />
脂肪运动机的辐射指数：★★★★★ <br />
提示：电热足盆辐射、脂肪运动机辐射都较大，跑步机传送带前部辐射较大。 <br />
什么频谱仪之类的是不是辐射也不小呀？ <br />
其实只要是红外的都不再我们测试的范围，而且它所产生的也不是电磁辐射。所以呀，你可以放心使用不必担心。 <br />
灯具 <br />
先从台灯说起，这是主卧的台灯，它的辐射值是0.17&mu;T，这是儿童使用的节能护眼台灯，它的辐射值也是0.11&mu;T，书房使用的是老式的台灯，它的辐射是0.1&mu;T。 <br />
日光灯的测试结果是：主卧室0.12&mu;T，客厅0.18&mu;T，书房0.11&mu;T。还有儿童喜欢的卡通壁灯，它的辐射值是0.11&mu;T。 <br />
提示：各种灯具的辐射均合格，可以放心使用。 <br />
无需花任何钱就可以避免。一个最有效的办法就是保持距离，而且必须是保持3米以上的安全距离。 <br />
那要是家里就要合理安排了，因为专家建议最好不要穿防护服，人体本身就是一个大导体，穿上它只能把屏蔽的辐射导入到人体内部，而且现在没有明确防护服的材质标准，价格也参差不齐，所以建议你不要轻信防护服的作用</div>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/71279#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 15 Apr 2007 17:06:33 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/71279</link>
        <guid>http://sam1860.javaeye.com/blog/71279</guid>
      </item>
      <item>
        <title>方便的编码转换工具</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/70667" style="color:red;">http://sam1860.javaeye.com/blog/70667</a>&nbsp;
          发表时间: 2007年04月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 公司有些项目以前是用GB2312编码的，最近由于要统一所有项目的编码，就了解了一下相关工具，发现了enca这个小工具。强大而方便，能自动识别文件的原编码。<br />
&nbsp;&nbsp;&nbsp; 安装enca后在项目根目录执行以下命令项目的java源文件就转成utf-8了<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>find&nbsp;.&nbsp;-name&nbsp;*.java&nbsp;-exec&nbsp;enconv&nbsp;-x&nbsp;UTF-</span><span class="number">8</span><span>&nbsp;{}&nbsp;\;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
*在debian like的linux中apt-get install enca即可安装。<br />
*enconv是enca的别名
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/70667#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 13 Apr 2007 15:41:54 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/70667</link>
        <guid>http://sam1860.javaeye.com/blog/70667</guid>
      </item>
      <item>
        <title>mysql中的count</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/69960" style="color:red;">http://sam1860.javaeye.com/blog/69960</a>&nbsp;
          发表时间: 2007年04月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE" />
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)" />
<meta name="CREATED" content="20070411;8473400" />
<meta name="CHANGED" content="20070411;9410800" /> 	 	 	 	 	<style type="text/css">
	<!--
		@page { size: 21cm 29.7cm; margin: 2cm }
		P { margin-bottom: 0.21cm }
	-->
	</style>  <blockquote><font face="宋体, serif">myisam</font>的<font face="宋体, serif">count(*)</font>结果是直接读缓存的，因此不用时间。<font face="宋体, serif">innodb</font>的<font face="宋体, serif">count(*)</font>是运行时读取记录行数的。<br />
<br />
同是<font face="宋体, serif">myisam</font>。<font face="宋体, serif">count(*)</font>与<font face="宋体, serif">count(not_null_col)</font>的结果及速度都一样。而<font face="宋体, serif">count(null_col)</font>结果只包含非<font face="宋体, serif">null</font>的记录数，并且要运行时读取记录行数。 <br />
<br />
如果<font face="宋体, serif">count(*)</font>的时间有<font face="宋体, serif">where</font>子句，<font face="宋体, serif">count(*)</font>是可以利用<font face="宋体, serif">where</font>中字段的索引进行行数统计。但<font face="宋体, serif">count(col)</font>不能，除非把<font face="宋体, serif">col</font>与<font face="宋体, serif">where</font>中的字段同时索引。</blockquote>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/69960#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 11 Apr 2007 09:42:47 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/69960</link>
        <guid>http://sam1860.javaeye.com/blog/69960</guid>
      </item>
      <item>
        <title>我的项目目录结构</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/68888" style="color:red;">http://sam1860.javaeye.com/blog/68888</a>&nbsp;
          发表时间: 2007年04月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          结合maven的目录结构为自己的项目定的：<br />
<br />
<table class="confluenceTable">
    <tbody>
        <tr>
            <td class="confluenceTd"> /src/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/main/ </td>
            <td class="confluenceTd"> 项目主模块目录 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/main/java/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/main/conf/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/main/test/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/(sub)/<sub> </sub></td>
            <td class="confluenceTd"> 其它模块目录 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/(sub)/java/<sub> </sub></td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/(sub)/conf/<sub> </sub></td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /src/(sub)/test<sub> </sub></td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /build/ </td>
            <td class="confluenceTd"> eclipse的输出目录 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/ </td>
            <td class="confluenceTd"> 脚本输出目录clean任务删除此目录即可。build, target放在一起绝对是最差实践 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/classes/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/testclasses/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/(report dirs)<report dirs="">/ </report></td>
            <td class="confluenceTd"> 各种报告，如junit report等，可能有多个目录 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/(project name)
            <pro name="">/ </pro>
            </td>
            <td class="confluenceTd"> 某些需要单独部署的项目，整份马上可发布的生成结果放在此 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /target/
            <pro name="">(pro name)-(pro ver)
            <pro ver="">.jar </pro>
            </pro>
            </td>
            <td class="confluenceTd"> 项目的jar包们 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/ </td>
            <td class="confluenceTd"> </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/compile/ </td>
            <td class="confluenceTd"> 任何时候都需要的jar包 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/provided/ </td>
            <td class="confluenceTd"> 容器已提供的jar包，deploy时要排除，如：tomcat的servlet-api.jar </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/runtime/ </td>
            <td class="confluenceTd"> 编译时不必，运行时才需要的。当不必细分时可合并到compile中 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/test/ </td>
            <td class="confluenceTd"> 测试用的jar </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /lib/src/ </td>
            <td class="confluenceTd"> jar包们的source </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /build.xml </td>
            <td class="confluenceTd"> 该脚本只处理当前项目的工作，请不要加入与本项目无关的内容 </td>
        </tr>
        <tr>
            <td class="confluenceTd"> /properties.xml </td>
            <td class="confluenceTd"> </td>
        </tr>
    </tbody>
</table>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/68888#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 07 Apr 2007 16:14:48 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/68888</link>
        <guid>http://sam1860.javaeye.com/blog/68888</guid>
      </item>
      <item>
        <title>why i can't take the fox with fire out of my eye</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/68244" style="color:red;">http://sam1860.javaeye.com/blog/68244</a>&nbsp;
          发表时间: 2007年04月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          how could i live without these plugins<img src="/javascripts/fckeditor/editor/images/smiley/msn/teeth_smile.gif" alt="" />, which i can't find better alternatives.<br />
<br />
<strong><a href="http://www.getfirebug.com/">Firebug</a><br />
</strong>the best all-in-one web development toolkit<strong><br />
</strong><br />
<strong><a href="http://livehttpheaders.mozdev.org/">LiveHttpHeaders</a></strong><br />
http header inspector<br />
<br />
<br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/3615"><strong>del.icio.us Bookmarks</strong></a><br />
bookmark easy. what a nightmare the time without del.icio.us when using different machines/OSs.
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/68244#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 05 Apr 2007 09:05:00 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/68244</link>
        <guid>http://sam1860.javaeye.com/blog/68244</guid>
      </item>
      <item>
        <title>Debian like系列linux包管理tips</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/65482" style="color:red;">http://sam1860.javaeye.com/blog/65482</a>&nbsp;
          发表时间: 2007年03月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div id="post_message_1640098" style="overflow-x: hidden;"><strong>原文标题: 陪我一起学debian<br />
转载自: http://www.linuxsir.org/bbs/showthread.php?t=290977<br />
</strong><br />
约定:蓝色为命令行,褐色为可选安装软件,梅红色为解释某命令使用的标题,加粗为每一章的标题,蓝灰为需要修改的文件颜色,灰色为执行命令后在电脑输出的颜色,灰色底色为系统文本内文字颜色.<br />
<br />
此文可任意转载,但转载时请引入出处:essoin.bokee.com.谢谢.我也有将持续更新此文,因为有些命令我认为是我这个菜鸟都了解的,别人就 更该会了.但我决定也会慢慢的把所有命令都补全,争取让每个象我一样刚进入Debian世界的新鸟可以快速适应环境...我的目的是让Debian替换掉 我的win2k服务器,所以我会在向server上发展多一些!<br />
<br />
注意此文献给刚进入Debian世界的新人,高手看到错误请尽快指出以免误导!!!!!!<br />
<br />
<br />
为什么选择Debian?~<br />
⑴最佳的安装系统<br />
有时候我就会为某些三个版本旧软件中的旧文件弄乱系统,或者安装一个软件时发生冲突导致死机.dpkg是行之以久的安装系统,它已经照顾到了你的这些问题.<br />
⑵拥有惊人的软件数量<br />
Debian拥有17000种不同的软件,每一种软件都是自由的.如果需要使用第三方软件,也会同其他软件一样安全稳定.<br />
⑶简单方便的升级程序<br />
由于Debian中的打包系统,升级到新的版本非常轻松,只需要运行apt-get update,apt-get dist-upgrade然后就可以在几份钟内,由光盘升级或者网路升级.<br />
有这么多好处,为什么不选择它那~?<br />
⑷比较高的可订制<br />
安装系统的时候,我们可以选择只安装一个简单的系统,安装只需要短短的几分钟,并且不会占用很大的时间,之后在象堆积木一样慢慢把我喜欢的系统搭建起来.<br />
<br />
Debian有三大种群<br />
在Debian组织内有一套很特别的Distribution(发行版)等级制度,分别是stable,testing,unstable, 其中stable是最稳定的版本,unstable是开发中的版本,而testing则是介于它们两个中间的测试版本,我很喜欢这个版本不失稳定性还能尝 到一定的新软件.<br />
<br />
Deian软件分布:<br />
Debian对其下所有的软件套件(Packages)进行分类,主要有下面的几项:<br />
main<br />
Debian distribution 最基本及主要切符合自由软件规范的软件(packages)<br />
contrib.<br />
这里头软件虽然可以在Debian里头运做,即使本身属于自由软件但多半却是依于非自由(non-free)的软件.<br />
non-free<br />
不属于自由软件规范的软件<br />
non-us<br />
这个分类里的软件都来自非美国地区,当中可能有牵扯到专利,加密等问题.<br />
<br />
sources.list简单修改应用<br />
如果决定安装软件属于的设定属于何种等级?方法相当容易,所有的咨讯都记载在[/etc/apt/sources.list]这个文字档之中.<br />
sources.list档案里设定格式十分单纯,如下:<br />
de burl distribution [component1] [componenent2] [&hellip;]<br />
下面详细说明:<br />
deb<br />
这有两种写法,分别为[deb]与[deb-src],前者表示所指向的为存放binary格式(编译好执行档的软件套件)软件套件的服务器位置,后者为sources格式(包含原始码的软件套件)软件套件的服务器位置.<br />
简单的说,一般我们只想要安排该装软件而不去想要重新编译他时没，就在这里添入[deb],如果想取得软件的原始码(sources code),就得加入[deb-src],当然也可以两行都写,如下:<br />
deb <a href="http://debian.cn99.com/" target="_blank">http://debian.cn99.com</a> stable main contrib. non-free<br />
deb-src <a href="http://debian.cn99.com/" target="_blank">http://debian.cn99.com</a> stable main contrib. non-free<br />
<br />
url<br />
url指的是软件来源的位置,这个位置可以为系统内的某个位置(file),可以为cd-rom(cdrom),可以为网路位置(http,ftp).. 等等,当你下apt-get指令时,就会到这些位置去搜索软件,总体来说一共有file,cdrom,http,ftp,copy,rsh,ssh等几个 参数,而比较常用的参数如下:<br />
<br />
file<br />
可以是你系统上的某个目录,如下:<br />
deb file:/home/moto/debian stable main contrib non-free<br />
也可以是你mount到自己系统里的网络邻居服务器,如下:<br />
deb file:/mnt/nfs-server stable main contrib. non-free<br />
cdrom<br />
这当然就是指光盘上光盘的位置,例如:<br />
deb cdrom:/dists stable main contrib. non-free<br />
http<br />
透过http的协议传送,例如:<br />
deb <a href="http://debian.cn99.com/" target="_blank">http://debian.cn99.com</a> stable main contrib. non-free<br />
ftp透过ftp协议传输,例如:<br />
deb <a href="ftp://ftp.us.debian.org/debian" target="_blank">ftp://ftp.us.debian.org/debian</a> stable main contrib non-free<br />
<br />
distribution<br />
当然是版本,可以通过更改stable 或者 testing,unstable来更换版本.<br />
例如:<br />
把deb <a href="http://debian.cn99.com/" target="_blank">http://debian.cn99.com</a> stable main contrib. non-free<br />
改为 deb <a href="http://debian.cn99.com/" target="_blank">http://debian.cn99.com</a> testing main contrib. non-free<br />
在通过apt-get dist-upgrade来升级更换版本.<br />
<br />
呵呵,看了这么多!其实用debian的原因还是因为他的包管理模式<br />
这个我也不多研究了,反正喜欢也不是一句两句就能说明白的.说白了就是萝卜白菜各有所爱.<br />
下面是我学习Debian的过程.<br />
<br />
dpkg的简介绍及命令使用<br />
首先要学习debian的中层包管理dpkg,这是一个基础.<br />
简介<br />
dpkg是Debian的中级软件包管理器,类似RPM.<br />
dpkg是Debian软件包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包.也是Debian系统中众多软件包管理工具的后端.有关dpkg的更多介绍参阅:<a href="http://www.dpkg.org/" target="_blank">http://www.dpkg.org</a><br />
系统中所有packages的信息都在/var/lib/dpkg/目录下,其中子目录&rdquo;/var/lib/dpkg/info&rdquo;用于保存各个软件包的配置文件列表.<br />
.conffiles 记录了软件包的配置文件列表<br />
.list 保存软件包中的文件列表,用户可以从.list的信息中找到软件包中文件的具体安装位置.<br />
.md5sums 记录了软件包的md5信息,这个信息是用来进行包验证的.<br />
.prerm 脚本在Debian报解包之前运行,主要作用是停止作用于即将升级的软件包的服务,直到软件包安装或升级完成.<br />
.postinst脚本是完成Debian包解开之后的配置工作,通常用于执行所安装软件包相关命令和服务重新启动.<br />
/var/lib/dpkg/available文件的内容是软件包的描述信息,该软件包括当前系统所使用的Debian安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.<br />
<br />
dpkg<br />
查询以安装的信息<br />
查询当前系统所有已安装的deb包<br />
dpkg &ndash;l 命令用于查询当前系统所有以安装的deb包的信息.,通过less和grep可以执行更复杂的查询工作.<br />
例如查找跟vim有关的软件包,dpkg &ndash;l |grep &ndash;ivim<br />
(如发现iU 表示软件包未安装成功,ii表示安装成功)<br />
<br />
查看已安装软件包的详细情况<br />
dpkg &ndash;s 命令查看软件包的详细情况,包括版本,依赖之类的<br />
<br />
查询系统中所安装软件包所安装的文件<br />
dpkg &ndash;L 命令用于查询系统中所安装软件包的安装的文件安装到系统的位置和安装了那些.<br />
小提示: 如何可以看软件包装到哪个地方?<br />
用apt-get install *<br />
如何可以看软件包装到哪个地方?<br />
dpkg -L package-name|more<br />
<br />
查询系统中某个文件属于那个软件包<br />
dpkg &ndash;S 命令用于了解当前的软件属于那个软件包<br />
<br />
查询未安装的信息<br />
查询未安装软件包详细信息<br />
dpkg &ndash;I 命令用于查看未安装软件包的详细信息,以便了解该软件包是否需要安装.<br />
<br />
查询deb包文件中所包含的文件<br />
dpkg &ndash;c  显示未安装deb软件包所包含的文件列表,以及安装位置<br />
<br />
安装软件包<br />
安装deb软件包<br />
dpkg &ndash;i 手工安装deb包到系统中,不过有时会存在Dpends关系,建议使用apt-get 来安装.<br />
如果通过dpkg &ndash;i安装软件后由于Dpends关系没有安装成功,可通过apt-get &ndash;f install解决<br />
<br />
解决dpkg &ndash;i 安装deb包出现Dpends问题<br />
apt-get &ndash;f install 解决Dpends问题.<br />
例如:dpkg &ndash;i lftp_3.1.3-1_i386.deb<br />
Selecting previously deselected package lftp.<br />
(Reading database &hellip; 20654 files and directories currently installed.)<br />
unpacking lftp (from lftp_3.1.3-1_i386.deb)&hellip;<br />
dpkg:dependency problems prevent configuration of lftp:<br />
lftp depends on libexpat1 (&lt;=1.95.8);however<br />
dpkg : error processing lftp (--install)<br />
dependency problems &ndash;leaving unconfigured <br />
Errors were encountered while processing:<br />
lftp<br />
//lftp软件包安装失败<br />
<br />
dpkg &ndash;l |grep lftp<br />
iU    lftp     3.1.3-1     Sophisticated<br />
command-line FTP/HTTP client p<br />
//&rdquo;dpkg -l&rdquo; 查询信息表示lftp软件包未安装成功<br />
<br />
(iU表示未安装成功,ii表示安装成功)<br />
<br />
使用apt-get &ndash;f install解决<br />
<br />
卸载deb软件包<br />
卸载deb包<br />
dpkg &ndash;r用于卸载指定的软件包,该命令只卸载软件包安装到系统中的文件,而不去删除软件包的配置文件,因此不是完全意义上的卸载.但是软件包保存在系统中,可以提供给以后在安装软件包时使用.<br />
例如:dpkg &ndash;r prozilla 移除后再用dpkg &ndash;l |grep prozilla 查看<br />
会看到rc   proc  1.3.6-3woody3   multi-thraded download accelerator<br />
表示软件包已经被卸载,但配置文件仍在&ldquo;rc&rdquo;带表配置文件仍在.<br />
<br />
卸载软件包并清除配置文件<br />
dpkg &ndash;P 用于卸载软件包同时也删除配置文件,dpkg &ndash;P 不能解决Dpends问题,建议卸载时使用apt-get操作<br />
<br />
重新配置软件包<br />
对于Debian系统中的众多软件包(尤其是系统和服务器软件包)来说,在第一次安装该软件包时候会显示对话框窗口,提示用户输入必要的配置信息.当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure来对指定的软件包进行配置.<br />
比如dpkg-reconfigure locales<br />
用于配置语言<br />
<br />
alien包转换工具<br />
如果我们有很喜欢的RPM包,而又没有deb版本.<br />
怎么办~?<br />
可以同过alien来转换或者直接安装,这个小家伙可是个很方便的东西!<br />
基本命令如下:<br />
首先通过apt-get install alien来安装.<br />
然后<br />
alien -i name-of-the-pakage.rpm  /*用来直接安装rpm包<br />
alien -d , --to-deb  /*Make debian packages,This is the default<br />
例:alien &ndash;d package.rpm<br />
alien &ndash;r , --to-rpm  /*Make rpm packages<br />
例:alien &ndash;r package.deb<br />
alien &ndash;p , --to-pkg  /*Make Solaris pkg packages<br />
alien &ndash;-to-slp  /*Make slp packages<br />
alien &ndash;t , --to-tgz /*Make tgz packages<br />
alien &ndash;T 检测<br />
alien &ndash;-patch=patch 设置patch<br />
<br />
APT介绍及使用<br />
APT(Advanced Packaging Tool),是Debian Linux和基于Debian进行开发的Linux发行版(如Ubuntu)使用的高级包管理系统.APT最初的设计目的是处理Debian系统中的. deb软件包,但现在通过apt4rpm,已经可以在其他系统处理rpm软件包了.<br />
APT通过自动获取软件包(从wan,lan,cdrom上)自动配置,自动编译和安装APT源.,他可以很大程度上简化在Linux系统上安装和删除软件的过程.<br />
APT并不是某个具体的命令,而是由一组命令组成的包管理工具集,最常用的APT命令包括apt-get和apt-cache.<br />
<br />
设置APT源<br />
apt源的设置对Debian系统非常重要,这要正确设置了apt源,apt源等管理命令才能实现其强大的包管理功能.<br />
设置apt源的文件位置在/etc/apt/的sources.list文件,典型的sources.list文件如下:<br />
<br />
$cat /etc/apt/sources.list<br />
deb <a href="http://debian.cn99.com/debian/" target="_blank">http://debian.cn99.com/debian/</a> stable main<br />
deb-src <a href="http://debian.cn99.com/debian/" target="_blank">http://debian.cn99.com/debian/</a> stable main<br />
<br />
deb <a href="http://security.debian.org/" target="_blank">http://security.debian.org/</a> stable/updates main<br />
<br />
将Debian的安装光盘做为源<br />
apt-cdrom命令用于扫描Debian安装光盘信息,也将安装光盘做为安装源添加到sources.list里.<br />
在使用apt-cdrom命令前,确认当前主机的光盘驱动器中已经放入Debian Linux的安装光盘,并且当前的Debian系统能够正确的识别光驱设备.<br />
apt-cdrom的命令格式为:apt-cdrom [选项] 命令<br />
命令包括:<br />
add: 增加一个CDROM<br />
ident: 报告CDROM的验证信息<br />
选项包括:<br />
-h: 帮助<br />
-d: 光盘挂载点<br />
-r: 为一个已经识别的光盘改名字<br />
-m: 无挂载<br />
-f: 快速模式,不检查软件包文件<br />
-a: 完整扫描模式<br />
-c=?: 读取配置文件<br />
-o=?: 设置任意的配置选项,例如-o dir::cache=/temp<br />
<br />
扫描安装光盘信息<br />
apt-cdrom ident 命令可以扫描Debian安装光盘的内容,并给出光盘的相应信息.该命令只显示安装光盘信息,而不修改sources.list文件.<br />
<br />
添加安装做为安装源<br />
apt-cdrom add 命令用于将当前光盘驱动器中的Debian安装光盘添加到sources.list文件源列表中做为系统安装源.<br />
<br />
apt-setup设置软件源和apt代理<br />
<br />
不管通过什么手段添加了apt的sources.list的安装源,都需要更新软件信息<br />
apt-get update 更新软件信息<br />
<br />
查询软件包信息<br />
APT包管理的大多数信息查询功能都可以由apt-cache命令实现,通过apt-cache命令配合不同的子命令和参数的使用,可以实现查找,显示软件包信息及包依赖关系等功能.<br />
<br />
显示数据源中的包的统计信息<br />
apt-cache stats命令用于显示当前系统所使用的Debian数据源的统计信息,用户可以使用该命令查看数据源的相关统计信息.<br />
<br />
按关键字查找软件包<br />
apt-cache search 命令可以按关键字查找软件包,通常用于查询的关键字会使用软件包的名字或软件包的一部分.<br />
例如:apt-cache search vim<br />
<br />
显示软件包的详细信息<br />
通过apt-cache search 命令查询到与关键字相关联的软件包后,可以使用apt-cache show命令显示指定软件包的详细信息.<br />
例如:apt-cache show vim<br />
<br />
查询软件包的依赖关系<br />
通过apt包管理工具可以有效的解决软件包的安装,卸载过程中的包依赖关系问题,而当用户需要了解某个软件包依赖于其他哪些包时,可以使用apt-cache depends来查询包依赖关系.<br />
例如:apt-cache depends vim<br />
<br />
查询软件包反向依赖关系<br />
apt-cache rdepend命令用于查询指定软件包的反向依赖关系,即那些其他的软件包需要依赖指定的软件包做为安装和运行的必须条件.<br />
<br />
管理软件包<br />
Debian linux 系统中的软件包管理功能通常可以使用apt-get 命令完成,常用功能包括:升级软件包,安装软件包,和卸载软件包.<br />
<br />
升级系统中的软件包<br />
当使用Debian一段时间过后,Debian工程师们会升级一些软件包的版本,而apt-get upgrade命令就是使本机的软件包版本和Debian升级后的软件包版本同步.<br />
使用apt-get upgrade升级软件包之前,需要执行apt-get update 命令从当前系统使用的Debian数据源中更新软件包列表.<br />
<br />
升级整个系统的版本<br />
apt-get dist-upgrade与升级系统中的软件包不同的是,apt-get dist-upgrade是将整个系统都升级了过去,例如安装光盘使用的是stable 而我却想使用testing,怎么办呐~? <br />
首先编辑sources.list 把stable的软件服务器指向testing<br />
例如:<br />
将deb <a href="ftp://ftp.nsysu.edu.tw/Linux/Debian/" target="_blank">ftp://ftp.nsysu.edu.tw/Linux/Debian/</a> stable main中的stable改为testing就会将软件服务器指向testing,这样在输入apt-get dist-upgrade 就会将整个版本升级为testing版.<br />
<br />
安装软件包<br />
Debian安装软件包是我使用过的发行版中最方便的(呵呵可能也是我孤陋寡闻),从下载到安装只是需要一条命令.最重要的就是不需要抓耳挠腮的在网上找你所需要的软件的下载位置而且自动解决了软件包依赖关系.<br />
apt-get install 通过这条命令就可以轻松的完成安装过程.<br />
apt-get install 命令可以按照sources.list文件中设置的Debian数据源地址自动下载所需要的软件包并进行安装.<br />
<br />
重新安装指定的软件包<br />
到系统中的某个软件包安装到系统中的文件受到破坏,或需要安装软件包的新版本时,用户可以使用apt-get --reinstall install命令重新安装指定软件包.<br />
例如:apt-get --reinstall install lynx<br />
<br />
卸载软件包<br />
对于系统中安装的软件包,当用户不需要使用时,可以使用apt-get remove 命令对该软件包安装到系统中的文件进行删除,该软件包所使用的配置文件将不被删除,当用户需要在次安装该软件包时,可以使用保留下来的配置文件.<br />
例如:apt-get remove lynx<br />
apt-get remove 可以蛮好的解决软件包卸载过程中的包依赖关系问题,依赖于被卸载软件包的其他软件包将被一同卸载.<br />
<br />
卸载软件包和配置文件(完全卸载)<br />
apt-get --purge remove 命令可以从系统中完全卸载指定的软件包,即卸载软件包中文件的同时还删除该软件包所使用的配置文件,是从系统中删除某个软件包最彻底的方法.<br />
例如:apt-gt --purge remove lynx<br />
<br />
清除无用的安装包<br />
apt-get install命令在安装软件包的过程中,会将软件包的安装文件(deb)包下载到目录/var/cache/apt/archives/中,然后在进行 安装.系统通过apt-get install 安装的软件包越多/var/cache/apt/archives/目录中保存的deb包就越多.<br />
可以通过rm命令删除/var/cahce/apt/archives/目录中的软件包,但这是非常危险的.<br />
建议使用apt-get clean命令安全有效的清理/var/cache/apt/archives/目录中的文件.<br />
当然用移动设备保存一些/var/cahce/apt/archive/目录中的软件也不是错的选择,在linuxsir啊上看到,将这里面的文件保存起来后,在次安装系统可以将软件复制到相同的位置,输入安装命令可以免去下载之苦了,具体我也没试过,有时间弄下看看.<br />
<br />
源码包管理<br />
对于一般用户通常不需要源码包管理,使用apt-get就可以很好的安装.如果对软件包需要特殊的订制,就需要对源码包进行管理.<br />
<br />
查看源码包文件信息<br />
apt-cache showsrc命令用于查看源码包的信息,在下载源码包之前可以使用该命令获取指定的源码包信息.<br />
例如:apt-cache showsrc lynx<br />
<br />
获取源码包<br />
apt-get source 命令用于下载指定软件包到当前目录中,该命令只需要软件包的名字就可以从网路上下载所需要的全部源码包文件.<br />
由于源码包文件下载后需要保存在当前目录中,因此需要建立并进入临时目录.<br />
然后进行下载.<br />
例如:mkdir temp<br />
cd temp<br />
apg-get source lynx<br />
<br />
构件源码包编译环境<br />
每个软件源码包在进行编译之前都需要先构件该源码包的编译环境,即安装该源码包编译所需要的其他软件包.<br />
通过apt-get build-deb命令可以为指定的源码包构件编译环境.<br />
例如:apt-get build-deb lynx<br />
<br />
<br />
进入系统之后可以安装些基本的软件<br />
如果在安装系统时所选择的apt源太慢<br />
也可以等到apt-spy测试之后在安装<br />
当然这也是按需的<br />
apt-get install vim  安装VIM编辑器<br />
apt-get install gcc   安装GCCr<br />
apt-get install rar    安装 rar<br />
apt-get install make  安装 make<br />
apt-get install modconf 安装硬件管理模块工具<br />
apt-get install rcconf  安装启动管理模块工具<br />
tzconfig 修改系统默认时区<br />
<br />
配置网卡<br />
这里只是简单罗嗦 如果感觉没什么意义可直接跳过<br />
因为如果装系统的时候网络没有配置好以后做的也没有意义 <br />
但想做为firewall服务的话 eth1&hellip;是一定要设置的<br />
GUI界面配置比较简单一点<br />
但首先需要下载<br />
etherconf包<br />
apt-get install etherconf<br />
dkpg-reconfigure etherconf<br />
按照提示一步步安装<br />
我不太喜欢这种方式 回车按的次数太多 配置比较累<br />
我喜欢直接修改网络配置文件interfaces<br />
修改/etc/network/interfaces<br />
内容如下:<br />
<br />
#配置动态网络接口(DHCP)<br />
# The loopback network interface（配置环回口）<br />
# 开机自动激lo接口<br />
auto lo<br />
# 配置lo接口为环回口<br />
iface lo inet loopback<br />
# The primary network interface （配置主网络接口）<br />
#开机自动激活eth0接口<br />
auto eth0<br />
#配置eth0接口为DHCP自动获取<br />
iface eth0 inet dhcp<br />
配置静态网络接口(static)<br />
# The loopback network interface（配置环回口）<br />
# 开机自动激lo接口<br />
auto lo<br />
# 配置lo接口为环回口<br />
iface lo inet loopback<br />
# The primary network interface （配置主网络接口）<br />
#开机自动激活eth1接口<br />
auto eth1<br />
#配置eth1接口为静态设置IP地址<br />
iface eth1 inet static<br />
address 192.168.0.2<br />
netmask 255.255.255.0<br />
network 255.255.255.0<br />
broadcast 192.168.0.254 <br />
gateway 192.168.0.1<br />
#广播地址是可以不设的,反正我是那次都没设<br />
# dns-* options are implemented by the resolvconf package, if installed（DNS设置）<br />
dns-nameservers 61.153.177.196 61.153.177.197<br />
dns-search fireteam.org<br />
#这个我感觉也无所谓 修改/etc/resolv.conf也会得到相同的结果<br />
<br />
寻找快速的镜象<br />
先选择一个镜象为以后寻找更快的apt源安装几个需要的包.<br />
我选择的taiwai镜象,大陆debian99的速度在我这差到只有几K几K的跑~:*(这没关系只是占时用他来下载几个包而已.<br />
选择好镜象后apt-get update更新一下.<br />
寻找一个快速的apt源.<br />
虽然这需要一小段时间.<br />
但他是很值得的,为以后节省了更多的时间准备.<br />
先安装apt-spy包<br />
apt-get install apt-spy<br />
更新镜象列表保存在/var/lib/apt-spy/mirrors.txt <br />
apt-spy update<br />
寻找在亚洲最快的镜象<br />
apt-spy -d testing -a Asia<br />
我用的是testing版,如果用别的版本相应更改,比如stable<br />
apt-get update 更新<br />
可选更新版本或软件<br />
apt-get dist-upgrade 或 apt-get upgrade<br />
<br />
升级新内核<br />
查看cpu信息 为以后做准备<br />
cat /proc/cpuinfo<br />
升级新内核可手动编辑 我这次安装直接输入linux26已经用到2.6 kernel<br />
以下在以默认安装的时候弄过 也就是引导后直接回车安装系统<br />
apt-get install linux-image <br />
之后会列出核心架构选择符合的安装<br />
我是amd 选的K7<br />
reboot<br />
<br />
安装x-windows与字体美化<br />
apt-get install x-window-system-core<br />
如想完全安装去掉-core<br />
如要重新设置xorg<br />
因为我用的是testing版本 所以已经由x-system换成xorg了<br />
如想重新配置可用dpkg-reconfigure xserver-xorg 命令<br />
安装gnome <br />
apt-get install gnome<br />
字体美化<br />
修改locales<br />
dpkg-reconfig locales<br />
en_US.ISO-8859-1<br />
en_US.UTF-8 UTF-8<br />
zh_CN.GBK GBK<br />
zh_CN.UTF-8 UTF-8<br />
zh_TW.UTF-8 UTF-8<br />
安装apt-get install uming ukai<br />
参考<a href="http://www.coolcode.cn/?p=55,%E7%A1%AE%E5%AE%9E%E6%98%AF%E4%B8%80%E6%AC%BE%E4%B8%8D%E9%94%99%E7%9A%84%E5%AD%97%E4%BD%93,%E8%A7%A3%E5%86%B3%E4%BA%86%E7%B2%97%E6%96%9C%E7%9A%84%E9%97%AE%E9%A2%98" target="_blank">http://www.coolcode.cn/?p=55,确实�...��斜的问题</a>.<br />
如果字体发糊,可能是配置文件权限的问题.<br />
执行chmod +r /etc/fonts/local.conf<br />
chmod +r /etc/gtk-2.0/gtkrc.zh_CN<br />
chmod +r /etc/gtk-2.0/gtkrc.zh CN.utf-8<br />
我照着改了之后感觉字体在gnome里还是有点模糊<br />
但是浏览网页什么的字体到是特让人喜欢<br />
安装firefox<br />
我直接apt-get install firefox 是E文的 都用好久了才发现少打了几个字母<br />
是这样的apt-get install mozilla-firefox mozilla-firefox-locale-zh-cn<br />
安装播放器<br />
加入源<br />
deb <a href="http://www.debian-multimedia.org/" target="_blank">http://www.debian-multimedia.org</a> etch main<br />
安装解码器apt-get install ffmpeg w32codecs libdvdcss<br />
安装kmplayer播放器apt-get install kmplayer<br />
安装小企鹅输入法<br />
apt-get install xfonts-intl-chinese fcitx<br />
在/etc/X11/Xsession.d/目录下面建立一个文件95input，内容如下:<br />
<br />
export LANG=zh_CN.UTF-8<br />
export LC_CTYPE=zh_CN.UTF-8<br />
export LC_ALL=<br />
export XMODIFIERS=@im=fcitx<br />
fcitx &amp;<br />
<br />
我是照这这为前辈弄的<br />
但是启动X的时候还是没有随机启动<br />
只能手动在终端里敲入fcitx命令<br />
才能使用 真汗<br />
看来还得翻资料<br />
安装gdm <br />
apt-get install gdm也可以用kdm<br />
还是习惯启动进入shell<br />
所以我也没装<br />
<br />
Debian服务管理<br />
Debian也有个类似RH的服务管理软件rcconf.<br />
这是个很简单的管理软件,通过文本窗口管理.<br />
想使用他同样需要下载安装<br />
apt-get install rcconf<br />
然后在shell下输入rcconf就可以了<br />
<br />
当然,我只是想把Debian改造成一个web服务或者firewall服务.<br />
我也不想安装其他很少会用到的软件.<br />
就不要安rcconf这个套件了 .<br />
直接用Debian自带的update-rc.d也是个不错的选择.<br />
缺点就是直观性太差,界面不亲和.<br />
以例子来说明添加服务在系统启动的时候自动跟随运行级别启动<br />
编辑脚本于/etc/init.d 并赋予可执行权限<br />
&lsquo;S&rsquo;:代表随系统启动 &lsquo;K&rsquo;代表随系统停止<br />
例如在rc2.d中添加随系统启动服务<br />
在/init.d中建立shellname脚本,脚本内写入你欲完成的工作.<br />
输入命令:<br />
/usr/sbin/update-rc.d shellname start 20 2 。 stop 17 0 。<br />
注意:<br />
shellname:代表你的脚本名称<br />
start:代表随启动启动.<br />
20:代表启动时编号,数字按大小先后启动.<br />
2:代表运行级别,debian默认运行接别是2.<br />
。:结束,在start 20 2 后面有个&rdquo;。&rdquo;表示设置随机启动结束,同样在stop的最后面也会有一个,必须填写!<br />
stop:随系统启动而停止的服务.<br />
也可以用缺省的配置<br />
例在rc0.d建立k17 shellname 到 /init.d/shellname的停止服务<br />
update-rc.d shellname defaults<br />
删除启动服务<br />
/usr/sbin/update-rc.d -f shellname remove<br />
<br />
管理日志<br />
系统的各种日志存放在/var/log内,例如apache server存放在 /var/log/apache</div>
<!-- / message --> 	 		 		 		 		<!-- sig -->
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/65482#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Mar 2007 09:14:39 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/65482</link>
        <guid>http://sam1860.javaeye.com/blog/65482</guid>
      </item>
      <item>
        <title>解决某些linux下硬件时钟和系统时钟不一致的问题</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/65305" style="color:red;">http://sam1860.javaeye.com/blog/65305</a>&nbsp;
          发表时间: 2007年03月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          问题表现为：<br />
安装linux系统时不小心选择了使用UTC时间，安装完后linux的时间完比真实时间差8个小时。如果把linux时间设为当前时间，回到windows，时间又变得不准确。<br />
<br />
要解决问题要注意三个地方：<br />
1. /etc/default/rcS中UTC设回no。这样linux就会使用CST时间（本地时间）。<br />
<br />
2. /etc/rcS.d/中mountall.sh的启动序号要比hwclock.sh小。这样做是确保硬盘挂载完后，hwclock.sh才去读/usr/share/zoneinfo/中的时区信息。<br />
<br />
3. 确保链接/etc/localtime存在。如果不存或不是自己的时区在就自己链到/usr/share/zoneinfo/中正确的时区文件。<br />
<br />
<br />
这个问题是在debian3.1r5中遇到的，不由得惊叹debian作为桌面的粗糙程度。我用的apt库都是testing的，但里面的软件真是旧得可怜，估计如果没听说debian有什么突发猛进的信息，我以后是不会再装debian作为桌面的。等到ubuntu7.04出了绝对要第一时间把系统替换掉。。。
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/65305#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 25 Mar 2007 02:07:47 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/65305</link>
        <guid>http://sam1860.javaeye.com/blog/65305</guid>
      </item>
      <item>
        <title>思维导图</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/65143" style="color:red;">http://sam1860.javaeye.com/blog/65143</a>&nbsp;
          发表时间: 2007年03月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span class="bold">推荐几款Mind Mapping工具</span><br />
<br />
<strong>思维导图是什么？</strong><br />
<br />
思维导图是一种革命性的思维工具。简单却又极其有效！<br />
英国著名心理学家东尼&middot;博赞在研究大脑的力量和潜能过程中，发现伟大的艺术家达&middot;芬奇在他的笔记中使用了许多图画、代号和连线。他意识到，这正是达芬奇拥有超级头脑的秘密所在。在此基础上，博赞于19世纪60年代发明了思维导图这一风靡世界的思维工具。<br />
思维导图就是一幅幅帮助你了解并掌握大脑工作原理的使用说明书。它能够：<br />
<br />
&nbsp; &nbsp; * 增强使用者的超强记忆能力<br />
&nbsp; &nbsp; * 增强使用者的立体思维能力（思维的层次性与联想性）<br />
&nbsp; &nbsp; * 增强使用者的总体规划能力<br />
<br />
为什么思维导图功效如此强大？道理其实很简单。<br />
首先，它基于对人脑的模拟，它的整个画面正像一个人大脑的结构图（分布着许多&ldquo;沟&rdquo;与&ldquo;回&rdquo;）；<br />
其次，这种模拟突出了思维内容的重心和层次；<br />
第三，这种模拟强化了联想功能，正像大脑细胞之间无限丰富的连接；<br />
第四，人脑对图像的加工记忆能力大约是文字的1000倍。<br />
让你更有效地把信息放进你的大脑，或是把信息从你的大脑中取出来，一幅思维导图是最简单的方法&mdash;&mdash;这就是作为一种思维工具的思维导图所要做的工作。<br />
它是一种创造性的和有效的记笔记的方法，能够用文字将你的想法&ldquo;画出来&rdquo;。<br />
所有的思维导图都有一些共同之处：它们都使用颜色；它们都有从中心发散出来的自然结构；它们都使用线条，符号，词汇和图像，遵循一套简单、基本、自然、易被大脑接受的规则。<br />
使用思维导图，可以把一长串枯燥的信息变成彩色的、容易记忆的、有高度组织性的图画，它与我们大脑处理事物的自然方式相吻合。<br />
<br />
<br />
<br />
<strong>推荐的免费工具：</strong><br />
<br />
Flash版的：<br />
<a href="http://www.mindomo.com/" target="_blank">http://www.mindomo.com/</a><br />
这个用起来比较酷，但可惜上面的空间太小<br />
<br />
Java版的：<br />
<a href="http://freemind.sf.net/" target="_blank">http://freemind.sf.net/</a><br />
建议使用0.9版，虽然还是测试版，但在windows和linux下都用得很好。freemind有一个插件，可以把它的.mm文件直接放到网上给别人看。还有它的自动layout效果也挺不错的<br />
<br />
Linux版的：<br />
<a href="http://www.insilmaril.de/vym/" target="_blank">http://www.insilmaril.de/vym/</a><br />
view your mind在debian like的linux中可以直接apt-get，做一些简单的图时这个挺不错的<br />
<br />
<br />
<br />
<strong>Mind Mapping相关网站</strong><br />
<a href="http://mindmap.fltrp.com/" target="_blank">http://mindmap.fltrp.com</a><br />
<br />
Mind Mapping之父的网站<br />
<a href="http://www.buzanworld.com/" target="_blank">http://www.buzanworld.com/</a><br />
<br />
曲志男的BLOG:<br />
<a href="http://qzn197.blogms.com/" target="_blank">http://qzn197.blogms.com/</a>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/65143#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 Mar 2007 09:50:12 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/65143</link>
        <guid>http://sam1860.javaeye.com/blog/65143</guid>
      </item>
      <item>
        <title>Swing程序在linux下丢失键盘响应的大BUG</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/56738" style="color:red;">http://sam1860.javaeye.com/blog/56738</a>&nbsp;
          发表时间: 2007年03月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          之前在使用jedit, freemind， argounl等应用时都偶有出现突然键盘没响应的情况， 一直还以为是ubuntu本身的BUG， 对JAVA支持不好。 今天在用freemind时又出现这种情况。 郁闷极了，于是GOOGLE了一下，发现是SWING的BUG（http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6506617）。希望这个大BUG能快点弄好吧。<br />
<br />
我用的是JDK1.6.0，在上面看别人说1.5也有这个问题，不知道1.4有没有。。。
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/56738#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 Mar 2007 14:57:21 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/56738</link>
        <guid>http://sam1860.javaeye.com/blog/56738</guid>
      </item>
      <item>
        <title>Maven2目录结构</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/52013" style="color:red;">http://sam1860.javaeye.com/blog/52013</a>&nbsp;
          发表时间: 2007年02月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <table border="1" width="640">
    <caption>摘自＜Better Builds with Maven＞<br />
    <br />
    Standard directory layout for maven project content<br />
    </caption>
    <thead>
        <tr>
            <th width="100">Standard Location</th>
            <th width="100%">Description</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>pom.xml</td>
            <td>Maven&rsquo;s POM, which is always at the top-level of a project.</td>
        </tr>
        <tr>
            <td>LICENSE.txt</td>
            <td>A license file is encouraged for easy identification by users and is optional.</td>
        </tr>
        <tr>
            <td>README.txt</td>
            <td>A simple note which might help first time users and is optional.</td>
        </tr>
        <tr>
            <td>target/</td>
            <td>Directory for all generated output. This would include compiled classes, generated sources that may be compiled, the generated site or anything else that might be generated as part of your build.</td>
        </tr>
        <tr>
            <td>target/generated-sources/plugin-id
            <plugin-id>
            <plugin-id>
            <plugin-id></plugin-id>
            </plugin-id>
            </plugin-id>
            </td>
            <td>Standard location for generated sources. For example, you may generate some sources from a JavaCC grammar.</td>
        </tr>
        <tr>
            <td>src/main/java/</td>
            <td>Standard location for application sources.</td>
        </tr>
        <tr>
            <td>src/main/resources/</td>
            <td>Standard location for application resources.</td>
        </tr>
        <tr>
            <td>src/main/filters/</td>
            <td>Standard location for resource filters.</td>
        </tr>
        <tr>
            <td>src/main/assembly/</td>
            <td>Standard location for assembly filters.</td>
        </tr>
        <tr>
            <td>src/main/config/</td>
            <td>Standard location for application configuration filters.</td>
        </tr>
        <tr>
            <td>src/test/java/</td>
            <td>Standard location for test sources.</td>
        </tr>
        <tr>
            <td>src/test/resources/</td>
            <td>Standard location for test resources.</td>
        </tr>
        <tr>
            <td>src/test/filters/</td>
            <td>Standard location for test resource filters.</td>
        </tr>
    </tbody>
</table>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/52013#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 03 Feb 2007 16:21:59 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/52013</link>
        <guid>http://sam1860.javaeye.com/blog/52013</guid>
      </item>
      <item>
        <title>JDK 6 for linux的中文问题</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/40124" style="color:red;">http://sam1860.javaeye.com/blog/40124</a>&nbsp;
          发表时间: 2006年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 在linux下做java开发已经好几年了，经历了jdk1.4 -&gt; 6.0。 看着java在linux下的中文问题已经在慢慢改善。到6.0不做任配置都已经能正常运行很多中文程序，但可惜还是会有些中文问题。例如运行jedit, netbeans等程序。甚至是自己写的hello world swing程序的系统菜单都是乱码的。<br />
&nbsp;&nbsp;&nbsp; 但解决方法很简单，在JRE 5以上的java环境中，java会自动加载$JAVA_HOME/jre/lib/fonts/fallback目录下的字体。链接或复制宋体或微软雅黑等字体到该目录即可解决。<br />
&nbsp;&nbsp;&nbsp; 但官方文档上说此法只适用于swing程序，要让awt程序也支持中文，还要自己设字体配置文件。由于我很少会用到awt程序，也就懒得去改了，有需要的朋友请参考<a href="http://java.sun.com/javase/6/docs/technotes/guides/intl/fontconfig.html" target="_blank">Font Configuration Files</a>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/40124#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Dec 2006 21:07:08 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/40124</link>
        <guid>http://sam1860.javaeye.com/blog/40124</guid>
      </item>
      <item>
        <title>好爽！groovy一下xml读取</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/35909" style="color:red;">http://sam1860.javaeye.com/blog/35909</a>&nbsp;
          发表时间: 2006年11月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          接触groovy也有比较长一段时间了，刚接触时是刚得挺有趣的，学来玩玩。玩着到后来就忍不住引入到工作中了。多用于做些效率不重要的小任务。最近有个需求是定期从另一个网站提供的接口导入xml数据到数据库，数据量是比较少的。<br />    在Java中我只用过dom4j做xml解释，对着一堆document, node, element之类的东西，还要一层一层的深入。。。想起都已经觉得烦<br />    在groovy的文档上扫了一下，发现有个叫XmlSlurper的东东，提供的接口可以让我们像使用一个对象一样去读一个element，非常直观简单。<br /><br />用文档中提供的XML为例：<br /><br />example.xml<br /><pre name="code" class="java">
class XmlExamples {
  static def CAR_RECORDS = '''
    &lt;records>
      &lt;car name='HSV Maloo' make='Holden' year='2006'>
        &lt;country>Australia&lt;/country>
        &lt;record type='speed'>Production Pickup Truck with speed of 271kph&lt;/record>
      &lt;/car>
      &lt;car name='P50' make='Peel' year='1962'>
        &lt;country>Isle of Man&lt;/country>
        &lt;record type='size'>Smallest Street-Legal Car at 99cm wide and 59 kg in weight&lt;/record>
      &lt;/car>
      &lt;car name='Royale' make='Bugatti' year='1931'>
        &lt;country>France&lt;/country>
        &lt;record type='price'>Most Valuable Car at $15 million&lt;/record>
      &lt;/car>
    &lt;/records>
  '''
}
</pre><br /><br />readxml.groovy<br /><pre name="code" class="java">
def content = .....//省略把xml读入成String的代码

def records = new XmlSlurper().parseText(content)
def allRecords = records.car
allRecords.each() {
  println it.name + "=" + it.@name.text()
  println it.name + ".country=" + it.country.text()
}
</pre><br /><br />这样就会打印出N行<br />car=XXX<br />car.country=XXX<br /><br />Wow!好爽<img src="/images/smiles/icon_evil.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/35909#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 25 Nov 2006 04:39:32 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/35909</link>
        <guid>http://sam1860.javaeye.com/blog/35909</guid>
      </item>
      <item>
        <title>ntfs-3g: 写你的NTFS分区</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/33354" style="color:red;">http://sam1860.javaeye.com/blog/33354</a>&nbsp;
          发表时间: 2006年11月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　以前在Linux一直都不能写NTFS分区，能读NTFS分区的东西都已经很满足了。今天无意中发现了一个Linux的NTFS驱动，支持读／写NTFS分区。这个驱动叫做NTFS-3G，官方网站为http://www.ntfs-3g.org/。<br />　　我用的Linux发行版为Ubuntu edgy elf，在apt-get源里有现成的2进制版本，安装很方便。如果使用的Linux发行版找不到相应二进制版本，就下载源码按照官网的说明安装也不复杂。<br />　　安装好后编辑/etc/fstab文件，在里面添加一行配置，跟挂载fat32差不多，分区类型一栏写"ntfs-3g"就OK了，例如：<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 0, 0);">/dev/hda1 /mnt/windows ntfs-3g defaults </span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">0</span></div><br />
          <br/>
          <span style="color:red;">
            <a href="http://sam1860.javaeye.com/blog/33354#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 04 Nov 2006 23:38:00 +0800</pubDate>
        <link>http://sam1860.javaeye.com/blog/33354</link>
        <guid>http://sam1860.javaeye.com/blog/33354</guid>
      </item>
      <item>
        <title>一个简单的Java反射方法调用性能测试</title>
        <author>Sam1860</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sam1860.javaeye.com">Sam1860</a>&nbsp;
          链接：<a href="http://sam1860.javaeye.com/blog/33355" style="color:red;">http://sam1860.javaeye.com/blog/33355</a>&nbsp;
          发表时间: 2006年09月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本来是由于某个问题想用反射来解决，使用前作个小测试（我的应用都是用JDK1.4.2）。然后顺便把1.5的也测了。看到这个数据，不禁想到Hibernate，Spring这类依赖反射的框架是否更加适合运行在JDK1.4平台上。<br />补：后来在1.6上测了测，性能提高了不少，1.6真的是值得期待<br /><br /><span style="color: rgb(0, 0, 0);">Java 1.5<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 0, 0);">Reflection | Normal<br />3685|210<br />3696|210<br />4086|211<br />3685|211<br />3775|210<br />3696|210</span></div><br />Java 1.4.2</span><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 0, 0);"><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 0, 0);">Reflection | Normal<br /></span></div><br />3295|340<br />3325|370<br />3295|340<br />3315|350<br />3305|340<br />3285|330<br /></span></div><br /><br />
Java 1.6 beta2<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 0, 0);">Reflection | Normal<br />2954|200<br />2644|581<br />3005|170<br />2944|190<br />2684|170<br />3014|191</span></div><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><img src="/Images/OutliningIndicators/ContractedBlock.gif" id="Code_Closed_Image_084250" onclick="this.style.display='none'; Code_Closed_Text_084250.style.display='none'; Code_Open_Image_084250.style.display='inline'; Code_Open_Text_084250.style.display='inline';" align="top" height="16" width="11" /><img src="/Images/OutliningIndicators/ExpandedBlockStart.gif" id="Code_Open_Image_084250" onclick="this.style.display='none'; Code_Open_Text_084250.style.display='none'; Code_Closed_Image_084250.style.display='inline'; Code_Closed_Text_084250.style.display='inline';" align="top" height="16" style="display: none;" width="11" /><span id="Code_Closed_Text_084250" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255);">测试代码</span><span id="Code_Open_Text_084250" style="display: none;"><br /><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="color: rgb(0, 128, 128);"> 1</span> <span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.lang.reflect.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);"> 2</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);"> 3</span> <span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> ReflectTest {<br /></span><span style="color: rgb(0, 128, 128);"> 4</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);"> 5</span> <span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> main(String[] args) {<br /></span><span style="color: rgb(0, 128, 128);"> 6</span> <span style="color: rgb(0, 0, 0);">      String firstWord </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Hello </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);"> 7</span> <span style="color: rgb(0, 0, 0);">      String secondWord </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">everybody.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);"> 8</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);"> 9</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> i</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">100000</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">) {<br /></span><span style="color: rgb(0, 128, 128);">10</span> <span style="color: rgb(0, 0, 0);">            String bothWords </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> append2(firstWord, secondWord);<br /></span><span style="color: rgb(0, 128, 128);">11</span> <span style="color: rgb(0, 0, 0);">      }<br /></span><span style="color: rgb(0, 128, 128);">12</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> i</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">100000</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">) {<br /></span><span style="color: rgb(0, 128, 128);">13</span> <span style="color: rgb(0, 0, 0);">            String bothWords </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> append(firstWord, secondWord);<br /></span><span style="color: rgb(0, 128, 128);">14</span> <span style="color: rgb(0, 0, 0);">      }<br /></span><span style="color: rgb(0, 128, 128);">15</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);">16</span> <span style="color: rgb(0, 0, 0);">        </span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);"> begin </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> System.currentTimeMillis();<br /></span><span style="color: rgb(0, 128, 128);">17</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> i</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">1000000</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">) {<br /></span><span style="color: rgb(0, 128, 128);">18</span> <span style="color: rgb(0, 0, 0);">            String bothWords </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> append(firstWord, secondWord);<br /></span><span style="color: rgb(0, 128, 128);">19</span> <span style="color: rgb(0, 0, 0);">      }<br /></span><span style="color: rgb(0, 128, 128);">20</span> <span style="color: rgb(0, 0, 0);">      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Reflection:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> (System.currentTimeMillis() </span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);"> begin));<br /></span><span style="color: rgb(0, 128, 128);">21</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);">22</span> <span style="color: rgb(0, 0, 0);">        begin </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> System.currentTimeMillis();<br /></span><span style="color: rgb(0, 128, 128);">23</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> i</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">1000000</span><span style="color: rgb(0, 0, 0);">; i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">) {<br /></span><span style="color: rgb(0, 128, 128);">24</span> <span style="color: rgb(0, 0, 0);">            String bothWords </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> append2(firstWord, secondWord);<br /></span><span style="color: rgb(0, 128, 128);">25</span> <span style="color: rgb(0, 0, 0);">      }<br /></span><span style="color: rgb(0, 128, 128);">26</span> <span style="color: rgb(0, 0, 0);">      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Normal:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> (System.currentTimeMillis() </span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);"> begin));<br /></span><span style="color: rgb(0, 128, 128);">27</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);">28</span> <span style="color: rgb(0, 0, 0);">   }<br /></span><span style="color: rgb(0, 128, 128);">29</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);">30</span> <span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> String append(String firstWord, String secondWord) {<br /></span><span style="color: rgb(0, 128, 128);">31</span> <span style="color: rgb(0, 0, 0);">      String result </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);">32</span> <span style="color: rgb(0, 0, 0);">      Class c </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> String.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);">33</span> <span style="color: rgb(0, 0, 0);">      Class[] parameterTypes </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> Class[] {String.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">};<br /></span><span style="color: rgb(0, 128, 128);">34</span> <span style="color: rgb(0, 0, 0);">      Method concatMethod;<br /></span><span style="color: rgb(0, 128, 128);">35</span> <span style="color: rgb(0, 0, 0);">      Object[] arguments </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> Object[] {secondWord};<br /></span><span style="color: rgb(0, 128, 128);">36</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> {<br /></span><span style="color: rgb(0, 128, 128);">37</span> <span style="color: rgb(0, 0, 0);">        concatMethod </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> c.getMethod(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">concat</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, parameterTypes);<br /></span><span style="color: rgb(0, 128, 128);">38</span> <span style="color: rgb(0, 0, 0);">        result </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) concatMethod.invoke(firstWord, arguments);<br /></span><span style="color: rgb(0, 128, 128);">39</span> <span style="color: rgb(0, 0, 0);">      } <br /></span><span style="color: rgb(0, 128, 128);">40</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (NoSuchMethodException e) {<br /></span><span style="color: rgb(0, 128, 128);">41</span> <span style="color: rgb(0, 0, 0);">          System.out.println(e);<br /></span><span style="color: rgb(0, 128, 128);">42</span> <span style="color: rgb(0, 0, 0);">      } <br /></span><span style="color: rgb(0, 128, 128);">43</span> <span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (IllegalAccessException e) {<br /></span><span style="color: rgb(0, 128, 128);">44