<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[简单与唯美]]></title>
<link>http://blog.pfan.cn/elove</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[在农村，电信移动网通联通谁牛B？]]></title>
		<link>http://blog.pfan.cn/elove/26739.html</link>
		<description><![CDATA[在农村，电信移动网通联通谁牛B？
布棉@2007-5-1111:57:23地球上的城市人都知道，在中国有4大电信运营商，电信、网通、移动、联通，但是在西部地区，有很多地方的人，估计只知道2家运营商或者只知道1家。
五一期间，去了甘肃南部等地晃了一圈，几大运营商的竞争还真激烈，采用的办法无非是刷墙，在国道边上，几乎是见墙就刷，而且刷的很艺术，一般来说，国道边上能看到的墙有三面，正面的大都是移动的，边上的一般联通和电信两家分了。
不过，走到山区了，广告就少了一家，联通没了，在郎木寺等地，联通是一格信号都没有，在高原地带，一姐们的联通手机也高原反应，傻了。再往山区，移动的广告也没了，只剩下电信的广告了。另外，电信的小灵通还能在当地横行。
综上所属，牛B程度来说，电信》移动》联通》网通，西部地区，基本没网通什么事。]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-06-13 05:03:00</pubDate>
		</item>
				<item>
		<title><![CDATA[从化学看科学与哲学的关系]]></title>
		<link>http://blog.pfan.cn/elove/22923.html</link>
		<description><![CDATA[导言

&nbsp;
科学和哲学都是人类在不断地认识和改造自然的过程中逐渐形成和发展起来的。科学源于人类在认识和改造自然中所积累的经验和知识，但这些经验和知识本身尚不足以形成科学，只有当人们用理性思维对这些经验和知识加以概括、总结和推演，把具体的经验上升到抽象的理论，把零散的知识构建成严整的体系时，科学才在真正意义上形成了。因此，科学就是求实精神和理性精神的结合。
而哲学也是源于人类的经验和知识，但哲学并不单纯是对这些经验和知识的总结，从某种意义上说，既是对人类所有经验和知识的共性和本质进行总结，又是对人类理性认识和理性过程进行总结。
这样看来，科学和哲学的对象和目的是不同的，科学研究的是自然界中具体的事物，总结出具体的规律和本质；哲学研究的是这些具体规律和本质之中所蕴涵的更加广泛和更加深刻的规律和本质，同时总结出理性思维的一般规律。
正因如此，科学与哲学并不孤立，而是相互依存、不断交融、共同发展的。首先，科学虽以人们对自然的经验和知识为基础，但必须经过理性思维的概括、总结和升华才能溶入科学体系之中，而这些理性认识和理性过程则是深受哲学影响的。反过来，哲学从根本上又必须紧紧依赖于各种科学规律和本质，从而归纳出更广泛和更深刻的哲学原理和思维规律。因此，历史上科学界的每一次重大突破无不带来哲学界和思想界的深刻革命，而每一次哲学思想的完备和流行反过来又引导着科学的前进。
科学与哲学的这种关系的确是很有意思和很有意义的，为了能更生动地说明这一点，本文将从化学这一门典型而古老的自然学科来看看科学与哲学的美妙关系。
&nbsp;****************************
&nbsp;
上篇&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 哲学：化学的引路人
&nbsp;
一&nbsp; 古代化学的哲学启蒙
&nbsp;
在古代，人们无法对化学现象有多么深刻的认识，所以古代化学并没有真正意义上的“化学理论”，如果说有，或者至少说有什么一种思想对化学实践进行指导的话，那么只能是哲学。
人们最早对化学运动的理论概括大概就是对物质世界本原问题的形形色色的哲学学说。
早在商周之交，中国就产生了五行说，认为世界万物都是由金、木、水、火、土这“五行”构成的，五行之间存在着相生、相克、相乘、反侮等辨证关系，从而产生了万物的运动和]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:30:00</pubDate>
		</item>
				<item>
		<title><![CDATA[关于固体结构和性质理论研究工作的概况]]></title>
		<link>http://blog.pfan.cn/elove/22922.html</link>
		<description><![CDATA[关于固体结构和性质理论研究工作的概况
2006-12-22 00:00:34 / 个人分类：个人原创 

&nbsp;
目前我做的是低维固体方面的工作，属于交叉的研究领域，介于物理和化学之间。在这一方向前人已经做了很多铺垫性工作，但到目前为止还有许多问题没有解决，并且随着材料科学、纳米技术的发展，这一领域越来越受到人们的重视和兴趣。这里我仅就固体结构和性质的理论研究做一个简单的综述。

（一）固体和表面的理论研究综览
固体可以是结晶体、分子晶体或无定形体。分子晶体是可以区分出单个分子的排列有序的固体。在化学实验研究中情况稍不同与理论研究。因为实验得到的晶体分子的几何对称性大多来自晶态化合物的X-射线衍射，而大多数的较高级别的计算技术则针对于气态化合物。同时，许多化学家最为困扰的是溶液相中化合物的行为。
一、连续体模型
把固体看成是一个具有给定切变强度的连续体，这种模型或类似模型常用于预言固体的力学性质。可以利用有限元或有限差分的方法来建立这些模型，工程师经常用这种类型的模型来进行结构分析，这里就不再进一步讨论了。
&nbsp;
二、团簇
使用气相分子计算软件是模拟固体的一种方法。可以模拟足够大的一块固体，这样实际晶体的中心区域就可以用一个无限晶体的中心区域来描述，这叫作团簇计算。
上述计算完成后，必须对结构按照某种方式进行修整。要是不进行特别修整的话，团簇最边缘的原子就会带有悬键，这就会影响这些原子的行为，从而反过来影响邻近的原子，继而又会反过来要求需要更多的原子进行模拟。对于存在共价键的有机晶体，用氢原子修整结构是非常合理的，因为氢原子的电负性接近于碳原子，从而占用最少的计算资源。对于离子性很强的化合物，采用一组点电荷——称为“马德隆势（Madelung potential）”对结构进行修整比较合理。介于上述两种极端类型之间的化合物，该选用哪种方法对结构进行修整就不得而知，必须一个一个地去试，经常需要研究一番才能做出最好的选择。
这些计算再现了无限大固体的电子结构，而这对于很多类型的研究非常重要，如模拟一种用于太阳能电池的化合物，此时确定是直接带隙还是间接带隙就显得很重要。计算能带结构对于模拟无限规则晶体比较理想，但不适合模拟表面化学或带有缺陷的区域。
&nbsp;
三、缺陷的计算
化学上的兴趣不只是在于研究无限晶体，而更在于研究]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:25:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Gaussian03自带nbo3.1程序输入格式的BUG]]></title>
		<link>http://blog.pfan.cn/elove/22921.html</link>
		<description><![CDATA[&nbsp; 用Gaussian03自带nbo3.1程序计算，输入文件：%chk=test.chk#p pop=NBORead B3LYP/6-31G* SCF=Tight geom=check guess=readtitle0 1$NBO $END$CHOOSE&nbsp;BOND S 1 2&nbsp; &nbsp; &nbsp; S 1 5&nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp; S 21 22&nbsp;END &nbsp;$END &nbsp; 结果out文件中错误信息是：NATURAL BOND ORBITAL ANALYSIS:Error in input of bond orbitals:Keyword for orbital type is not LONE, BOND, or 3CBOND (read `S &nbsp; &nbsp; ')如果换成Gaussian98就没事了。

经过反复摸索，终于解决：原来的确是g03所带nbo的bug！看来这个nbo程序在$CHOOSE关键词都要多读一个text field，因此，解决办法很简单：$CHOOSE后多写任一个词。例如：$NBO ... $END$CHOOSE OK&nbsp;LONE&nbsp; &nbsp;1 1&nbsp; &nbsp;2 1&nbsp; &nbsp;...&nbsp;END&nbsp;BOND&nbsp; &nbsp;2 3&nbsp; &nbsp;3 4&nbsp;...&nbsp;END$END



&nbsp;]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:20:00</pubDate>
		</item>
				<item>
		<title><![CDATA[去掉GaussView启动警告窗口的办法]]></title>
		<link>http://blog.pfan.cn/elove/22920.html</link>
		<description><![CDATA[去掉GaussView启动警告窗口的办法
2006-12-21 23:27:12 / 个人分类：个人原创 

对于Windows版本的GaussView（G03VW），如果系统不装Gaussian 03，那么每次打开GaussView就会出现两个警告窗口：“Failed to locate main Gaussian directory”和“Failed to locate Gaussian serial number”。今天琢磨了一下，找到了一个很简单的办法去掉这两个警告窗口，现介绍如下。




首先，直接装GaussView（我这里的是3.0版本）而不必管是否已经装了Windows版的Gaussian 03以及Gaussian 03安装哪个路径。然后，在GaussView的安装目录（比如我的是D:\Program Files\G03VW）下新建两个空文件（文件名分别为G03VW.INI和G03W.INI）。然后将下面代码保存成g03.reg文件：

Windows Registry Editor Version 5.00
&nbsp;
[HKEY_LOCAL_MACHINE\SOFTWARE\Gaussian, Inc.\Gaussian 03W\Serial]
"Serial No."="PC99388316W-0055N"
&nbsp;
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\g03w.exe]
"Path"="."
&nbsp;
然后，双击g03.reg文件，这样就将这些注册表信息添加到注册表中了。
至此，大功告成。不信，打开GaussView看看是否还会弹出那两个警告窗口。
&nbsp;
&nbsp;
&nbsp;
&nbsp;]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:19:00</pubDate>
		</item>
				<item>
		<title><![CDATA[能带结构（翻译）]]></title>
		<link>http://blog.pfan.cn/elove/22919.html</link>
		<description><![CDATA[在分子中可能的电子能级是分立的、量子化的。但分子变得更大时，这些能级相互就会靠得更近。在晶体里能级之间靠得非常近以致于形成了连续的带子，这些带子的能量具有实际的利用目的。因此，晶体的电子结构可以用其能带结构来描述。能带的数学描述无限晶体的电子结构用能带图来描述，能带图给出k空间——叫作布里渊（Brillouin）区——中各点的电子轨道的能量。这与角分辨光电子能谱实验结果相一致。k空间不是一个物理空间，它是对轨道成键性质的一种描述。一个无限长的原子链中，轨道?相位可以是从全成键到全反键（这两个极端情况分别记为k=0和k=π/a）之间的任何状态。其中有时是一条直线有三个成键原子再接着一个反?的原子的结合方式或者其他什么结合方式。定义了k空间后，对于某些原子k=0对应于全成键的对称性，而对于其他原子则是全反键对称的，这取决于原子轨道的对称性。对于三维晶体k空间是三维的，（kx，ky，kz）。k空间中的某些点具有特定的名称。在各维空间中，符号“Γ”指的都是k=0的点，“Μ”指的都是k=π/a的点。“Χ”、“Y”、“Κ”和“Α”指的是k=0在某些方向上以及k=π/a在其他方向上的点，这取决于晶体的对称性。典型的能带结构图——称为spaghetti图——画出了沿着这些k点所对应的轨道能量，见图34.1。这些符号在参考文献中有更相详细地讨论。由于轨道展开成了能带，用于形成σ键或σ反键的轨道就展开成更宽的能带，π轨道则形成更窄的能带，而δ轨道则形成最窄的轨道。计算带隙有时候研究者只需要知道晶体的带隙。一旦一条完整的能带计算出来，通过观察自然就很容易知道带隙了。但是计算全部能带可能会花费大量的工作，得到许多不必要的信息。估算带隙有一些方法，但并不完全可靠。只在布里渊区的Μ、Κ、Χ和Γ点进行能带结构计算还不足以形成一条能带，因为任何给定的能带的能量极小点和极大点有时会落在这些k点之间。如果计算方法需要较高级别的CPU计算，有时就会进行这样的有限计算。例如，在确定?否有必要进行高级别的完全计算时，就有可能先进行这种选点的高级别计算。有些研究者用分子的计算结果来估计从HOMO到LUMO的带隙。当分子变得更大时，这种带隙会变得更小，因此就有可能对一些按大小递增的分子进行量子力学计算，然后通过外推预测无限体系的带隙，这对于通常不是晶体的聚合物很有用。这些体系也用到一维能带结构，因此必须假定]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:19:00</pubDate>
		</item>
				<item>
		<title><![CDATA[利用Cartes构造三维石墨晶体的坐标]]></title>
		<link>http://blog.pfan.cn/elove/22918.html</link>
		<description><![CDATA[三维石墨晶体（Graphite）属于第186号空间群（P6(3)mc），立方晶系（Hexagonal），每个原胞里有4个不对称的原子。用Cartes软件构造三维石墨晶体分成以下几个步骤：
1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 编写初始Graphite.gjf文件。
用文本编辑器（记事本或UltraEdit等）新建一个名为Graphite.gjf的文件，格式如下：
#
空一行
2.47 2.47 6.70 90.0 90.0 120.0 #Graphite
空一行
0 1
6&nbsp;&nbsp; 0. 0. 0.
6&nbsp;&nbsp; 0.33333333333 0.66666666667 0.
&nbsp;
说明：上述初始文件中只定义了两个原子坐标，他们是一个原胞在石墨平面（Graphene）内的这两个原子A和B的分数坐标，如下图所示：

图中虚线是一个原胞在一个平面上的范围，矢量a, b是晶胞的基矢量。

&nbsp;
2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 转换成直角坐标文件
Graphite.gjf文件保存后，运行Cartes软件，选择“导入分数坐标”（因为Graphite.gjf文件中的坐标是分数坐标），如下图：


导入后，晶胞参数文本框就自动读入Graphite.gjf文件中的晶胞参数信息，如下图：

&nbsp;
点击“分数坐标转成直角坐标”按钮，如图：


保存成Graphite-car文件，如图：


3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用对称性操作得到一个原胞内所有原子的坐标。
再用Cartes软件的“导入直角坐标”按钮导入Graphite-car文件，如图：


点击“对称操作”，如图： 


这样就打开了如下图所示的对话框：


先添加单位矩阵，直接点击“添加”按钮即可，如下图所示：


这一步操作表示我们保留原先石墨平面上一个晶胞内的A, B两个初始原子。下面我们就要从A, B两个原子通过晶体的平移对称性来得到整个原胞内的另两个原子A’和B’。 A’和B’是位于第二层石墨平面上的，因此c方向应当平移0.5（或-0.5）个晶胞]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:18:00</pubDate>
		</item>
				<item>
		<title><![CDATA[一个轻松制作和处理矢量图的工具和方法]]></title>
		<link>http://blog.pfan.cn/elove/22917.html</link>
		<description><![CDATA[我比较喜欢用MetaPost，因为它简单而优美，基本而强大。MetaPost尤其适合于绘制由数学精确控制的图形，例如我曾经利用MetaPost设计了一个平面石墨卷曲成碳纳米管的过程的演示动画，自以为很是得意，其实都是人家MetaPost的功劳。然而，我有时会遇到这些情形——也许你可能也遇到过，比如：1. 我从别人那里获得（如网上下载的）或者是别的软件（如MATLAB）生成了一些好看的矢量图，但我希望将这些图上的添加自己的一些注释性文字。2. 我想将几张矢量图合成到一张矢量图中来，并且这些矢量图的大小和位置可以按自己需要设置。3. 我想将几张好看的点阵图（位图）与其他矢量图同时合成到一张矢量图中来，并且能添上自己个性化的说明文本。......我想这些用MetaPost似乎很难实现——尽管MetaPost有个宏包可以实现插入eps图形，但似乎这个宏包不太好用，而且这些矢量图的大小和位置将是一件很麻烦的事情。也许你还会想到用LaTeX的一些包来实现在图形上添加各种文字，但同样，你需要很细致地尝试出合适的位置坐标，这同样也比较麻烦。我以前还有个笨方法，就是用Gsview将eps矢量图转换成*.mp文件，然后在这个*.mp文件中添加代码，再重新用mpost编译成矢量图。显然，这也是相当麻烦的且有很大的局限性。在这里，我向大家介绍一下一个极其简便的方法，因为我个人觉得现在我实现上面的那些设想是件极其轻松的事情——就像用qq聊天那样稀松平常。首先，你需要有的软件是：1. M$ Word (M$ Office) （最好是Office XP以上，我用的是2003，低版本的行不行我海不太清楚）2. Chem Draw (Chem Office) 或者 CorelDRAW （当然其他的能绘制矢量图并且能在Word中作为内嵌对象插入的软件也可以）3. Adobe Arobat (注意不是Reader)4. 最好还有Gsview或Imagemagick等工具然后，我的思路就很简单了：1. 先将你所要合成在一起的矢量图和点阵图都插入到Word里。值得注意的是Word 2003中插入的矢量图仍然保持着矢量图的特性。在这些图中，需要调整位置和大小的图形请将其格式设置成“浮于文字上方”，这样才能随意放置。2. 如果某些地方需要添加文字或简单的几何图形（如箭头，多边形等等）请用Chem Dra]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:14:00</pubDate>
		</item>
				<item>
		<title><![CDATA[在MS&nbsp;Office中插入矢量图的最佳文件格式]]></title>
		<link>http://blog.pfan.cn/elove/22916.html</link>
		<description><![CDATA[1. eps 文件MS Office2003可以直接插入eps格式的矢量图，但插入之后显示效果比较难看，尤其是文本笔划粗细不均，很不美观。但它依然是矢量图，不信，你放大到500倍清晰度仍不减。而且，如果你将word或ppt转成pdf文件（比如用pdf打印机）之后，原来插入的eps图就又会恢复原来的美观模样了。如果直接将word用打印机打印，则纸张上的eps图形显示效果和屏幕上显示的word差不多，不太好看。另外，有的eps图形插入到MS Office中后，色相居然完全颠倒了（但转成pdf后就又恢复正常了）。因此，想要在MS Office中插入矢量图，eps格式不是最佳选择。2. emf文件eps文件用CorelDraw就可以转成emf 文件如果将eps矢量图转成emf格式（Enhanced Windows Metafile）的图形，那么插入MS Office中仍然是矢量图，而且效果比eps要好看多了。3. wmf 文件eps文件用CorelDraw就可以转成wmf 文件。我认为wmf 格式（Windows Metafile）的矢量图是插入MS Office的最佳格式。它不但保持了矢量化的图形，而且比eps和emf格式的图形都要美观——就是word转成pdf后，wmf也要比eps和emf好看些。但在word中的wmf 格式图形打印和转成pdf后，线条稍细，而且字体不太光滑。4. 如何得到透明背景的矢量图以上的eps, emf和wmf格式的图形都支持透明背景。但有些软件（比如MATLAB）输出的矢量图往往不是透明背景的，这样插在ppt中就会很难看，就像贴了膏药似的。关于在MATLAB中如何得到透明背景的矢量图，我有个经验就是：用MATLAB导出pdf图形（而不是eps图形），然后用Acrobat另存成 eps图形，往往就是透明的了。不过，如果一个图形包含多个子图，那么很可能只有第一个子图的背景是透明的，其余子图背景仍为白色。其实，CorelDraw是个相当不错的矢量图软件，用它可以得到具有透明背景的矢量图。将矢量图用CorelDraw打开，然后打开对象编辑器，选中背景对象，删除即可。然后导出eps文件。如果你想用来插入到MS Office中去，那么最好就导出wmf格式吧。&nbsp;
&nbsp;
&nbsp;
&nbsp;]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:13:00</pubDate>
		</item>
				<item>
		<title><![CDATA[最好的富勒烯结构生成程序－CaGe的简便使用方法]]></title>
		<link>http://blog.pfan.cn/elove/22915.html</link>
		<description><![CDATA[2006-7-28
&nbsp;
CaGe免费，开源，而且功能十分强大，它应当是目前生成富勒烯结构的首选程序。读完本文，您就可以使用CaGe轻松生成任何你想要的富勒烯结构。
&nbsp;
关键词：富勒烯（Fullerene），结构（Structure），坐标（Coordinate），CaGe，fullgen，免费软件（FreeSoftware），开源（Open Source）
&nbsp;
目前很难找到一种通用程序，能够生成给定碳原子数目n的所有可能的富勒烯Cn的结构坐标。Sebastian Lisken用C和Java开发了一套开源软件包，名叫CaGe（http://www.mathematik.uni-bielefeld.de/~CaGe/）。它主要用来生成各种类型的数学图，其中某些类型与有趣的分子结构密切相关，同时还能够通过不同方式显示这些图形，并能将这些图以多种格式输出成文件。借助于CaGe就能实现我们开头提出的目标－生成我们想要的富勒烯的结构。据程序的作者介绍，CaGe是目前生成富勒烯结构最快最好的软件。然而，目前的CaGe是在Unix图形界面下运行的，而且必须预装有Java（Windows版本可能以后会推出）。因此，对于无法使用图形界面的远程登陆的用户，或者没有安装Java的用户，就无法使用CaGe了。
&nbsp;

&nbsp;
经过一些摸索，我发现可以在无Java且无图形界面的情况下使用CaGe生成富勒烯的结构坐标。下面我就来详细介绍一下。
&nbsp;
1.&nbsp;&nbsp; 安装方法
首先，从CaGe的网站上下载这个软件包CaGe.zip。登陆你的Unix系统（不必是root），然后新建一个文件夹，把CaGe.zip解压进来：
&nbsp; mkdir cage
&nbsp; cd cage
&nbsp; unzip ../CaGe.zip
然后在将其中的CaGe-C.zip解压，就生成了Generators和Native连个文件夹：
&nbsp; cd Generators
进入Generators目录后，就会看到一些*.c的源文件，我们需要将它们编译成可执行文件：
&nbsp; make
在编译好的一系列可执行文件中，我们需要的只有fullgen和embed。下面我就介绍一下如何用这两个程序]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-27 20:10:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Linux下C编程注意事项]]></title>
		<link>http://blog.pfan.cn/elove/22843.html</link>
		<description><![CDATA[一般可以用gcc编译器
1. 头文件象conio.h应该变成curses.h
2. 没有itoa函数itoa？不对吧，标准C/C++里根本没有这个函数。即使在Windows平台下某些编译器提供了该函数[3]，没有任何移植性不说，还只能解决int类型（也许其他函数还可以解决long、unsigned long等类型），浮点类型又怎么办？当然，办法还是有，那就是：sprintf。 
char s[100];sprintf(s, "%f", 123.123456);
3. 关于sqrt,sin和cos函数就算是引入math.h头文件，也不会找到sqrt,sin和cos函数。应该用链接库来解决。有时候我们使用了某个函数,但是我们不知道库的名字,这个时候怎么办呢?很抱歉,对于这个问题我也不知道答案,我只有一个傻办法.首先, 我到标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程(thread)函数的库文件(libpthread.a). 当然,如果找不到,只有一个笨方法.比如我要找sin这个函数所在的库. 就只好用 nm -o /lib/*.so|grep sin&gt;~/sin 命令,然后看~/sin文件,到那里面去找了. 在sin文件当中,我会找到这样的一行libm-2.1.2.so:00009fa0 W sin 这样我就知道了sin在 libm-2.1.2.so库里面,我用 -lm选项就可以了(去掉前面的lib和后面的版本标志,就剩下m了所以是 -lm). 
4. Makefile出现missing separator的错误原因是目标声明行下面的命令行必须用Tab键分开（而不是空格）
PG: PG.o[ Tab键 ]gcc -o PG -O -O2 -lm /lib/ld-2.2.93.so PG.oPG.o: PG.c pointgroup.h[ Tab键 ]gcc -c -O -O2 PG.cclean:[ Tab键 ]rm -f *.o
5. 注意文件的DOS格式字符调试的时候应该注意文件可能有DOS格式字符，必须先用如下命令去掉文件中的DOS格式字符：tr -d &lt;file&gt; tmp_filemv tmp_file &lt;file&gt;
附:**********************************]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 19:22:00</pubDate>
		</item>
				<item>
		<title><![CDATA[word自定义某一页的页眉或页脚的方法]]></title>
		<link>http://blog.pfan.cn/elove/22842.html</link>
		<description><![CDATA[word自定义某一页的页眉或页脚的方法
2006-12-21 21:57:38 / 个人分类：个人原创 

倏子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; word怎么自定义某一页的页眉或页脚？
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你打开word，跟着我操作。
倏子：&nbsp; 好的，可以开始了
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 插入 -&gt; 分隔符...
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 找到了吗？
倏子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 找到了
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在弹出的小对话框中选择：
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; “分节符类型”-下一页
倏子：&nbsp; 可以了
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定
倏子：&nbsp; 好的。
忽子：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再在第二页也插入这么一个分节符
倏子：&nbsp; 可以了
忽子：&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 然后是：
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 视图 -&gt; 页眉]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 19:21:00</pubDate>
		</item>
				<item>
		<title><![CDATA[My&nbsp;LaTeX&nbsp;Tips]]></title>
		<link>http://blog.pfan.cn/elove/22841.html</link>
		<description><![CDATA[My LaTeX Tips

1. 如何让TeX找到你最新加入的宏包(*.sty)文件？最简单的方法就是再你将你的*.sty文件放入CTeX目录树下后，在DOS下敲入texhash命令即可。否则，TeX编译会找不到你的*.sty文件。
详细解释：
TEX 系统通过这个数据库记录了所需要的各种文件的名字和具体目录位置。每次你往系统中添加文件后，都要记得刷新这个数据库，否则TEX 有可能找不到需要的文件。刷新文件名数据库的具体命令取决于你使用的TEX 系统。teTEX 和fpTEX 的命令是texhashMiKTEX 用户可以在Dos 窗口中输入以下命令initexmf --update-fndb或者使用MiKTEX 提供的图形界面工具MiKTEX Options。在开始菜单中找到MiKTEX Options，打开点击General 页上的Refresh Now 按钮即可。
2. input{file}与include{file}前者不换页，后者换页。
3. 更改插图题头（默认为：Figure 1: 改为：图 1 ）%% 用caption2宏包\renewcommand\figurename{\textbf{图}} % 插图题头%% 定义如 "图(表)1: 示例" 中的间隔符号,如 ":" ,这里定义为空\renewcommand{\captionlabeldelim}{}%定义图表编号与标题间的间隔距离\renewcommand{\captionlabelsep}{\hspace{1em}}
4. 如何使生成的pdf文本粘贴无乱码？今天是学习LaTeX的第3天，越来越有兴趣了。 :P 我习惯在WinEdt中直接用CCT&amp;LaTeX按钮生成ps文件，然后再用ps2pdf按钮转成pdf文件。但结果发现生成的pdf文件中，复制粘贴其中的文本出来却是乱码 :blink: 。后来，我终于摸索出一个办法:生成dvi文件后，用dvipdfmx + 文件名.dvi命令去生成pdf文件，这时复制粘贴其中的文本出来的就不再是乱码了，而且中文搜索也没问题。
5. 自带的guide一般在以下两个地方：
如果是系统安装的packages，则大多在$TEXMF$\doc\latex\THE-NAME-OF-THE-PACKAGE目录下，如hyperref的在：$TE]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 19:20:00</pubDate>
		</item>
				<item>
		<title><![CDATA[N年前写的抢24扑克游戏]]></title>
		<link>http://blog.pfan.cn/elove/22840.html</link>
		<description><![CDATA[感觉算法还是有些笨，不过现在已没时间改进它了。
源代码如下：


&lt;html&gt; 
&lt;!-- 
###################################################### 
# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Copyright 2002-2003 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 
# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 
# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Written by neweroica &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 
###################################################### 
--&gt; 
&lt;title&gt;neweroica的抢24游戏&lt;/title&gt; 
&lt;!--------------作者：neweroica(aqyw)----------------&gt; 
&lt;h2&gt;24点游戏初解&lt;/h2&gt; 
&lt;h4&gt;作者：neweroica(aqyw)&lt;/h4&gt; 
&lt;input type=hidden name=a1&gt; 
&lt;input type=hidden name=b1&gt; 
&lt;input type=hidden name=c1&gt; 
&lt;input type=hidden name=d1&gt; 
&lt;table&gt; 
&lt;tr&gt; 
&lt;td]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 19:20:00</pubDate>
		</item>
				<item>
		<title><![CDATA[汉字简体繁体转换]]></title>
		<link>http://blog.pfan.cn/elove/22839.html</link>
		<description><![CDATA[这是我几年前写的Javascrīpt代码，当时纯粹是觉得好玩，好像是发在无忧脚本（51js）论坛上了。结果没想到这个代码居然大受欢迎，甚至有些台湾网站也引用了我做的这个小工具。看来一个受欢迎的代码可以并不复杂，关键是要实用。

charPYStr文件：
function charPYStr(){&nbsp; return '画一乙二十丁厂七卜八人入乂儿九匕几刁了乃刀力又乜三干亍于亏士土工才下寸丈大兀与万弋上小口山巾千乞川亿彳个么久勺丸夕凡及广亡门丫义之尸已巳弓己卫孑子孓也女飞刃习叉马乡幺丰王井开亓夫天元无韦云专丐扎廿艺木五支厅卅不仄太犬区历友歹尤匹厄车巨牙屯戈比互切瓦止少曰日中贝内水冈见手午牛毛气壬升夭长仁仃什片仆仉化仇币仂仍仅斤爪反兮刈介父爻从仑今凶分乏公仓月氏勿风欠丹匀乌勾殳凤卞六文亢方闩火为斗忆计订户讣认讥冗心尹尺夬引丑爿巴孔队办以允邓予劝双书毋幻玉刊末未示击邗戋打巧正扑卉扒邛功扔去甘世艾艽古节艿本术札可叵匝丙左厉丕石右布夯龙戊平灭轧东匜劢卡北占凸卢业旧帅归目旦且叮叶甲申号电田由卟叭只央史叱叽兄叼叩叫叻叨另叹冉皿凹囚四生失矢氕乍禾仨仕丘付仗代仙仟仡仫伋们仪白仔他仞斥卮瓜乎丛令用甩印氐乐尔句匆犰册卯犯外处冬鸟务刍包饥主市庀邝立冯邙玄闪兰半汀汁汇头汈汉忉宁穴宄它讦讧讨写让礼讪讫训必议讯记永司尻尼民弗弘阢出阡辽奶奴尕加召皮边发孕圣对弁台矛纠驭母幼丝匡耒邦玎玑式迂刑邢戎动圩圬圭扛寺吉扣扦圪考托圳老圾巩执扩圹扪扫圯圮地扬场耳芋芏共芊芍芨芄芒亚芝芎芑芗朽朴机权过亘臣吏再协西压厌厍戌在百有存而页匠夸夺夼灰达戍尥列死成夹夷轨邪尧划迈毕至此乩贞师尘尖劣光当吁早吐吓旯曳虫曲团同吕吊吃因吸吗吆屿屹岌帆岁回岂屺则刚网肉凼囝囡钆钇年朱缶氘氖牝先丢廷舌竹迁乔迄伟传乒乓休伎伏伛优臼伢伐仳延佤仲仵件任伤伥价伦份伧华仰伉仿伙伪伫自伊血向囟似后行甪舟全会杀合兆企汆氽众爷伞创刖肌肋朵杂夙危旬旭旮旨负犴刎犷匈犸舛各名多凫争邬色饧冱壮冲妆冰庄庆亦刘齐交次衣产决亥邡充妄闭问闯羊并关米灯州汗污江汕汔汲汐汛汜池汝汤汊忖忏忙兴宇守宅字安讲讳讴军讵讶祁讷许讹论讼农讽设访诀聿寻那艮厾迅尽导异弛阱阮孙阵阳收阪阶阴防丞奸如妁妇妃好她妈戏羽观牟欢买纡红纣驮纤纥驯纨约级纩纪驰纫巡寿玕弄玙麦玖玚玛形进戒吞远违韧运扶抚坛抟技坏抔抠坜扰扼拒找批扯址走抄汞坝贡攻赤圻折抓扳坂抡扮抢扺孝坎坍均坞抑抛投抃坟坑抗坊抖护壳志扭块]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:36:00</pubDate>
		</item>
				<item>
		<title><![CDATA[DOS格式的文件转成Unix格式的文件]]></title>
		<link>http://blog.pfan.cn/elove/22838.html</link>
		<description><![CDATA[/*&nbsp;win2unix&nbsp;*/#include&nbsp;"stdio.h"#include&nbsp;"stdlib.h"#include&nbsp;"conio.h"#include&nbsp;"string.h"int&nbsp;main(int&nbsp;argv,&nbsp;char&nbsp;*&nbsp;args[]){&nbsp;&nbsp;FILE&nbsp;*fp1,*fp2;&nbsp;&nbsp;char&nbsp;c;&nbsp;&nbsp;char&nbsp;s[100];&nbsp;&nbsp;if(argv&lt;2){&nbsp;&nbsp;&nbsp;&nbsp;printf("Usage:&nbsp;win2unix&nbsp;input-file-name&nbsp;[output-file-name]");&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;&nbsp;&nbsp;}&nbsp;&nbsp;if((fp1=fopen(args[1],"rb"))==NULL){&nbsp;&nbsp;&nbsp;&nbsp;printf("Error:&nbsp;Fail&nbsp;to&nbsp;open&nbsp;%s.",args[1]);&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;&nbsp;&nbsp;}&nbsp;&nbsp;if(argv==2){&nbsp;&nbsp;&nbsp;&nbsp;sprintf(s,"u_%s",args[1]);&nbsp;&nbsp;}&nbsp;&nbsp;else{&nbsp;&nbsp;&nbsp;sprintf(s,"%s",args[2]);&nbsp;&nbsp;&nbsp;if(strcmp(s,args[1])==0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Error:&nbsp;Output&nbsp;file&nbsp;name&nbsp;must&nbsp;not&nbsp;be&nbsp;same&nbsp;to&nbsp;that&nbsp;of&nbsp;the&nbsp;input&nbsp;file.");&n]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[未名BBS的www一个漏洞的利用]]></title>
		<link>http://blog.pfan.cn/elove/22837.html</link>
		<description><![CDATA[1.漏洞的发现
我们知道在telnet方式下可以设置图片签名档，设置格式就是：&lt;img&gt;图片的URL&lt;/img&gt;这样当你设置好了之后，当你发表文章后，在www方式下，相应的网页中就会自动生成以下HTML代码：&lt;img src="图片的URL" border=0&gt;这个原理相信大家都明白，但是如果仔细推敲和发挥想像就会做到出人意料的效果：试想，如果我的图片签名档这样设置：&lt;img&gt;"&gt; 任何代码 &lt;q "&lt;/img&gt;那么在www方式下你的文章所在的页面中相应的HTML代码就是：&lt;img src=""&gt; 任何代码 &lt;q "" border=0&gt;现在你会意识到什么了？那就是我们可以在未名BBS的www方式下加入任何代码（浏览器支持的任何代码）!!!于是我们就可以充分发挥我们的想像来做我们想玩的东西。
2.漏洞的利用技巧
在我们准备动手之前，可以先做一个简单测试：将签名档设为： &lt;img&gt;"&gt; alert() &lt;q "&lt;/img&gt;然后到test板发一篇文章。这样，在www下点击你的文章时就会看到弹出alert()窗口。但是很快你就会发现两个破绽：1) 图片签名档由于img的src=""，找不到路径，因而出现了带叉的图片空框，这有可能被细心的人注意。2) 要是在telnet下看你的文章时，就会发现你的签名档是一大堆代码，这更会引起管理员的怀疑的。所以，接下来我们要设法解决这些问题：对于第一个问题，可以将签名档设置成：&lt;img&gt;" style="display:none;"&gt; 任何代码 &lt;q "&lt;/img&gt;这样图片就不显示出来了。对于第二个问题，可以利用“障眼法”，只需将签名档设置成：一个文字签名档&nbsp; 足够长的空格&nbsp; &lt;img&gt;" style="display:none;"&gt; 任何代码 &lt;q "&lt;/img&gt;这样一切工作就做得很隐蔽了，我们就可以放心大胆地去玩了。
3.漏洞的一个可怕的利用——用别人id发文、进入别人信箱
也许有人会利用代码搞点恶作剧或加入一些恶性代码满足某种目的，但毕竟这些都还不会带来很严重的后果，而且也并不能发挥你的多少想像力。]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:29:00</pubDate>
		</item>
				<item>
		<title><![CDATA[在option下拉菜单选项中添加图片]]></title>
		<link>http://blog.pfan.cn/elove/22836.html</link>
		<description><![CDATA[&lt;h2 align=center&gt;option下拉菜单选项中添加图片（原创）&lt;/h2&gt;&lt;h3 align=center&gt;作者 neweroica&lt;/h3&gt;&lt;h3 align=center&gt;2002-11-21 14:33&lt;/h3&gt;&lt;scrīpt&gt;//*****************************************************************////&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作者 neweroica//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#322002;-11-21 14:33//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 欢迎大家引用，但请保留此版权信息，谢谢！////******************************************************************var h=0;
function doSelect(id){&nbsp;&nbsp;if(h%2==0)&nbsp;&nbsp;&nbsp;&nbsp;list.style.display='';&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;list.style.display='none';&nbsp;&nbsp;h++;&nbsp;&nbsp;eval('title.innerHTML=title_'+id+'.value');}function selectList(imgSrc,i,id){&nbsp;&nbsp;title.innerHTML='&lt;img src='+imgSrc+'&gt;';&nbsp;&nbsp;&nbs]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:28:00</pubDate>
		</item>
				<item>
		<title><![CDATA[用JavaScript实现HTML的无缝MARQUEE]]></title>
		<link>http://blog.pfan.cn/elove/22835.html</link>
		<description><![CDATA[&lt;h1&gt;无缝MARQUEE&lt;/h1&gt;&lt;h3&gt;作者 neweroica 2002-12-1 16:58&lt;/h3&gt;&lt;p&gt;使用说明&lt;/p&gt;&lt;p&gt;在&amp;lt;marquee&amp;gt;标签中加入onstart=noSeamMarquee(this,max,peroid,0)，其中max是innerHTML最大的复制数目，比如可以取100；peroid略小于本marquee走一个循环的大约时间（单位：秒），可以事先估计。&lt;/p&gt;
&lt;scrīpt&gt;function noSeamMarquee(obj,max,t,h){&nbsp; if(h==0)&nbsp;&nbsp;&nbsp; cont=obj.innerHTML;&nbsp; &nbsp; obj.innerHTML+=cont;
&nbsp; if(h&gt;max)&nbsp;&nbsp;&nbsp; eval('clearTimeout(timer_'+obj.id+')');&nbsp; h++;&nbsp; eval('timer_'+obj.id+'=setTimeout("noSeamMarquee('+obj.id+','+max+','+t+','+h+')",'+t*1000+');');}&lt;/scrīpt&gt;
&lt;marquee id=m1 ōnstart="noSeamMarquee(this,100,20,0);this.stop()" width=500 height=100 direction=left scrollamount=3 scrolldelay=1 ōnmouseover=this.stop() ōnmouseout=this.start() bgcolor=#888888&gt;&lt;img src=http://202.112.86.128/studentspace/aqyw/js/marquee/bucky_480x360.jpg height=100 width=150&gt;&lt;img src=http://202.112.86.128/studentspace/aqyw/js/marquee/chemimole.gif]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:27:00</pubDate>
		</item>
				<item>
		<title><![CDATA[使对话框应用程序具有系统托盘功能]]></title>
		<link>http://blog.pfan.cn/elove/22834.html</link>
		<description><![CDATA[2005-2-27 12:23

&nbsp; 1. 将SystemTray.h和SystemTray.cpp拷贝到项目工作目录，再添加到项目里。&nbsp;&nbsp; 在XXXDlg.h中加入&nbsp;&nbsp; #include "SystemTray.h"&nbsp;&nbsp; &nbsp;&nbsp; 2. 为XXXDlg类添加protected变量：CSystemTray m_trayIcon
3. 建立托盘菜单&nbsp;&nbsp;&nbsp; 也就是当程序隐藏到任务栏上时，你用右键点击托盘图标时显示出的右键菜单。&nbsp;&nbsp;&nbsp; 新建一个Menu资源，命名为IDR_THETRAY。&nbsp;&nbsp;&nbsp; 为这个菜单添加你想要的子菜单。例如：&nbsp;&nbsp;&nbsp; IDC_ABOUT&nbsp;&nbsp; 关于&nbsp;&nbsp;&nbsp; IDC_SHOW&nbsp;&nbsp;&nbsp; 显示/隐藏&nbsp;&nbsp;&nbsp; ID_APP_EXIT 退出&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 用ClassWizard为IDC_ABOUT添加响应函数OnAbout()：&nbsp;CAboutDlg aboutdlg;&nbsp; aboutdlg.DoModal();&nbsp;&nbsp;用ClassWizard为IDC_SHOW添加响应函数OnShow()：&nbsp; if (!IsWindowVisible()) {&nbsp; ShowWindow(SW_SHOW);&nbsp;}&nbsp;else{&nbsp; ShowWindow(SW_HIDE);&nbsp;}&nbsp;&nbsp;&nbsp; 4. 在XXDlg头文件中加入：&nbsp;&nbsp; #define WM_USER_TRAY_NOTIFICATION (WM_USER+0x101)
&nbsp; 在cpp文件的OnInitDialog()里添加：
&nbsp;&nbsp; m_trayIcon.Create(this, WM_USER_TRAY_NOTIFICATION, "Blhaaa", &nbsp;&nbsp;&nbsp;&nbs]]></description>
		<author><![CDATA[simplestbeauty]]></author>
		<pubDate>2007-01-26 18:26:00</pubDate>
		</item>
		</channel>
</rss>