<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_玛瑙河的部落格</title><subtitle type="text">Focus on Python, QT, XeTeX and others.(原创博客，转载请注明作者及出处！尊重他人劳动成果的理念应当随知识一起传播。）</subtitle><id>http://feed.cnblogs.com/blog/u/13658/rss</id><updated>2011-09-08T08:37:01Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/13658/rss"/><entry><id>http://www.cnblogs.com/agateriver/archive/2011/09/08/masm_dialog_revision.html</id><title type="text">解决MASM编程对话框中文问题</title><summary type="text">由于MASM32中Dialog.inc文件中ustring宏有问题，导致用对话框相关的宏显示含有中文的对话框时出问题。原代码如下所示： ; ------------------------------------------------ ; write unicode string at current location in EDI ; ------------------------------------------------ ustring MACRO quoted_text LOCAL asc_txt .data a...</summary><published>2011-09-08T08:34:00Z</published><updated>2011-09-08T08:34:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2011/09/08/masm_dialog_revision.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2011/09/08/masm_dialog_revision.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;由于MASM32中Dialog.inc文件中ustring宏有问题，导致用对话框相关的宏显示含有中文的对话框时出问题。原代码如下所示：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;; ------------------------------------------------&#xD;
    ; write unicode string at current location in EDI&#xD;
    ; ------------------------------------------------&#xD;
      ustring MACRO quoted_text&#xD;
        LOCAL asc_txt&#xD;
      .data&#xD;
        asc_txt db quoted_text,0&#xD;
      .code&#xD;
        invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,&#xD;
               ADDR asc_txt,-1,edi,LENGTHOF asc_txt&#xD;
        add edi, LENGTHOF asc_txt*2&#xD;
      ENDM&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;修改为以下后正常：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;; ------------------------------------------------&#xD;
    ; write unicode string at current location in EDI&#xD;
    ; ------------------------------------------------&#xD;
      ustring MACRO quoted_text&#xD;
        LOCAL asc_txt,dwMinSize&#xD;
      .data&#xD;
        asc_txt db quoted_text,0&#xD;
        dwMinSize dd 0&#xD;
      .code&#xD;
        invoke MultiByteToWideChar,CP_ACP,0, ADDR asc_txt,-1,0,0 &#xD;
        mov dwMinSize,eax&#xD;
        invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED, ADDR asc_txt,-1,edi,dwMinSize&#xD;
        add edi, dwMinSize&#xD;
        add edi, dwMinSize&#xD;
      ENDM&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;原理参见MSDN库中关于MultiByteToWideChar函数用法相关的资料。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/2171553.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2011/09/08/masm_dialog_revision.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/10/14/1851267.html</id><title type="text">清除U盘子目录变成1K大小的快捷方式病毒的脚本</title><summary type="text">@echo 本脚本删除如下类型的U盘病毒：所有子目录变成1K大小的快捷方式(*.lnk),@echo 实际为病毒隐藏了U盘下的子目录，然后创建了与这些子目录同名的病毒。@echo.@echo 请将此脚本放置在U盘根目录并以管理员身份运行此脚本。@echo 本脚本将作如下动作：1.删除所有快捷方式；2.恢复被病毒隐藏的目录@echo.@echo 运用此脚本可能会带来附加损害，责任自负。可能的副作用如...</summary><published>2010-10-14T06:45:00Z</published><updated>2010-10-14T06:45:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/10/14/1851267.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/10/14/1851267.html"/><content type="html">&lt;pre &gt;@echo 本脚本删除如下类型的U盘病毒：所有子目录变成1K大小的快捷方式(*.lnk),&#xD;
@echo 实际为病毒隐藏了U盘下的子目录，然后创建了与这些子目录同名的病毒。&#xD;
@echo.&#xD;
@echo 请将此脚本放置在U盘根目录并以管理员身份运行此脚本。&#xD;
@echo 本脚本将作如下动作：1.删除所有快捷方式；2.恢复被病毒隐藏的目录&#xD;
@echo.&#xD;
@echo 运用此脚本可能会带来附加损害，责任自负。可能的副作用如下：&#xD;
@echo     1.与此脚本同一目录下后缀为.lnk的全部文件都会被删除，如果您在此&#xD;
@echo       目录自建有快捷方式，请事先备份&#xD;
@echo     2.正常的系统隐藏目录（比如回收站等）会被取消隐藏，请自行甄别并&#xD;
@echo       恢复隐藏。&#xD;
@echo.&#xD;
@echo 如果您不能确定副作用是否会对您造成实际损害，请按2以取消脚本的执行。&#xD;
@echo 否则按1继续执行此脚本。&#xD;
@echo.&#xD;
@CHOICE /C 12 /M "1.继续执行; 2.立即退出"&#xD;
&#xD;
@if %ERRORLEVEL%==2 goto :eof&#xD;
&#xD;
@if exist *.lnk del *.lnk&#xD;
@for /F "delims=\" %%i in ('dir /A:HD /B') do @attrib -H -S "%%i"&#xD;
&#xD;
@echo 脚本执行成功！&#xD;
@pause&#xD;
&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1851267.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/10/14/1851267.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/09/07/scala_pound_bang.html</id><title type="text">Scala 脚本的 pound bang 魔术</title><summary type="text">(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处)在scala语言的创始者Martin Odersky等人所著的《Programing in Scala -- A comprehensive step-by-step guide》一书的附录A中，描述了在Unix和Windows执行Scala脚本的方法：Appendix AScala scripts on Unix and WindowsIf...</summary><published>2010-09-06T22:23:00Z</published><updated>2010-09-06T22:23:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/09/07/scala_pound_bang.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/09/07/scala_pound_bang.html"/><content type="html">&lt;p&gt;(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处&lt;img src="http://www.cnblogs.com/Emoticons/QQ/13.gif" /&gt;)&lt;/p&gt;&#xD;
&lt;p&gt;在scala语言的创始者Martin Odersky等人所著的《Programing in Scala -- A comprehensive step-by-step guide》一书的附录A中，描述了在Unix和Windows执行Scala脚本的方法：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Appendix A&lt;br /&gt;Scala scripts on Unix and Windows&lt;/p&gt;&#xD;
&lt;p&gt;If you&amp;rsquo;re on some flavor of Unix, you can run a Scala script as a shell script&lt;br /&gt;by prepending a &amp;ldquo;pound bang&amp;rdquo; directive at the top of the file. For example,&lt;br /&gt;type the following into a file named helloarg:&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;#&lt;/span&gt;&lt;span style="color: #000000;"&gt;!/&lt;/span&gt;&lt;span style="color: #000000;"&gt;bin&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;sh&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;exec&amp;nbsp;scala&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;$0&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;$@&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;#&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Say&amp;nbsp;hello&amp;nbsp;to&amp;nbsp;the&amp;nbsp;first&amp;nbsp;argument&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;println(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;Hello,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;The initial #!/bin/sh must be the very first line in the file. Once you set its&lt;br /&gt;execute permission:&lt;br /&gt;&lt;span style="color: red;"&gt;$ chmod +x helloarg&lt;/span&gt;&lt;br /&gt;You can run the Scala script as a shell script by simply saying:&lt;br /&gt;&lt;span style="color: red;"&gt;$ ./helloarg globe&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&lt;/span&gt;If you&amp;rsquo;re on Windows, you can achieve the same effect by naming the&lt;br /&gt;file helloarg.bat and placing this at the top of your script:&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;::#&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;@echo&amp;nbsp;off&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;call&amp;nbsp;scala&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;%&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;%*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;goto&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;:eof&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;::&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;#&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;由此可以看到：在*nix环境中(大家应当想到shebang了吧)， 可以通过 &lt;span style="color: #000000;"&gt;exec&amp;nbsp;scala&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;$0&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;$@&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt; 指令来指定用&amp;nbsp;scala 脚本本身，而在window环境中，可以在批处理文件中调用&lt;span style="color: #000000;"&gt;call&amp;nbsp;scala&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;%&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;%*&lt;/span&gt;&amp;nbsp;来执行脚本本身（这里&amp;nbsp;&amp;nbsp;$0和 %0都代表脚本本身）。但是问题来了，当真正用scala执行这个脚本的时候，::!和::!#之间的内容是不符合scala语法的，这部分内容只能被shell执行，直接用scala 执行显然会出现编译错误。因此很自然的想到这其中肯定有某种魔术，在编译执行过程中肯定会以某种方式去除这段&amp;nbsp;shell指令。&lt;/p&gt;&#xD;
&lt;p&gt;这种魔术是如何实现的呢？搜索源码，在 scala-compiler-src\scala\tools\nsc\util\SourceFile.scala这个文件中我们找到如下的代码片段：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;object&amp;nbsp;ScriptSourceFile&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Length&amp;nbsp;of&amp;nbsp;the&amp;nbsp;script&amp;nbsp;header&amp;nbsp;from&amp;nbsp;the&amp;nbsp;given&amp;nbsp;content,&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;one.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;The&amp;nbsp;header&amp;nbsp;begins&amp;nbsp;with&amp;nbsp;"#!"&amp;nbsp;or&amp;nbsp;"::#!"&amp;nbsp;and&amp;nbsp;ends&amp;nbsp;with&amp;nbsp;a&amp;nbsp;line&amp;nbsp;starting&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;with&amp;nbsp;"!#"&amp;nbsp;or&amp;nbsp;"::!#".&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;def&amp;nbsp;headerLength(cs:&amp;nbsp;Array[Char]):&amp;nbsp;Int&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;headerPattern&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Pattern.compile(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"""&lt;/span&gt;&lt;span style="color: #000000;"&gt;^(::)?!#.*(\r|\n|\r\n)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"""&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;Pattern.MULTILINE)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;headerStarts&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;List(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#!&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;::#!&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(headerStarts&amp;nbsp;exists&amp;nbsp;(cs&amp;nbsp;startsWith&amp;nbsp;_))&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;matcher&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;headerPattern&amp;nbsp;matcher&amp;nbsp;cs.mkString&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(matcher.find)&amp;nbsp;matcher.end&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IOException(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;nbsp;file&amp;nbsp;does&amp;nbsp;not&amp;nbsp;close&amp;nbsp;its&amp;nbsp;header&amp;nbsp;with&amp;nbsp;!#&amp;nbsp;or&amp;nbsp;::!#&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;def&amp;nbsp;stripHeader(cs:&amp;nbsp;Array[Char]):&amp;nbsp;Array[Char]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;cs&amp;nbsp;drop&amp;nbsp;headerLength(cs)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;def&amp;nbsp;apply(file:&amp;nbsp;AbstractFile,&amp;nbsp;content:&amp;nbsp;Array[Char])&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;underlying&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BatchSourceFile(file,&amp;nbsp;content)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;headerLen&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;headerLength(content)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;stripped&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ScriptSourceFile(underlying,&amp;nbsp;content&amp;nbsp;drop&amp;nbsp;headerLen,&amp;nbsp;headerLen)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stripped&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;以上声明了一个ScriptSourceFile对象，其apply方法中的content&amp;nbsp;drop&amp;nbsp;headerLen（第22行）是用来去除作为shell指令的文件头的。apply是一个Factory方法，当我们用ScriptSourceFile.apply来创建一个ScriptSourceFile实例的时候，作为shell指令的文件头就被去除了，脚本剩下的部分就能被编译执行了（当然编译过程中还有其它的魔术，这个以后再讲）。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处&lt;img src="http://www.cnblogs.com/Emoticons/QQ/13.gif" /&gt;)&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1820190.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/09/07/scala_pound_bang.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/08/31/goo_gl.html</id><title type="text">Google URL Shorter</title><summary type="text">Chrome 扩展版：http://goo.gl/PiyX,WEB版：http://goo.gl/D15o</summary><published>2010-08-31T01:22:00Z</published><updated>2010-08-31T01:22:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/08/31/goo_gl.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/08/31/goo_gl.html"/><content type="html">&lt;span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium 微软雅黑; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;&lt;span style="line-height: 18px; font-family: verdana, 'courier new'; font-size: 12px" &gt;&#xD;
&lt;p style="text-indent: 0px; margin: 5px auto"&gt;&lt;span style="font-size: 10pt"&gt;Chrome 扩展版：&amp;nbsp;&lt;/span&gt;&lt;a href="http://goo.gl/PiyX"&gt;&lt;span style="font-size: 10pt"&gt;http://goo.gl/PiyX&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;,&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 0px; margin: 5px auto"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 0px; margin: 5px auto"&gt;&lt;span style="font-size: 10pt" &gt;WEB版&lt;/span&gt;&lt;span style="font-size: 10pt" &gt;：&lt;/span&gt;&lt;span style="font-size: 14px" &gt;&amp;nbsp;&lt;a href="http://goo.gl/D15o"&gt;&lt;span style="font-size: 10pt"&gt;http://goo.gl/D15o&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1813325.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/08/31/goo_gl.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/08/30/character_entity_ref.html</id><title type="text">HTML中常用的特殊字符实体编码(Character entity references in HTML 4)</title><summary type="text">(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处)根据&amp;ldquo;http://www.w3.org/TR/REC-html40/sgml/entities.html &amp;rdquo;整理：-- Character entity set. "-//W3C//ENTITIES Latin 1//EN//HTML" ENTITY nbsp "" [&amp;amp;#160;] -- no-break ...</summary><published>2010-08-30T02:27:00Z</published><updated>2010-08-30T02:27:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/08/30/character_entity_ref.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/08/30/character_entity_ref.html"/><content type="html">&lt;p&gt;&lt;span&gt;(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;根据&amp;ldquo;&lt;a href="http://www.w3.org/TR/REC-html40/sgml/entities.html" &gt;http://www.w3.org/TR/REC-html40/sgml/entities.html&lt;/a&gt; &amp;rdquo;整理：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;hline&gt;-- Character entity set. "-//W3C//ENTITIES Latin 1//EN//HTML" &lt;br /&gt;&#xD;
ENTITY nbsp "&amp;nbsp;" [&amp;amp;#160;] -- no-break space = non-breaking space,U++00A0 ISOnum &lt;br /&gt;&#xD;
ENTITY iexcl "&amp;iexcl;" [&amp;amp;#161;] -- inverted exclamation mark, U+00A1 ISOnum &lt;br /&gt;&#xD;
ENTITY cent "&amp;cent;" [&amp;amp;#162;] -- cent sign, U+00A2 ISOnum &lt;br /&gt;&#xD;
ENTITY pound "&amp;pound;" [&amp;amp;#163;] -- pound sign, U+00A3 ISOnum &lt;br /&gt;&#xD;
ENTITY curren "&amp;curren;" [&amp;amp;#164;] -- currency sign, U+00A4 ISOnum &lt;br /&gt;&#xD;
ENTITY yen "&amp;yen;" [&amp;amp;#165;] -- yen sign = yuan sign, U+00A5 ISOnum &lt;br /&gt;&#xD;
ENTITY brvbar "&amp;brvbar;" [&amp;amp;#166;] -- broken bar = broken vertical bar,U++00A6 ISOnum &lt;br /&gt;&#xD;
ENTITY sect "&amp;sect;" [&amp;amp;#167;] -- section sign, U+00A7 ISOnum &lt;br /&gt;&#xD;
ENTITY uml "&amp;uml;" [&amp;amp;#168;] -- diaeresis = spacing diaeresis,U++00A8 ISOdia &lt;br /&gt;&#xD;
ENTITY copy "&amp;copy;" [&amp;amp;#169;] -- copyright sign, U+00A9 ISOnum &lt;br /&gt;&#xD;
ENTITY ordf "&amp;ordf;" [&amp;amp;#170;] -- feminine ordinal indicator, U+00AA ISOnum &lt;br /&gt;&#xD;
ENTITY laquo "&amp;laquo;" [&amp;amp;#171;] -- left-pointing double angle quotation mark= left pointing guillemet, U+00AB ISOnum &lt;br /&gt;&#xD;
ENTITY not "&amp;not;" [&amp;amp;#172;] -- not sign, U+00AC ISOnum &lt;br /&gt;&#xD;
ENTITY shy "&amp;shy;" [&amp;amp;#173;] -- soft hyphen = discretionary hyphen,U++00AD ISOnum &lt;br /&gt;&#xD;
ENTITY reg "&amp;reg;" [&amp;amp;#174;] -- registered sign = registered trade mark sign,U++00AE ISOnum &lt;br /&gt;&#xD;
ENTITY macr "&amp;macr;" [&amp;amp;#175;] -- macron = spacing macron = overline= APL overbar, U+00AF ISOdia &lt;br /&gt;&#xD;
ENTITY deg "&amp;deg;" [&amp;amp;#176;] -- degree sign, U+00B0 ISOnum &lt;br /&gt;&#xD;
ENTITY plusmn "&amp;plusmn;" [&amp;amp;#177;] -- plus-minus sign = plus-or-minus sign,U++00B1 ISOnum &lt;br /&gt;&#xD;
ENTITY sup2 "&amp;sup2;" [&amp;amp;#178;] -- superscript two = superscript digit two= squared, U+00B2 ISOnum &lt;br /&gt;&#xD;
ENTITY sup3 "&amp;sup3;" [&amp;amp;#179;] -- superscript three = superscript digit three= cubed, U+00B3 ISOnum &lt;br /&gt;&#xD;
ENTITY acute "&amp;acute;" [&amp;amp;#180;] -- acute accent = spacing acute,U++00B4 ISOdia &lt;br /&gt;&#xD;
ENTITY micro "&amp;micro;" [&amp;amp;#181;] -- micro sign, U+00B5 ISOnum &lt;br /&gt;&#xD;
ENTITY para "&amp;para;" [&amp;amp;#182;] -- pilcrow sign = paragraph sign,U++00B6 ISOnum &lt;br /&gt;&#xD;
ENTITY middot "&amp;middot;" [&amp;amp;#183;] -- middle dot = Georgian comma= Greek middle dot, U+00B7 ISOnum &lt;br /&gt;&#xD;
ENTITY cedil "&amp;cedil;" [&amp;amp;#184;] -- cedilla = spacing cedilla, U+00B8 ISOdia &lt;br /&gt;&#xD;
ENTITY sup1 "&amp;sup1;" [&amp;amp;#185;] -- superscript one = superscript digit one,U++00B9 ISOnum &lt;br /&gt;&#xD;
ENTITY ordm "&amp;ordm;" [&amp;amp;#186;] -- masculine ordinal indicator,U++00BA ISOnum &lt;br /&gt;&#xD;
ENTITY raquo "&amp;raquo;" [&amp;amp;#187;] -- right-pointing double angle quotation mark= right pointing guillemet, U+00BB ISOnum &lt;br /&gt;&#xD;
ENTITY frac14 "&amp;frac14;" [&amp;amp;#188;] -- vulgar fraction one quarter= fraction one quarter, U+00BC ISOnum &lt;br /&gt;&#xD;
ENTITY frac12 "&amp;frac12;" [&amp;amp;#189;] -- vulgar fraction one half= fraction one half, U+00BD ISOnum &lt;br /&gt;&#xD;
ENTITY frac34 "&amp;frac34;" [&amp;amp;#190;] -- vulgar fraction three quarters= fraction three quarters, U+00BE ISOnum &lt;br /&gt;&#xD;
ENTITY iquest "&amp;iquest;" [&amp;amp;#191;] -- inverted question mark= turned question mark, U+00BF ISOnum &lt;br /&gt;&#xD;
ENTITY Agrave "&amp;Agrave;" [&amp;amp;#192;] -- latin capital letter A with grave= latin capital letter A grave,U++00C0 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Aacute "&amp;Aacute;" [&amp;amp;#193;] -- latin capital letter A with acute,U++00C1 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Acirc "&amp;Acirc;" [&amp;amp;#194;] -- latin capital letter A with circumflex,U++00C2 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Atilde "&amp;Atilde;" [&amp;amp;#195;] -- latin capital letter A with tilde,U++00C3 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Auml "&amp;Auml;" [&amp;amp;#196;] -- latin capital letter A with diaeresis,U++00C4 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Aring "&amp;Aring;" [&amp;amp;#197;] -- latin capital letter A with ring above= latin capital letter A ring,U++00C5 ISOlat1 &lt;br /&gt;&#xD;
ENTITY AElig "&amp;AElig;" [&amp;amp;#198;] -- latin capital letter AE= latin capital ligature AE,U++00C6 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ccedil "&amp;Ccedil;" [&amp;amp;#199;] -- latin capital letter C with cedilla,U++00C7 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Egrave "&amp;Egrave;" [&amp;amp;#200;] -- latin capital letter E with grave,U++00C8 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Eacute "&amp;Eacute;" [&amp;amp;#201;] -- latin capital letter E with acute,U++00C9 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ecirc "&amp;Ecirc;" [&amp;amp;#202;] -- latin capital letter E with circumflex,U++00CA ISOlat1 &lt;br /&gt;&#xD;
ENTITY Euml "&amp;Euml;" [&amp;amp;#203;] -- latin capital letter E with diaeresis,U++00CB ISOlat1 &lt;br /&gt;&#xD;
ENTITY Igrave "&amp;Igrave;" [&amp;amp;#204;] -- latin capital letter I with grave,U++00CC ISOlat1 &lt;br /&gt;&#xD;
ENTITY Iacute "&amp;Iacute;" [&amp;amp;#205;] -- latin capital letter I with acute,U++00CD ISOlat1 &lt;br /&gt;&#xD;
ENTITY Icirc "&amp;Icirc;" [&amp;amp;#206;] -- latin capital letter I with circumflex,U++00CE ISOlat1 &lt;br /&gt;&#xD;
ENTITY Iuml "&amp;Iuml;" [&amp;amp;#207;] -- latin capital letter I with diaeresis,U++00CF ISOlat1 &lt;br /&gt;&#xD;
ENTITY ETH "&amp;ETH;" [&amp;amp;#208;] -- latin capital letter ETH, U+00D0 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ntilde "&amp;Ntilde;" [&amp;amp;#209;] -- latin capital letter N with tilde,U++00D1 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ograve "&amp;Ograve;" [&amp;amp;#210;] -- latin capital letter O with grave,U++00D2 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Oacute "&amp;Oacute;" [&amp;amp;#211;] -- latin capital letter O with acute,U++00D3 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ocirc "&amp;Ocirc;" [&amp;amp;#212;] -- latin capital letter O with circumflex,U++00D4 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Otilde "&amp;Otilde;" [&amp;amp;#213;] -- latin capital letter O with tilde,U++00D5 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ouml "&amp;Ouml;" [&amp;amp;#214;] -- latin capital letter O with diaeresis,U++00D6 ISOlat1 &lt;br /&gt;&#xD;
ENTITY times "&amp;times;" [&amp;amp;#215;] -- multiplication sign, U+00D7 ISOnum &lt;br /&gt;&#xD;
ENTITY Oslash "&amp;Oslash;" [&amp;amp;#216;] -- latin capital letter O with stroke= latin capital letter O slash,U++00D8 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ugrave "&amp;Ugrave;" [&amp;amp;#217;] -- latin capital letter U with grave,U++00D9 ISOlat1 &lt;br /&gt;&#xD;
ENTITY Uacute "&amp;Uacute;" [&amp;amp;#218;] -- latin capital letter U with acute,U++00DA ISOlat1 &lt;br /&gt;&#xD;
ENTITY Ucirc "&amp;Ucirc;" [&amp;amp;#219;] -- latin capital letter U with circumflex,U++00DB ISOlat1 &lt;br /&gt;&#xD;
ENTITY Uuml "&amp;Uuml;" [&amp;amp;#220;] -- latin capital letter U with diaeresis,U++00DC ISOlat1 &lt;br /&gt;&#xD;
ENTITY Yacute "&amp;Yacute;" [&amp;amp;#221;] -- latin capital letter Y with acute,U++00DD ISOlat1 &lt;br /&gt;&#xD;
ENTITY THORN "&amp;THORN;" [&amp;amp;#222;] -- latin capital letter THORN,U++00DE ISOlat1 &lt;br /&gt;&#xD;
ENTITY szlig "&amp;szlig;" [&amp;amp;#223;] -- latin small letter sharp s = ess-zed,U++00DF ISOlat1 &lt;br /&gt;&#xD;
ENTITY agrave "&amp;agrave;" [&amp;amp;#224;] -- latin small letter a with grave= latin small letter a grave,U++00E0 ISOlat1 &lt;br /&gt;&#xD;
ENTITY aacute "&amp;aacute;" [&amp;amp;#225;] -- latin small letter a with acute,U++00E1 ISOlat1 &lt;br /&gt;&#xD;
ENTITY acirc "&amp;acirc;" [&amp;amp;#226;] -- latin small letter a with circumflex,U++00E2 ISOlat1 &lt;br /&gt;&#xD;
ENTITY atilde "&amp;atilde;" [&amp;amp;#227;] -- latin small letter a with tilde,U++00E3 ISOlat1 &lt;br /&gt;&#xD;
ENTITY auml "&amp;auml;" [&amp;amp;#228;] -- latin small letter a with diaeresis,U++00E4 ISOlat1 &lt;br /&gt;&#xD;
ENTITY aring "&amp;aring;" [&amp;amp;#229;] -- latin small letter a with ring above= latin small letter a ring,U++00E5 ISOlat1 &lt;br /&gt;&#xD;
ENTITY aelig "&amp;aelig;" [&amp;amp;#230;] -- latin small letter ae= latin small ligature ae, U+00E6 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ccedil "&amp;ccedil;" [&amp;amp;#231;] -- latin small letter c with cedilla,U++00E7 ISOlat1 &lt;br /&gt;&#xD;
ENTITY egrave "&amp;egrave;" [&amp;amp;#232;] -- latin small letter e with grave,U++00E8 ISOlat1 &lt;br /&gt;&#xD;
ENTITY eacute "&amp;eacute;" [&amp;amp;#233;] -- latin small letter e with acute,U++00E9 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ecirc "&amp;ecirc;" [&amp;amp;#234;] -- latin small letter e with circumflex,U++00EA ISOlat1 &lt;br /&gt;&#xD;
ENTITY euml "&amp;euml;" [&amp;amp;#235;] -- latin small letter e with diaeresis,U++00EB ISOlat1 &lt;br /&gt;&#xD;
ENTITY igrave "&amp;igrave;" [&amp;amp;#236;] -- latin small letter i with grave,U++00EC ISOlat1 &lt;br /&gt;&#xD;
ENTITY iacute "&amp;iacute;" [&amp;amp;#237;] -- latin small letter i with acute,U++00ED ISOlat1 &lt;br /&gt;&#xD;
ENTITY icirc "&amp;icirc;" [&amp;amp;#238;] -- latin small letter i with circumflex,U++00EE ISOlat1 &lt;br /&gt;&#xD;
ENTITY iuml "&amp;iuml;" [&amp;amp;#239;] -- latin small letter i with diaeresis,U++00EF ISOlat1 &lt;br /&gt;&#xD;
ENTITY eth "&amp;eth;" [&amp;amp;#240;] -- latin small letter eth, U+00F0 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ntilde "&amp;ntilde;" [&amp;amp;#241;] -- latin small letter n with tilde,U++00F1 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ograve "&amp;ograve;" [&amp;amp;#242;] -- latin small letter o with grave,U++00F2 ISOlat1 &lt;br /&gt;&#xD;
ENTITY oacute "&amp;oacute;" [&amp;amp;#243;] -- latin small letter o with acute,U++00F3 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ocirc "&amp;ocirc;" [&amp;amp;#244;] -- latin small letter o with circumflex,U++00F4 ISOlat1 &lt;br /&gt;&#xD;
ENTITY otilde "&amp;otilde;" [&amp;amp;#245;] -- latin small letter o with tilde,U++00F5 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ouml "&amp;ouml;" [&amp;amp;#246;] -- latin small letter o with diaeresis,U++00F6 ISOlat1 &lt;br /&gt;&#xD;
ENTITY divide "&amp;divide;" [&amp;amp;#247;] -- division sign, U+00F7 ISOnum &lt;br /&gt;&#xD;
ENTITY oslash "&amp;oslash;" [&amp;amp;#248;] -- latin small letter o with stroke,= latin small letter o slash,U++00F8 ISOlat1 &lt;br /&gt;&#xD;
ENTITY ugrave "&amp;ugrave;" [&amp;amp;#249;] -- latin small letter u with grave,U++00F9 ISOlat1 &lt;br /&gt;&#xD;
ENTITY uacute "&amp;uacute;" [&amp;amp;#250;] -- latin small letter u with acute,U++00FA ISOlat1 &lt;br /&gt;&#xD;
ENTITY ucirc "&amp;ucirc;" [&amp;amp;#251;] -- latin small letter u with circumflex,U++00FB ISOlat1 &lt;br /&gt;&#xD;
ENTITY uuml "&amp;uuml;" [&amp;amp;#252;] -- latin small letter u with diaeresis,U++00FC ISOlat1 &lt;br /&gt;&#xD;
ENTITY yacute "&amp;yacute;" [&amp;amp;#253;] -- latin small letter y with acute,U++00FD ISOlat1 &lt;br /&gt;&#xD;
ENTITY thorn "&amp;thorn;" [&amp;amp;#254;] -- latin small letter thorn,U++00FE ISOlat1 &lt;br /&gt;&#xD;
ENTITY yuml "&amp;yuml;" [&amp;amp;#255;] -- latin small letter y with diaeresis,U++00FF ISOlat1 &lt;hline&gt;-- Latin Extended-B &lt;br /&gt;&#xD;
ENTITY fnof "&amp;fnof;" [&amp;amp;#402;] -- latin small f with hook = function = florin, U+0192 ISOtech &lt;br /&gt;&#xD;
-- Greek &lt;br /&gt;&#xD;
ENTITY Alpha "&amp;Alpha;" [&amp;amp;#913;] -- greek capital letter alpha, U+0391 &lt;br /&gt;&#xD;
ENTITY Beta "&amp;Beta;" [&amp;amp;#914;] -- greek capital letter beta, U+0392 &lt;br /&gt;&#xD;
ENTITY Gamma "&amp;Gamma;" [&amp;amp;#915;] -- greek capital letter gamma,U++0393 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Delta "&amp;Delta;" [&amp;amp;#916;] -- greek capital letter delta,U++0394 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Epsilon "&amp;Epsilon;" [&amp;amp;#917;] -- greek capital letter epsilon, U+0395 &lt;br /&gt;&#xD;
ENTITY Zeta "&amp;Zeta;" [&amp;amp;#918;] -- greek capital letter zeta, U+0396 &lt;br /&gt;&#xD;
ENTITY Eta "&amp;Eta;" [&amp;amp;#919;] -- greek capital letter eta, U+0397 &lt;br /&gt;&#xD;
ENTITY Theta "&amp;Theta;" [&amp;amp;#920;] -- greek capital letter theta,U++0398 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Iota "&amp;Iota;" [&amp;amp;#921;] -- greek capital letter iota, U+0399 &lt;br /&gt;&#xD;
ENTITY Kappa "&amp;Kappa;" [&amp;amp;#922;] -- greek capital letter kappa, U+039A &lt;br /&gt;&#xD;
ENTITY Lambda "&amp;Lambda;" [&amp;amp;#923;] -- greek capital letter lambda,U++039B ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Mu "&amp;Mu;" [&amp;amp;#924;] -- greek capital letter mu, U+039C &lt;br /&gt;&#xD;
ENTITY Nu "&amp;Nu;" [&amp;amp;#925;] -- greek capital letter nu, U+039D &lt;br /&gt;&#xD;
ENTITY Xi "&amp;Xi;" [&amp;amp;#926;] -- greek capital letter xi, U+039E ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Omicron "&amp;Omicron;" [&amp;amp;#927;] -- greek capital letter omicron, U+039F &lt;br /&gt;&#xD;
ENTITY Pi "&amp;Pi;" [&amp;amp;#928;] -- greek capital letter pi, U+03A0 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Rho "&amp;Rho;" [&amp;amp;#929;] -- greek capital letter rho, U+03A1 &lt;br /&gt;&#xD;
-- there is no Sigmaf, and no U+03A2 character either &lt;br /&gt;&#xD;
ENTITY Sigma "&amp;Sigma;" [&amp;amp;#931;] -- greek capital letter sigma,U++03A3 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Tau "&amp;Tau;" [&amp;amp;#932;] -- greek capital letter tau, U+03A4 &lt;br /&gt;&#xD;
ENTITY Upsilon "&amp;Upsilon;" [&amp;amp;#933;] -- greek capital letter upsilon,U++03A5 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Phi "&amp;Phi;" [&amp;amp;#934;] -- greek capital letter phi,U++03A6 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Chi "&amp;Chi;" [&amp;amp;#935;] -- greek capital letter chi, U+03A7 &lt;br /&gt;&#xD;
ENTITY Psi "&amp;Psi;" [&amp;amp;#936;] -- greek capital letter psi,U++03A8 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY Omega "&amp;Omega;" [&amp;amp;#937;] -- greek capital letter omega,U++03A9 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY alpha "&amp;alpha;" [&amp;amp;#945;] -- greek small letter alpha,U++03B1 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY beta "&amp;beta;" [&amp;amp;#946;] -- greek small letter beta, U+03B2 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY gamma "&amp;gamma;" [&amp;amp;#947;] -- greek small letter gamma,U++03B3 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY delta "&amp;delta;" [&amp;amp;#948;] -- greek small letter delta,U++03B4 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY epsilon "&amp;epsilon;" [&amp;amp;#949;] -- greek small letter epsilon,U++03B5 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY zeta "&amp;zeta;" [&amp;amp;#950;] -- greek small letter zeta, U+03B6 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY eta "&amp;eta;" [&amp;amp;#951;] -- greek small letter eta, U+03B7 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY theta "&amp;theta;" [&amp;amp;#952;] -- greek small letter theta,U++03B8 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY iota "&amp;iota;" [&amp;amp;#953;] -- greek small letter iota, U+03B9 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY kappa "&amp;kappa;" [&amp;amp;#954;] -- greek small letter kappa,U++03BA ISOgrk3 &lt;br /&gt;&#xD;
ENTITY lambda "&amp;lambda;" [&amp;amp;#955;] -- greek small letter lambda,U++03BB ISOgrk3 &lt;br /&gt;&#xD;
ENTITY mu "&amp;mu;" [&amp;amp;#956;] -- greek small letter mu, U+03BC ISOgrk3 &lt;br /&gt;&#xD;
ENTITY nu "&amp;nu;" [&amp;amp;#957;] -- greek small letter nu, U+03BD ISOgrk3 &lt;br /&gt;&#xD;
ENTITY xi "&amp;xi;" [&amp;amp;#958;] -- greek small letter xi, U+03BE ISOgrk3 &lt;br /&gt;&#xD;
ENTITY omicron "&amp;omicron;" [&amp;amp;#959;] -- greek small letter omicron, U+03BF NEW &lt;br /&gt;&#xD;
ENTITY pi "&amp;pi;" [&amp;amp;#960;] -- greek small letter pi, U+03C0 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY rho "&amp;rho;" [&amp;amp;#961;] -- greek small letter rho, U+03C1 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY sigmaf "&amp;sigmaf;" [&amp;amp;#962;] -- greek small letter final sigma,U++03C2 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY sigma "&amp;sigma;" [&amp;amp;#963;] -- greek small letter sigma,U++03C3 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY tau "&amp;tau;" [&amp;amp;#964;] -- greek small letter tau, U+03C4 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY upsilon "&amp;upsilon;" [&amp;amp;#965;] -- greek small letter upsilon,U++03C5 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY phi "&amp;phi;" [&amp;amp;#966;] -- greek small letter phi, U+03C6 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY chi "&amp;chi;" [&amp;amp;#967;] -- greek small letter chi, U+03C7 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY psi "&amp;psi;" [&amp;amp;#968;] -- greek small letter psi, U+03C8 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY omega "&amp;omega;" [&amp;amp;#969;] -- greek small letter omega,U++03C9 ISOgrk3 &lt;br /&gt;&#xD;
ENTITY thetasym "&amp;thetasym;" [&amp;amp;#977;] -- greek small letter theta symbol,U++03D1 NEW &lt;br /&gt;&#xD;
ENTITY upsih "&amp;upsih;" [&amp;amp;#978;] -- greek upsilon with hook symbol,U++03D2 NEW &lt;br /&gt;&#xD;
ENTITY piv "&amp;piv;" [&amp;amp;#982;] -- greek pi symbol, U+03D6 ISOgrk3 &lt;br /&gt;&#xD;
-- General Punctuation &lt;br /&gt;&#xD;
ENTITY bull "&amp;bull;" [&amp;amp;#8226;] -- bullet = black small circle,U++2022 ISOpub &lt;br /&gt;&#xD;
-- bullet is NOT the same as bullet operator, U+2219 &lt;br /&gt;&#xD;
ENTITY hellip "&amp;hellip;" [&amp;amp;#8230;] -- horizontal ellipsis = three dot leader,U++2026 ISOpub &lt;br /&gt;&#xD;
ENTITY prime "&amp;prime;" [&amp;amp;#8242;] -- prime = minutes = feet, U+2032 ISOtech &lt;br /&gt;&#xD;
ENTITY Prime "&amp;Prime;" [&amp;amp;#8243;] -- double prime = seconds = inches,U++2033 ISOtech &lt;br /&gt;&#xD;
ENTITY oline "&amp;oline;" [&amp;amp;#8254;] -- overline = spacing overscore,U++203E NEW &lt;br /&gt;&#xD;
ENTITY frasl "&amp;frasl;" [&amp;amp;#8260;] -- fraction slash, U+2044 NEW &lt;br /&gt;&#xD;
-- Letterlike Symbols &lt;br /&gt;&#xD;
ENTITY weierp "&amp;weierp;" [&amp;amp;#8472;] -- script capital P = power set = Weierstrass p, U+2118 ISOamso &lt;br /&gt;&#xD;
ENTITY image "&amp;image;" [&amp;amp;#8465;] -- blackletter capital I = imaginary part,U++2111 ISOamso &lt;br /&gt;&#xD;
ENTITY real "&amp;real;" [&amp;amp;#8476;] -- blackletter capital R = real part symbol,U++211C ISOamso &lt;br /&gt;&#xD;
ENTITY trade "&amp;trade;" [&amp;amp;#8482;] -- trade mark sign, U+2122 ISOnum &lt;br /&gt;&#xD;
ENTITY alefsym "&amp;alefsym;" [&amp;amp;#8501;] -- alef symbol = first transfinite cardinal,U++2135 NEW &lt;br /&gt;&#xD;
-- alef symbol is NOT the same as hebrew letter alef, U+05D0 although the same glyph could be used to depict both characters &lt;br /&gt;&#xD;
-- Arrows &lt;br /&gt;&#xD;
ENTITY larr "&amp;larr;" [&amp;amp;#8592;] -- leftwards arrow, U+2190 ISOnum &lt;br /&gt;&#xD;
ENTITY uarr "&amp;uarr;" [&amp;amp;#8593;] -- upwards arrow, U+2191 ISOnum &lt;br /&gt;&#xD;
ENTITY rarr "&amp;rarr;" [&amp;amp;#8594;] -- rightwards arrow, U+2192 ISOnum &lt;br /&gt;&#xD;
ENTITY darr "&amp;darr;" [&amp;amp;#8595;] -- downwards arrow, U+2193 ISOnum &lt;br /&gt;&#xD;
ENTITY harr "&amp;harr;" [&amp;amp;#8596;] -- left right arrow, U+2194 ISOamsa &lt;br /&gt;&#xD;
ENTITY crarr "&amp;crarr;" [&amp;amp;#8629;] -- downwards arrow with corner leftwards = carriage return, U+21B5 NEW &lt;br /&gt;&#xD;
ENTITY lArr "&amp;lArr;" [&amp;amp;#8656;] -- leftwards double arrow, U+21D0 ISOtech &lt;br /&gt;&#xD;
-- ISO 10646 does not say that lArr is the same as the 'is implied by' arrow but also does not have any other character for that function. So ? lArr can be used for 'is implied by' as ISOtech suggests &lt;br /&gt;&#xD;
ENTITY uArr "&amp;uArr;" [&amp;amp;#8657;] -- upwards double arrow, U+21D1 ISOamsa &lt;br /&gt;&#xD;
ENTITY rArr "&amp;rArr;" [&amp;amp;#8658;] -- rightwards double arrow,U++21D2 ISOtech &lt;br /&gt;&#xD;
-- ISO 10646 does not say this is the 'implies' character but does not have another character with this function so ? rArr can be used for 'implies' as ISOtech suggests &lt;br /&gt;&#xD;
ENTITY dArr "&amp;dArr;" [&amp;amp;#8659;] -- downwards double arrow, U+21D3 ISOamsa &lt;br /&gt;&#xD;
ENTITY hArr "&amp;hArr;" [&amp;amp;#8660;] -- left right double arrow,U++21D4 ISOamsa &lt;br /&gt;&#xD;
-- Mathematical Operators &lt;br /&gt;&#xD;
ENTITY forall "&amp;forall;" [&amp;amp;#8704;] -- for all, U+2200 ISOtech &lt;br /&gt;&#xD;
ENTITY part "&amp;part;" [&amp;amp;#8706;] -- partial differential, U+2202 ISOtech &lt;br /&gt;&#xD;
ENTITY exist "&amp;exist;" [&amp;amp;#8707;] -- there exists, U+2203 ISOtech &lt;br /&gt;&#xD;
ENTITY empty "&amp;empty;" [&amp;amp;#8709;] -- empty set = null set = diameter,U++2205 ISOamso &lt;br /&gt;&#xD;
ENTITY nabla "&amp;nabla;" [&amp;amp;#8711;] -- nabla = backward difference,U++2207 ISOtech &lt;br /&gt;&#xD;
ENTITY isin "&amp;isin;" [&amp;amp;#8712;] -- element of, U+2208 ISOtech &lt;br /&gt;&#xD;
ENTITY notin "&amp;notin;" [&amp;amp;#8713;] -- not an element of, U+2209 ISOtech &lt;br /&gt;&#xD;
ENTITY ni "&amp;ni;" [&amp;amp;#8715;] -- contains as member, U+220B ISOtech &lt;br /&gt;&#xD;
-- should there be a more memorable name than 'ni'? &lt;br /&gt;&#xD;
ENTITY prod "&amp;prod;" [&amp;amp;#8719;] -- n-ary product = product sign,U++220F ISOamsb &lt;br /&gt;&#xD;
-- prod is NOT the same character as U+03A0 'greek capital letter pi' though the same glyph might be used for both &lt;br /&gt;&#xD;
ENTITY sum "&amp;sum;" [&amp;amp;#8721;] -- n-ary sumation, U+2211 ISOamsb &lt;br /&gt;&#xD;
-- sum is NOT the same character as U+03A3 'greek capital letter sigma' though the same glyph might be used for both &lt;br /&gt;&#xD;
ENTITY minus "&amp;minus;" [&amp;amp;#8722;] -- minus sign, U+2212 ISOtech &lt;br /&gt;&#xD;
ENTITY lowast "&amp;lowast;" [&amp;amp;#8727;] -- asterisk operator, U+2217 ISOtech &lt;br /&gt;&#xD;
ENTITY radic "&amp;radic;" [&amp;amp;#8730;] -- square root = radical sign,U++221A ISOtech &lt;br /&gt;&#xD;
ENTITY prop "&amp;prop;" [&amp;amp;#8733;] -- proportional to, U+221D ISOtech &lt;br /&gt;&#xD;
ENTITY infin "&amp;infin;" [&amp;amp;#8734;] -- infinity, U+221E ISOtech &lt;br /&gt;&#xD;
ENTITY ang "&amp;ang;" [&amp;amp;#8736;] -- angle, U+2220 ISOamso &lt;br /&gt;&#xD;
ENTITY and "&amp;and;" [&amp;amp;#8743;] -- logical and = wedge, U+2227 ISOtech &lt;br /&gt;&#xD;
ENTITY or "&amp;or;" [&amp;amp;#8744;] -- logical or = vee, U+2228 ISOtech &lt;br /&gt;&#xD;
ENTITY cap "&amp;cap;" [&amp;amp;#8745;] -- intersection = cap, U+2229 ISOtech &lt;br /&gt;&#xD;
ENTITY cup "&amp;cup;" [&amp;amp;#8746;] -- union = cup, U+222A ISOtech &lt;br /&gt;&#xD;
ENTITY int "&amp;int;" [&amp;amp;#8747;] -- integral, U+222B ISOtech &lt;br /&gt;&#xD;
ENTITY there4 "&amp;there4;" [&amp;amp;#8756;] -- therefore, U+2234 ISOtech &lt;br /&gt;&#xD;
ENTITY sim "&amp;sim;" [&amp;amp;#8764;] -- tilde operator = varies with = similar to,U++223C ISOtech &lt;br /&gt;&#xD;
-- tilde operator is NOT the same character as the tilde, U+007E, although the same glyph might be used to represent both &lt;br /&gt;&#xD;
ENTITY cong "&amp;cong;" [&amp;amp;#8773;] -- approximately equal to, U+2245 ISOtech &lt;br /&gt;&#xD;
ENTITY asymp "&amp;asymp;" [&amp;amp;#8776;] -- almost equal to = asymptotic to,U++2248 ISOamsr &lt;br /&gt;&#xD;
ENTITY ne "&amp;ne;" [&amp;amp;#8800;] -- not equal to, U+2260 ISOtech &lt;br /&gt;&#xD;
ENTITY equiv "&amp;equiv;" [&amp;amp;#8801;] -- identical to, U+2261 ISOtech &lt;br /&gt;&#xD;
ENTITY le "&amp;le;" [&amp;amp;#8804;] -- less-than or equal to, U+2264 ISOtech &lt;br /&gt;&#xD;
ENTITY ge "&amp;ge;" [&amp;amp;#8805;] -- greater-than or equal to,U++2265 ISOtech &lt;br /&gt;&#xD;
ENTITY sub "&amp;sub;" [&amp;amp;#8834;] -- subset of, U+2282 ISOtech &lt;br /&gt;&#xD;
ENTITY sup "&amp;sup;" [&amp;amp;#8835;] -- superset of, U+2283 ISOtech &lt;br /&gt;&#xD;
-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol font encoding and is not included. Should it be, for symmetry? It is in ISOamsn &lt;br /&gt;&#xD;
ENTITY nsub "&amp;nsub;" [&amp;amp;#8836;] -- not a subset of, U+2284 ISOamsn &lt;br /&gt;&#xD;
ENTITY sube "&amp;sube;" [&amp;amp;#8838;] -- subset of or equal to, U+2286 ISOtech &lt;br /&gt;&#xD;
ENTITY supe "&amp;supe;" [&amp;amp;#8839;] -- superset of or equal to,U++2287 ISOtech &lt;br /&gt;&#xD;
ENTITY oplus "&amp;oplus;" [&amp;amp;#8853;] -- circled plus = direct sum,U++2295 ISOamsb &lt;br /&gt;&#xD;
ENTITY otimes "&amp;otimes;" [&amp;amp;#8855;] -- circled times = vector product,U++2297 ISOamsb &lt;br /&gt;&#xD;
ENTITY perp "&amp;perp;" [&amp;amp;#8869;] -- up tack = orthogonal to = perpendicular,U++22A5 ISOtech &lt;br /&gt;&#xD;
ENTITY sdot "&amp;sdot;" [&amp;amp;#8901;] -- dot operator, U+22C5 ISOamsb &lt;br /&gt;&#xD;
-- dot operator is NOT the same character as U+00B7 middle dot &lt;br /&gt;&#xD;
-- Miscellaneous Technical &lt;br /&gt;&#xD;
ENTITY lceil "&amp;lceil;" [&amp;amp;#8968;] -- left ceiling = apl upstile,U++2308 ISOamsc &lt;br /&gt;&#xD;
ENTITY rceil "&amp;rceil;" [&amp;amp;#8969;] -- right ceiling, U+2309 ISOamsc &lt;br /&gt;&#xD;
ENTITY lfloor "&amp;lfloor;" [&amp;amp;#8970;] -- left floor = apl downstile,U++230A ISOamsc &lt;br /&gt;&#xD;
ENTITY rfloor "&amp;rfloor;" [&amp;amp;#8971;] -- right floor, U+230B ISOamsc &lt;br /&gt;&#xD;
ENTITY lang "&amp;lang;" [&amp;amp;#9001;] -- left-pointing angle bracket = bra,U++2329 ISOtech &lt;br /&gt;&#xD;
-- lang is NOT the same character as U+003C 'less than' or U+2039 'single left-pointing angle quotation mark' &lt;br /&gt;&#xD;
ENTITY rang "&amp;rang;" [&amp;amp;#9002;] -- right-pointing angle bracket = ket,U++232A ISOtech &lt;br /&gt;&#xD;
-- rang is NOT the same character as U+003E 'greater than' or U+203A 'single right-pointing angle quotation mark' &lt;br /&gt;&#xD;
-- Geometric Shapes &lt;br /&gt;&#xD;
ENTITY loz "&amp;loz;" [&amp;amp;#9674;] -- lozenge, U+25CA ISOpub &lt;br /&gt;&#xD;
-- Miscellaneous Symbols &lt;br /&gt;&#xD;
ENTITY spades "&amp;spades;" [&amp;amp;#9824;] -- black spade suit, U+2660 ISOpub &lt;br /&gt;&#xD;
-- black here seems to mean filled as opposed to hollow &lt;br /&gt;&#xD;
ENTITY clubs "&amp;clubs;" [&amp;amp;#9827;] -- black club suit = shamrock,U++2663 ISOpub &lt;br /&gt;&#xD;
ENTITY hearts "&amp;hearts;" [&amp;amp;#9829;] -- black heart suit = valentine,U++2665 ISOpub &lt;br /&gt;&#xD;
ENTITY diams "&amp;diams;" [&amp;amp;#9830;] -- black diamond suit, U+2666 ISOpub &lt;br /&gt;&#xD;
&lt;hline&gt;-- C0 Controls and Basic Latin &lt;br /&gt;&#xD;
ENTITY quot """ [&amp;amp;#34;] -- quotation mark = APL quote,U++0022 ISOnum &lt;br /&gt;&#xD;
ENTITY amp "&amp;amp;" [&amp;amp;#38;] -- ampersand, U+0026 ISOnum &lt;br /&gt;&#xD;
ENTITY lt "&amp;lt;" [&amp;amp;#60;] -- less-than sign, U+003C ISOnum &lt;br /&gt;&#xD;
ENTITY gt "&amp;gt;" [&amp;amp;#62;] -- greater-than sign, U+003E ISOnum &lt;br /&gt;&#xD;
-- Latin Extended-A &lt;br /&gt;&#xD;
ENTITY OElig "?" [&amp;amp;#338;] -- latin capital ligature OE,U++0152 ISOlat2 &lt;br /&gt;&#xD;
ENTITY oelig "?" [&amp;amp;#339;] -- latin small ligature oe, U+0153 ISOlat2 &lt;br /&gt;&#xD;
-- ligature is a misnomer, this is a separate character in some languages &lt;br /&gt;&#xD;
ENTITY Scaron "?" [&amp;amp;#352;] -- latin capital letter S with caron,U++0160 ISOlat2 &lt;br /&gt;&#xD;
ENTITY scaron "?" [&amp;amp;#353;] -- latin small letter s with caron,U++0161 ISOlat2 &lt;br /&gt;&#xD;
ENTITY Yuml "?" [&amp;amp;#376;] -- latin capital letter Y with diaeresis,U++0178 ISOlat2 &lt;br /&gt;&#xD;
-- Spacing Modifier Letters &lt;br /&gt;&#xD;
ENTITY circ "?" [&amp;amp;#710;] -- modifier letter circumflex accent,U++02C6 ISOpub &lt;br /&gt;&#xD;
ENTITY tilde "?" [&amp;amp;#732;] -- small tilde, U+02DC ISOdia &lt;br /&gt;&#xD;
-- General Punctuation &lt;br /&gt;&#xD;
ENTITY ensp "&amp;ensp;" [&amp;amp;#8194;] -- en space, U+2002 ISOpub &lt;br /&gt;&#xD;
ENTITY emsp "&amp;emsp;" [&amp;amp;#8195;] -- em space, U+2003 ISOpub &lt;br /&gt;&#xD;
ENTITY thinsp "&amp;thinsp;" [&amp;amp;#8201;] -- thin space, U+2009 ISOpub &lt;br /&gt;&#xD;
ENTITY zwnj "&amp;zwnj;" [&amp;amp;#8204;] -- zero width non-joiner,U++200C NEW RFC 2070 &lt;br /&gt;&#xD;
ENTITY zwj "&amp;zwj;" [&amp;amp;#8205;] -- zero width joiner, U+200D NEW RFC 2070 &lt;br /&gt;&#xD;
ENTITY lrm "&amp;lrm;" [&amp;amp;#8206;] -- left-to-right mark, U+200E NEW RFC 2070 &lt;br /&gt;&#xD;
ENTITY rlm "&amp;rlm;" [&amp;amp;#8207;] -- right-to-left mark, U+200F NEW RFC 2070 &lt;br /&gt;&#xD;
ENTITY ndash "&amp;ndash;" [&amp;amp;#8211;] -- en dash, U+2013 ISOpub &lt;br /&gt;&#xD;
ENTITY mdash "&amp;mdash;" [&amp;amp;#8212;] -- em dash, U+2014 ISOpub &lt;br /&gt;&#xD;
ENTITY lsquo "&amp;lsquo;" [&amp;amp;#8216;] -- left single quotation mark,U++2018 ISOnum &lt;br /&gt;&#xD;
ENTITY rsquo "&amp;rsquo;" [&amp;amp;#8217;] -- right single quotation mark,U++2019 ISOnum &lt;br /&gt;&#xD;
ENTITY sbquo "&amp;sbquo;" [&amp;amp;#8218;] -- single low-9 quotation mark, U+201A NEW &lt;br /&gt;&#xD;
ENTITY ldquo "&amp;ldquo;" [&amp;amp;#8220;] -- left double quotation mark,U++201C ISOnum &lt;br /&gt;&#xD;
ENTITY rdquo "&amp;rdquo;" [&amp;amp;#8221;] -- right double quotation mark,U++201D ISOnum &lt;br /&gt;&#xD;
ENTITY bdquo "&amp;bdquo;" [&amp;amp;#8222;] -- double low-9 quotation mark, U+201E NEW &lt;br /&gt;&#xD;
ENTITY dagger "&amp;dagger;" [&amp;amp;#8224;] -- dagger, U+2020 ISOpub &lt;br /&gt;&#xD;
ENTITY Dagger "&amp;Dagger;" [&amp;amp;#8225;] -- double dagger, U+2021 ISOpub &lt;br /&gt;&#xD;
ENTITY permil "&amp;permil;" [&amp;amp;#8240;] -- per mille sign, U+2030 ISOtech &lt;br /&gt;&#xD;
ENTITY lsaquo "&amp;lsaquo;" [&amp;amp;#8249;] -- single left-pointing angle quotation mark,U++2039 ISO proposed &lt;br /&gt;&#xD;
-- lsaquo is proposed but not yet ISO standardized &lt;br /&gt;&#xD;
ENTITY rsaquo "&amp;rsaquo;" [&amp;amp;#8250;] -- single right-pointing angle quotation mark,U++203A ISO proposed &lt;br /&gt;&#xD;
-- rsaquo is proposed but not yet ISO standardized &lt;br /&gt;&#xD;
ENTITY euro "&amp;euro;" [&amp;amp;#8364;] -- euro sign, U+20AC NEW &lt;/hline&gt;&lt;/hline&gt;&lt;/hline&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;hline&gt;&lt;hline&gt;&lt;hline&gt;(作者：玛瑙河。尊重他人劳动成果，转载请注明作者或出处)&lt;br /&gt;&lt;/hline&gt;&lt;/hline&gt;&lt;/hline&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1812369.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/08/30/character_entity_ref.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/06/23/MrBayes_320_MPI_4_Windows.html</id><title type="text">MrBayes v3.2 for windows 并行版下载及 checkpoint 功能介绍</title><summary type="text">(作者：玛瑙河，转载请注明作者或出处，)　　　更新记录:　　2010.06.23 svn r80　　2010.06.13 svn r78　　2010.06.01 svn r76  MrBayes 3.2版中加入了checkpoint功能，即可以保存检查点，在由于意外事件重启后仍可以从检查点处继续运行，以免白费功夫。　　另外MrBays也支持并行计算，可以充分利用多核计算机乃至网络集群的计算能力，大...</summary><published>2010-06-23T02:02:00Z</published><updated>2010-06-23T02:02:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/06/23/MrBayes_320_MPI_4_Windows.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/06/23/MrBayes_320_MPI_4_Windows.html"/><content type="html">&lt;div&gt;&amp;nbsp;(作者：玛瑙河，转载请注明作者或出处，&lt;img src="http://www.cnblogs.com/Emoticons/QQ/13.gif" /&gt;)　&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;　　更新记录:&lt;/div&gt;&#xD;
&lt;div&gt;　　2010.06.23 svn r80&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;　　2010.06.13 svn r78&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;　　2010.06.01 svn r76&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MrBayes 3.2版中加入了checkpoint功能，即可以保存检查点，在由于意外事件重启后仍可以从检查点处继续运行，以免白费功夫。&lt;/div&gt;&#xD;
&lt;p&gt;另外MrBays也支持并行计算，可以充分利用多核计算机乃至网络集群的计算能力，大大缩短计算时间。&amp;nbsp;并行版的效率相当不错。在我的双核(T7400)笔记本上，运行MrBayes examples目录中的脚本model_test.nex，并行版耗时13分半钟，非并行版耗时21分半钟；与非并行版相比，并行版效率提高了37%。在4核羿龙940上，运行时间比非并行版约缩短了2/3 。&lt;/p&gt;&#xD;
&lt;p&gt;本人编译了&amp;nbsp;MrBayes v3.2 32位并行版及单机版(&lt;a target="_blank" href="http://files.cnblogs.com/agateriver/mrbayes_3.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z" title="下载"&gt;下载&lt;/a&gt;)供大家使用，下面是安装及使用方法：&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;1. 以系统管理员身份安装MPICH2运行时。&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;　　并行版的MrBayes需要MPICH2运行时的支持。如果系统中已经安装了老于1.2.1p1版本的MPICH2，请将其卸除。(如果您安装了POY，请到POY安装目录下执行uninstall_mpi.bat) 。并行版的 MrBayes依赖于1.2.1p1版的MPICH2运行时，MPICH2运行时官网下载地址为：&lt;br /&gt;&lt;a target="_blank" href="http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1-win-ia32.msi"&gt;http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1-win-ia32.msi&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div&gt;　　下载后以系统管理员身份将其安装到某个目录，默认将安装到 C:\Program Files\MPICH2\, 你也可以安装到别的地方，如 C:\mpich2\。注意以系统管理员身份安装很重要，否则安装后不能正常使用。安装过程中会要求设置一个密码，请记住该密码，在以后会用得上(如果在集群上配置MPICH2，则在每台机器上都应用相同的密码安装）。当需要您选择为哪个用户安装时，最好选择&amp;ldquo;for Everyone"。&lt;span style="color: red;"&gt;如果安装成功，系统服务中会增加一个&amp;ldquo;MPICHE Process Manager&amp;rdquo;的服务&lt;/span&gt;。安装过程及以后运行mb的过程中如遇到防火墙警告，请选择同意。并行版的mrbayes需要通过网络端口实现进程通讯，如果被防火墙阻断则将不能正常运行。&lt;span style="color: red;"&gt;在vista/win7下如果遇到安装后不能正常运行并行版的MrBayes的问题，说明MPICH2没能正常安装，可以以管理员身份打开一个命令行窗口，在命令行中运行 mpich2-1.2.1p1-win-ia32.msi &lt;/span&gt;，应当可以解决问题。&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;2.下载本人编译的MrBayes 3.2 并行版 (本人将根据源码库更新情况随时更新）&lt;/div&gt;&#xD;
&lt;p&gt;下载地址：&amp;nbsp;&lt;a target="_blank" href="http://files.cnblogs.com/agateriver/mrbayes_3.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z"&gt;http://files.cnblogs.com/agateriver/mrbayes_3.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z&lt;/a&gt;&lt;span  style="line-height: normal; font-family: Verdana; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;　　将其中的并行版解压到某个目录，比如C:\mrbayes_3.2\。(解压时请使用支持7zip压缩格式的解压缩软件如7-Zip/winrar等)&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;3. 运行并行版的mb&lt;/div&gt;&#xD;
&lt;div&gt;　　下面只讲如何在多核的单机上运行。&lt;/div&gt;&#xD;
&lt;div&gt;　　打开命令行窗口。假设你的CPU有4个核，工作目录在c:\workdir，则根据下述情况输入相应的命令运行并行版的mb（其间如果需要账户名和密码，请输入您当前登录的账户名和密码，注意此密码与前面安装MPICH2时输入的密码不是一回事）：&lt;/div&gt;&#xD;
&lt;p&gt;a. 交互式运行&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span&gt;1&lt;/span&gt;&amp;nbsp;&lt;span&gt;cd&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;c:&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;workdir&lt;br /&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&amp;nbsp;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;C:\Program&amp;nbsp;Files\MPICH2\bin\mpiexec&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span&gt;4&amp;nbsp;&lt;/span&gt;&lt;span&gt;C:&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;mrbayes_3&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;mb&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;exe&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span&gt;b. 运行脚本&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;　　如果用mb直接执行一个MrBayes脚本(假设这个脚本就是c:\workdir\demo.nex)，则用如下命令：&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span&gt;1&lt;/span&gt;&amp;nbsp;&lt;span&gt;cd&lt;/span&gt;&lt;span&gt;&amp;nbsp;c:&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;workdir&lt;br /&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&amp;nbsp;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;C:\Program&amp;nbsp;Files\MPICH2\bin\mpiexec&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span&gt;4&amp;nbsp;&lt;/span&gt;&lt;span&gt;C:&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;mrbayes_3&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;span&gt;mb&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;exe demo&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;nex&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span&gt;4. 如果您想多机并行 MrBayes ，请网上搜索 MPICH2 &amp;nbsp;windows 版的相关使用教程。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;关于3.2版的checkpoint功能&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;　　MrBayes通过mcmc命令中的三个参数checkpoint、checkfreq、append来控制检查点的保存。具体大家可以在MrBayes中输入"help mcmc"命令然后查看"checkpoint"和"checkfreq"等节的说明：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;Checkpoint&lt;/span&gt;&lt;span&gt; &amp;nbsp; --&amp;nbsp;如果这个参数被设为 Yes（默认为Yes)，则每隔Checkfreq参数所指定的代数，所有链的当前参数值都会被输出到检查点文件保存。检查点文件名形如&amp;nbsp;&lt;/span&gt;&lt;filename&gt;&lt;/filename&gt;&lt;span&gt;.ckp，当你重启分析时，分析过程可以从这个文件最后所记录的检查点的状态开始，而不必从头开始进行。这个功能的好处有二：第一就是延长分析过程，比如在设定的代数跑完以后你发现代数还不足够，需要继续；第二就是避免因硬件故障或其它不可控原因宕机而导致的风险，试想你运行了一个月，眼看就要出结果了，却碰上断电事故（很不幸笔者前不久就碰上了)，如果没有检查点功能，恐怕眼睛都得急的蹦出来。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;Checkfreq &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;-- 保存检查点的频率，就是每隔多少代保存一次，默认100000。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;Append&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- 是否从最后保存检查点继续运行分析。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;下面是一个Mrbayes脚本:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span&gt;1&lt;/span&gt;&amp;nbsp;&lt;span&gt;begin&amp;nbsp;mrbayes;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&amp;nbsp;&lt;span&gt;exec&amp;nbsp;example.nex;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&amp;nbsp;&lt;span&gt;lset&amp;nbsp;nst&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;span&gt;&amp;nbsp;rates&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;invgamma;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&amp;nbsp;&lt;span&gt;mcmc&amp;nbsp;ngen&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;20000000&lt;/span&gt;&lt;span&gt;&amp;nbsp;stoprule&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;stopval&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.01&lt;/span&gt;&lt;span style="color: #000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;checkpoint&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes checkfreq=50000;&lt;/span&gt;&lt;span style="color: #000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&amp;nbsp;&lt;span&gt;sump&amp;nbsp;relburnin&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;burninfrac&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.25&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&amp;nbsp;&lt;span&gt;sumt&amp;nbsp;relburnin&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;burninfrac&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.25&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;end&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;假设你有一个很大的数据集&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px;"&gt;example.nex，并且&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px;"&gt;运行这个脚本已经几个星期了，但是突然被某个毛头师兄弟碰掉了电源插头，这时你可以假装懊恼一下，好让那个毛头师兄稍微有点内疚感，:)。重新开机后，像下面一样将脚本的第四行末尾加上append=yes，然后重新运行，MrBayes就会从最后的检查点处继续运行你的分析了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span&gt;1&lt;/span&gt;&amp;nbsp;&lt;span&gt;begin&amp;nbsp;mrbayes; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;2&lt;/span&gt;&amp;nbsp;&lt;span&gt;exec&amp;nbsp;example.nex;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&amp;nbsp;&lt;span&gt;lset&amp;nbsp;nst&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;span&gt;&amp;nbsp;rates&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;invgamma;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&amp;nbsp;&lt;span&gt;mcmc&amp;nbsp;ngen&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;20000000&lt;/span&gt;&lt;span&gt;&amp;nbsp;stoprule&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;stopval&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.01&lt;/span&gt;&lt;span&gt;&amp;nbsp;checkpoint&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;checkfreq&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;50000&lt;/span&gt;&lt;span style="color: #000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;append&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes;&lt;/span&gt;&lt;span style="color: #000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&amp;nbsp;&lt;span&gt;sump&amp;nbsp;relburnin&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;burninfrac&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.25&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&amp;nbsp;&lt;span&gt;sumt&amp;nbsp;relburnin&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;yes&amp;nbsp;burninfrac&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;0.25&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;end&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1748950.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/06/23/MrBayes_320_MPI_4_Windows.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/06/13/NET_OFFICE_InterOp_unlock.html</id><title type="text">强制垃圾回收解决.NET Office互操作中文件锁未能释放的问题</title><summary type="text">(作者：玛瑙河，转载请注明作者或出处，)　问题情形：通过Interop创建一个Access数据库并关闭该数据库和Access，然后打开新创建的数据库文件进行某些操作，但是发现无法打开第一步生成的文件，原因是文件锁没有释放。解决方案：在进行第二步操作前，强制垃圾收集，释放第一步过程中创建的COM对象。[代码]如果没有9-11行的强制垃圾回收，那么在block B中打开block A中创建的数据库文件...</summary><published>2010-06-13T03:24:00Z</published><updated>2010-06-13T03:24:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/06/13/NET_OFFICE_InterOp_unlock.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/06/13/NET_OFFICE_InterOp_unlock.html"/><content type="html">&lt;p&gt;(作者：玛瑙河，转载请注明作者或出处，&lt;img src="http://www.cnblogs.com/Emoticons/QQ/13.gif" /&gt;)　&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;问题情形：&lt;/p&gt;&#xD;
&lt;p&gt;通过Interop创建一个Access数据库并关闭该数据库和Access，然后打开新创建的数据库文件进行某些操作，但是发现无法打开第一步生成的文件，原因是文件锁没有释放。&lt;/p&gt;&#xD;
&lt;p&gt;解决方案：&lt;/p&gt;&#xD;
&lt;p&gt;在进行第二步操作前，强制垃圾收集，释放第一步过程中创建的COM对象。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;...&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;block&amp;nbsp;A&amp;nbsp;创建一个数据库db&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;access.Quit()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;关闭access&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(db)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;System.GC.Collect();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;System.GC.WaitForPendingFinalizers();&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;...&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;block&amp;nbsp;B,&amp;nbsp;打开block&amp;nbsp;A中创建的数据库文件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果没有9-11行的强制垃圾回收，那么在block B中打开block A中创建的数据库文件时，就会发生无法获得文件锁的情况，说明调用access.Quit并不能立即释放文件锁。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1757646.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/06/13/NET_OFFICE_InterOp_unlock.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/06/09/1755036.html</id><title type="text">童言无忌之小瑈与甲虫</title><summary type="text">(作者：玛瑙河，此文禁止转载，)　爸爸、妈妈和三岁半的小瑈走在路上。小瑈看到一只甲虫，抬脚要踩。爸爸说，别踩啊，应当爱护小动物才对，如果把它踩死了，甲虫妈妈多伤心啦！小瑈不踩了，接着问爸爸妈妈，它妈妈在哪儿呢？爸爸妈妈是学昆虫的，心想这种小甲虫是一年生的，它妈妈早死了。于是妈妈告诉小瑈说，它妈妈死了。小瑈继续问，甲虫的妈妈怎么死的？妈妈说，它妈妈辛苦一辈子，累死的！小瑈听罢不假思索就说了一句让爸爸...</summary><published>2010-06-09T12:54:00Z</published><updated>2010-06-09T12:54:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/06/09/1755036.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/06/09/1755036.html"/><content type="html">&lt;p&gt;(作者：玛瑙河，此文禁止转载，&lt;img src="http://www.cnblogs.com/Emoticons/QQ/13.gif" /&gt;)　&lt;/p&gt;&#xD;
&lt;p&gt;爸爸、妈妈和三岁半的小瑈走在路上。小瑈看到一只甲虫，抬脚要踩。爸爸说，别踩啊，应当爱护小动物才对，如果把它踩死了，甲虫妈妈多伤心啦！小瑈不踩了，接着问爸爸妈妈，它妈妈在哪儿呢？爸爸妈妈是学昆虫的，心想这种小甲虫是一年生的，它妈妈早死了。于是妈妈告诉小瑈说，它妈妈死了。小瑈继续问，甲虫的妈妈怎么死的？妈妈说，它妈妈辛苦一辈子，累死的！小瑈听罢不假思索就说了一句让爸爸很郁闷的话：那我以后再也不让妈妈喂饭了，我让爸爸喂！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1755036.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/06/09/1755036.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/06/04/MrBayes_312_MPI_4_Windows.html</id><title type="text">MrBayes v3.1.2 for windows 并行版下载</title><summary type="text">继MrBayes V3.2 svn 并行版后，继续提供MrBayes v3.1.2的并行版：http://files.cnblogs.com/agateriver/MrBayes_3.1.2_for_Windows_并行版.7z并行版的安装与使用说明见压缩包的文件。</summary><published>2010-06-04T04:11:00Z</published><updated>2010-06-04T04:11:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/06/04/MrBayes_312_MPI_4_Windows.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/06/04/MrBayes_312_MPI_4_Windows.html"/><content type="html">&lt;p&gt;&lt;a  href="http://files.cnblogs.com/agateriver/MrBayes_3.1.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z" target="_blank"&gt;&lt;font  color="#000000"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a  href="http://files.cnblogs.com/agateriver/MrBayes_3.1.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z" target="_blank"&gt;&lt;font  color="#000000"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;继&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/06/01/MrBayes_320_MPI_4_Windows.html" target="_blank"&gt;MrBayes V3.2 svn 并行版&lt;/a&gt;后，继续提供MrBayes v3.1.2的并行版：&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;a  href="http://files.cnblogs.com/agateriver/MrBayes_3.1.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z" target="_blank"&gt;http://files.cnblogs.com/agateriver/MrBayes_3.1.2_for_Windows_并行版.7z&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;并行版的安装与使用说明见压缩包的文件。 &amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1751321.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/06/04/MrBayes_312_MPI_4_Windows.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/agateriver/archive/2010/05/31/1748373.html</id><title type="text">修改 MrBayes 3.2 源码解决不能恢复断点的问题</title><summary type="text">当数据量较大时，用MrBayes进行计算通常是旷日持久的事情，几天甚至几个月。中间如果断电死机什么的发生就很令人发狂了。于是MrBayes3.2 svn 版增加了一个断点保存的功能，死机后可以从保存的断点处继续计算。只要在mcmc命令中加入checkfreq=n (n为保存断点间隔的代数）参数即可保存断点；下次从断点继续运算时，在mcmc 命令中加入append=yes参数即可.　　碰巧的是，前些...</summary><published>2010-05-31T09:02:00Z</published><updated>2010-05-31T09:02:00Z</updated><author><name>玛瑙河</name><uri>http://www.cnblogs.com/agateriver/</uri></author><link rel="alternate" href="http://www.cnblogs.com/agateriver/archive/2010/05/31/1748373.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/agateriver/archive/2010/05/31/1748373.html"/><content type="html">&lt;p&gt;当数据量较大时，用MrBayes进行计算通常是旷日持久的事情，几天甚至几个月。中间如果断电死机什么的发生就很令人发狂了。于是&amp;nbsp;MrBayes&amp;nbsp;3.2 svn 版增加了一个断点保存的功能，死机后可以从保存的断点处继续计算。只要在mcmc命令中加入checkfreq=n (n为保存断点间隔的代数）参数即可保存断点；下次从断点继续运算时，在mcmc &amp;nbsp;命令中加入append=yes参数即可.&amp;nbsp;&lt;/p&gt;&lt;p&gt;碰巧的是，前些天不知道谁把我用来计算的那台服务器的电源碰掉了，我那已经算了20多天的任务啊.....! 　想砍人之余又庆幸事前曾经设置了断点保存。可是当我在mcmc &amp;nbsp;命令中加入append=yes参数以恢复运算时，不幸的事还是发生了，MrBayes报错并停止：A maximum of 2000 characters is allowed on a single line,&amp;nbsp;The longest line of the file &amp;nbsp;xxx&amp;nbsp;contains at least one line with 58000 characters. &amp;nbsp; 当时就有欲哭无泪的感觉啊。稍稍平复一下心情，决定还是从程序的源代码查起吧，希望不是一个与算法有关的大bug(小修小改能搞定，跟算法有关的话短时间就没办法搞了)！拿出错消息grep一下所有的源文件，发现问题在这里：&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3211&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;find&amp;nbsp;length&amp;nbsp;of&amp;nbsp;longest&amp;nbsp;line&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3212&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;longestLineLength&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;LongestLine&amp;nbsp;(fp);&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3213&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MrBayesPrint&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%s&amp;nbsp;&amp;nbsp;&amp;nbsp;Longest&amp;nbsp;line&amp;nbsp;length&amp;nbsp;=&amp;nbsp;%d\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;spacer,&amp;nbsp;longestLineLength);&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3214&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;longestLineLength&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;50&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3215&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c:&lt;/span&gt;&lt;span style="color: #800080;"&gt;3216&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;check&amp;nbsp;that&amp;nbsp;longest&amp;nbsp;line&amp;nbsp;is&amp;nbsp;not&amp;nbsp;longer&amp;nbsp;than&amp;nbsp;CMD_STRING_LENGTH&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c:&lt;/span&gt;&lt;span style="color: #800080;"&gt;3217&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(longestLineLength&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CMD_STRING_LENGTH&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3218&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c:&lt;/span&gt;&lt;span style="color: #800080;"&gt;3219&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;MrBayesPrint&amp;nbsp;(&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;%s&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;maximum&amp;nbsp;of&amp;nbsp;%d&amp;nbsp;characters&amp;nbsp;is&amp;nbsp;allowed&amp;nbsp;on&amp;nbsp;a&amp;nbsp;single&amp;nbsp;line\n&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;,&amp;nbsp;spacer,&amp;nbsp;CMD_STRING_LENGTH&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;100&lt;/span&gt;&lt;span style="color: red; "&gt;);&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3220&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;MrBayesPrint&amp;nbsp;(&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;%s&amp;nbsp;&amp;nbsp;&amp;nbsp;in&amp;nbsp;a&amp;nbsp;file.&amp;nbsp;The&amp;nbsp;longest&amp;nbsp;line&amp;nbsp;of&amp;nbsp;the&amp;nbsp;file&amp;nbsp;%s\n&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;,&amp;nbsp;spacer,&amp;nbsp;inputFileName);&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3221&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;&amp;nbsp;MrBayesPrint&amp;nbsp;(&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;%s&amp;nbsp;&amp;nbsp;&amp;nbsp;contains&amp;nbsp;at&amp;nbsp;least&amp;nbsp;one&amp;nbsp;line&amp;nbsp;with&amp;nbsp;%d&amp;nbsp;characters.\n&lt;/span&gt;&lt;span style="color: red; "&gt;"&lt;/span&gt;&lt;span style="color: red; "&gt;,&amp;nbsp;spacer,&amp;nbsp;longestLineLength);&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3222&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nErrors&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3223&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;command.c&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;3224&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;defined&amp;nbsp;(MPI_ENABLED)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;原来最长行的字符数被&amp;nbsp;&lt;span  style="font-family: 'Courier New'; font-size: 13px; "&gt;CMD_STRING_LENGTH 所限制。grep搜CMD_STRING_LENGTH，在mb.h中找到：&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;250&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#define&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OMEGA_MAX &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;1000000.0f&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;251&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;252&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#define&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;POS_INFINITY &lt;span  style="white-space:pre"&gt;	&lt;/span&gt;1E25f;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;253&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#define&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;NEG_INFINITY&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;-1000000.0f&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;254&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;trunk&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;src&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;mb.h:&lt;/span&gt;&lt;span style="color: #800080;"&gt;255&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#define&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; "&gt;CMD_STRING_LENGTH&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span&gt;200000&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;trunk&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;src&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;mb.h&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;256&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;　　原来&amp;nbsp;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; "&gt;CMD_STRING_LENGTH 被限制到了20000，该值已经大大不能符合我的数据要求了。于是操刀将其放大10倍，改为200000。重新编译MrBayes, 再次从断点处回复执行, OK，熟悉的计算过程又回来了。20多天的计算总算没白费。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/agateriver/aggbug/1748373.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/agateriver/archive/2010/05/31/1748373.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
