<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Jimmy.Shine's Blog</title>
    <description>SCJP &amp; SCWCD, lived in Beijing, China now. Working for Beijing Tsing-Tech Reachway Software Co.,Ltd. </description>
    <link>http://jimmy-shine.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>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/203969" style="color:red;">http://jimmy-shine.javaeye.com/blog/203969</a>&nbsp;
          发表时间: 2008年06月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          有人说现在做程序开发对于人的素质要求越来越高了，也有人说，现在的教育越来越差了。个人不就此发表评论。<br />打开个人消息，看到了一个提问，提问的链接地址在<br /><a href="http://www.javaeye.com/problems/222" target="_blank">http://www.javaeye.com/problems/222</a><br />是关于<span style="color: blue">数据库字段排序的问题</span>，看了下面的回答，各抒己见，竟然没有一个是涉及到实质问题的。<br />其实问题的答案很简单，<span style="color: darkblue">双向链表</span>，相信大家都学过，这是计算机课程中必修课程。我很奇怪于为什么大家对于算法这东西基本上从来不曾想过。而大多数人在看数据算法时对于算法的时间复杂度以及空间复杂度都只是当做一个讨厌的要记忆的东西，大部分的程序员不会主动的去想算法，尤其是Java,C#这类的高级语言已经实现了一些大多数的算法，Collection里面对于排序什么都已经有了实现，所以不需要去，而且由于硬件的增长，不会再去计较多了几十个字节，运算时间需要多几秒，只是会在类似于问题中的情况才会需要去考虑，究其原因，还是因为要取数据库的连接，所以会很消耗大量的资源。<br />其实于一个初级程序员和一个高级程序员的区别就在于此，高级程序员会选用最合适的方法来实现，解决问题，而初级程序员总是忙于解决问题，首先解决问题是最重要的，至于方法，先不管那么多。<br />我经常在维护一个项目时，或者在查找BUG时，发现有人写的代码让我痛不欲生，冗长的代码，健壮性不够等等。<br />思考，思考，再实现，往往比边写边思考效果会更好！<br />所以，给新人的建议是多思考，多阅读他人的代码（现在开源的优秀代码很多）。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/203969#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 16 Jun 2008 09:09:13 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/203969</link>
        <guid>http://jimmy-shine.javaeye.com/blog/203969</guid>
      </item>
      <item>
        <title>市场至上，还是我们应当坚持原则</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/202313" style="color:red;">http://jimmy-shine.javaeye.com/blog/202313</a>&nbsp;
          发表时间: 2008年06月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近公司的状况有点不一样，市场明显已经占据了公司的重要的决策了，连公司的技术部门的老大都已经是售前工程师（这是一个体面的称呼）了。<br />让我来细细的审视一下公司的组成，市场部是由公司老总直接领导，再加上技术部部门经理做售前支持（其实就是演示系统），由此可以看出公司的状态已经是市场至上了。<br />感觉到非常的痛苦，已经到了痛不欲生的地步了，不知道各位的公司里面会不会有这个问题，就是市场部门与技术部门肯定会在某些方面存在着矛盾。<br />首先从利益的角度上来分析一下，对于市场来说，有奶便是娘，虽不可称之为一个公理，但基本上是一个定理。而从项目经理的角度来说，他们并不关心。而实际上项目实施的难度，大家都可以知道，对于项目经理来说，最大的问题在于，我们无法去把控项目。市场总是会考虑到下一个单子的问题，而对于项目经理来说，如何结束项目永远是第一位的。从现阶段国情来看，客户对于需求的反复是不可避免的。而对于PM来说，如何把握一个度往往是很困难的事情，经过几次需求确认之后，在项目经过验收之后，对于非系统BUG，而是需求变动的问题，项目经理往往不会再去承担，我们可以根据后续的维护合同，再去评估工作量，另行收钱去修改。<br />现实就是出于市场考虑，做为PM不得不去修改（免费的），市场、老总往往不会关心你修改了一个地方，在维护上收了客户多少钱，而是在意后续会不会有一个单子而来，往往会认为迎合于客户，我们就会有新的单子来。<br />对于小公司来说，这个问题肯定是普遍存在的。<br />对于PM来说，往往被迫改了某了个问题不是最重要的，而是客户会理所当然的认为，这是你系统的问题，最后到老总那里就是你都做错了，改还有什么好说的，“你做项目不行，连这个都理解不了”。事实上，笔者就已经经历过了需求的变动，从A-->B-->C-->A，这种，还有就是那种把原来的业务推掉，重新来一个新的业务的问题。却被认为是系统的问题。<br />我想我永远也无法理解有些东西，明明违背了原则的东西，为什么我们要去做，还要接受是我们系统的问题。<br />另外，已经感觉不到技术方向有何前进的路线了。<br /><br />这种问题，不知道大家有没有遇到，又是如何处理的呢？<br /><br />顺便说一下，大家有好地方，推荐一下，偶看看，要换地方工作了。（：P 高程或者软件工程师即可）
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/202313#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 11 Jun 2008 23:34:54 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/202313</link>
        <guid>http://jimmy-shine.javaeye.com/blog/202313</guid>
      </item>
      <item>
        <title>一天一夜，终于把页面布局勉强搞定</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/197265" style="color:red;">http://jimmy-shine.javaeye.com/blog/197265</a>&nbsp;
          发表时间: 2008年05月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          现在还没有睡，昨天一晚上没有睡，到了早上六点才勉强的入睡了一会，下午又去了公司，四点多了才到KFC吃了点东西，补充了一下体力，Damn it!回公司继续努力，加班，一直到23：00才基本上搞定了项目的页面布局。（还不走就不行了，五道口附近停电，从23：00开始），和另一个同事，从十楼走了下来。打了个车，回家。<br />公司以前的项目的布局的模板是老大做的，老大的理念就是asp的理念，把以前asp做项目的模板一改，直接放到了Java EE的项目中来了。<br />反正我不喜欢原先的页面，感觉挺难受。与另一个客户合作的项目，客户对于页面的样式不满意，BOSS找了他认识的一个人做了效果图，这哥们挺有思想的，这个不做，那个不做，人家的原因就是我做了你们也做不出来，挺有理由的吧。第二版是合作方在网上找了一个人做的，偶一看，还是不满意。项目都到了要提交的阶段了，只有亲自动手了，找了domino项目经理的一个同学，让她做了第三版，还算是好看一点。<br />交到我手里来的时候，已经只有三天了，还是周五了，周六约了另一个客户去维护服务器。只有周日了，可怜的我，又是加班。<br />记不清楚是多少个加班日了。约了那小姑娘一起来，结果人家没有来。所有任务都被交到我手里来了。<br />1024*768，这是对于页面布局的基本样式，可怜的我的机器的分辨率是1200*800，一看这参数就知道了，这是宽屏的机器。一个白天催促着美工把图做完发了过来，PSD的。<br />Photoshop CS3，又一个版本的PS，安装新版的软件。又开始操弄上了。<br />做PM就是你可以有更多的责任要承担，并不一定会有更多的权利。建议MM们找老公就找做软件开发的PM，绝对负责。：P<br />回家，把别人的显示器，17纯平的显示器借过来，顺手拿了键盘，笔记本成了主机，开始干活，切片，做布局，反复的测试。凌晨三点，困得不行了，洗了个澡，继续。眼睛累得不行， 还好带了眼药水。<br />好不容易做完了，已经是凌晨六点了，给负责做开发的同事发了一个短信，所有的代码SVN提交了，爬到床上睡觉了。<br />起床，喝了点水，背着电脑，去公司。一问，人家倒是挺痛快，没时间，上午去另一个项目了（asp项目）。真想开始说脏话，这样，我还做什么？一切都要自己来，你给做好了样子也不行。<br />继续吧，开始继续做。再调整了一下菜单在高分屏机器上的显示。开始对着项目开始改，幸好不是大项目，要不，我只有吐血身亡。<br />一步一步，对着CSS的手册，还有PS，继续，继续。<br />23：00，终于在停电的最后前一分钟把邮件发了出去，顺带把服务器停掉。<br />走下了楼，回家！<br /><br />改布局真TMD的烦。都是用Table做的布局，怀念DOJO，对于浏览器的支持。<br />都快要全才了，美工，脚本语言，代码开发，网络维护…… 真不知道有什么没有做过了。<br />就这样吧！有什么办法呢？
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/197265#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/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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 27 May 2008 00:58:13 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/197265</link>
        <guid>http://jimmy-shine.javaeye.com/blog/197265</guid>
      </item>
      <item>
        <title>netBeans6.1与eclipse</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/196291" style="color:red;">http://jimmy-shine.javaeye.com/blog/196291</a>&nbsp;
          发表时间: 2008年05月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          为了学习JavaFX，遵照于官方教程，下载了netBeans，上次使用还是5.5的版本，进到netBeans的主页一看，让我眼睛一亮的是UML，在eclipse下，我尝试过无数的uml的插件，要不就是非开源的，要不就是不太好用。netBeans对于UML的支持是全部的，所有的UML的图都可以生成。<br />个人钟爱于UML是一直想寻找一个好的开源的UML工具，将开发更加关注于业务上。以前用得最多就是starUML，不过更多的是用来写文档，从某个意义上来，就是用来向客户显摆，看看我们对于业务的建模是基于UML的，其实那只是一个表象，真正的开发不是基于UML建模的。<br />netBeans已经很好了，不仅有一大堆免费的工具，而且安装起来相对简单。有点像是myEclipse或者是开源的easyeclipse，直接下载你想要版本，一个Exe在windows上一运行就OK了。<br />花了半个小时研究了一下菜单，或者我已经非常习惯了eclipse了，所以找了一堆配置，与eclipse的不一样，不过在键的设置上居然也有emacs方式的，这倒是个惊喜。而且可以导入eclipse建立的工程，这样可以将项目在二个不同的IDE中共享了。<br />UML建图真的很强大，可以方便的生成代码，不过如果要去掉一堆的注释的话，你就要想办法，还没有研究出来，如何将中文的注释生成中文，默认的时候，生成的是经过编码的，就是一堆如&#40664;的东东。不过倒是影响生成JavaDoc，相反很方便，连参数都不用带了，即不用指定编码了，直接生成就可以显示中文了。<br />看来以后的开发方式真的可以改变了，为什么我们不可以用纯对象的思想来开发呢？<br />看来以后要考虑使用netBeans了。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/196291#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 May 2008 00:42:59 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/196291</link>
        <guid>http://jimmy-shine.javaeye.com/blog/196291</guid>
      </item>
      <item>
        <title>IE中的WebBrowser Object以及用法</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/189842" style="color:red;">http://jimmy-shine.javaeye.com/blog/189842</a>&nbsp;
          发表时间: 2008年05月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          WebBrowser是IE内置的浏览器控件，无需用户下载。<br />利用WebBrowser可以用来实现IE的菜单中的一些操作。<br /><pre name="code" class="html">
