<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[NothingHere]]></title>
<link>http://blog.pfan.cn/nothing</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[Vim&nbsp;indent&nbsp;file,&nbsp;another&nbsp;yet!]]></title>
		<link>http://blog.pfan.cn/nothing/22049.html</link>
		<description><![CDATA[&quot;&nbsp;Vim&nbsp;indent&nbsp;file,&nbsp;another&nbsp;yet!&quot;&nbsp;Language:&nbsp;&nbsp;&nbsp;&nbsp;Eiffel&quot;&nbsp;Maintainer:&nbsp;&nbsp;&nbsp;Huang&nbsp;Liang&nbsp;&lt;huangl@tfol.net&gt;&nbsp;&quot;&nbsp;Ref&nbsp;Maintainer:&nbsp;&nbsp;&nbsp;&nbsp;Jocelyn&nbsp;Fiat&nbsp;&lt;eiffel@djoce.net&gt;&quot;&nbsp;Previous-Maintainer:&nbsp;&nbsp;&nbsp;&nbsp;David&nbsp;Clarke&nbsp;&lt;gadicath@dishevelled.net&gt;&quot;&nbsp;$Date:&nbsp;2006/12/28&nbsp;21:33:52&nbsp;$&quot;&nbsp;$Revision:&nbsp;1.0&nbsp;$&quot;&nbsp;URL:&nbsp;http://www.djoce.net/page/vim/&quot;&nbsp;Last&nbsp;Change:&nbsp;&nbsp;&nbsp;&nbsp;2006&nbsp;dec&nbsp;28&nbsp;:&nbsp;rewrite&nbsp;the&nbsp;indent&nbsp;rule&quot;&nbsp;Only&nbsp;load&nbsp;this&nbsp;indent&nbsp;file&nbsp;when&nbsp;no&nbsp;other&nbsp;was&nbsp;loaded.if&nbsp;exists(&quot;b:did_indent&quot;)&nbsp;&nbsp;&quot;finishendiflet&nbsp;b:did_indent&nbsp;=&nbsp;2setlocal&nbsp;indentexpr=GetEiffelIndent()setlocal&nbsp;nolispsetlocal&nbsp;nosmartindentsetlocal&n]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-12-29 15:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[linux和win32共存]]></title>
		<link>http://blog.pfan.cn/nothing/21306.html</link>
		<description><![CDATA[这大概是我最早的一篇技术性文章了,大约是1999年.

看了十几个关于linux和win32共存的问题，总要有个答案吧！
以下的linux均指cosix linux 3.0亦适用于red hat 6.1以上（6.1以下的没试过）。

分区（适用于所有win32平台）

通常在第一分区安装最常用的操作系统，以得到最高的性能。
下面以第一分区为win32为例：
分区如下：
Partition NO.  size 　             File System Type　Symbol
  1            5000MB              win32(Fat32)        B
  2            3000MB              linux native(ext2)  82
  3            Rest(>300MB)        logic(Dos logic)    (未知）
　5            258MB               linux swap(ext2)    83
  6            Rest                win32(FAT32/NTFS)   B/(未知NTFS 5的代码）

这种分区表的好处是可扩展性好，保留了第四个主分区位置，可以自由增加第三个操作系统。
缺点是不太好做(fdisk或cfdisk（推荐）可以做，PQ Magic做不了)，并且PQ Magic不认.
（报错，并自动删去第二个扩展分区以后的所有分区。也可以不要交换分区，
这样PQ Magic就不会报错了）

Partition NO.  size 　             File System Type　Symbol
  1            5000MB              win32(Fat32)        B
　2            192MB+              linux swap(ext2)    83
  3            3000MB              linux native(ext2)  82
  4            Rest(>300MB)        logic(Dos]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-12-06 09:12:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C++关注方向]]></title>
		<link>http://blog.pfan.cn/nothing/21305.html</link>
		<description><![CDATA[C++关注方向(本文的写作时间较早,其中有些言论已经不合时宜)1.C++扩展根据某位高人的解说，C++扩展似乎只有一条路了――类库。类库有几个方向：标准C++库的实现：基本上是各家一套，而最有希望的标准实现STLPort还在路上。不过我们最观心的还是如何用好它吧。通用C++类库：有很多很多，不过现在Boost已经博采众长，成长为最全面（未必最好）的一个通用类库。专门类库：很多专门类库已经并入通用类库，比如Serialization，Signal，Regexp等等，都已经是通用C++类的一部分，但还是有如WxWidgets，Bliz++，MFC，QT等专注于一个平台或一个方面。C++类库，主要有两个发展目标，一是跨平台，跨编译器，强调可移植性；二是泛型化，强调编译期，自适应；2.C++成例C++大概是最讲究“最佳实践”的语言了。有如此重多的书都是讲关于如何写一个类，如何写一个方法，如何设计一个方法。不过，随着编译器的发展，很多成例很快就过时了。比如说早期很讲究的一个成例NRV，已经成为编译器最重要的优化指标，基本上已经没有不支持这一优化的编译器了。做为一个C++程序员，知道多少成例，可以直接说明有多少经验。３.模式和架构很多类库其实就是因为某一个模式或架构在C++中实现而出现。甚至Loki完全就是一个的C++模式库。如何在C++语言中实现某中模式和架构，也是很重要的一个方向。４.应用平台这是C++永远的痛处了，很多类库就是为此奋斗，可惜“类库!=应用平台”。到现在为至，还没有一个完全为C++定制的应用平台。所有C++程序员都不得不在他人的平台上工作。因此，就有一个很奇怪的方向，在XXX平台上使用C++。]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-12-06 09:07:00</pubDate>
		</item>
				<item>
		<title><![CDATA[语言之间的接口和适配层]]></title>
		<link>http://blog.pfan.cn/nothing/20950.html</link>
		<description><![CDATA[语言之间并没有鸿沟，一种语言写成的东西并非不能被另一种语言调用，这是语言之间的接口和适配问题。1.语言之间的接口多是指动态语言和静态语言之间的接口。但是，从一般意义上来说只要是高级语言都有相应的低层接口。区别只在这个接口本身如何表达。例如，PASCAL语言它的低层接口只能表达为汇编，因为PASCAL本身就已经十分低层，它的内部结构，如函数，结构等，只能以汇编的方式访问。类似的语言还有C。又如，Python语言它的低层接口可以是高级语言--C语言。说明它的结构十分高级可以使用C语言来访问。静态语言很难以另一种静态语言来访问其结构，原因在于它的动态性很小，其静态结构就比较简单，同时也比较低层，很难找一种语言能访问它所有的设施。C++就是这样，虽然它大多数结构都可以被C语言访问，而且大多数时间C语言也是C++的低层接口语言。但是调用成员函数这样的设施还是需要汇编语言才能实现。2.两种语言之间有映射和适配两种接口方式。映射是指一种语言能直接访问另一种语言（用作接口）的基本结构。比如C++和C之间，C++能直接访问所有C的结构，所以C可以用作C++的接口语言，用于扩展C++。映射并不是包含。一般来说，只要高层语言能直接访问低层语言的大部分基本类型和调用机制即可。大多数语言和相应的虚拟机汇编都有如此关系，例如C#/VB#/J#等语言与IL的关系，Java和JVM&nbsp;bytecode的关系。编译语言中，D语言，haskell语言都有C的映射。这类语言扩展时常采用保留低层接口风格，高层语言看起来像是直接调用低层语言。最为著名的是Eclipse&nbsp;SWT库的Java-C接口，虽然Java-C的接口是适配关系，不是映射关系。适配关系的接口，正好与映射关系相反，是由低层语言来访问高层结构。比如前面提到的Java-C的接口，Java把对象结构公开出来，Jvm的调用公开出来，C语言只需要访问这些结构，就可以生成相应的Java对象。这种接口的特点是扩展后接口与低层接口风格有很大差异。映射和适配有区别也有统一，前面说到的SWT库就是在适配的接口上实现了映射风格的扩展。同样在映射接口上也可以实现适配风格的扩展。3.一般来说C语言是高级语言中最低层的语言。它的静态结构十分简单，基本上没有动态结构，结构体和共用体大概C语言中最动态的结构了。另一方面，几乎所有系统上都有标准C的实现。可以]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-11-27 21:12:00</pubDate>
		</item>
				<item>
		<title><![CDATA[波松分酒问题&nbsp;C++求最优解.&nbsp;]]></title>
		<link>http://blog.pfan.cn/nothing/19686.html</link>
		<description><![CDATA[/*请设计程序解决“波松分酒问题”问题如下：某人有12品脱啤酒一瓶，想从中倒出6品脱，但他没有6品脱的容器，仅有一个8品脱和一个5品脱的容器，怎样才能将啤酒分为两个6品脱？抽象分析:b&nbsp;=&nbsp;大容器,也表示容积s&nbsp;=&nbsp;小容器,也表示容积(f),(h),(e)&nbsp;状态f=满,&nbsp;e=空,&nbsp;h=数字,表示容量运算一:&nbsp;b(f)&nbsp;-&nbsp;s(e)&nbsp;&nbsp;=&gt;&nbsp;&nbsp;b(b&nbsp;-&nbsp;s),&nbsp;s(f)变例&nbsp;&nbsp;&nbsp;&nbsp;b(h)&nbsp;-&nbsp;s(e)&nbsp;&nbsp;=&gt;&nbsp;&nbsp;b(h&nbsp;-&nbsp;s),&nbsp;s(f)运算二:&nbsp;b(e)&nbsp;+&nbsp;s(f)&nbsp;&nbsp;=&gt;&nbsp;&nbsp;b(s),&nbsp;s(e)变例&nbsp;&nbsp;&nbsp;&nbsp;b(h)&nbsp;+&nbsp;s(f)&nbsp;&nbsp;=&gt;&nbsp;&nbsp;b(f),&nbsp;s(s&nbsp;-&nbsp;b&nbsp;+&nbsp;h)引出&nbsp;&nbsp;&nbsp;&nbsp;b(f)&nbsp;-&nbsp;s(h)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b(h)&nbsp;-&nbsp;s(h)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b(e)&nbsp;+&nbsp;s(h)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b(h)&nbsp;+&nbsp;s(h)&nbsp;如果以瓶中酒的数量为节点,&nbsp;通过一次以上运算可达到节点之间认为连通.此题可转化为一个有向图的搜索问题.即找出.指定节点(12,&nbsp;0,&nbsp;0)&nbsp;和&nbsp;(6,&nbsp;6,&nbsp;0)之间的最小路径.&nbsp;*/#include&nbsp;&lt;cstdio&gt;#includ]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-10-24 15:25:00</pubDate>
		</item>
				<item>
		<title><![CDATA[素数缓冲求法，可重用类&nbsp;]]></title>
		<link>http://blog.pfan.cn/nothing/19685.html</link>
		<description><![CDATA[&nbsp;&nbsp;#include&nbsp;&lt;iostream&gt;&nbsp;&nbsp;&nbsp;#include&nbsp;&lt;algorithm&gt;&nbsp;&nbsp;&nbsp;#include&nbsp;&lt;vector&gt;&nbsp;&nbsp;&nbsp;#include&nbsp;&lt;iterator&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template&nbsp;&lt;typename&nbsp;T&gt;&nbsp;&nbsp;class&nbsp;PrimerCache&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;T&nbsp;&nbsp;&nbsp;ValueType;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;std::vector&lt;ValueType&gt;&nbsp;IntArray;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;typename&nbsp;IntArray::const_iterator&nbsp;IntPtr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;IntArray&nbsp;mCache;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;Test(ValueType&nbsp;num)&nbsp;const&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;sure&nbsp;:&nbsp;half&nbsp;&nbsp;&lt]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-10-24 15:23:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Dev-cpp&nbsp;小型指南]]></title>
		<link>http://blog.pfan.cn/nothing/19684.html</link>
		<description><![CDATA[Dev-cpp是一个GCC在win32下的IDE程序,用Dephi&nbsp;5编写,只有2M具有以下功能:&nbsp;&nbsp;&nbsp;1.集成编译环境,支持工程模板.&nbsp;&nbsp;&nbsp;2.支持语法加高,自动注释,对中文的支持也不错.&nbsp;&nbsp;&nbsp;3.支持CVS集成&nbsp;&nbsp;&nbsp;4.支持源码分析,可以形成类树图.&nbsp;&nbsp;&nbsp;5.支持扩展包.Dev-cpp官方发布有集成MinGW32&nbsp;gcc编译套件,最新支持GCC&nbsp;3.3(2003-7-15)也可以支持MinGW其它版本和Cygwin&nbsp;gcc的各个版本.不过需要手动设置.Dev-cpp支持多语言环境,中文版界面由我的好友nyra(nyra@sohu.com)维护,如果大家发现中文版有翻释问题可以找她.如果有兴趣翻译帮助文件,也请联系.Dev-cpp有两个常用版本,一是开发中的5.0beta,最新一版是4.9.8.0另一个是4.01,是4.0的修正版(其中集成Gcc&nbsp;2.9.5),前者功能较多,而后者较稳定.图形化环境我就不多说了,和VC的用法类似,其实大家问题多集中于Gcc本身.GCC,&nbsp;GCC和gcc不同的东西.前者是Gnu的编译环境,包括gcc,&nbsp;g++,&nbsp;gcj等多种语言的编译器和as(汇编),&nbsp;ar(库),&nbsp;ld(联接器)等一系统编译工具.gcc是GCC中C语言的编译器,g++是C++语言的编译器.GCC被移植到多种操作系统中,在Win32上最著名是MinGW和Cygwin两个版本,MinGW的全称是Minial&nbsp;GCC&nbsp;for&nbsp;Windows,如题,它是Win32上的一个小型GCC,只包括最少的GCC组件&lt;10M而Cygwin就是一个Unix&nbsp;On&nbsp;Windows的大系统,全部下载有300多兆,Unix下的大多数软件在Cygwin中都有移植版,包括X-windows.还有一个for&nbsp;Dos-32&nbsp;的GCC,名叫Djgpp,与Mingw的目标类似,不同的是它是一个以MZ为目标程序的可以在非Win32环境下运行(例如FreeDOS)它们都移值了GCC官方发]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-10-24 15:21:00</pubDate>
		</item>
				<item>
		<title><![CDATA[蛇形方阵&nbsp;]]></title>
		<link>http://blog.pfan.cn/nothing/19683.html</link>
		<description><![CDATA[/*&nbsp;题目按以下所示规律把1-N*N个数填入N*N的方阵中：&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;10&nbsp;&nbsp;11&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;9&nbsp;&nbsp;12&nbsp;&nbsp;19&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp;13&nbsp;&nbsp;18&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp;14&nbsp;&nbsp;17&nbsp;&nbsp;21&nbsp;&nbsp;24&nbsp;&nbsp;15&nbsp;&nbsp;16&nbsp;&nbsp;22&nbsp;&nbsp;23&nbsp;&nbsp;25&nbsp;*/#include&nbsp;&lt;stdio.h&gt;#include&nbsp;&lt;assert.h&gt;#include&nbsp;&lt;string.h&gt;/*解析：&nbsp;上三角形&nbsp;a(0)=&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;0&nbsp;&nbsp;a(1)=&nbsp;&nbsp;2&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;a(0)&nbsp;+&nbsp;1,&nbsp;a(0)&nbsp;+&nbsp;1&nbsp;+&nbsp;1&nbsp;a(2)=&nbsp;4&nbsp;5&nbsp;6&nbsp;&nbsp;&nbsp;=&nbsp;a(1)&nbsp;+&nbsp;2,&nbsp;a(1)&nbsp;+&nbsp;2&nbsp;+&nbsp;1,&nbsp;a(1)&nbsp;+&nbsp;2&nbsp;+&nbsp;2&nbsp;a(3)=7&nbsp;8&nbsp;9&nbsp;10&nbsp;=&nbsp;a(2)&nbsp;+&nbsp;3,&nbsp;a(2)&nbsp;+&nb]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-10-24 15:20:00</pubDate>
		</item>
				<item>
		<title><![CDATA[OOP已死]]></title>
		<link>http://blog.pfan.cn/nothing/19161.html</link>
		<description><![CDATA[原文是英文，我这个不能算翻译只是笔记。http://kawagner.blogspot.com/2006/08/oop-is-dead.html文章的主要观点是：OOP已经达到它的顶点，并开始衰落。主要证据有1.函数式编程逐渐引人注意，许多老牌语言开始引入函数式编译的概念比如，closure,&nbsp;continuation,&nbsp;iterate等。2.多范式语言并不是解决之道:1)编程语言应该引导编程员解决问题，而不是面对多种范式无所选择。2)多种范式降低了代码重用的范围和效率.3.OOP语言不能解决以下问题1)多分派,双分派可以使用visiter模式,但要加入大量代码,也不灵活.而函数式语言可以轻易做到多分派.2)扩展工具类的能力.以java中String类为例,即使有一个ExtString类,也没有太大用处,因为除了你的程序以外没人用ExtString,你无论是从url中还是toString,得到的都是String,还要构造一次才能成为ExtString.但在函数式/过程式语言中,添加一个函数十分容易.3)扩展基本类操作,如果你需要添加一个能与Int/BigInt进行add的Complex类呵呵,你不得不为每一个基本类型添加相同的操作.4.OOP中最大的问题在于可变的状态,这正是函数式语言所没有的.它影响了OOP在程序结构,并型性,优化.函数式语言中无副作用的函数其实从根本上解决了这些问题.5.元编程也不是一个好主意.元编程被用于解决OOP语言中一些语义的问题但事实上,这完全是错误,Lisp这样自然的元编程语言中,语义是不能被修改的.这种使用原因完全是因为有些问题语言本身没有解决好.6.程序框架能解决一些问题,并非所有问题.总结一下OOP在两个方面已经很难满足要求:1.模块化.(原文是Dependencies,不过我认为模块化更准确)2.扩展性.详细内容还是看原文吧.]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-10-09 18:01:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Programming&nbsp;the&nbsp;SoundBlaster&nbsp;16&nbsp;DSP]]></title>
		<link>http://blog.pfan.cn/nothing/16816.html</link>
		<description><![CDATA[&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;Programming&nbsp;the&nbsp;SoundBlaster&nbsp;16&nbsp;DSP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Written&nbsp;by&nbsp;Ethan&nbsp;Brodsky&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;(ericbrodsky@psl.wisc.edu)&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;Version&nbsp;3.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-07-25 14:27:00</pubDate>
		</item>
				<item>
		<title><![CDATA[gaim&nbsp;1.5&nbsp;全网址]]></title>
		<link>http://blog.pfan.cn/nothing/16224.html</link>
		<description><![CDATA[gaim&nbsp;是一个多协议的即时聊天工具.它可以让你在一个软件中登录Yahoo/ICQ/MSN/QQ/Jabber等聊天服务.以下都是Windows平台版本.Linux平台只需要下载相应的包即可.gaim稳定版本是1.5http://prdownloads.sourceforge.net/gaim/gaim-1.5.0.exe?downloadQQ协议需要openq的支持,最新版本是0.322006年QQ修改了协议需要一个补丁,这是编译好的版本:http://www.amazepc.com/bamanzi/win32/openq/]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-06-27 17:18:00</pubDate>
		</item>
				<item>
		<title><![CDATA[这里有什么]]></title>
		<link>http://blog.pfan.cn/nothing/16086.html</link>
		<description><![CDATA[准备收集一些小游戏的算法,感觉其实小游戏也很复杂.1.俄罗斯方块2.推箱子3.扫雷4.连连看]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-06-21 16:41:00</pubDate>
		</item>
				<item>
		<title><![CDATA[浅说组件]]></title>
		<link>http://blog.pfan.cn/nothing/15828.html</link>
		<description><![CDATA[最早知道组件(Component)是学习Win32编程时,面对一个又一个的IUnknown,&nbsp;不得不去了解到现在也是一知半解的COM,&nbsp;总算也知道了一点基本知识.1.组件:&nbsp;基本概念,难以解释.&nbsp;把它当成复杂,大型对象,&nbsp;基本上方向对了.2.标识:&nbsp;组件必须被标识,&nbsp;COM中使用UUID标记一对象,&nbsp;又写做GUID或CLSID.3.接口:&nbsp;约定组件实现的功能.4.接口查询接口:&nbsp;约定组件必须支持查询接口功能的接口.&nbsp;在COM中就是IUnknown.组件基本知识就是这么点.不过,COM中还有很多....东西.下面我引用一个小型组件库来说明组件知识.&nbsp;这个组件实现是XPLC&nbsp;(&nbsp;Cross-Platform&nbsp;Lightweight&nbsp;Component&nbsp;).&nbsp;其实我希望完全自己实现一个小型的COM.记住下面这句话:&quot;The&nbsp;best&nbsp;way&nbsp;to&nbsp;predict&nbsp;the&nbsp;future&nbsp;is&nbsp;to&nbsp;invent&nbsp;it.&quot;&nbsp;--&nbsp;Alan&nbsp;Kay&lt;未完&gt;]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-06-15 18:41:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ADA语言相关资料]]></title>
		<link>http://blog.pfan.cn/nothing/15640.html</link>
		<description><![CDATA[相关书籍:Ada&nbsp;As&nbsp;A&nbsp;Second&nbsp;LanguageProgramming&nbsp;In&nbsp;Ada&nbsp;95Concurrency&nbsp;in&nbsp;ada中文书籍:&nbsp;Ada程序设计语言高级教程（教材，共78万字）,解放军出版社出版，1998&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;北京工业大学软件学院&nbsp;蔡建平教授&nbsp;Ada语言程序设计(部分)&nbsp;&nbsp;http://all.163.com/it/school/apl/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;王振铭&nbsp;&nbsp;主要网站&nbsp;&nbsp;https://libre2.adacore.com/&nbsp;&nbsp;GNAT&nbsp;Software&nbsp;home&nbsp;&nbsp;&nbsp;http://www.adacore.com/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNAT&nbsp;Pro&nbsp;Coporotion&nbsp;&nbsp;http://www.iste.uni-stuttgart.de/ps/ada-software/ada-software.html&nbsp;&nbsp;相当多的ADA资料,可惜很旧了.&nbsp;&nbsp;http://www.adaic.com/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ada&nbsp;I&nbsp;see&nbsp;?很好资料.&nbsp;&nbsp;http://www.adahome.com/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ada&nbsp;Home[英文]提供ada较新的信息。&nbsp;&nbsp;http://www.AdaPower.com&nbsp;&nbsp;http://info.acm.org/sigada/&nbsp;Ada兴趣小组,&nbsp;比较规范的资料.]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-06-09 22:13:00</pubDate>
		</item>
				<item>
		<title><![CDATA[开源软件如何写声明]]></title>
		<link>http://blog.pfan.cn/nothing/15200.html</link>
		<description><![CDATA[近来想写一个开源软件，没想到发现许可声明也很有学问．看了十几个各类的开源软件，总结了一点规律．一般分为三个部分,最标准的是boost的.file&nbsp;info&nbsp;(&nbsp;multi-line)(blank&nbsp;line)library&nbsp;introduction&nbsp;(one&nbsp;line,&nbsp;optional)copyright&nbsp;time&nbsp;and&nbsp;owner(blank&nbsp;line)license&nbsp;detail&nbsp;GPL&nbsp;standard(one&nbsp;line&nbsp;to&nbsp;give&nbsp;the&nbsp;program&#39;s&nbsp;name&nbsp;and&nbsp;an&nbsp;idea&nbsp;of&nbsp;what&nbsp;it&nbsp;does.)(Copyright&nbsp;(C)&nbsp;yyyy&nbsp;&nbsp;name&nbsp;of&nbsp;author)This&nbsp;program&nbsp;is&nbsp;free&nbsp;software;&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/ormodify&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;Licenseas&nbsp;published&nbsp;by&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation;&nbsp;either&nbsp;version&nbsp;2of&nbsp;the&nbsp;License,&nbsp;or&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;wil]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-05-30 10:37:00</pubDate>
		</item>
				<item>
		<title><![CDATA[生成一个魔方C++]]></title>
		<link>http://blog.pfan.cn/nothing/15103.html</link>
		<description><![CDATA[#include 
#include 
#include 
#include 

/*! \brief MagicSqr ensupluate .
 *
 * 简要生成一个魔方.\n
 * test here.
 */

class MagicSqr
{
protected:
	/*!
     *  A list of events:
     *    - mouse events
     *         -# mouse move event
     *         -# mouse click event\n
     *            More info about the click event.
     *         -# mouse double click event
     *    - keyboard events
     *         -# key down event
     *         -# key up event
     *
     *  More text here.
     */
    struct Postion
    {
        int first;
        int second;
        int value;

        Postion( int i, int j, int n): first(i), second(j), value(n)
        {}

        friend bool operator MagicList;
    typedef MagicList::const_iterator ListIter;

    const int mDimension;
    MagicList mList;

	//
	//! \deprecated Rename to AdjustRange
	//
    int Range(int i)
    {
		//
		//! \todo Make i more effective
		//
        if ( i  mDimension)]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-05-28 21:11:00</pubDate>
		</item>
				<item>
		<title><![CDATA[访问Wikipedia的方法]]></title>
		<link>http://blog.pfan.cn/nothing/13886.html</link>
		<description><![CDATA[文章来自http://wikipedia.cnblog.org/wiki/Wikipedia:如何访问维基百科
其中最有效的方法是：
在浏览器中配置代理服务器的方法有两种：手动设置代理，自动设置代理，手动设置代理是为该浏览器设置一个代理服务器，而自动设置代理是编写一个Javascript函数FindProxyForURL，并把这段代码写到一个以pac为后缀名的文件中，并在浏览器中选项的“自动设置代理URL”（Mozilla Firefox）或“使用自动配置脚本”（Microsoft Internet Explorer）设置该文件的URL（如“file:///D:/Program%20Files/Mozilla%20Firefox/wikiproxy.pac”）。
代理配置脚本的例子如下：
function FindProxyForURL(url, host){&nbsp; url = url.toLowerCase ();&nbsp; host = host.toLowerCase();&nbsp; if (localHostOrDomainIs(host, "secure.wikimedia.org"))&nbsp;&nbsp;&nbsp; return "DIRECT";&nbsp; else if(dnsDomainIs(host,"wikipedia.org")&nbsp;&nbsp;&nbsp; ||dnsDomainIs(host,"wikisource.org")&nbsp;&nbsp;&nbsp; ||dnsDomainIs(host,"wikibooks.org")&nbsp;&nbsp;&nbsp; ||dnsDomainIs(host,"wikimedia.org")&nbsp;&nbsp;&nbsp; ||dnsDomainIs(host,"wiktionary.org"))&nbsp;&nbsp;&nbsp; return "PROXY 145.97.39.140:80 ";&nbsp; else return "DIRECT";}
&nbsp;]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-05-11 10:16:00</pubDate>
		</item>
				<item>
		<title><![CDATA[命令式语言与声明式语言]]></title>
		<link>http://blog.pfan.cn/nothing/11987.html</link>
		<description><![CDATA[大多数程序员考虑编程时，他们都要设想用于编写应用程序的&nbsp;命令式样式和技术。最受欢迎的通用编程语言（包括&nbsp;Python&nbsp;和其它面向对象的语言）在样式上绝大多数都是命令式的。另一方面，也有许多编程语言是&nbsp;声明性样式，包括函数语言和逻辑语言，还包括通用语言和专用语言。&nbsp;让我们列出几个属于各个种类的语言。许多读者已经使用过这些工具中的许多工具，但不见得考虑过它们之间的种类差别。Python、C、C++、Java、Perl、Ruby、Smalltalk、Fortran、Basic&nbsp;和&nbsp;xBase&nbsp;都是简单的命令式编程语言。其中，一些是面向对象的，但那只是组织代码和数据的问题，而非基本编程样式的问题。使用这些语言，您&nbsp;命令程序执行指令序列：把某些数据&nbsp;放入（put）变量中；从变量中&nbsp;获取（fetch）数据；&nbsp;循环（loop）一个指令块&nbsp;直到（until）满足了某些条件；&nbsp;如果（if）某个命题为&nbsp;true，那么就进行某些操作。所有这些语言的一个妙处在于：便于用日常生活中熟悉的比喻来考虑它们。日常生活都是由做事、选择、再做另一件事所组成的，期间或许会使用一些工具。可以简单地将运行程序的计算机想象成厨师、瓦匠或汽车司机。&nbsp;诸如&nbsp;Prolog、Mercury、SQL、XSLT&nbsp;这样的语言、EBNF&nbsp;语法和各种格式的真正配置文件，都&nbsp;声明某事是这种情况，或者应用了某些约束。函数语言（比如&nbsp;Haskell、ML、Dylan、Ocaml&nbsp;和&nbsp;Scheme）与此相似，但是它们更加强调陈述编程对象（递归、列表，等等）之间的内部（函数）关系。我们的日常生活（至少在叙事质量方面）没有提供对这些语言的编程构造的直接模拟。然而，对于那些可以用这些语言进行描述的问题来说，声明性描述&nbsp;远远比命令式解决方案来得简明且不易出错。例如，请研究下面这个线性方程组：&nbsp;清单&nbsp;1.&nbsp;线性方程式系统样本10x&nbsp;+&nbsp;5y&nbsp;-&nbsp;7z&nbsp;+&nbsp;1&nbsp;=&nbsp;017x&nbsp;+&nbsp;5y]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-04-06 09:53:00</pubDate>
		</item>
				<item>
		<title><![CDATA[我的vimrc]]></title>
		<link>http://blog.pfan.cn/nothing/11986.html</link>
		<description><![CDATA["使用desert配色，较暗。set nocompatiblesource $VIMRUNTIME/vimrc_example.vimbehave xtermcolo desertset gfn=新宋体:h9set co=120set lines=45set fenc=chineseset fencs=ucs-bom,utf-8,chineseset nobackupset clipboard=unnamedset rulerset ls=2set numberset directory=c:\tmp,."set cinoptions=&gt;s,e0,n0,f0,{0,}0,^0,:0,=s,l0,g0,hs,ps,ts,+s,c3,C0,(2s,us,\U0,w0,m0,j0,)20,*30set cinoptions=:0,g0set ts=4 sw=4let eiffel_ise=1let eiffel_pedantic=1map &lt;F8&gt; :TlistToggle&lt;CR&gt;map ,e :e &lt;C-R&gt;=expand("%:p:h")."/"&lt;CR&gt;if version &gt;= 603	set helplang=cnendiflinux 下source $VIMRUNTIME/vimrc_example.vim" appearancecolo desertset ls=2set number" file modifyset fileencodings=ucs-bom,utf-8,chineseset backupdir=/tmpset fenc=chineseset stl=%f\ %w%m%r%=%{&amp;fenc}\ %{&amp;ff}%20(%l,%c%V%5p%%%)" source editset ts=4 sw=4 cin noet"set cinoptions=&gt;s,e0,n0,f0,{0,}0,^0,:0,=s,l0,g0,hs,ps,ts,+s,c3,C0,(2s,us,\U0,w0,m0,j0,)20,*30set cino=:0,g0set clipboard=unnamed" opeartionmap ,e :e &lt;C-R&gt;=expand("%:p:h")."]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-04-06 09:29:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[转]程序员如何防止脑疲劳：下午补充一些干果]]></title>
		<link>http://blog.pfan.cn/nothing/10817.html</link>
		<description><![CDATA[[转自http://blog.csdn.net/hustbill/archive/2005/04/14/347962.aspx]&nbsp;&nbsp;&nbsp;一个医生朋友针对我下午犯困的状况，提出了一些防止脑疲劳的建议。主要是调节酸碱平衡，当用脑过度或体力透支时，体液呈酸性；长期酸性血液会使大脑神经功能退化。因此要多吃碱性食物，如海带、绿叶蔬菜、柑橘水果、豆类、茶叶，少吃酸性食物，如肉类、糖类。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;　　选择恢复精力和体力的食物建议程序员每天下午茶时间补充一些干果，如花生、腰果、杏仁、核桃等，它们含有丰富的VB、VE、蛋白质和必需的脂肪酸及矿物质。还可补充含维生素C的水果。早中晚餐都要多吃西红柿、菜花等蔬菜，千万不要多吃大鱼大肉和油炸食物，饱餐这些食物会使你更感愚钝。　　平日多吃健脑食物蛋白质中的谷胱甘肽可提高脑细胞的活力，如动物肝脏、鱼类就是大脑需要的食物，大脑还“偏爱”卵磷脂，增强记忆力全靠它，蛋黄、大豆就有丰富的卵磷脂，而吸收它们还需要含辅酶的胡萝卜、绿叶蔬菜。另外，天麻、山药、人参也可在煲汤时选用，可增智力。　　喝杯茶也能减缓疲劳，为缓解疲劳，程序员可泡制一杯健脑茶，可选枸杞加五味子、陈皮、麦冬、龙眼肉，还可饮甘菊泡绿茶，但不可太浓。另外，“五禽戏”也可疏通经络，延缓脑衰老。]]></description>
		<author><![CDATA[nyra]]></author>
		<pubDate>2006-03-08 11:40:00</pubDate>
		</item>
		</channel>
</rss>