&lt;OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0>&lt;/OBJECT> 
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为> 
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新>
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭>
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/189842#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/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 05 May 2008 17:22:02 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/189842</link>
        <guid>http://jimmy-shine.javaeye.com/blog/189842</guid>
      </item>
      <item>
        <title>Windows系统中的进程以及高级命令</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/183951" style="color:red;">http://jimmy-shine.javaeye.com/blog/183951</a>&nbsp;
          发表时间: 2008年04月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          经常要用到一些脚本来启动程序，相信大家也会有所用,在Dos中使用的。<br /><br />1、服务    services.msc<br />2、组策略管理  gpedit.msc<br />3、计算机管理  compmgmt.msc<br /><br /><br />注册在服务中的名字(标准)<br />1、SqlServer2000服务器     mssqlserver<br />2、SqlServer2000 Agent     sqlserveragent<br />3、Tomcat5服务器           tomcat5<br />4、Apache2服务器           apache2<br />5、MySql服务器             mysql<br /><br />附：<br />启动服务在dos下使用：　net start <em>mssqlserver</em> 用服务名代替mssqlserver<br />停止服务在dos下使用：　net stop <em>mssqlserver</em> 用服务名代替mssqlserver
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/183951#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/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>Fri, 18 Apr 2008 09:10:55 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/183951</link>
        <guid>http://jimmy-shine.javaeye.com/blog/183951</guid>
      </item>
      <item>
        <title>系统进程相关知识(转载)</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/183949" style="color:red;">http://jimmy-shine.javaeye.com/blog/183949</a>&nbsp;
          发表时间: 2008年04月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Windows操作系统进程详细介绍<br />关键词： 系统进程<br />（1）[system Idle Process]<br /><br />进程文件: [system process] or [system process]<br /><br />进程名称: Windows内存处理系统进程<br /><br />描 述: Windows页面内存管理进程，拥有0级优先。<br /><br />介 绍：该进程作为单线程运行在每个处理器上，并在系统不处理其他线程的时候分派处理器的时间。它的cpu占用率越大表示可供分配的CPU资源越多，数字越小则表示CPU资源紧张。<br /><br />（2）[alg.exe]<br /><br />进程文件: alg or alg.exe<br /><br />进程名称: 应用层网关服务<br /><br />描 述: 这是一个应用层网关服务用于网络共享。<br /><br />介 绍：一个网关通信插件的管理器，为 “Internet连接共享服务”和 “Internet连接防火墙服务”提供第三方协议插件的支持。<br /><br />（3）[csrss.exe]<br /><br />进程文件: csrss or csrss.exe<br /><br />进程名称: Client/Server Runtime Server Subsystem<br /><br />描 述: 客户端服务子系统，用以控制Windows图形相关子系统。<br /><br />介 绍: 这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统必须一直运行。csrss用于维持Windows的控制，创建或者删除线程和一些16位的虚拟MS-DOS环境。<br /><br />（4）[ddhelp.exe]<br /><br />进程文件: ddhelp or ddhelp.exe<br /><br />进程名称: DirectDraw Helper<br /><br />描 述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。<br /><br />简 介：Directx 帮助程序<br /><br />（5）[dllhost.exe]<br /><br />进程文件: dllhost or dllhost.exe<br /><br />进程名称: DCOM DLL Host进程<br /><br />描 述: DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序。<br /><br />介 绍：com代理，系统附加的dll组件越多，则dllhost占用的cpu资源和内存资源就越多，而8月的“冲击波杀手”大概让大家对它比较熟悉吧。<br /><br />（6）[explorer.exe]<br /><br />进程文件: explorer or explorer.exe<br /><br />进程名称: 程序管理<br /><br />描 述: Windows Program Manager或者Windows Explorer用于控制Windows图形Shell，包括开始菜单、任务栏，桌面和文件管理。<br /><br />介 绍：这是一个用户的shell，在我们看起来就像任务条，桌面等等。或者说它就是资源管理器，不相信你在运行里执行它看看。它对windows系统的稳定性还是比较重要的，而红码也就是找它的麻烦，在c和d根下创建explorer.exe。<br /><br />（7）[inetinfo.exe]<br /><br />进程文件: inetinfo or inetinfo.exe<br /><br />进程名称: IIS Admin Service Helper<br /><br />描 述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分，用于Debug调试除错。<br /><br />介绍：IIS服务进程，蓝码正是利用的inetinfo.exe的缓冲区溢出漏洞。<br /><br />（8）[internat.exe]<br /><br />进程文件: internat or internat.exe<br /><br />进程名称: Input Locales<br /><br />描 述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式。internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加载内容的。internat.exe 加载“EN”图标进入系统的图标区，允许使用者可以很容易的转换不同的输入点。当进程停掉的时候，图标就会消失，但是输入点仍然可以通过控制面板来改变。<br /><br />介 绍：它主要是用来控制输入法的，当你的任务栏没有“EN”图标，而系统有internat.exe进程，不妨结束掉该进程，在运行里执行internat命令即可。<br /><br />（9）[kernel32.dll]<br /><br />进程文件: kernel32 or kernel32.dll<br /><br />进程名称: Windows壳进程<br /><br />描 述: Windows壳进程用于管理多线程、内存和资源。<br /><br />介 绍：更多内容浏览非法操作与Kernel32解读<br /><br />（10）[lsass.exe]<br /><br />进程文件: lsass or lsass.exe<br /><br />进程名称: 本地安全权限服务<br /><br />描 述: 这个本地安全权限服务控制Windows安全机制。管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序等。<br /><br />介绍：这是一个本地的安全授权服务，并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是通过使用授权的包，例如默认的 msgina.dll来执行的。如果授权是成功的，lsass就会产生用户的进入令牌，令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。而windows活动目录远程堆栈溢出漏洞，正是利用LDAP 3搜索请求功能对用户提交请求缺少正确缓冲区边界检查，构建超过1000个"AND"的请求，并发送给服务器，导致触发堆栈溢出，使Lsass.exe服务崩溃，系统在30秒内重新启动。<br /><br />（11）[mdm.exe]<br /><br />进程文件: mdm or mdm.exe<br /><br />进程名称: Machine Debug Manager<br /><br />描 述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器。<br /><br />介绍：Mdm.exe的主要工作是针对应用软件进行排错(Debug)，说到这里，扯点题外话，如果你在系统见到fff开头的0字节文件，它们就是 mdm.exe在排错过程中产生一些暂存文件，这些文件在操作系统进行关机时没有自动被清除，所以这些fff开头的怪文件里是一些后缀名为CHK的文件都是没有用的垃圾文件，可匀我馍境换岫韵低巢涣加跋臁6?X系统，只要系统中有Mdm.exe存在，就有可能产生以fff开头的怪文件。可以按下面的方法让系统停止运行Mdm.exe来彻底删除以fff开头的怪文件：首先按“Ctrl+Alt+Del”组合键，在弹出的“关闭程序”窗口中选中 “Mdm”，按“结束任务”按钮来停止Mdm.exe在后台的运行，接着把Mdm.exe(在C:\Windows\System目录下)改名为 Mdm.bak。运行msconfig程序，在启动页中取消对“Machine Debug Manager”的选择。这样可以不让Mdm.exe自启动，然后点击“确定”按钮，结束msconfig程序，并重新启动电脑。另外，如果你使用IE 5.X以上版本浏览器，建议禁用脚本调用(点击“工具→Internet选项→高级→禁用脚本调用”)，这样就可以避免以fff开头的怪文件再次产生。<br /><br />（12）[mmtask.tsk]<br /><br />进程文件: mmtask or mmtask.tsk<br /><br />进程名称: 多媒体支持进程<br /><br />描 述: 这个Windows多媒体后台程序控制多媒体服务，例如MIDI。<br /><br />介 绍：这是一个任务调度服务，负责用户事先决定在某一时间运行的任务的运行。<br /><br />（13）[mprexe.exe]<br /><br />进程文件: mprexe or mprexe.exe<br /><br />进程名称: Windows路由进程<br /><br />描 述: Windows路由进程包括向适当的网络部分发出网络请求。<br /><br />介 绍：这是Windows的32位网络界面服务进程文件，网络客户端部件启动的核心。印象中“A-311木马(Trojan.A-311.104)”也会在内存中建立mprexe.exe进程，可以通过资源管理结束进程。<br /><br />（14）[msgsrv32.exe]<br /><br />进程文件: msgsrv32 or msgsrv32.exe<br /><br />进程名称: Windows信使服务<br /><br />描 述: Windows信使服务调用Windows驱动和程序管理在启动。<br /><br />介 绍：msgsrv32.exe 一个管理信息窗口的应用程序，win9x下如果声卡或者显卡驱动程序配置不正确，会导致死机或者提示msgsrv32.exe 出错。<br /><br />（15）[mstask.exe]<br /><br />进程文件: mstask or mstask.exe<br /><br />进程名称: Windows计划任务<br /><br />描 述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行。<br /><br />介绍：计划任务，它通过注册表自启动。因此，通过计划任务程序实现自启动的程序在系统信息中看不到它的文件名，一旦把它从注册表中删除或禁用，那么通过计划任务启动的程序全部不能自动运行。win9X下系统启动就会开启计划任务，可以通过双击计划任务图标－高级－终止计划任务来停止它自启动。另外，攻击者在攻击过程中，也经常用到计划任务，包括上传文件、提升权限、种植后门、清扫脚印等。<br /><br />（16）[regsvc.exe]<br /><br />进程文件: regsvc or regsvc.exe<br /><br />进程名称: 远程注册表服务<br /><br />描 述: 远程注册表服务用于访问在远程计算机的注册表。<br /><br />（17）[rpcss.exe]<br /><br />进程文件: rpcss or rpcss.exe<br /><br />进程名称: RPC Portmapper<br /><br />描 述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者。<br /><br />介 绍：98它不是在装载解释器时或引导时启动，如果使用中有问题，可以直接在在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run<br /><br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices添加"字符串值"，定向到"C:\WINDOWS\SYSTEM\RPCSS"即可。<br /><br />（18）[services.exe]<br /><br />进程文件: services or services.exe<br /><br />进程名称: Windows Service Controller<br /><br />描 述: 管理Windows服务。<br /><br />介 绍：大多数的系统核心模式进程是作为系统进程在运行。打开管理工具中的服务，可以看到有很多服务都是在调用%systemroot%\system32\service.exe<br /><br />（19）[smss.exe]<br /><br />进程文件: smss or smss.exe<br /><br />进程名称: Session Manager Subsystem<br /><br />描 述: 该进程为会话管理子系统用以初始化系统变量，MS-DOS驱动名称类似LPT1以及COM，调用Win32壳子系统和运行在Windows登陆过程。<br /><br />简介：这是一个会话管理子系统，负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的，包括已经正在运行的Winlogon，Win32 （Csrss.exe）线程和设定的系统变量作出反映。在它启动这些进程后，它等待Winlogon或者Csrss结束。如果这些过程时正常的，系统就关掉了。如果发生了什么不可预料的事情，smss.exe就会让系统停止响应（就是挂起）。<br /><br />（20）[snmp.exe]<br /><br />进程文件: snmp or snmp.exe<br /><br />进程名称: Microsoft SNMP Agent<br /><br />描 述: Windows简单的网络协议代理（SNMP）用于监听和发送请求到适当的网络部分。<br /><br />简 介：负责接收SNMP请求报文，根据要求发送响应报文并处理与WinsockAPI的接口。<br /><br />（21）[spool32.exe]<br /><br />进程文件: spool32 or spool32.exe<br /><br />进程名称: Printer Spooler<br /><br />描 述: Windows打印任务控制程序，用以打印机就绪。<br /><br />（22）[spoolsv.exe]<br /><br />进程文件: spoolsv or spoolsv.exe<br /><br />进程名称: Printer Spooler Service<br /><br />描 述: Windows打印任务控制程序，用以打印机就绪。<br /><br />介 绍：缓冲（spooler）服务是管理缓冲池中的打印和传真作业。<br /><br />（23）[stisvc.exe]<br /><br />进程文件: stisvc or stisvc.exe<br /><br />进程名称: Still Image Service<br /><br />描 述: Still Image Service用于控制扫描仪和数码相机连接在Windows。<br /><br />（24）[svchost.exe]<br /><br />进程文件: svchost or svchost.exe<br /><br />进程名称: Service Host Process<br /><br />描 述: Service Host Process是一个标准的动态连接库主机处理服务.<br /><br />介绍：Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位在系统的% systemroot%\system32文件夹下。在启动的时候，Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使多个 Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务，以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。windows 2k一般有2个svchost进程，一个是RPCSS（Remote Procedure Call）服务进程，另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中，则一般有4个以上的svchost.exe服务进程，windows 2003 server中则更多。<br /><br />（25）[taskmon.exe]<br /><br />进程文件: taskmon or taskmon.exe<br /><br />进程名称: Windows Task Optimizer<br /><br />描 述: windows任务优化器监视你使用某个程序的频率，并且通过加载那些经常使用的程序来整理优化硬盘。<br /><br />介 绍：任务管理器，它的功能是监视程序的执行情况并随时报告。能够监测所有在任务栏中以窗口方式运行的程序，可打开和结束程序，还可直接调出关闭系统对话框。<br /><br />（26）[tcpsvcs.exe]<br /><br />进程文件: tcpsvcs or tcpsvcs.exe<br /><br />进程名称: TCP/IP Services<br /><br />描 述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet。<br /><br />（27）[winlogon.exe]<br /><br />进程文件: winlogon or winlogon.exe<br /><br />进程名称: Windows Logon Process<br /><br />描 述: Windows NT用户登陆程序。这个进程是管理用户登录和退出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了，显示安全对话框。<br /><br />（28）[winmgmt.exe]<br /><br />进程文件: winmgmt or winmgmt.exe<br /><br />进程名称: Windows Management Service<br /><br />描 述: Windows Management Service透过Windows Management Instrumentation data WMI)技术处理来自应用客户端的请求。<br /><br />简介：winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化。WinMgmt.exe （CIM对象管理器）和知识库（Repository）是WMI两个主要构成部分，其中知识库是对象定义的数据库，它是存储所有可管理静态数据的中心数据库，对象管理器负责处理知识库中对象的收集和操作并从WMI提供程序收集信息。WinMgmt.exe在Windows 2k/NT上作为一个服务运行，而在Windows 95/98上作为一个独立的exe程序运行。Windows 2k系统在某些计算机上出现的WMI错误可以通过安装Windows 2k SP2来修正。<br /><br />（29）[system]<br /><br />进程文件: system or system<br /><br />进程名称: Windows System Process<br /><br />描 述: Microsoft Windows系统进程。<br /><br />介 绍：在任务管理器中会看到这项进程，属于正常系统进程。<br /><br />系统进程就介绍到这里。<br /><br />在Windows2k/XP中，以下进程是必须加载的：<br /><br />smss.exe、csrss.exe、winlogon.exe、services.exe、lsass.exe、svchost.exe(可以同时存在多个)、spoolsv.exe、explorer.exe、System Idle Process；<br /><br />在Windows 9x中，一下进程是必须加载的：<br /><br />msgsrv32.exe、mprexe.exe、mmtask.tsk、kenrel32.dll。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/183949#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 18 Apr 2008 09:05:04 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/183949</link>
        <guid>http://jimmy-shine.javaeye.com/blog/183949</guid>
      </item>
      <item>
        <title>Active Directory</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/173268" style="color:red;">http://jimmy-shine.javaeye.com/blog/173268</a>&nbsp;
          发表时间: 2008年03月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          微软MSDN官方资料：<br />http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/directory/activedirectory/stepbystep/default.mspx
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/173268#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 18 Mar 2008 10:13:54 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/173268</link>
        <guid>http://jimmy-shine.javaeye.com/blog/173268</guid>
      </item>
      <item>
        <title>window.showModalDialog以及window.open用法简介</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/170899" style="color:red;">http://jimmy-shine.javaeye.com/blog/170899</a>&nbsp;
          发表时间: 2008年03月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一、window.open()支持环境： JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+<br /><br /><br />二、基本语法：<br />window.open(pageURL,name,parameters) <br />其中：<br />pageURL 为子窗口路径 <br />name 为子窗口句柄 <br />parameters 为窗口参数(各参数用逗号分隔) <br /><br /><br />三、示例：<br />&lt;SCRIPT> <br />&lt;!-- <br />window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no') <br />//写成一行 <br />--> <br />&lt;/SCRIPT><br />脚本运行后，page.html将在新窗体newwindow中打开，宽为100，高为400，距屏顶0象素，屏左0象素，无工具条，无菜单条，无滚动条，不可调整大小，无地址栏，无状态栏。<br />请对照。<br /><br />上例中涉及的为常用的几个参数，除此以外还有很多其他参数，请见四。<br /><br /><br />四、各项参数<br />其中yes/no也可使用1/0；pixel value为具体的数值，单位象素。<br /><br />参数 | 取值范围 | 说明 <br />| | <br />alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 <br />alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上 <br />depended | yes/no | 是否和父窗口同时关闭 <br />directories | yes/no | Nav2和3的目录栏是否可见 <br />height | pixel value | 窗口高度 <br />hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键 <br />innerHeight | pixel value | 窗口中文档的像素高度 <br />innerWidth | pixel value | 窗口中文档的像素宽度 <br />location | yes/no | 位置栏是否可见 <br />menubar | yes/no | 菜单栏是否可见 <br />outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度 <br />outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度 <br />resizable | yes/no | 窗口大小是否可调整 <br />screenX | pixel value | 窗口距屏幕左边界的像素长度 <br />screenY | pixel value | 窗口距屏幕上边界的像素长度 <br />scrollbars | yes/no | 窗口是否可有滚动栏 <br />titlebar | yes/no | 窗口题目栏是否可见 <br />toolbar | yes/no | 窗口工具栏是否可见 <br />Width | pixel value | 窗口的像素宽度 <br />z-look | yes/no | 窗口被激活后是否浮在其它窗口之上<br /><br />window.showModalDialog使用手册<br /><br /> <br />基本介绍：<br />showModalDialog() (IE 4+ 支持)<br />showModelessDialog() (IE 5+ 支持)<br />window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。<br />window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。<br /><br />使用方法：<br />vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])<br />vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])<br /><br />参数说明：<br />sURL--<br />必选参数，类型：字符串。用来指定对话框要显示的文档的URL。<br />vArguments--<br />可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。<br />sFeatures--<br />可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号“;”隔开。<br />1.dialogHeight :对话框高度，不小于１００px，ＩＥ４中dialogHeight 和 dialogWidth 默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。<br />2.dialogWidth: 对话框宽度。<br />3.dialogLeft: 离屏幕左的距离。<br />4.dialogTop: 离屏幕上的距离。<br />5.center: {yes | no | 1 | 0 }：窗口是否居中，默认yes，但仍可以指定高度和宽度。<br />6.help: {yes | no | 1 | 0 }：是否显示帮助按钮，默认yes。<br />7.resizable: {yes | no | 1 | 0 } ［ＩＥ５＋］：是否可被改变大小。默认no。<br />8.status: {yes | no | 1 | 0 } ［IE5+］：是否显示状态栏。默认为yes[ Modeless]或no[Modal]。<br />9.scroll:{ yes | no | 1 | 0 | on | off }：指明对话框是否显示滚动条。默认为yes。<br />下面几个属性是用在HTA中的，在一般的网页中一般不使用。<br />10.dialogHide:{ yes | no | 1 | 0 | on | off }：在打印或者打印预览时对话框是否隐藏。默认为no。<br />11.edge:{ sunken | raised }：指明对话框的边框样式。默认为raised。<br />12.unadorned:{ yes | no | 1 | 0 | on | off }：默认为no。<br /><br />参数传递：<br />1.要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，最大为4096个字符。也可以传递对象，例如：<br />-------------------------------<br />parent.htm<br />&lt;script><br />var obj = new Object();<br />obj.name="51js";<br />window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");<br />&lt;/script><br />modal.htm<br />&lt;script><br />var obj = window.dialogArguments<br />alert("您传递的参数为：" + obj.name)<br />&lt;/script><br />-------------------------------<br />2.可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。例如：<br />------------------------------<br />parent.htm<br />&lt;script><br />str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");<br />alert(str);<br />&lt;/script><br />modal.htm<br />&lt;script><br />window.returnValue="http://www.51js.com";<br />&lt;/script>
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/170899#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/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>Thu, 13 Mar 2008 17:04:00 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/170899</link>
        <guid>http://jimmy-shine.javaeye.com/blog/170899</guid>
      </item>
      <item>
        <title>详细讲解Java中log4j的使用方法</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/153700" style="color:red;">http://jimmy-shine.javaeye.com/blog/153700</a>&nbsp;
          发表时间: 2008年01月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、Log4j是什么？ <br /><br />Log4j可以帮助调试（有时候debug是发挥不了作 用的）和分析，要下载和了解更详细的内容，还是访问其官方网站吧： http://jakarta.apache.org/log4j 。 <br /><br />2、Log4j的概念 <br /><br />Log4j中有三个主要的组件，它们分别是 Logger、Appender和Layout，Log4j 允许开发人员定义多个Logger，每个Logger拥有自己的名字，Logger之间通过名字来表明隶属关系。有一个Logger称为Root，它永远 存在，且不能通过名字检索或引用，可以通过Logger.getRootLogger()方法获得，其它Logger通过 Logger.getLogger(String name)方法。 <br /><br />Appender则是用来指明将所有的log信息存放到什么地方，Log4j中支持多种appender，如 console、files、GUI components、NT Event Loggers等，一个Logger可以拥有多个Appender，也就是你既可以将Log信息输出到屏幕，同时存储到一个文件中。 <br /><br />Layout的作用是控制Log信息的输出方式，也就是格式化输出的信息。 <br /><br />Log4j中将要输出的Log信息定义了5种级别，依次为DEBUG、INFO、WARN、ERROR和FATAL，当输出时，只有级别高过配置中规定的 级别的信息才能真正的输出，这样就很方便的来配置不同情况下要输出的内容，而不需要更改代码，这点实在是方便啊。 <br /><br />3、Log4j的配置文件 <br /><br />虽然可以不用配置文件，而在程序中实现配置，但这种方法在如今的系统开发中显然是不可取的，能采用配置文件的地方一定一定要用配置文件。Log4j支持两 种格式的配置文件：XML格式和Java的property格式，本人更喜欢后者，首先看一个简单的例子吧，如下： <br /><br /><br />log4j.rootLogger=debug, stdout, R<br />  log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br /><br />  # Pattern to output the caller's file name and line number.<br />  log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n<br /><br />  log4j.appender.R=org.apache.log4j.RollingFileAppender<br />  log4j.appender.R.File=example.log<br />  log4j.appender.R.MaxFileSize= 100KB<br /><br />  # Keep one backup file<br />  log4j.appender.R.MaxBackupIndex=1<br /><br />  log4j.appender.R.layout=org.apache.log4j.PatternLayout<br />  log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n <br /><br />首先，是设置root，格式为 log4j.rootLogger=[level],appenderName, ...，其中level就是设置需要输出信息的级别，后面是appender的输出的目的地，appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 配置日志信息输出目的地Appender，其语法为 <br /><br /><br />log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />  log4j.appender.appenderName.option1 = value1<br />  ...<br />  log4j.appender.appenderName.option = valueN <br /><br />Log4j提供的appender有以下几种： <br /><br />org.apache.log4j.ConsoleAppender（控制台） <br /><br />org.apache.log4j.FileAppender（文件） <br /><br />org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件） <br /><br />org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生新文件） <br /><br />org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方） <br /><br />配置日志信息的格式（布局），其语法为： <br /><br /><br />log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br />  log4j.appender.appenderName.layout.option1 = value1<br />  ....<br />  log4j.appender.appenderName.layout.option = valueN <br /><br />Log4j提供的layout有以下几种： <br /><br />org.apache.log4j.HTMLLayout（以HTML表格形式布局）， <br /><br />org.apache.log4j.PatternLayout（可以灵活地指定布局模式）， <br /><br />org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串）， <br /><br />org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） <br /><br />Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下： %m 输出代码中指定的消息 <br /><br />%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL <br /><br />%r 输出自应用启动到输出该log信息耗费的毫秒数 <br /><br />%c 输出所属的类目，通常就是所在类的全名 <br /><br />%t 输出产生该日志事件的线程名 <br /><br />%n 输出一个回车换行符，Windows平台为“rn”，Unix平台为“n” <br /><br />%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似： 2002年10月18日 22：10：28，921 <br /><br />%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10) <br /><br />4、Log4j在程序中的使用 <br /><br />要在自己的程序中使用Log4j，首先需要将commons-logging.jar和logging-log4j-1.2.9.jar导入到构建路径 中。然后再将log4j.properties放到src根目录下。这样就可以在程序中使用log4j了。在类中使用log4j， 首先声明一个静态变量 Logger logger=Logger.getLog("classname")；现在就可以使用了，用法如下：logger.debug("debug message")或者logger.info("info message")，看下面一个小例子： <br /><br /><br />import com.foo.Bar;<br />  import org.apache.log4j.Logger;<br />  import org.apache.log4j.PropertyConfigurator;<br />  public class MyApp {<br />    static Logger logger = Logger.getLogger(MyApp.class.getName());<br />    public static void main(String[] args) {<br />      // BasicConfigurator replaced with PropertyConfigurator.<br />      PropertyConfigurator.configure(args[0]);<br />      logger.info("Entering application.");<br />      Bar bar = new Bar();<br />      bar.doIt();<br />      logger.info("Exiting application.");<br />    }<br />  }
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/153700#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 07 Jan 2008 16:37:11 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/153700</link>
        <guid>http://jimmy-shine.javaeye.com/blog/153700</guid>
      </item>
      <item>
        <title>Subversion快速入门教程(转）</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/151427" style="color:red;">http://jimmy-shine.javaeye.com/blog/151427</a>&nbsp;
          发表时间: 2007年12月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如何快速建立Subversion服务器，并且在项目中使用起来，这是大家最关心的问题，与CVS相比，Subversion有更多的选择，也更加的容易，几个命令就可以建立一套服务器环境，可以使用起来，这里配套有动画教程。<br />本文是使用Subversion最快速的教程，在最短的时间里帮助您建立起一套可用的服务器环境，只需略加调整就可以应用到实际项目当中。<br />本教程分为以下几个部门，不仅仅是快速入门，最后我们还有一些高级功能的说明，为了说明简单，教程是在windows下使用的方式，以方便资源有限的项目使用，对于UNIX环境下，区别并不大。<br /><br />软件下载<br /><br />服务器和客户端安装<br /><br />建立版本库（Repository）<br /><br />配置用户和权限<br /><br />运行独立服务器<br /><br />初始化导入<br /><br />基本客户端操作<br />1，软件下载<br />下载Subversion服务器程序。<br /><br />到官方网站的下载二进制安装文件，来到二进制包下载部分，找到 Windows NT, 2000, XP and 2003部分，然后选择" this directory "，这样我们可以看到许多下载的内容，目前可以下载 svn-1.4.0-setup.exe 。<br />下载Subversion的Windows客户端TortoiseSVN。<br /><br />TortoiseSVN是扩展Windows Shell的一套工具，可以看作Windows资源管理器的插件，安装之后Windows就可以识别Subversion的工作目录。<br />官方网站是TortoiseSVN ，下载方式和前面的svn服务器类似，在Download页面的我们可以选择下载的版本，目前的最高稳定版本的安装文件为TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi。<br />2，服务器和客户端安装<br /><br />服务器安装，直接运行svn-1.4.0-setup.exe ，根据提示安装即可，这样我们就有了一套服务器可以运行的环境。<br /><br />安装TortoiseSVN，同样直接运行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按照提示安装即可，不过最后完成后会提示是否重启，其实重启只是使svn工作拷贝在windows中的特殊样式生效，与所有的实际功能无关，这里为了立刻看到好的效果，还是重新启动机器。<br /> <br />3，建立版本库（Repository）<br /><br />运行Subversion服务器需要首先要建立一个版本库（Repository），可以看作服务器上存放数据的数据库，在安装了Subversion服务器之后，可以直接运行，如：<br /><br />svnadmin create E:\svndemo\repository<br /><br />就会在目录E:\svndemo\repository下创建一个版本库。<br /><br />我们也可以使用TortoiseSVN图形化的完成这一步：<br />在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“， 然后可以选择版本库模式， 这里使用默认即可， 然后就创建了一系列目录和文件。<br /><br />4，配置用户和权限<br /><br />来到E:\svndemo\repository\conf目录，修改svnserve.conf：<br /># [general]<br /># password-db = passwd<br />改为：<br />[general]<br />password-db = passwd 然后修改同目录的passwd文件，去掉下面三行的注释：<br /># [users]<br /># harry = harryssecret<br /># sally = sallyssecret<br />最后变成：<br />[users]<br />harry = harryssecret<br />sally = sallyssecret<br /><br /> <br />5，运行独立服务器<br /><br />在任意目录下运行：<br />svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口，关闭窗口也会把svnserve停止。<br /><br />6，初始化导入<br /><br />来到我们想要导入的项目根目录，在这个例子里是E:\svndemo\initproject，目录下有一个readme.txt文件：<br /><br /><br />右键->TortoiseSVN->Import...<br />URL of repository输入“svn://localhost/”<br />ok<br />完成之后目录没有任何变化，如果没有报错，数据就已经全部导入到了我们刚才定义的版本库中。<br /><br />需要注意的是，这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22，则URL部分输入的内容就是“svn://133.96.121.22/”。<br /><br />7，基本客户端操作<br /><br />取出版本库到一个工作拷贝：<br />来到任意空目录下，在本例中是E:\svndemo\wc1，运行右键->Checkout，在URL of repository中输入svn://localhost/，这样我们就得到了一份工作拷贝。<br />在工作拷贝中作出修改并提交：<br />打开readme.txt，作出修改，然后右键->Commit...，这样我们就把修改提交到了版本库，我们可以运行。<br /><br />察看所作的修改：<br />readme.txt上右键->TortoiseSVN->Show Log，这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy，我们可以比较工作拷贝的文件和版本1的区别。<br /><br />最后，所有的内容都已经录制为动画文件，大家可以参考。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/151427#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>Fri, 28 Dec 2007 11:05:00 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/151427</link>
        <guid>http://jimmy-shine.javaeye.com/blog/151427</guid>
      </item>
      <item>
        <title>Grails之我见</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/149489" style="color:red;">http://jimmy-shine.javaeye.com/blog/149489</a>&nbsp;
          发表时间: 2007年12月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在China-pub上看到《Grails权威指南》作为强力推荐的书，终于忍不住，要一探这个基于被Java SE 6支持的脚本语言Groovy之上的Rails框架了。恰逢infoq推出了《Getting Started with Rails》中译本的书推出，赶快一睹为快。<br />Grails的版本进化得太快，我是读着原程序看完的，因为无法运行，在Grail的网站上已经找不到grails 0.5的版本了（不知道是不是我老了，眼睛不好了：P ）。实在不习惯于使用notepad之流的东西来写代码（我已经被eclipse彻底的腐化了），下了一个Grails for eclipse的插件，结果这东西让我痛不欲生，代码照着书上的写上去，却无法运行，注释了，重新来一遍，居然又好了，极度不稳定。不过错误，倒是让我意外的了解了部分grails框架的东西。<br />闲话少说，还是谈一谈个人感受。<br />以下是我的总结：<br />一、Rails框架<br />    rails框架的思想就是敏捷开发。主要信奉的原则“规约重于配置”（convention over configuration）。<br /><br />二、Grails<br />   grails是建立在Groovy基础上的一种Rails框架。Groovy较之其它脚本语言的优势在于可以直接调用Java类。<br />   Grail框架使用以下：<br />    Hibernate－－－>提供ORM映射<br />    Spring   －－－>提供MVC以及依赖注入<br />    SiteMesh －－－>提供界面布局管理<br /><br />三、Grails开发及特点<br />  1. 建立项目 grails create-app<br />  2. 进入项目<br />  3. 建立领域类 grails create-domain-class<br />     （1）对于对象的属性的定义<br />     （2）对于对象与对象之间的关系定义<br />   注：类似于Hibernate或JPA使用Annotation进行关系映射<br />     （3）执行验证<br />   注：类似于struts的validateForm做的工作<br />  4. 建立控制器 grails create-controller<br />     （1）对态Action生成，生成CRUD<br />           scaffold  = true<br />     （2）通过控制器中定义的Action来导航<br />   注：类似于Struts的xml配置文件中的method<br />     （3）通过解析URL来实现导航判断，即进入哪个<br />     （4）通过重载默认值来定制<br />     （5）对象的保存方法（ORM方法的自动织入）<br />   可以在对象上直接调用 save()等方法<br />   注：类似于JPA中使用EntityManageer来管理类，加载于对象上，可以通过AOP来实现，           不知道Grails是不是这样做的。<br />     （6） 错误消息提示<br />   注：类似于Struts中的error message<br /><br />总结：从Grails的框架来看，其通过规约来实现了一系列的常用的操作，从目前来看，要将grails用于商用，还是不太实际，从稳定性、健壮性各个方面（有空去看一看grails框架的bug列表），但是其架构的理念可以值得我们去借鉴。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/149489#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>Wed, 19 Dec 2007 17:23:29 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/149489</link>
        <guid>http://jimmy-shine.javaeye.com/blog/149489</guid>
      </item>
      <item>
        <title>以不合适的方式在编程</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/147942" style="color:red;">http://jimmy-shine.javaeye.com/blog/147942</a>&nbsp;
          发表时间: 2007年12月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          越来越喜欢组件化的开发了，可能是对于组件化开发的喜欢。<br />在Java EE中有Tag，在基于asp的编程中，看到了用pascal编写的脚本打包成dll。习惯于用组件进行开发，却有一个不太好的习惯，习惯于使用style进行样式的定义，虽然对于一些背景色什么的设置会在tag的tld中定义，可是明知道这样做，却不想去改变，使用css不更好吗？<br /><br />放下项目管理中的一些事情，潜心在编写着自己的程序，一个一个的初始化组件，感觉还是这种感觉好。不用去考虑今天安排谁做什么，谁做完了没有，不用想怎么去让不积极的人加油工作。自己控制自己还是比较容易的。<br /><br />已经很久没有静心学习了，虽然断断续续的看着EJB，也不时的看看JBPM，可是没有真正的可以静下来。<br /><br />还是努力写完程序吧！加油，看来要重新给自己制定学习任务表！
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/147942#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/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>Wed, 12 Dec 2007 20:49:44 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/147942</link>
        <guid>http://jimmy-shine.javaeye.com/blog/147942</guid>
      </item>
      <item>
        <title>Log4j的使用以及在Spring中集成(转)</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/147002" style="color:red;">http://jimmy-shine.javaeye.com/blog/147002</a>&nbsp;
          发表时间: 2007年12月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: 18pt"><span style="color: darkred">log4j简介</span></span><br />简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就<br />可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。<br />Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况，这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题：一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值，则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。<br />log4j使用方法<br />下面介绍的是log4j一些理论方面的知识，读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。<br />　　1、定义配置文件<br />　 首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式，一种是XML格式的文件，一种是Java特性文件log4j.properties（键=值）。下面将介绍使用log4j.properties文件作为配置文件的方法：<br />　　①配置根Logger，其语法为：0<br />　　log4j.rootLogger = [ level ] , appenderName, appenderName, …<br />　　其中，level 是日志记录的优先级，分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别，优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别，您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别，则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。<br />　　②配置日志信息输出目的地Appender，其语法为：<br />log4j.appender.appenderName = fully.qualified.name.of.appender.class <br />　　log4j.appender.appenderName.option1 = value1 <br />　　… <br />　　log4j.appender.appenderName.option = valueN <br />　　其中，Log4j提供的appender有以下几种： <br />　　org.apache.log4j.ConsoleAppender（控制台）， <br />　　org.apache.log4j.FileAppender（文件）， <br />　　org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件），<br />　　org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件）， <br />　　org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方） <br />　 ③配置日志信息的格式（布局），其语法为：<br />　　log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class <br />　　log4j.appender.appenderName.layout.option1 = value1 <br />　　… <br />　　log4j.appender.appenderName.layout.option = valueN <br />　　其中，Log4j提供的layout有以下几种： <br />　　org.apache.log4j.HTMLLayout（以HTML表格形式布局）， <br />　　org.apache.log4j.PatternLayout（可以灵活地指定布局模式）， <br />　　org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串）， <br />　　org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） <br />　　Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下： %m 输出代码中指定的消息<br />　　%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL <br />　　%r 输出自应用启动到输出该log信息耗费的毫秒数 <br />　　%c 输出所属的类目，通常就是所在类的全名 <br />　　%t 输出产生该日志事件的线程名 <br />　　%n 输出一个回车换行符，Windows平台为“ ”，Unix平台为“ ” <br />　　%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d...{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921 <br />　　%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10) <br />　　　　<br />2、在代码中使用Log4j<br />　　①得到记录器<br />　　使用Log4j，第一步就是获取日志记录器，这个记录器将负责控制日志信息。其语法为：<br />　　public static Logger getLogger( String name)<br />　　通过指定的名字获得记录器，如果必要的话，则为这个名字创建一个新的记录器。Name一般取本类的名字，比如：<br />　　static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )<br />　　②读取配置文件<br />　　当获得了日志记录器之后，第二步将配置Log4j环境，其语法为：<br />BasicConfigurator.configure ()： 自动快速地使用缺省Log4j环境。<br />　　PropertyConfigurator.configure ( String configFilename) ：读取使用Java的特性文件编写的配置文件。<br />例：PropertyConfigurator.configure(".\\src\\log4j.properties")<br />　　DOMConfigurator.configure ( String filename ) ：读取XML形式的配置文件。<br />　　③插入记录信息（格式化日志信息）<br />　　当上两个必要步骤执行完毕，就可轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方，其语法如下：<br />　　Logger.debug ( Object message ) ;<br />　　Logger.info ( Object message ) ;<br />　　Logger.warn ( Object message ) ;<br />　　Logger.error ( Object message ) ;<br />log4j范例程序<br />下面将使用一个最简单的范例程序来进一步说明log4j的使用方法。程序代码如下：<br /> <pre name="code" class="java">
import org.apache.log4j.*;
 
public class LogTest ...{
 
 
    static Logger logger = Logger.getLogger(LogTest.class.getName());
 
    public static void main(String[] args) ...{
 
        PropertyConfigurator.configure ( “.\srclog4j.properties”)；
         logger.debug("Debug ...");
 
        logger.info("Info ...");
 
        logger.warn("Warn ...");
 
        logger.error("Error ...");
 
    }
}
</pre><br /><br /><br />程序说明：<br />① static Logger logger = Logger.getLogger(LogTest.class.getName());就是创建一个属于LogTest类的Logger对象，创建时要告知Logger你当前的Class是什么。<br />② PropertyConfigurator.configure ( “log4j.properties”)就是说使用当前工程目录下的src文件夹中的log4j.properties文件作为配置文件。若将log4j.properties放在工程根目录下也可不写此句，程序会自动找到配置文件。<br />③ logger.debug就是输出debug的信息，logger.info就是输出提示信息，logger.warn就是显示警告信息，logger.error就是显示错误信息。<br /> <br />下面是配置文件log4j.properties的内容：<br /> <br />程序说明：<br />1. log4j.rootCategory=DEBUG, stdout，R<br />就是说我要显示所有优先权等於和高于Debug的信息。<br />"stdout"，”R”表示我定义了两个输出端(随便什么名字都好)。<br />2 .下面的三行说stdout输出端其实是标准输出Console，也就是屏幕。输出的格式是PatternLayout。转换方式是%5p (%F:%L) - %m%n，即前五格用来显示优先权，再显示当前的文件名，加当前的行数。最后是logger.debug()或logger.info()或logger.warn()或logger.error()里的信息。%n表示回车空行。<br />3 . 再加上下面六行则log信息不光显示在屏幕上，而且将被保存在一个叫"log.txt"的文件里，文件最大为100KB。如果文件大小超过100KB，文件会被备份成"log.txt.1"，新的"log.txt"继续记录log信息。<br />接下来我们可以改变log4j.properties，而不需重新编译就可以控制log信息是否显示、log信息的输出端类型、输出方式、输出格式，<br />等等。举例如下：<br />1. 在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=OFF, stdout,R"，这样所有的log信息都不会显示了；解决了本文开始提出的问题。<br /><br />2 . 在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=INFO, stdout,R"，这样只显示INFO, WARN, ERROR的log信息，而DEBUG信息不会被显示；<br /> <br />在web程序中使用log4j注意问题<br />1、    由于jsp或servlet在执行状态时没有当前路径概念，所有使用PropertyConfigurator.configure （String）语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(string)语句。例：<br />//得到当前jsp路径<br />String prefix = getServletContext().getRealPath("/");<br />//读取log4j.properties<br />PropertyConfigurator.configure(prefix+\\WEB-INF\\log4j.properties);<br />2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。例：<br />     log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。<br /><br />log4e使用说明<br />在了解了log4j的功能后，我们肯定会我们的程序中编写一些Log4j日志记录。对于使用Eclipse的程序员Log4e将是我们最得力的log4j日志编写助手，现在开始Log4e之旅。<br />Log4e是一个免费的Eclipse Plugin，它可帮助你在你的Java工程中快速加入Log；我们可以在http://log4e.jayefem.de/index.php/Download网站上下载Log4e最新版本。下载后将相应文件夹拷贝到Eclipse的插件目录下，重新Eclipse，在首选项中会多出一个Log4e选项。<br />Log4e可以有多个插入Log为一个方法、类，当然也可以在当前位置插入Log，同时其也可以把Sysout.out.println()的转换为log；所有的这一切只需要你点点鼠标或者按一次快捷键，<br /> <br /><span style="color: darkred"> 在Spring的项目中配置Log4j</span><br /><br />1.在classpath的根目录下面不放置log4j.properties<br />在用junit本地测试的时候会提示：<br /><br />log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.access.SingletonBeanFactoryLocator).<br />log4j:WARN Please initialize the log4j system properly.<br /><br />然后我们是看不到spring加载bean的配置信息的。<br />在classpath路径下加入：log4j.properties，则能够显示bean的加载信息<br /><br />2. 在web应用中为Spring配置log4j<br />Spring的做法是使用一个Servlet Listener，在Web Container启动时把ROOT的绝对路径写到系统变量里，这样log4j的配置文件里就可以用${myAppfuse.root}来表示刚刚设进去的系统变量：log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog.log<br />在Web.xml中配置语句如下：<br /><pre name="code" class="xml">
 &lt;!--如果不设，默认为web.root,但最好设置，以免项目间冲突 -->
&lt;context-param>     
 &lt;param-name>webAppRootKey&lt;/param-name>      
 &lt;param-value>myappfuse.root&lt;/param-value> 
&lt;/context-param>
&lt;context-param>   
 &lt;param-name>log4jConfigLocation&lt;/param-name>   
 &lt;param-value>/WEB-INF/classes/log4j.properties&lt;/param-value>
&lt;/context-param>
&lt;listener>   
 &lt;listener-class>org.springframework.web.util.Log4jConfigListener&lt;/listener-class>
&lt;/listener> 
&lt;!--这里配置了一个listener，也可以配置servlet -->
&lt;servlet>
  &lt;servlet-name>log4j&lt;/servlet-name>
  &lt;servlet-class>
   org.springframework.web.util.Log4jConfigServlet
  &lt;/servlet-class>
  &lt;load-on-startup>1&lt;/load-on-startup>
 &lt;/servlet>
</pre><br /><br />配置好了以后我们就可以在当前应用的logs目录下找到日志记录文件：mylog.log<br />属性log4jConfigLocation的值建议还是设置为：/WEB-INF/classes/log4j.properties，这样我们在不启动web应用的时候，做一些测试这能够正确地记录日志信息。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/147002#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/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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 09 Dec 2007 09:27:00 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/147002</link>
        <guid>http://jimmy-shine.javaeye.com/blog/147002</guid>
      </item>
      <item>
        <title>JBoss Tools--eclipse开发基于B/S模式下的必备插件</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/143967" style="color:red;">http://jimmy-shine.javaeye.com/blog/143967</a>&nbsp;
          发表时间: 2007年11月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JBoss是越来越强大了，一直有使用JBoss的，自从归属于Redhat之后，就更强大了。<br />
使用eclipse大家可能会到处找插件，处理一堆的东西，不过如果你是基于JBoss AS进行开发，或者说你的项目中引入了很多JBoss开源社区的技术。JBPM?Seam?Hibernate?等等，那么就建议你看看JBoss Tools。绝对是一个好用的插件，不要问我地址在哪里，连JBoss项目的网站也不知道在哪里，建议你先google一下，再抄上一百遍。<br />
JBoss Tools中包括了对于JSF、JBPM、JSP、XDoclet等的支持，具体大家去发掘了。对于JSP的支持包括可视化编辑，用过Dreamweaver没有，这对于有些需要而已的页面绝对是一个福音，笔者以前就是因为做一个首页的而已花费了一天的时间。<br />
另外，其JSF的工具也相当好用。大家可以去发现了。<br />
另说明一下，对于Hibernate的支持，需要下载Hibernate Tools，Hibernate Tools并不集成在JBoss Tools中。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/143967#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/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>Tue, 27 Nov 2007 13:32:54 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/143967</link>
        <guid>http://jimmy-shine.javaeye.com/blog/143967</guid>
      </item>
      <item>
        <title>eclipse3.4到底改变了什么，陈桥五笔无法使用</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/143517" style="color:red;">http://jimmy-shine.javaeye.com/blog/143517</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Eclipse发布了3.4M3，内置了许多有用的新功能，最直接的莫过于加入了对于javascript的支持。<br />
<br />
早上打开的时候无意中发现了汉字无法输入，敲击时，没有任何反应，又使用了搜狗拼音试了一下，发现正常，不知道3.4改变了什么？<br />
算bug吗？
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/143517#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 09:57:51 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/143517</link>
        <guid>http://jimmy-shine.javaeye.com/blog/143517</guid>
      </item>
      <item>
        <title>fedora社区应当向ubuntu及windows社区学习</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/141502" style="color:red;">http://jimmy-shine.javaeye.com/blog/141502</a>&nbsp;
          发表时间: 2007年11月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在&ldquo;狼人&rdquo;发布后，马上下了最新的fedora core8，3.2G的容量，一个晚上才上了下下来，马上开始安装。下面列举一下fedora core8的安装感受<br />
<br />
1、安装时，原来的grub安装时，选择默认进入的系统的配置的选项不见了，现在安装完后，只能去手动去更改grub的配置来实现，这在以前版本中是有的。不知道为什么会去掉了，是羽翼丰满了？认为不会安装双系统了，还是fedora的社区的人自作聪明？<br />
补充：配置默认的操作系统依然存在，不过已经进入了二级菜单了，就是在分区后，还要查看并编辑分区信息。<br />
2、终于有了对于ntfs的读写操作了，这个要表扬一下，一直到了fedora core8的版本中才有，以前一直要自己去加载模块，编译。（PS一下以前的fedora社区的人，modprobe命令绝对是一个恶梦）<br />
3、令人费解的网络配置工具，对于在多个场所使用的人绝对是恶梦般的感觉，使用root用户在进入系统后进行网络设置，不会立即见效（指如果关闭了网络配置窗口），让人想要抓狂。大多数情况下，我的笔记本是移动的。网络情况也是不一样的。<br />
4、问题依旧，对于无线的支持仍然是很烂。这一点要表扬一下ubuntu,不知道dell选择使用ubuntu作为系统，是不是因为简单。在安装完ubuntu的情况下，大多数情况下就可以直接使用了，无线网卡（笔者外接TP－LINK W510G），以及快捷键（Fn+某键）均可以使用。 在这一点上，fedora绝对是一个让你可以crazy的。且不明白是不是fedora根本不测试这个，还是由于某某项目不测试。笔者是使用redhat EL4时，通过madwifi还能成功加载，到了fedora core8上，无论通过什么方式，madwifi,ndiswrapper都没有办法加载上去。（怀念Ubuntu），至今只能连着网线，拖着长长的尾巴使用。<br />
5、百度的问题，还是firefox，亦或是fedora的问题，通过百度搜索到mp3后，始终无法下载，下下来的根本无法播放。<br />
6、更新。（如果可以，我宁愿不更新），下载软件包速度慢，像背着重重的壳的蜗牛，慢那是网络的问题，最让人无法容忍的是居然没有进度条，到底下了多少了，神啊，你告诉我吧。还要多久我才能关机。（怀念ubuntu，虽然也是蜗牛，但是至少还知道还要多长时间）。<br />
7、使用了gnomeu新版本后，速度果然有所提升。<br />
8、login页面，明显的是参照了windows xp，旁边显示用户。不知道是好，还是不好？大家自己评价。<br />
9、界面还是漂亮的，比起ubuntu强多了。<br />
10、内置了通过sun认证的jdk，不知道是福是祸，偶反正不用，还是标准的jdk安全。<br />
11、大部分软件可以通过光盘安装，确保了不至于需要太多的网络传输。（ubuntu在这一点上绝对是让人抓狂，下载一个Sun的jdk 5.0，提示要1D多，放弃，另7.04的ubuntu，在偶机器上一运行eclipse建立动态web项目时，就死机，让我直接放弃了ubuntu）。<br />
<br />
12、附加一点，是不是microsoft的人进了fedora社区，动不动就假死状态在fedora core8上已经成了家常便饭。大家可以一边更新时，点一下别的窗口再去看一下你的更新状态。<br />
<br />
最后，谁能告诉我，在fedora core8中，怎样才能用上我的无线网卡。<br />
放上使用madwifi时出错的地方，modprobe时，提示device not found。
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/141502#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/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 18 Nov 2007 14:35:53 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/141502</link>
        <guid>http://jimmy-shine.javaeye.com/blog/141502</guid>
      </item>
      <item>
        <title>初等数学</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/141060" style="color:red;">http://jimmy-shine.javaeye.com/blog/141060</a>&nbsp;
          发表时间: 2007年11月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />
&nbsp;初等代数是研究数字和文字的代数运算理论和方法，更确切的说，是研究实数和复数，以<br />
及以它们为系数的多项式的代数运算理论和方法的数学分支学科。<br />
<br />
&nbsp;&nbsp;&nbsp; 初等代数是更古老的算术的推广和发展。在古代，当算术里积累了大量的，关于各种数<br />
量问题的解法后，为了寻求有系统的、更普遍的方法，以解决各种数量关系的问题，就产生<br />
了以解方程的原理为中心问题的初等代数。<br />
<br />
&nbsp;&nbsp;&nbsp; 代数是由算术演变来的，这是毫无疑问的。至于什么年代产生的代数学这门学科，就很<br />
不容易说清楚了。比如，如果你认为&ldquo;代数学&rdquo;是指解ax2+bx+c=0这类用符号表示的方程的<br />
技巧。那么,这种&ldquo;代数学&rdquo;是在十六世纪才发展起来的。<br />
<br />
&nbsp;&nbsp;&nbsp; 如果我们对代数符号不是要求象现在这样简练，那么，代数学的产生可上溯到更早的年<br />
代。西方人将公元前三世纪古希腊数学家刁藩都看作是代数学的鼻祖。而在中国，用文字来<br />
表达的代数问题出现的就更早了。<br />
<br />
&nbsp;&nbsp;&nbsp; &ldquo;代数&rdquo;作为一个数学专有名词、代表一门数学分支在我国正式使用，最早是在1859年<br />
。那年，清代数学家里李善兰和英国人韦列亚力共同翻译了英国人棣么甘所写的一本书，译<br />
本的名称就叫做《代数学》。当然，代数的内容和方法，我国古代早就产生了，比如《九章<br />
算术》中就有方程问题。<br />
&nbsp;&nbsp;&nbsp; 初等代数的中心内容是解方程，因而长期以来都把代数学理解成方程的科学，数学家们<br />
也把主要精力集中在方程的研究上。它的研究方法是高度计算性的。<br />
<br />
&nbsp;&nbsp;&nbsp; 要讨论方程，首先遇到的一个问题是如何把实际中的数量关系组成代数式，然后根据等<br />
量关系列出方程。所以初等代数的一个重要内容就是代数式。由于事物中的数量关系的不同<br />
，大体上初等代数形成了整式、分式和根式这三大类代数式。代数式是数的化身，因而在代<br />
数中，它们都可以进行四则运算，服从基本运算定律，而且还可以进行乘方和开方两种新的<br />
运算。通常把这六种运算叫做代数运算，以区别于只包含四种运算的算术运算。<br />
<br />
&nbsp;&nbsp;&nbsp; 在初等代数的产生和发展的过程中，通过解方程的研究，也促进了数的概念的进一步发<br />
展，将算术中讨论的整数和分数的概念扩充到有理数的范围，使数包括正负整数、正负分数<br />
和零。这是初等代数的又一重要内容，就是数的概念的扩充。<br />
<br />
&nbsp;&nbsp;&nbsp; 有了有理数，初等代数能解决的问题就大大的扩充了。但是，有些方程在有理数范围内<br />
仍然没有解。于是，数的概念在一次扩充到了实数，进而又进一步扩充到了复数。<br />
<br />
&nbsp;&nbsp;&nbsp; 那么到了复数范围内是不是仍然有方程没有解，还必须把复数再进行扩展呢？数学家们<br />
说：不用了。这就是代数里的一个著名的定理&mdash;代数基本定理。这个定理简单地说就是n次<br />
方程有n个根。1742年12月15日瑞士数学家欧拉曾在一封信中明确地做了陈述，后来另一个<br />
数学家、德国的高斯在1799年给出了严格的证明。<br />
<br />
&nbsp;&nbsp;&nbsp; 把上面分析过的内容综合起来，组成初等代数的基本内容就是：<br />
<br />
&nbsp;&nbsp;&nbsp; 三种数&mdash;&mdash;有理数、无理数、复数<br />
<br />
&nbsp;&nbsp;&nbsp; 三种式&mdash;&mdash;整式、分式、根式<br />
<br />
&nbsp;&nbsp;&nbsp; 中心内容是方程&mdash;&mdash;整式方程、分式方程、根式方程和方程组。<br />
<br />
&nbsp;&nbsp;&nbsp; 初等代数的内容大体上相当于现代中学设置的代数课程的内容，但又不完全相同。比如<br />
，严格的说，数的概念、排列和组合应归入算术的内容；函数是分析数学的内容；不等式的<br />
解法有点像解方程的方法，但不等式作为一种估算数值的方法，本质上是属于分析数学的范<br />
围；坐标法是研究解析几何的&hellip;&hellip;。这些都只是历史上形成的一种编排方法。<br />
<br />
&nbsp;&nbsp;&nbsp; 初等代数是算术的继续和推广，初等代数研究的对象是代数式的运算和方程的求解。代<br />
数运算的特点是只进行有限次的运算。全部初等代数总起来有十条规则。这是学习初等代数<br />
需要理解并掌握的要点。<br />
<br />
&nbsp;&nbsp;&nbsp; 这十条规则是：<br />
<br />
&nbsp;&nbsp;&nbsp; 五条基本运算律：加法交换律、加法结合律、乘法交换律、乘法结合律、分配律；<br />
<br />
&nbsp;&nbsp;&nbsp; 两条等式基本性质:等式两边同时加上一个数，等式不变；等式两边同时乘以一个非零<br />
的数，等式不变；<br />
<br />
&nbsp;&nbsp;&nbsp; 三条指数律：同底数幂相乘，底数不变指数相加；指数的乘方等于底数不变指数相乘<br />
积的乘方等于乘方的积。<br />
<br />
&nbsp;&nbsp;&nbsp; 初等代数学进一步的向两个方面发展，一方面是研究未知数更多的一次方程组；另一方<br />
面是研究未知数次数更高的高次方程。这时候，代数学已由初等代数向着高等代数的方向发<br />
展了。<br />
<br />
<br />
<br />
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/141060#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>Fri, 16 Nov 2007 09:21:25 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/141060</link>
        <guid>http://jimmy-shine.javaeye.com/blog/141060</guid>
      </item>
      <item>
        <title>Ubuntu下共享文件夹给Windows用户</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/141016" style="color:red;">http://jimmy-shine.javaeye.com/blog/141016</a>&nbsp;
          发表时间: 2007年11月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          首先当然是要安装samba了，呵呵：
<p>　　sudo apt-get install samba</p>
<p>　　sudo apt-get install smbfs</p>
<p>　　下面我们来共享群组可读写文件夹，假设你要共享的文件夹为： /home/ray/share</p>
<p>　　首先创建这个文件夹</p>
<p>　　mkdir /home/ray/share</p>
<p>　　chmod 777 /home/ray/share</p>
<p>　　备份并编辑smb.conf允许网络用户访问</p>
<p>　　sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup</p>
<p>　　sudo gedit /etc/samba/smb.conf</p>
<p>　　搜寻这一行文字</p>
<p>　　； security = user</p>
<p>　　用下面这几行取代</p>
<p>　　security = user</p>
<p>　　username map = /etc/samba/smbusers</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">&nbsp; 若要使用用户可以匿名访问到，用下面这一行取代：</font></p>
<p><font color="#ff0000">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  security = share</font><br />
</p>
<p>　　将下列几行新增到文件的最后面，假设允许访问的用户为：newsfan。而文件夹的共享名为 Share</p>
<p>　　[Share]</p>
<p>　　comment = Shared Folder with username and password</p>
<p>　　path = /home/ray/share</p>
<p>　　public = yes</p>
<p>　　writable = yes</p>
<p>　　valid users = newsfan</p>
<p>　　create mask = 0700</p>
<p>　　directory mask = 0700</p>
<p>　　force user = nobody</p>
<p>　　force group = nogroup</p>
<p>　　available = yes</p>
<p>　　browseable = yes</p>
<p>　　然后顺便把这里改一下，找到[global]把 workgroup = MSHOME 改成</p>
<p>　　workgroup = WORKGROUP</p>
<p>　　display charset = UTF-8</p>
<p>　　unix charset = UTF-8</p>
<p>　　dos charset = cp936</p>
<p>　　后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local，UTF-8 有可能需要改成 cp936。自己看着办吧。</p>
<p>　　现在要添加newsfan这个网络访问帐户。如果系统中当前没有这个帐户，那么</p>
<p>　　sudo useradd newsfan</p>
<p>　　要注意，上面只是增加了newsfan这个用户，却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问，不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。</p>
<p>　　现在要新增网络使用者的帐号：</p>
<p>　　sudo smbpasswd -a newsfan</p>
<p>　　sudo gedit /etc/samba/smbusers</p>
<p>　　在新建立的文件内加入下面这一行并保存</p>
<p>　　newsfan = &quot;network username&quot;</p>
<p>　　如果将来需要更改newsfan的网络访问密码，也用这个命令更改</p>
<p>　　sudo smbpasswd -a newsfan</p>
<p>　　删除网络使用者的帐号的命令把上面的 -a 改成 -x</p>
<p>　　sudo testparm</p>
<p>　　sudo /etc/init.d/samba restart</p>
<p>　　最后退出重新登录或者重新启动一下机器。</p>
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/141016#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>Thu, 15 Nov 2007 22:25:35 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/141016</link>
        <guid>http://jimmy-shine.javaeye.com/blog/141016</guid>
      </item>
      <item>
        <title>IBM DW也出现问题了</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/137229" style="color:red;">http://jimmy-shine.javaeye.com/blog/137229</a>&nbsp;
          发表时间: 2007年11月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          2007年11月1日11时10分，在进入IBM DW的教程时，出现了如下错误：
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/137229#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>Thu, 01 Nov 2007 11:18:00 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/137229</link>
        <guid>http://jimmy-shine.javaeye.com/blog/137229</guid>
      </item>
      <item>
        <title>JavaFX初探</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/137173" style="color:red;">http://jimmy-shine.javaeye.com/blog/137173</a>&nbsp;
          发表时间: 2007年11月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JavaFx是sun在2007新推出的一种脚本语言，在推出之时也是号称令整个Java社区为之振奋的语言。<br />
昨天偶然在IBM DW上看到了教程，遂花一天时间学习了，事实上，就整个语言来说，JavaFX的语法是相当简单的，如果对于Ruby有所知的朋友们应当会很轻松的就可以入手。<br />
在sun的官网上下载了几个教程，首先研读了一下JavaFX_Programming_Language,这是对于语法的描述。<br />
从语法上来说，JavaFX也是sun为了适合于Java与其它脚本语言的综合体，class，动态数组，类sql的操作。不可置否的是，JavaFX还是一个很年轻的脚本语言，我也没有找到如何打包的方法，从sun官方的提供的demo来看，运行速度上似乎还是有问题，看来要追赶上ruby等语言还是需要一定的时间的。<br />
另外，个人对于其应用前景还是有质疑，其推出的目的是为了什么，从现在使用意义上来看，无非是提供了简单于swing编程的更简单的类脚本的实现方式。<br />
号称的可以跨平台，在多个设备上使用的脚本，不知道会有多少人买帐。<br />
期待中。。。。。<br />
          <br/>
          <span style="color:red;">
            <a href="http://jimmy-shine.javaeye.com/blog/137173#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 Nov 2007 09:38:18 +0800</pubDate>
        <link>http://jimmy-shine.javaeye.com/blog/137173</link>
        <guid>http://jimmy-shine.javaeye.com/blog/137173</guid>
      </item>
      <item>
        <title>Emacs的快捷键</title>
        <author>jimmy.shine</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jimmy-shine.javaeye.com">jimmy.shine</a>&nbsp;
          链接：<a href="http://jimmy-shine.javaeye.com/blog/133178" style="color:red;">http://jimmy-shine.javaeye.com/blog/133178</a>&nbsp;
          发表时间: 2007年10月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">cpp 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-cpp" start="1">
    <li class="alt"><span><span>直接用文件名打开文件&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;filecache&nbsp;包提供了直接用文件名打开文件的方法，不用关心文件在那个目录里&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;面。在打开文件时，minibuffer&nbsp;中按&nbsp;C-tab，直接打开相应文件。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;(eval-after-load&nbsp;<span class="string">&quot;filecache&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;'(progn&nbsp;(file-cache-add-directory-<span class="keyword">using</span><span>-find&nbsp;</span><span class="string">&quot;~/projects&quot;</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(file-cache-add-directory-list&nbsp;'(<span class="string">&quot;~/work&quot;</span><span>&nbsp;</span><span class="string">&quot;~/work/proj1&quot;</span><span>&nbsp;</span><span class="string">&quot;~/work/proj2&quot;</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(file-cache-add-file-list&nbsp;(list&nbsp;<span class="string">&quot;~/foo/bar&quot;</span><span>&nbsp;</span><span class="string">&quot;~/baz/bar&quot;</span><span>))))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;(define-key&nbsp;minibuffer-local-completion-map&nbsp;[C-tab]&nbsp;'file-cache-minibuffer-complete)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;(define-key&nbsp;minibuffer-local-map&nbsp;[C-tab]&nbsp;'file-cache-minibuffer-complete)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;(define-key&nbsp;minibuffer-local-must-match-map&nbsp;[C-tab]&nbsp;'file-cache-minibuffer-complete)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>----&nbsp;&nbsp;</span></li>
    <li class=""><span>修改文件名补全后缀&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;(setq&nbsp;completion-ignored-extensions&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(append&nbsp;'(<span class="string">&quot;.bin&quot;</span><span>&nbsp;</span><span class="string">&quot;.ext&quot;</span><span>&nbsp;</span><span class="string">&quot;.free&quot;</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;completion-ignored-extensions))&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;(<span class="keyword">delete</span><span>&nbsp;</span><span class="string">&quot;.log&quot;</span><span>&nbsp;completion-ignored-extensions)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>----&nbsp;&nbsp;</span></li>
    <li class=""><span>在&nbsp;Windows&nbsp;XP&nbsp;上使用的字体&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;(create-fontset-from-fontset-spec&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;(concat&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;-*-Courier&nbsp;New-normal-r-*-*-13-*-*-*-c-*-fontset-chinese,&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;chinese-gb2312:-*-MS&nbsp;Song-normal-r-*-*-14-*-*-*-c-*-gb2312*-*&quot;</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;(create-fontset-from-fontset-spec&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;(concat&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;-*-Courier&nbsp;New-bold-r-*-*-13-*-*-*-c-*-fontset-chinesebold,&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;chinese-gb2312:-*-MS&nbsp;Song-bold-r-*-*-14-*-*-*-c-*-gb2312*-*&quot;</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;(setq&nbsp;<span class="keyword">default</span><span>-frame-alist&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;'((font&nbsp;.&nbsp;<span class="string">&quot;fontset-chinese&quot;</span><span>)))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;(set-face-font&nbsp;'bold&nbsp;<span class="string">&quot;fontset-chinesebold&quot;</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>----&nbsp;&nbsp;</span></li>
    <li class="alt"><span>pop&nbsp;up&nbsp;marks&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;(global-set-key&nbsp;<span class="string">&quot;\C-z&quot;</span><span>&nbsp;'set-mark-command)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;(global-set-key&nbsp;<span class="string">&quot;\C-x\C-p&quot;</span><span>&nbsp;'pop-global-mark)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;C-u&nbsp;C-z&nbsp;&nbsp;&nbsp;cycle&nbsp;in&nbsp;local&nbsp;buffer&nbsp;mark&nbsp;ring.&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;C-x&nbsp;C-p&nbsp;&nbsp;&nbsp;cycle&nbsp;in&nbsp;global&nbsp;mark&nbsp;ring.&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>----&nbsp;&nbsp;</span></li>
    <li class=""><span>工具栏添加&nbsp;LaTeX&nbsp;文档的章节索引&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;使用&nbsp;AUCTeX&nbsp;和&nbsp;RefTeX&nbsp;编辑&nbsp;LaTeX&nbsp;文件时，如果你喜欢用鼠标，不妨试试这个，&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;可以在工具栏添加一个&ldquo;Index&rdquo;菜单，直接在你的章节之间跳转。&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;M-x&nbsp;imenu-add-menubar-index&nbsp;或者&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;(setq&nbsp;reftex-load-hook&nbsp;(quote&nbsp;(imenu-add-menubar-index)))&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;(setq&nbsp;reftex-mode-hook&nbsp;(quote&nbsp;(imenu-add-menubar-index)))&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>----&nbsp;&nbsp;</span></li>
    <li class=""><span>退出&nbsp;picture&nbsp;mode&nbsp;可以用&nbsp;C-c&nbsp;C-c&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;据说是一个没有文档的键。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>----&nbsp;&nbsp;</span></li>
    <li class="alt"><span>find&nbsp;tags&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;M-.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find-tag&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;C-M-.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find-tag-regexp&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;C-x&nbsp;4&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find-tag-other-window&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;C-x&nbsp;5&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find-tag-other-frame&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>----&nbsp;&nbsp;</span></li>
    <li class=""><span>sexp&nbsp;operate&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;backward-kill-sexp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M-C-BACKSPACE&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;backward-sexp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C-M-b&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;eval-last-sexp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C-x&nbsp;C-e&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;eval-print-last-sexp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M-x&nbsp;eval-print-last-sexp&nbsp;