<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>小凡陋站</title>
	<atom:link href="http://kuigg.com/feed" rel="self" type="application/rss+xml" />
	<link>http://kuigg.com</link>
	<description>覃伟帆个人博客</description>
	<lastBuildDate>Fri, 06 Aug 2010 08:16:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>下载权限控制机制</title>
		<link>http://kuigg.com/xiazai-kongzhi</link>
		<comments>http://kuigg.com/xiazai-kongzhi#comments</comments>
		<pubDate>Fri, 06 Aug 2010 08:16:29 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=343</guid>
		<description><![CDATA[要对下载的权限进行精确的控制（防止盗链，防止迅雷吸血，下载扣除积分等虚拟货币），以前接触的方法有几种：
1、通过rewrite不断地更改下载文件的url，并插入很多无意义的字符；
2、验证下载链接的来路，或者cookie；
3、通过服务器端程序（例如一个php文件），open文件，读取内容然后返回给客户端。
第一种方法很笨，而且吃力不讨好；
第二种方法很容易破解，因为referer和cookie都是客户端发出的，能够方便地伪造，而且迅雷对此已经是轻车熟路；
第三种方法是可行的有效的，所有的文件都经过一个程序读取并发送，在读取之前可以有效的验证权限，但是下载过程中始终要占用一个cgi线程，而且一般cgi语言的IO性能都不好，速度很慢，占用了服务器的大量资源，导致总体效率极其低下，难以大规模运用。
为此我研究了一下csdn下载频道的实现机制。
csdn下载频道能够有效的验证权限，扣除积分，而且不排斥迅雷等下载客户端，同一个用户下载同一个文件也不会重复扣除积分，而且下载时始终没有暴露文件的真实地址，同一个下载URL到了别的地方也完全不可用，可以说是实现得比较理想的。
我选择了一个文件进行测试，下载的url是： http://dldx.csdn.net/fd.php?i=573624740728082&#038;s=4fc2353ca769a0ebd9237b6f98791679
这个url向文件存储服务器上的fd.php文件发送了两个经过加密的参数，里面应该包含有用户登录信息（用户ID和sid）和目标文件的ID号。
用迅雷下载这个文件，截获返回的头信息：
Host: dldx.csdn.net
Pragma: no-cache
Range: bytes=0-
Referer: http://d.download.csdn.net/down/2474072/waf9898
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )
HTTP/1.1 206 Partial Content
Server: nginx/0.7.65
Date: Tue, 22 Jun 2010 07:08:21 GMT
Content-Type: &#8220;application/octet-stream; charset=utf-8&#8243;
Content-Length: 667747
Last-Modified: Mon, 21 Jun 2010 23:45:02 GMT
Connection: keep-alive
Content-Disposition: attachment; filename=&#8221;DNF%E6%82%A0%E6%82%A05%5B1%5D.7.rar&#8221;
Expires: 0
Cache-Control: must-revalidate, post-check=0, pre-check=0
Content-Range: bytes 0-667746/667747
这里面始终没有暴露目标文件的真实路径，不是一般下载系统所使用的header重定向的方式。而且有一个重命名的信号。服务器使用的程序是nginx/0.7.65。
根据这些信息，在google搜索到这篇文章：http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/
显然，csdn就是使用了文中所说的nginx X-Accel-Redirect。
解释一下整个过程：
步骤1，客户端请求http://dldx.csdn.net/fd.php ，并传递相关信息；
步骤2，fd.php根据所传递的信息判断出访问者的身份和所请求的资源，然后应该验证了客户端的IP，进一步判断其权限。如果这个客户端有权下载此文件，则在HTTP header加入X-Accel-Redirect: （文件的真实路径），并加上head Content-Type和Content-Disposition:；
步骤3，nginx得到fd.php的回应后发现带有X-Accel-Redirect的header，那么根据这个头记录的路径信息打开目标文件；
步骤4，nginx把打开文件的内容返回给客户端。
这样所有的权限检查和积分扣除等操作都可以在步骤2内完成，而且fd.php返回带X-Accel-Redirect的头后，其执行已经终止，剩下的传输文件的工作由nginx 来接管，同时X-Accel-Redirect头的信息被nginx删除，不会返回给客户端，也就不会暴露（实际上可以把目标文件存储在不能经由web访问的目录），并且由于nginx在打开静态文件上使用了 sendfile()，其IO效率非常高，比php的IO要快上N++倍。
这是一种优雅，有效，高效的实现方案。
因为没有架设过nginx服务器，我希望能在apache实现这个功能，于是查找了一下有没有类似的mod，果然查找到了一个mod_xsendfile：http://tn123.ath.cx/mod_xsendfile/ ，其实现机制与nginx的X-Accel-Redirect基本相同。
下载之后在本机测试。
1、加载mod_xsendfile。将文件 mod_xsendfile.so 移动到 apache/modules 目录下，将以下内容添加到httpd.conf中
LoadModule xsendfile_module [...]]]></description>
			<content:encoded><![CDATA[<p>要对下载的权限进行精确的控制（防止盗链，防止迅雷吸血，下载扣除积分等虚拟货币），以前接触的方法有几种：<br />
1、通过rewrite不断地更改下载文件的url，并插入很多无意义的字符；<br />
2、验证下载链接的来路，或者cookie；<br />
3、通过服务器端程序（例如一个php文件），open文件，读取内容然后返回给客户端。</p>
<p>第一种方法很笨，而且吃力不讨好；<br />
第二种方法很容易破解，因为referer和cookie都是客户端发出的，能够方便地伪造，而且迅雷对此已经是轻车熟路；<br />
第三种方法是可行的有效的，所有的文件都经过一个程序读取并发送，在读取之前可以有效的验证权限，但是下载过程中始终要占用一个cgi线程，而且一般cgi语言的IO性能都不好，速度很慢，占用了服务器的大量资源，导致总体效率极其低下，难以大规模运用。</p>
<p>为此我研究了一下csdn下载频道的实现机制。<br />
csdn下载频道能够有效的验证权限，扣除积分，而且不排斥迅雷等下载客户端，同一个用户下载同一个文件也不会重复扣除积分，而且下载时始终没有暴露文件的真实地址，同一个下载URL到了别的地方也完全不可用，可以说是实现得比较理想的。</p>
<p>我选择了一个文件进行测试，下载的url是： http://dldx.csdn.net/fd.php?i=573624740728082&#038;s=4fc2353ca769a0ebd9237b6f98791679</p>
<p>这个url向文件存储服务器上的fd.php文件发送了两个经过加密的参数，里面应该包含有用户登录信息（用户ID和sid）和目标文件的ID号。<br />
用迅雷下载这个文件，截获返回的头信息：<br />
Host: dldx.csdn.net<br />
Pragma: no-cache<br />
Range: bytes=0-<br />
Referer: http://d.download.csdn.net/down/2474072/waf9898<br />
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )<br />
HTTP/1.1 206 Partial Content<br />
Server: nginx/0.7.65<br />
Date: Tue, 22 Jun 2010 07:08:21 GMT<br />
Content-Type: &#8220;application/octet-stream; charset=utf-8&#8243;<br />
Content-Length: 667747<br />
Last-Modified: Mon, 21 Jun 2010 23:45:02 GMT<br />
Connection: keep-alive<br />
Content-Disposition: attachment; filename=&#8221;DNF%E6%82%A0%E6%82%A05%5B1%5D.7.rar&#8221;<br />
Expires: 0<br />
Cache-Control: must-revalidate, post-check=0, pre-check=0<br />
Content-Range: bytes 0-667746/667747</p>
<p>这里面始终没有暴露目标文件的真实路径，不是一般下载系统所使用的header重定向的方式。而且有一个重命名的信号。服务器使用的程序是nginx/0.7.65。<br />
根据这些信息，在google搜索到这篇文章：http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/<br />
显然，csdn就是使用了文中所说的nginx X-Accel-Redirect。</p>
<p>解释一下整个过程：</p>
<p>步骤1，客户端请求http://dldx.csdn.net/fd.php ，并传递相关信息；</p>
<p>步骤2，fd.php根据所传递的信息判断出访问者的身份和所请求的资源，然后应该验证了客户端的IP，进一步判断其权限。如果这个客户端有权下载此文件，则在HTTP header加入X-Accel-Redirect: （文件的真实路径），并加上head Content-Type和Content-Disposition:；</p>
<p>步骤3，nginx得到fd.php的回应后发现带有X-Accel-Redirect的header，那么根据这个头记录的路径信息打开目标文件；</p>
<p>步骤4，nginx把打开文件的内容返回给客户端。</p>
<p>这样所有的权限检查和积分扣除等操作都可以在步骤2内完成，而且fd.php返回带X-Accel-Redirect的头后，其执行已经终止，剩下的传输文件的工作由nginx 来接管，同时X-Accel-Redirect头的信息被nginx删除，不会返回给客户端，也就不会暴露（实际上可以把目标文件存储在不能经由web访问的目录），并且由于nginx在打开静态文件上使用了 sendfile()，其IO效率非常高，比php的IO要快上N++倍。</p>
<p>这是一种优雅，有效，高效的实现方案。</p>
<p>因为没有架设过nginx服务器，我希望能在apache实现这个功能，于是查找了一下有没有类似的mod，果然查找到了一个mod_xsendfile：http://tn123.ath.cx/mod_xsendfile/ ，其实现机制与nginx的X-Accel-Redirect基本相同。</p>
<p>下载之后在本机测试。</p>
<p>1、加载mod_xsendfile。将文件 mod_xsendfile.so 移动到 apache/modules 目录下，将以下内容添加到httpd.conf中<br />
LoadModule xsendfile_module modules/mod_xsendfile.so<br />
XSendFile On<br />
XSendFileAllowAbove On </p>
<p>2、使用PHP调用X-sendfile。代码如下：<br />
<?php<br />
接收_GET数据并解密；<br />
验证uid、sid、文件id；<br />
如果通过验证：<br />
｛<br />
扣除积分、计数统计等操作；<br />
header('Content-Type:(目标文件类型)');<br />
header('Content-Disposition: attachment; filename="(希望客户下载到的文件名)"');<br />
header('X-Sendfile:(目标文件真实路径，使用绝对路径，例如"E:/www/dl/test.rar'，此路径可以是web无法访问的目录")');<br />
exit;<br />
 ｝<br />
如果不通过：<br />
｛<br />
给客户端返回一个提示性的html文件；<br />
｝</p>
<p>?></p>
<p>3、构造下载url，用迅雷成功下载；破坏验证条件（比如改变客户端IP）之后，迅雷只能下载到提示错误的文件。</p>
<p>实际应用中可以采用以下具体方案：<br />
1、把所有的目标文件都存储在服务器B，此服务器不需要数据库，而且通过web只能访问到某入口文件（比如http://dldx.csdn.net/fd.php），在这个文件中配合apache实现X-Sendfile；<br />
2、网站文件（php和html），以及数据库运行在服务器A（当然数据库也可以另设服务器），此服务器负责构造类似于 http://dldx.csdn.net/fd.php?i=573624740728082&#038;s=4fc2353ca769a0ebd9237b6f98791679 的url；<br />
3、服务器B接到以上URL以后，分析客户端IP，然后远程连接服务器A的数据库，把uid，sid，文件id，客户端IP进行匹配分析，通过则扣除积分放行下载，否则提示错误。</p>
<p>此方案最终就能够实现以下目的：<br />
1、任何方式都无法直接通过web访问到目标文件，迅雷也没有办法；<br />
2、类似于http://dldx.csdn.net/fd.php?i=573624740728082&#038;s=4fc2353ca769a0ebd9237b6f98791679 的URL没有通用性，只能特定的用户在特定的IP访问特定的文件，迅雷即使把这个URL存储起来，也是没有办法吸血的（只能下载到提示错误的文件）；<br />
3、文件存储和数据库两台服务器干净的分割，便于维护；<br />
4、速度和效果都很完美，不会产生验证差错，也不会过多占用服务器资源。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xiazai-kongzhi/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>中等规模相册的上传存储机制初探</title>
		<link>http://kuigg.com/xiangce-cunchu</link>
		<comments>http://kuigg.com/xiangce-cunchu#comments</comments>
		<pubDate>Mon, 02 Aug 2010 03:15:18 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=331</guid>
		<description><![CDATA[这里对中等的定义是：图片文件所占空间在1TB&#8211;99TB。
这个机制是研究了人人网等一些UGC网站所得出的方案。
以4台服务器为模型：相册所属的主站服务器A、主站所用的Mysql服务器M、接收并处理上传文件的服务器B、最终存储图片文件并提供http下载的服务器C。实际应用中C应为多台服务器分布式存储。
首先，上传图片的入口在A上。那么，上传表单所属的html文件应该存储在A还是B呢？第一感觉应该是在A上，然后表单的action指向B，这样就可以直接把文件数据提交到B。但是事实上，我们通常会在相册中使用ajax提交表单，如果表单在A上，而数据提交到B，就会造成跨域的问题。所以，我们把这个表单部署在B上，通过同一个根域的cookie和存储在M上的session数据来验证用户身份。
B的基本任务是：验证，去重，处理，存储。
验证：B接收到数据以后，先判断文件大小和Content-Type、扩展名等是否符合要求。
去重：去重基本被大多数人忽略，我想是因为对很多网站来说短期内可以承受，但是实际的经验是，重复图片会占到50%以上的惊人比例，一些流行的图片会被不断地上传。而且这里还关系到一个审核的问题，比如一些流行的黄图或者不和谐的政治图片会被频繁上传，如果没有去重机制，会加大审核的工作量。所以，有必要对上传的每个文件取得一个二进制的MD5值，存储到数据库里。这里存入的不是M上的数据库，而是B自带的数据库。上传来的文件，如果MD5重复，就直接返回已经存在的图片路径；如果不重复，就插入新的数据，返回新的路径；如果该图片已经被判定违规，就返回一个错误信号。
处理：生成缩略图，可能是不同分辨率的缩略图。如果有需要，还得添加水印。
存储：存储分三部分：M上的数据库有相册图片相关的信息需要存入；B上的数据库也有文件信息需要存入；最后还得把文件存到C上，才能提供http下载。第一第二步不再叙述，第三步初步决定使用ftp（直接把上传的流写入ftp，B、C通信速度应该很快），也可使用专门的分布式存储系统来实现。路径可设计为 http://域名/分布式目录/20100730（年月日）/1355（时分）/large（不同大小）_（随机码）.jpg，把这个路径分解以后存储到M即可。
]]></description>
			<content:encoded><![CDATA[<p>这里对中等的定义是：图片文件所占空间在1TB&#8211;99TB。</p>
<p>这个机制是研究了人人网等一些UGC网站所得出的方案。</p>
<p>以4台服务器为模型：相册所属的主站服务器A、主站所用的Mysql服务器M、接收并处理上传文件的服务器B、最终存储图片文件并提供http下载的服务器C。实际应用中C应为多台服务器分布式存储。</p>
<p>首先，上传图片的入口在A上。那么，上传表单所属的html文件应该存储在A还是B呢？第一感觉应该是在A上，然后表单的action指向B，这样就可以直接把文件数据提交到B。但是事实上，我们通常会在相册中使用ajax提交表单，如果表单在A上，而数据提交到B，就会造成跨域的问题。所以，我们把这个表单部署在B上，通过同一个根域的cookie和存储在M上的session数据来验证用户身份。</p>
<p>B的基本任务是：验证，去重，处理，存储。</p>
<p>验证：B接收到数据以后，先判断文件大小和Content-Type、扩展名等是否符合要求。</p>
<p>去重：去重基本被大多数人忽略，我想是因为对很多网站来说短期内可以承受，但是实际的经验是，重复图片会占到50%以上的惊人比例，一些流行的图片会被不断地上传。而且这里还关系到一个审核的问题，比如一些流行的黄图或者不和谐的政治图片会被频繁上传，如果没有去重机制，会加大审核的工作量。所以，有必要对上传的每个文件取得一个二进制的MD5值，存储到数据库里。这里存入的不是M上的数据库，而是B自带的数据库。上传来的文件，如果MD5重复，就直接返回已经存在的图片路径；如果不重复，就插入新的数据，返回新的路径；如果该图片已经被判定违规，就返回一个错误信号。</p>
<p>处理：生成缩略图，可能是不同分辨率的缩略图。如果有需要，还得添加水印。</p>
<p>存储：存储分三部分：M上的数据库有相册图片相关的信息需要存入；B上的数据库也有文件信息需要存入；最后还得把文件存到C上，才能提供http下载。第一第二步不再叙述，第三步初步决定使用ftp（直接把上传的流写入ftp，B、C通信速度应该很快），也可使用专门的分布式存储系统来实现。路径可设计为 http://域名/分布式目录/20100730（年月日）/1355（时分）/large（不同大小）_（随机码）.jpg，把这个路径分解以后存储到M即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xiangce-cunchu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>不要在网上随便贴自己的照片,看这只兔子的教训</title>
		<link>http://kuigg.com/beipsde-tuzi</link>
		<comments>http://kuigg.com/beipsde-tuzi#comments</comments>
		<pubDate>Thu, 24 Jun 2010 05:51:50 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片收藏]]></category>
		<category><![CDATA[图片相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=314</guid>
		<description><![CDATA[










]]></description>
			<content:encoded><![CDATA[<div id="attachment_315" class="wp-caption alignnone" style="width: 304px"><a href="http://kuigg.com/attachments/2010/06/1.jpg"><img class="size-full wp-image-315" title="原照" src="http://kuigg.com/attachments/2010/06/1.jpg" alt="兔子原照" width="294" height="277" /></a><p class="wp-caption-text">兔子原照</p></div>
<p><a href="http://kuigg.com/attachments/2010/06/2.jpg"><img class="alignnone size-full wp-image-316" title="2" src="http://kuigg.com/attachments/2010/06/2.jpg" alt="" width="299" height="281" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/3.jpg"><img class="alignnone size-full wp-image-317" title="3" src="http://kuigg.com/attachments/2010/06/3.jpg" alt="" width="298" height="279" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/4.jpg"><img class="alignnone size-full wp-image-318" title="4" src="http://kuigg.com/attachments/2010/06/4.jpg" alt="" width="299" height="278" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/5.jpg"><img class="alignnone size-full wp-image-319" title="5" src="http://kuigg.com/attachments/2010/06/5.jpg" alt="" width="299" height="278" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/6.jpg"><img class="alignnone size-full wp-image-320" title="6" src="http://kuigg.com/attachments/2010/06/6.jpg" alt="" width="298" height="278" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/7.jpg"><img class="alignnone size-full wp-image-321" title="7" src="http://kuigg.com/attachments/2010/06/7.jpg" alt="" width="299" height="280" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/8.jpg"><img title="8" src="http://kuigg.com/attachments/2010/06/8.jpg" alt="" width="299" height="276" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/9.jpg"><img class="alignnone size-full wp-image-323" title="9" src="http://kuigg.com/attachments/2010/06/9.jpg" alt="" width="299" height="277" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/10.jpg"><img class="alignnone size-full wp-image-324" title="10" src="http://kuigg.com/attachments/2010/06/10.jpg" alt="" width="299" height="282" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/11.jpg"><img class="alignnone size-full wp-image-325" title="11" src="http://kuigg.com/attachments/2010/06/11.jpg" alt="" width="299" height="276" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/12.jpg"><img class="alignnone size-full wp-image-326" title="12" src="http://kuigg.com/attachments/2010/06/12.jpg" alt="" width="299" height="279" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/beipsde-tuzi/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>flash小游戏：堆积木  手不要抖  要放正啊</title>
		<link>http://kuigg.com/flash-duijimu</link>
		<comments>http://kuigg.com/flash-duijimu#comments</comments>
		<pubDate>Fri, 11 Jun 2010 04:32:10 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[其它]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=304</guid>
		<description><![CDATA[挺好玩的  每个人玩法都不一样 发挥你的想象力和创造力吧
总之就是要把所有的积木堆起来  一定时间内不要塌了就行了







]]></description>
			<content:encoded><![CDATA[<p>挺好玩的  每个人玩法都不一样 发挥你的想象力和创造力吧</p>
<p>总之就是要把所有的积木堆起来  一定时间内不要塌了就行了</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://kuigg.com/flash/duijimu.swf" /><embed type="application/x-shockwave-flash" width="600" height="600" src="http://kuigg.com/flash/duijimu.swf"></embed></object></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu1.jpg"><img class="alignnone size-full wp-image-305" title="duijimu1" src="http://kuigg.com/attachments/2010/06/duijimu1.jpg" alt="" width="372" height="420" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu2.jpg"><img title="duijimu2" src="http://kuigg.com/attachments/2010/06/duijimu2.jpg" alt="" width="420" height="404" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu38.jpg"><img class="alignnone size-full wp-image-309" title="堆积木38" src="http://kuigg.com/attachments/2010/06/duijimu38.jpg" alt="堆积木38" width="481" height="497" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu39.jpg"><img class="alignnone size-full wp-image-310" title="堆积木38" src="http://kuigg.com/attachments/2010/06/duijimu39.jpg" alt="堆积木39" width="690" height="548" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu40.jpg"><img class="alignnone size-full wp-image-311" title="堆积木40" src="http://kuigg.com/attachments/2010/06/duijimu40.jpg" alt="堆积木40" width="626" height="513" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/duijimu3.jpg"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/flash-duijimu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个好玩的东西：人脸生成器</title>
		<link>http://kuigg.com/renlian-shengcheng</link>
		<comments>http://kuigg.com/renlian-shengcheng#comments</comments>
		<pubDate>Thu, 10 Jun 2010 15:06:18 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[其它]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=293</guid>
		<description><![CDATA[可以组合出各种人脸。。
链接：http://kuigg.com/flash/face.swf
这是黄薇同学做的自画像： 

 
黄薇做的自画像

 
以下
随便玩玩。。



]]></description>
			<content:encoded><![CDATA[<p>可以组合出各种人脸。。</p>
<p>链接：<a href="http://kuigg.com/flash/face.swf">http://kuigg.com/flash/face.swf</a></p>
<p>这是黄薇同学做的自画像： </p>
<div>
<dl id="attachment_294"><a href="http://kuigg.com/attachments/2010/06/huangwei.jpg"><img title="黄薇做的自画像" src="http://kuigg.com/attachments/2010/06/huangwei.jpg" alt="黄薇做的自画像" width="344" height="322" /></a> </dl>
<dl>黄薇做的自画像</dl>
</div>
<p> </p>
<p>以下</p>
<p>随便玩玩。。</p>
<p><a href="http://kuigg.com/attachments/2010/06/renlian2.jpg"><img class="alignnone size-full wp-image-296" title="人脸1" src="http://kuigg.com/attachments/2010/06/renlian2.jpg" alt="人脸1" width="282" height="305" /></a></p>
<p><a href="http://kuigg.com/attachments/2010/06/renlian-.jpg"><img class="alignnone size-full wp-image-297" title="人脸2" src="http://kuigg.com/attachments/2010/06/renlian-.jpg" alt="人脸2" width="333" height="259" /></a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://kuigg.com/face.swf" /><embed type="application/x-shockwave-flash" width="600" height="600" src="http://kuigg.com/face.swf"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/renlian-shengcheng/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>你应该知道的PHP十件事</title>
		<link>http://kuigg.com/php-10jiansh</link>
		<comments>http://kuigg.com/php-10jiansh#comments</comments>
		<pubDate>Thu, 10 Jun 2010 14:16:51 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=291</guid>
		<description><![CDATA[1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里。
这种方法把存储空间降到了接近四分之一（char(15)的15个字节对整形的4个字节），计算一个特定的地址是不是在一个区段内也更简单了，而且加快了搜索和排序的速度（虽然有时仅仅是快了一点）。
2.在验证Email地址的时候使用checkdnsrr() 函数验证域名是否存在。
这个内置函数能够确认指定的域名能够解析成IP地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数，这个函数基于checkdnsrr()，用来验证 email 地址的合法性。对于那些认为自己的Email地址是user@www163.com而不是user@163.com的家伙们，这个方法可以很方便的抓住他们。
3.如果你使用的是PHP 5和MySQL 4.1 或者更高的版本，考虑用mysqli_* 系列函数。
一个很好的功能就是你可以使用预处理语句，如果你在维护一个数据库密集型站点，这个功能能够加快查询速度。一些评估分数。
4.学会爱上三元运算符。
5.如果你在项目中感觉到有可复用的部分，在你写下一行代码前先看看PEAR中是否已经有了。
很多PHP程序员都知道 PEAR 是一个很好的资源库，虽然还有很多程序员不知道。这个在线资源库包含了超过400个可以复用的程序片段，这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的，你总能找到帮你节省时间的 PEAR包。
6.用 highlight_file()来自动的打印出格式化的很漂亮的源代码。
如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话，这个函数用起来非常的顺手。当然了，要小心不要意外的泄露出你的数据库连接信息和密码等。
7.使用 error_reporting(0)函数来防止用户看到潜在的敏感错误信息。
在理想情况下，发布服务器应该在php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话，你没有自己的 php.ini 文件，那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);（或者使用 require_once() 方法）。这就能够在出错的时候完全屏蔽敏感的SQL查询语句和路径名。
8.在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。
这个PHP内置函数使用 gzip 算法，可以压缩普通文本达 90%。在我每次要读写BLOB类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。
9.通过“引用”传递参数的方法从一个函数中得到多个返回值。
就像三元运算符一样，大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下，从一个函数里返回多个值？”答案就是在变量前加上一个 “&#38;” 符号，通过“引用”传递而非“值”传递。
10.完全理解“魔术引号”和 SQL 注入的危险性。
]]></description>
			<content:encoded><![CDATA[<p>1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里。<br />
这种方法把存储空间降到了接近四分之一（char(15)的15个字节对整形的4个字节），计算一个特定的地址是不是在一个区段内也更简单了，而且加快了搜索和排序的速度（虽然有时仅仅是快了一点）。</p>
<p>2.在验证Email地址的时候使用checkdnsrr() 函数验证域名是否存在。</p>
<p>这个内置函数能够确认指定的域名能够解析成IP地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数，这个函数基于checkdnsrr()，用来验证 email 地址的合法性。对于那些认为自己的Email地址是<a href="mailto:user@www163.com">user@www163.com</a>而不是<a href="mailto:user@163.com">user@163.com</a>的家伙们，这个方法可以很方便的抓住他们。</p>
<p>3.如果你使用的是PHP 5和MySQL 4.1 或者更高的版本，考虑用mysqli_* 系列函数。</p>
<p>一个很好的功能就是你可以使用预处理语句，如果你在维护一个数据库密集型站点，这个功能能够加快查询速度。一些评估分数。</p>
<p>4.学会爱上三元运算符。</p>
<p>5.如果你在项目中感觉到有可复用的部分，在你写下一行代码前先看看PEAR中是否已经有了。</p>
<p>很多PHP程序员都知道 PEAR 是一个很好的资源库，虽然还有很多程序员不知道。这个在线资源库包含了超过400个可以复用的程序片段，这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的，你总能找到帮你节省时间的 PEAR包。</p>
<p>6.用 highlight_file()来自动的打印出格式化的很漂亮的源代码。</p>
<p>如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话，这个函数用起来非常的顺手。当然了，要小心不要意外的泄露出你的数据库连接信息和密码等。</p>
<p>7.使用 error_reporting(0)函数来防止用户看到潜在的敏感错误信息。</p>
<p>在理想情况下，发布服务器应该在php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话，你没有自己的 php.ini 文件，那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);（或者使用 require_once() 方法）。这就能够在出错的时候完全屏蔽敏感的SQL查询语句和路径名。</p>
<p>8.在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。</p>
<p>这个PHP内置函数使用 gzip 算法，可以压缩普通文本达 90%。在我每次要读写BLOB类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。</p>
<p>9.通过“引用”传递参数的方法从一个函数中得到多个返回值。</p>
<p>就像三元运算符一样，大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下，从一个函数里返回多个值？”答案就是在变量前加上一个 “&amp;” 符号，通过“引用”传递而非“值”传递。</p>
<p>10.完全理解“魔术引号”和 SQL 注入的危险性。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/php-10jiansh/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>收集一些常用的正则表达式</title>
		<link>http://kuigg.com/changyong-zhengze</link>
		<comments>http://kuigg.com/changyong-zhengze#comments</comments>
		<pubDate>Thu, 10 Jun 2010 13:00:50 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=287</guid>
		<description><![CDATA[&#8220;^\d+$&#8221;　　//非负整数（正整数 + 0）
&#8220;^[0-9]*[1-9][0-9]*$&#8221;　　//正整数
&#8220;^((-\d+)&#124;(0+))$&#8221;　　//非正整数（负整数 + 0）
&#8220;^-[0-9]*[1-9][0-9]*$&#8221;　　//负整数
&#8220;^-?\d+$&#8221;　　　　//整数
&#8220;^\d+(\.\d+)?$&#8221;　　//非负浮点数（正浮点数 + 0）
&#8220;^(([0-9]+\.[0-9]*[1-9][0-9]*)&#124;([0-9]*[1-9][0-9]*\.[0-9]+)&#124;([0-9]*[1-9][0-9]*))$&#8221;　　//正浮点数
&#8220;^((-\d+(\.\d+)?)&#124;(0+(\.0+)?))$&#8221;　　//非正浮点数（负浮点数 + 0）
&#8220;^(-(([0-9]+\.[0-9]*[1-9][0-9]*)&#124;([0-9]*[1-9][0-9]*\.[0-9]+)&#124;([0-9]*[1-9][0-9]*)))$&#8221;　　//负浮点数
&#8220;^(-?\d+)(\.\d+)?$&#8221;　　//浮点数
&#8220;^[A-Za-z]+$&#8221;　　//由26个英文字母组成的字符串
&#8220;^[A-Z]+$&#8221;　　//由26个英文字母的大写组成的字符串
&#8220;^[a-z]+$&#8221;　　//由26个英文字母的小写组成的字符串
&#8220;^[A-Za-z0-9]+$&#8221;　　//由数字和26个英文字母组成的字符串
&#8220;^\w+$&#8221;　　//由数字、26个英文字母或者下划线组成的字符串
&#8220;^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$&#8221;　　　　//email地址
&#8220;^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$&#8221;　　//url
/^(d{2}&#124;d{4})-((0([1-9]{1}))&#124;(1[1&#124;2]))-(([0-2]([1-9]{1}))&#124;(3[0&#124;1]))$/   //  年-月-日
/^((0([1-9]{1}))&#124;(1[1&#124;2]))/(([0-2]([1-9]{1}))&#124;(3[0&#124;1]))/(d{2}&#124;d{4})$/   // 月/日/年
&#8220;^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)&#124;(([w-]+.)+))([a-zA-Z]{2,4}&#124;[0-9]{1,3})(]?)$&#8221;   //Emil
/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)&#124;([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/     //电话号码
&#8220;^(d{1,2}&#124;1dd&#124;2[0-4]d&#124;25[0-5]).(d{1,2}&#124;1dd&#124;2[0-4]d&#124;25[0-5]).(d{1,2}&#124;1dd&#124;2[0-4]d&#124;25[0-5]).(d{1,2}&#124;1dd&#124;2[0-4]d&#124;25[0-5])$&#8221;   //IP地址
匹配中文字符的正则表达式： [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内)：[^\x00-\xff]
匹配空行的正则表达式：\n[\s&#124; ]*\r
匹配HTML标记的正则表达式：/&#60;(.*)&#62;.*&#60;\/\1&#62;&#124;&#60;(.*) \/&#62;/
匹配首尾空格的正则表达式：(^\s*)&#124;(\s*$)
匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码：(\d{3}-&#124;\d{4}-)?(\d{8}&#124;\d{7})?
匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$
元字符及其在正则表达式上下文中的行为：
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数，匹配确定的n 次。
{n,} n 是一个非负整数，至少匹配n 次。
{n,m} m 和 n 均为非负整数，其中n [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;^\d+$&#8221;　　//非负整数（正整数 + 0）<br />
&#8220;^[0-9]*[1-9][0-9]*$&#8221;　　//正整数<br />
&#8220;^((-\d+)|(0+))$&#8221;　　//非正整数（负整数 + 0）<br />
&#8220;^-[0-9]*[1-9][0-9]*$&#8221;　　//负整数<br />
&#8220;^-?\d+$&#8221;　　　　//整数<br />
&#8220;^\d+(\.\d+)?$&#8221;　　//非负浮点数（正浮点数 + 0）<br />
&#8220;^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$&#8221;　　//正浮点数<br />
&#8220;^((-\d+(\.\d+)?)|(0+(\.0+)?))$&#8221;　　//非正浮点数（负浮点数 + 0）<br />
&#8220;^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$&#8221;　　//负浮点数<br />
&#8220;^(-?\d+)(\.\d+)?$&#8221;　　//浮点数<br />
&#8220;^[A-Za-z]+$&#8221;　　//由26个英文字母组成的字符串<br />
&#8220;^[A-Z]+$&#8221;　　//由26个英文字母的大写组成的字符串<br />
&#8220;^[a-z]+$&#8221;　　//由26个英文字母的小写组成的字符串<br />
&#8220;^[A-Za-z0-9]+$&#8221;　　//由数字和26个英文字母组成的字符串<br />
&#8220;^\w+$&#8221;　　//由数字、26个英文字母或者下划线组成的字符串<br />
&#8220;^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$&#8221;　　　　//email地址<br />
&#8220;^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$&#8221;　　//url<br />
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日<br />
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年<br />
&#8220;^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$&#8221;   //Emil<br />
/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/     //电话号码<br />
&#8220;^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$&#8221;   //IP地址</p>
<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />
匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />
匹配空行的正则表达式：\n[\s| ]*\r<br />
匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/<br />
匹配首尾空格的正则表达式：(^\s*)|(\s*$)<br />
匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />
匹配网址URL的正则表达式：^[a-zA-z]+://(<a href="file://w+(-//w+)*)(//.(//w+(-//w+)*))*(//?\\S*)?$">\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$</a><br />
匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />
匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<br />
匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$<br />
元字符及其在正则表达式上下文中的行为：</p>
<p>\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。</p>
<p>^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。</p>
<p>$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。</p>
<p>* 匹配前面的子表达式零次或多次。</p>
<p>+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。</p>
<p>? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。</p>
<p>{n} n 是一个非负整数，匹配确定的n 次。</p>
<p>{n,} n 是一个非负整数，至少匹配n 次。</p>
<p>{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。</p>
<p>? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。</p>
<p>. 匹配除 &#8220;\n&#8221; 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符，请使用象 ’[.\n]’ 的模式。<br />
(pattern) 匹配pattern 并获取这一匹配。</p>
<p>(?:pattern) 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。</p>
<p>(?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。</p>
<p>(?!pattern) 负向预查，与(?=pattern)作用相反</p>
<p>x|y 匹配 x 或 y。</p>
<p>[xyz] 字符集合。</p>
<p>[^xyz] 负值字符集合。</p>
<p>[a-z] 字符范围，匹配指定范围内的任意字符。</p>
<p>[^a-z] 负值字符范围，匹配任何不在指定范围内的任意字符。</p>
<p>\b 匹配一个单词边界，也就是指单词和空格间的位置。</p>
<p>\B 匹配非单词边界。</p>
<p>\cx 匹配由x指明的控制字符。</p>
<p>\d 匹配一个数字字符。等价于 [0-9]。</p>
<p>\D 匹配一个非数字字符。等价于 [^0-9]。</p>
<p>\f 匹配一个换页符。等价于 \x0c 和 \cL。</p>
<p>\n 匹配一个换行符。等价于 \x0a 和 \cJ。</p>
<p>\r 匹配一个回车符。等价于 \x0d 和 \cM。</p>
<p>\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。</p>
<p>\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。</p>
<p>\t 匹配一个制表符。等价于 \x09 和 \cI。</p>
<p>\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。</p>
<p>\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。</p>
<p>\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。</p>
<p>\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。</p>
<p>\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。</p>
<p>\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。</p>
<p>\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。</p>
<p>\nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。</p>
<p>\un 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。</p>
<p>匹配中文字符的正则表达式： [u4e00-u9fa5]</p>
<p>匹配双字节字符(包括汉字在内)：[^x00-xff]</p>
<p>匹配空行的正则表达式：n[s| ]*r</p>
<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;/1&gt;|&lt;(.*) /&gt;/</p>
<p>匹配首尾空格的正则表达式：(^s*)|(s*$)</p>
<p>匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p>
<p>匹配网址URL的正则表达式：<a href="http://([w-]+.)+[w-]+(/[w">http://([w-]+.)+[w-]+(/[w</a>- ./?%&amp;=]*)?</p>
<p>利用正则表达式限制网页表单里的文本框输入内容：</p>
<p>用正则表达式限制只能输入中文：onkeyup=&#8221;value=value.replace(/[^u4E00-u9FA5]/g,&#8221;)&#8221; onbeforepaste=&#8221;clipboardData.setData(&#8216;text&#8217;,clipboardData.getData(&#8216;text&#8217;).replace(/[^u4E00-u9FA5]/g,&#8221;))&#8221;</p>
<p>用正则表达式限制只能输入全角字符： onkeyup=&#8221;value=value.replace(/[^uFF00-uFFFF]/g,&#8221;)&#8221; onbeforepaste=&#8221;clipboardData.setData(&#8216;text&#8217;,clipboardData.getData(&#8216;text&#8217;).replace(/[^uFF00-uFFFF]/g,&#8221;))&#8221;</p>
<p>用正则表达式限制只能输入数字：onkeyup=&#8221;value=value.replace(/[^d]/g,&#8221;) &#8220;onbeforepaste=&#8221;clipboardData.setData(&#8216;text&#8217;,clipboardData.getData(&#8216;text&#8217;).replace(/[^d]/g,&#8221;))&#8221;</p>
<p>用正则表达式限制只能输入数字和英文：onkeyup=&#8221;value=value.replace(/[W]/g,&#8221;) &#8220;onbeforepaste=&#8221;clipboardData.setData(&#8216;text&#8217;,clipboardData.getData(&#8216;text&#8217;).replace(/[^d]/g,&#8221;))&#8221;</p>
<p>=========常用正则式</p>
<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]</p>
<p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]</p>
<p>匹配空行的正则表达式：\n[\s| ]*\r</p>
<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/</p>
<p>匹配首尾空格的正则表达式：(^\s*)|(\s*$)</p>
<p>匹配IP地址的正则表达式：/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //</p>
<p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p>
<p>匹配网址URL的正则表达式：<a href="http://(/[/w-]+/.)+[/w-]+(/[/w">http://(/[\w-]+\.)+[\w-]+(/[\w</a>- ./?%&amp;=]*)?</p>
<p>sql语句：^(select|drop|delete|create|update|insert).*$</p>
<p>1、非负整数：^\d+$</p>
<p>2、正整数：^[0-9]*[1-9][0-9]*$</p>
<p>3、非正整数：^((-\d+)|(0+))$</p>
<p>4、负整数：^-[0-9]*[1-9][0-9]*$</p>
<p>5、整数：^-?\d+$</p>
<p>6、非负浮点数：^\d+(\.\d+)?$</p>
<p>7、正浮点数：^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$</p>
<p>8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$</p>
<p>9、负浮点数：^(-((正浮点数正则式)))$</p>
<p>10、英文字符串：^[A-Za-z]+$</p>
<p>11、英文大写串：^[A-Z]+$</p>
<p>12、英文小写串：^[a-z]+$</p>
<p>13、英文字符数字串：^[A-Za-z0-9]+$</p>
<p>14、英数字加下划线串：^\w+$</p>
<p>15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</p>
<p>16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$<br />
或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\&#8217;:+!]*([^&lt;&gt;\"\"])*$</p>
<p>17、邮政编码：^[1-9]\d{5}$</p>
<p>18、中文：^[\u0391-\uFFE5]+$</p>
<p>19、电话号码：^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$</p>
<p>20、手机号码：^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$</p>
<p>21、双字节字符(包括汉字在内)：^\x00-\xff</p>
<p>22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）</p>
<p>23、匹配HTML标记：&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;</p>
<p>24、匹配空行：\n[\s| ]*\r</p>
<p>25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F) *= *(&#8216;|&#8221;)?(\w|\\|\/|\.)+(&#8216;|&#8221;| *|&gt;)?</p>
<p>26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p>
<p>27、提取信息中的图片链接：(s|S)(r|R)(c|C) *= *(&#8216;|&#8221;)?(\w|\\|\/|\.)+(&#8216;|&#8221;| *|&gt;)?</p>
<p>28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+)</p>
<p>29、提取信息中的中国手机号码：(86)*0*13\d{9}</p>
<p>30、提取信息中的中国固定电话号码：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}</p>
<p>31、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}</p>
<p>32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}</p>
<p>33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+</p>
<p>34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?</p>
<p>35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)</p>
<p>36、电话区号：/^0\d{2,3}$/</p>
<p>37、腾讯QQ号：^[1-9]*[1-9][0-9]*$</p>
<p>38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$</p>
<p>39、中文、英文、数字及下划线：^[\u4e00-\u9fa5_a-zA-Z0-9]+$</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/changyong-zhengze/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“西化”的名词之争</title>
		<link>http://kuigg.com/xihua-0610</link>
		<comments>http://kuigg.com/xihua-0610#comments</comments>
		<pubDate>Wed, 09 Jun 2010 22:37:16 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[文化]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=282</guid>
		<description><![CDATA[这些年，几本“中国”如何的书——有“说不”和“不高兴”的，有要“站起来”的(不好乱扣“帽子”，暂用“站起派”称呼这些人吧)，总的来说要扬中国人和中国文化的志气，灭西方人和西方文化的威风。

为了不犯和“站起派”一样的错误，我们设身处地站在“站起派”立场思考一下：他们也不会“全盘否认”中国有学习外国文化的必要，他们反对的是“崇洋媚外”“全盘西化”。不当洋奴，态度旗帜鲜明，但是操作上有些难度：怎样才算“站起来”，学多少西方文化才不是洋奴——10%？30%？还是49%以下？就像某些国有公司绝对控股的要求一样。反过来，要批判“全盘西化”的洋奴，说他们100%中国文化都不要，也不符合实际情况。
]]></description>
			<content:encoded><![CDATA[<p>来自：一五一十部落头条<br />
作者：哈库纳马塔塔</p>
<p>这些年，几本“中国”如何的书——有“说不”和“不高兴”的，有要“站起来”的(不好乱扣“帽子”，暂用“站起派”称呼这些人吧)，总的来说要扬中国人和中国文化的志气，灭西方人和西方文化的威风。</p>
<p>为了不犯和“站起派”一样的错误，我们设身处地站在“站起派”立场思考一下：他们也不会“全盘否认”中国有学习外国文化的必要，他们反对的是“崇洋媚外”“全盘西化”。不当洋奴，态度旗帜鲜明，但是操作上有些难度：怎样才算“站起来”，学多少西方文化才不是洋奴——10%？30%？还是49%以下？就像某些国有公司绝对控股的要求一样。反过来，要批判“全盘西化”的洋奴，说他们100%中国文化都不要，也不符合实际情况。</p>
<p>好多情况下，让有人不高兴的是一个“说法”而已。“说法”的真实意思，不高兴的人们未必搞得清，也不想搞清。搞清了就没了不高兴的理由了。</p>
<p>有段相声，许多年前李建华、石富宽合说的，在民间流行很广。</p>
<p>《五毛钱俩》——</p>
<p>傻子:卖拉,卖拉,鸡蛋5毛钱俩,鸡蛋5毛钱俩!</p>
<p>客人:好,来一块钱的。</p>
<p>傻子:不卖。</p>
<p>客人:嘿,你这人怎么做生意的?</p>
<p>傻子:5毛钱俩!我妈说了,怕我让人给骗了,只卖5毛钱俩!</p>
<p>客人:来5毛钱的,(给钱给蛋)；来5毛钱的，（给钱给蛋)。</p>
<p>客人:嘿,这不就是一块钱的吗?(手指傻子笑)</p>
<p>傻子:嘿嘿嘿嘿,瞧你那傻样!</p>
<p>《五毛钱俩》有些粗俗，拿弱势群体开玩笑。</p>
<p>我们还有不粗俗的，出自我们最地道的传统文化道家经典中的经典。《庄子齐物论》有个著名的“ 朝三暮四”故事：</p>
<p>狙公赋芧，曰：朝三而暮四。众狙皆怒。曰：然则朝四而暮三。众狙皆悦。</p>
<p>台湾国学大师傅佩荣评价庄子完全符合西方所谓的“哲学家”标准，亦即“爱智者”，因为智慧是指“完整而根本的觉悟”。傅佩荣谈“ 朝三暮四”的心得说：</p>
<p>庄子希望大家明白：“道”是万物的来源与归宿，万物都在“道”的里面形成一个整体。他接着说：只有明理的人知道万物相通为一体，因此不再争论，而寄托于平庸的道理上。平庸，就是平常日用的；平常日用的，就是世间通行的；世间通行的，就是把握住关键的只要觉悟“道”是一个整体，就不会计较名称与实质的改变了。因为，真正改变的只是名称，以及随着名称而使人“以为改变的”实质。</p>
<p>很多人反对的，是“西化”这个名词，“全盘西化”就更犯了众怒。</p>
<p>中国人重名，好面子，做一件事，“名正言顺”甚至比“实”还重要。对国情的了解，莫过于改革开放总设计师邓小平。“黑猫白猫”论，“不争论姓社姓资”，闷头发展，不能不令人钦佩邓公的高明。中国特色的社会主义，初级阶段，一国两制，堵住了多少张要争论的嘴。</p>
<p>提出“全盘西化”概念者，显然是文人，不是政治家。换了政治家起名，就说是西方文化“中国化”——在本土上“中化”西方文化，岂不叫中国人更有面子，让更多人接受，“化”的成功性要大很多。这样才能结成最广泛的“统一战线”嘛。中国革命的历史上曾把马克思主义普遍真理和中国具体革命实践相结合，建立了中华人民共和国。</p>
<p>换个名称，对大家都好。</p>
<p>实际上“全盘西化”的鼻祖胡适在70多年前，就意识到了“全盘西化”叫法容易引起争论的问题。他那篇写于1935年6月22日的著名文章《充分世界化与全盘西化》，说得明明白白，只不过如今读过的人比较少，大家只顾得自说自话而已。这里摘要引用一下：</p>
<p>二十年前，美国《展望周报》(The Outlook)总编辑阿博特(Lyman Abbott)发表了一部自传，其第一篇里记他的父亲的谈话，说：“自古以来，凡哲学上和神学上的争论，十分之九都只是名词上的争论。”阿博特在这句话的后面加上一句评论，他说：“我父亲的话是不错的。但我年纪越大，越感觉到他老人家的算术还有点小错。其实剩下的那十分之一，也还只是名词上的争论。”</p>
<p>那一年(一九二九)《中国基督教年鉴》(Christian Year book)请我做一篇文字，我的题目是“中国今日的文化冲突”，我指出中国人对于这个问题，会有三派的主张：一是抵抗西洋文化，二是选择折衷，三是充分西化。我说，抗拒西化在今日已成过去，没有人主张了。但所谓“选择折衷”的议论，看去非常有理，其实骨子里只是一种变相的保守论。所以我主张全盘的西化，一心一意的走上世界化的路。</p>
<p>“全盘西化”一个口号所以受了不少的批评，引起了不少的辩论，恐怕还是因为这个名词的确不免有一点语病。这点语病是因为严格说来，“全盘”含有百分之一百的意义，而百分之九十九还算不得“全盘”。其实陈序经先生的原意并不是这样，至少我可以说我自己的原意并不是这样。我赞成“全盘西化”，原意只是因为这个口号最近于我十几年来“充分”世界化的主张。</p>
<p>所以我现在很诚恳的向各位文化讨论者提议：为免除许多无谓的文字上或名词上的争论起见，与其说“全盘西化”，不如说“充分世界化”。“充分”在数量上即是“尽量”的意思，在精神上即是“用全力”的意思。</p>
<p>我的提议的理由是这样的：</p>
<p>第一，避免了“全盘”字样，可以免除一切琐碎的争论。例如我此刻穿着长袍，踏着中国缎鞋子，用的是钢笔，写的是中国字，谈的是“西化”，究竟我有“全盘西化”的百分之几，本来可以不生问题。</p>
<p>第二，避免了“全盘”的字样，可以容易得着同情的赞助。例如陈序经先生说：“吴景超先生既能承认了西方文化十二分之十以上，那么吴先生之所异于全盘西化论者，恐怕是厘毫之间罢”。依我看来，在“充分世界化”的原则之下，吴景超、潘光旦、张佛泉、梁实秋、沈昌晔……诸先生当然都是我们的同志，而不是论敌了。</p>
<p>第三，我们不能不承认，数量上的严格“全盘西化”是不容易成立的。文化只是人民生活的方式，处处都不能不受人民的经济状况和历史习惯的限制，这就是我从前说过的文化惰性。你尽管说基督教比我们的道教佛教高明的多多，但事实上基督教有一两百个宗派，他们自己就互相诋毁，我们要的是那一派?若说，“我们不妨采取其宗教的精神”，那也就不是“全盘”了。</p>
<p>胡适太了解中国国情了——折衷的骨子里是一种变相的保守，所以他才说“全盘西化”。尽管这样，他还是及时改了口——改成“充分世界化”，以避免名词之争。</p>
<p>与胡适意思不谋而合的是，鲁迅在《三闲集无声的中国》打了个著名的比喻：中国人的性情是总喜欢调和，折衷的。譬如你说，这屋子太暗，须在这里开一个窗，大家一定不允许的。如果你主张拆掉屋顶，他们就会来调和，愿意开窗了。没有激烈的主张，他们总连平和的改革也不肯行。</p>
<p>唐德刚先生说：</p>
<p>一言以蔽之，我们大概可以说，一部中国近代史便是一部“传统中国”向“现代西方”转变的“转变史”（history of transformation）。这一转变的过程，早期的史家，名之曰“西化”。目前的学人则改呼为“现代化”。其实这两个概念的疆界实在不易划分，不过人类毕竟是个有“历史感观”（sense ofhistory）的动物。历史往往也是解释概念之争的最佳工具。</p>
<p>就以吾人现代生活中的刷牙为例吧！“刷牙”这项卫生习惯，是从西方传来的。它在十九世纪的中国，大概可以叫做“西化”或“洋化”了。可是刷牙在今日中国都市生活中却变成不可或缺之一部分，那我们就只能把它列入“现代化”的范畴了。</p>
<p>文化整合有着重要的社会学上的结果，并冲击着社会学和社会心理学中几个未决的问题。首当其冲的是关于社会是否是有机体的论争。多数现代社会学家和社会心理学家煞费苦心地主张，社会不是也永远不可能是凌驾于组成社会的个体意志之上的东西。正象他们的部分论点那样，他们猛烈地攻击了“团体迷妄”（group－fallacg），他们认为，这种解释会使思维与行为成为某种神话实体——团体——的一种功能。另一方面，那些研究互异文化——在那里，有关资料十分清楚地表明，各种个体心理定律都不足以解释那些事实——的学者常以不可理喻的神话或措词来表达他们自己的观点。他们象涂尔干那样喊道：“个体并不存在。”或象卡洛伯（kroebre）一样，他们用他称为超有机体（Superorganic）的力量来说明文化进程。</p>
<p>从很大程度上来讲，这是一场言词之争。没有一个所谓的有机论者会真正相信，在文化中，除了个人意志之外还会有其他的意志体系；而另一方面，即使象阿尔波特（Allport）这样有力批判“团体迷妄”的人，也承认对群体进行科学研究的必要性，他认为这是“社会学的特殊科学领域。”在那些认为有必要把群体设想为不只是个体之和的人与那些否定这种观点的人之间的论争，已在研究不同资料的学者中广泛开展。涂尔干从对文化差异尤其是对澳大利亚文化的早期了解出发，常用比较含混的措词，反复重申文化研究的必要性。而另一方面，更多地是与我们自己的准标化文化打交道的社会学家，却企图把那种在他们研究实际上并不需要的方法论推翻。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xihua-0610/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在人人网发现典型五毛活体</title>
		<link>http://kuigg.com/0610-wumao-renren</link>
		<comments>http://kuigg.com/0610-wumao-renren#comments</comments>
		<pubDate>Wed, 09 Jun 2010 16:37:57 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[奇谈]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=259</guid>
		<description><![CDATA[看来认为我们能吃饱饭是因为“党让你吃饱了”的人还不少啊。
施鑫焱淼 2010-06-10 00:25

这个就是吃人家的喝人家的还说人家没给你吃撑，政权都希望稳固，就像人都想着吃饱，在谁的土地上说谁的话，毕竟共产党让你吃饱了，资本主义那发达了这么久还有人饿肚子，真的不容易了


]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">看来认为我们能吃饱饭是因为“党让你吃饱了”的人还不少啊。</div>
<div id="attachment_260" class="wp-caption alignnone" style="width: 491px"><a href="http://kuigg.com/attachments/2010/06/wumaohuoti.jpg"><img class="size-full wp-image-260" title="五毛活体" src="http://kuigg.com/attachments/2010/06/wumaohuoti.jpg" alt="五毛活体" width="481" height="88" /></a><p class="wp-caption-text">五毛活体</p></div>
<div><a title="连续登录7天, 即可获得橙名特权" href="http://www.renren.com/profile.do?id=233577714">施鑫焱淼</a> 2010-06-10 00:25</div>
<div>
<p>这个就是吃人家的喝人家的还说人家没给你吃撑，政权都希望稳固，就像人都想着吃饱，在谁的土地上说谁的话，毕竟共产党让你吃饱了，资本主义那发达了这么久还有人饿肚子，真的不容易了</p>
<p><a href="http://mobile.renren.com/"></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/0610-wumao-renren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress中默认的发邮件用户和地址的修改方法</title>
		<link>http://kuigg.com/wordpress-email-xiugai</link>
		<comments>http://kuigg.com/wordpress-email-xiugai#comments</comments>
		<pubDate>Wed, 09 Jun 2010 00:03:43 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=242</guid>
		<description><![CDATA[wordpress中默认的发邮件用户和地址是 WordPress &#60;wordpress@kuigg.com&#62;
我想把它修改成 kuiGG &#60;i@kuigg.com&#62;
研究了一下，找到修改的方法：
需要修改的文件是 wp-includes\pluggable.php
搜索“wordpress@”  有两处  都改成 “i@”
还有 找到以下代码

1
2
3
if &#40; !isset&#40; $from_name &#41; &#41; &#123;
  $from_name = 'WordPress';
 &#125;

修改成

1
2
3
if &#40; !isset&#40; $from_name &#41; &#41; &#123;
  $from_name = 'kuiGG';
 &#125;

]]></description>
			<content:encoded><![CDATA[<p>wordpress中默认的发邮件用户和地址是 WordPress &lt;wordpress@kuigg.com&gt;</p>
<p>我想把它修改成 kuiGG &lt;i@kuigg.com&gt;</p>
<p>研究了一下，找到修改的方法：</p>
<p>需要修改的文件是 wp-includes\pluggable.php</p>
<p>搜索“wordpress@”  有两处  都改成 “i@”</p>
<p>还有 找到以下代码</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$from_name</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$from_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'WordPress'</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>修改成</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$from_name</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$from_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'kuiGG'</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/wordpress-email-xiugai/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>金融危机是怎样炼成的</title>
		<link>http://kuigg.com/jinrongweiji-zenyanglianchengde</link>
		<comments>http://kuigg.com/jinrongweiji-zenyanglianchengde#comments</comments>
		<pubDate>Mon, 02 Nov 2009 01:26:39 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[社会]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=116</guid>
		<description><![CDATA[一男赶集卖猪, 天黑遇雨, 二十头猪未卖成, 到一农家借宿。
　　少妇说: 家里只一人不便。
　　男: 求你了大妹子, 给猪一头。
　　女: 好吧, 但家只有一床。
　　男: 我也到床上睡, 再给猪一头。
　　女: 同意。
　　半夜男与女商量, 我到你上面睡, 女不肯。
　　男: 给猪两头。
　　女允, 要求上去不能动。
　　少顷, 男忍不住, 央求动一下, 女不肯。
　　男: 动一下给猪两头。女同意。
　　男动了八次停下, 女问为何不动?&#160;
　　男说猪没了。
　　女小声说: 要不我给你猪……
　　天亮后, 男吹着口哨赶30头（含少妇家的10头）猪赶集去了…… 
哈佛导师评论: 要发现用户潜在需求, 前期必须引导, 培养用户需求, 因此产生的投入是符合发展规律的。 
※※※※※※※※ 
　　另一男得知此事, 决意如法炮制, 遂赶集卖猪, 天黑遇雨, 二十头猪未卖成, 到一农家借宿
　　少妇说: 家里只一人不便。
　　男: 求你了大妹子, 给猪一头
　　女: 好吧, 但家只有一床。
　　男: 我也到床上睡, 再给猪一头。
　　女: 同意。
　　半夜男商女, 我到你上面睡, 女不肯。
　　男: 给猪两头。
　　女允, 要求上去不能动。
　　少顷, 男忍不住, 央求动一下, 女不肯。
　　男: 动一下给猪两头。女同意。
　　男动了七次停下, 女问为何不动?
　　男说: 完事了～～～女: ……
　　天亮后, 男低著头赶2头猪赶集去了…… [...]]]></description>
			<content:encoded><![CDATA[<p>一男赶集卖猪, 天黑遇雨, 二十头猪未卖成, 到一农家借宿。<br />
　　少妇说: 家里只一人不便。<br />
　　男: 求你了大妹子, 给猪一头。<br />
　　女: 好吧, 但家只有一床。</p>
<p>　　男: 我也到床上睡, 再给猪一头。<br />
　　女: 同意。<br />
　　半夜男与女商量, 我到你上面睡, 女不肯。<br />
　　男: 给猪两头。<br />
　　女允, 要求上去不能动。<br />
　　少顷, 男忍不住, 央求动一下, 女不肯。<br />
　　男: 动一下给猪两头。女同意。<br />
　　男动了八次停下, 女问为何不动?&nbsp;<br />
　　男说猪没了。<br />
　　女小声说: 要不我给你猪……<br />
　　天亮后, 男吹着口哨赶30头（含少妇家的10头）猪赶集去了…… </p>
<p>哈佛导师评论: 要发现用户潜在需求, 前期必须引导, 培养用户需求, 因此产生的投入是符合发展规律的。 </p>
<p>※※※※※※※※ </p>
<p>　　另一男得知此事, 决意如法炮制, 遂赶集卖猪, 天黑遇雨, 二十头猪未卖成, 到一农家借宿<br />
　　少妇说: 家里只一人不便。<br />
　　男: 求你了大妹子, 给猪一头<br />
　　女: 好吧, 但家只有一床。<br />
　　男: 我也到床上睡, 再给猪一头。<br />
　　女: 同意。<br />
　　半夜男商女, 我到你上面睡, 女不肯。<br />
　　男: 给猪两头。<br />
　　女允, 要求上去不能动。<br />
　　少顷, 男忍不住, 央求动一下, 女不肯。<br />
　　男: 动一下给猪两头。女同意。<br />
　　男动了七次停下, 女问为何不动?<br />
　　男说: 完事了～～～女: ……<br />
　　天亮后, 男低著头赶2头猪赶集去了…… </p>
<p>哈佛导师评论: 要结合企业自身规模进行谨慎投资, 谨防资金链断裂问题 </p>
<p>※※※※※※※※ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 又一男得知此事, 决意如法炮制兼吸取教训, 遂先去伟哥专卖店用一头猪去换一粒伟哥, 然后带19头猪出发, 事必, 天亮后, 男吹着口哨赶37头（含少妇家的18头）猪赶集去了…… </p>
<p>哈佛导师评论: 企业如果获得金融资本的帮助, 自身经营能力将得到倍增。 </p>
<p>※※※※※※※※ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 知道此法男多, 伟哥供不应求, 逐渐要2头猪换一粒伟哥, 然后是3头猪换一粒伟哥, 伟哥专卖店宣布伟哥限量供应, 永远保值。 </p>
<p>哈佛导师评论: 这就是通货膨胀, 但尽管购入伟哥, 伟哥是永远保值品, 从一头猪到N头猪换一个伟哥, 你什么时候见过伟哥贬值? </p>
<p>※※※※※※※※ </p>
<p>越来越多的人听说了哈佛导师的评论, 开始去囤积伟哥, 并在市场上二手交易伟哥赚钱。 </p>
<p>哈佛导师又评论: 繁荣的二手交易市场是一手市场持续繁荣的保证。 </p>
<p>※※※※※※※※ </p>
<p>越来越多的人想去炒做伟哥, 很快伟哥价格涨到16个猪换一粒。 </p>
<p>哈佛导师又评论: 该男已经进入边际成本, 除了拥有对自身能力的自信和未来良好愿望以外, 实际现猪流已经为零。 </p>
<p>※※※※※※※※ </p>
<p>有的男只有一头猪很早就换成伟哥, 于是有人告诉他, 你可以用你现在的这个伟哥去办猪抵押, 当初你是一头猪买进, 现在伟哥价值16头猪, 你可以办至少8头猪的贷款, 然后你可以用这些猪去买汽车等等好东西, 这就可以把你伟哥增值部分去消费。 </p>
<p>哈佛导师评论: 良好的理财可以让个人实现财富自由。 </p>
<p>※※※※※※※※ </p>
<p>换猪男越来越多, 伟哥专卖店决定, 推出一种借贷伟哥销售模式, 即使你没有足够的现猪, 只要你敢承诺到该女房中一夜, 带16头猪回来, 我就可以先把伟哥卖给你。例如如果你缺一头猪, 就可以先欠一头, 事成后补交猪款, 这个方法大大促进了伟哥销售。 </p>
<p>哈佛导师评论: 这就是贷款, 让企业可以根据未来的收益选择借支流动资金。扩展生产能力, 这就是信用经济, 信用经济是建立在良好信用和经济持续成长基础上的, 只要大家都讲信用, 伟哥就可以源源不断提供给大家使用。 </p>
<p>※※※※※※※※ </p>
<p>伟哥专卖店尝到甜头, 借贷胆子越来越大, 后来在即使你一头猪都没有, 只要你承诺可以到该女房中一夜, 就可以先借, 事成后补交猪款。 </p>
<p>哈佛导师评论: 这就是金融创新, 让现在的人花未来的钱, 反正等你老了未来的钱你也花不动。 </p>
<p>※※※※※※※※ </p>
<p>消息一出, 换猪男越来越多, 有人找伟哥专卖店, 这个项目太好了, 我们把它变成优质基金, 对外销售债卷, 你们也就可以分享我的收益, 如何? </p>
<p>结果伟哥专卖店觉得甚好, 于是该公司把换猪男分三类, 一类是拿现猪换的, 一类是一部分现猪贷的, 一类是完全没有现猪借的, 发行三种债卷。大家踊跃而上。纷纷购买伟哥专卖店的债卷, 伟哥专卖店生意太好, 就把债卷销售外包给另外一家公司运作, 该公司也一并大发其财, 公司越做越大, 甚至可以脱离实际伟哥销售情况来发行, 给自己和伟哥专卖店带来巨大的现金收益。 </p>
<p>哈佛导师评论: 这就是专业的人做专业的事, 从实体经营到资本运作, 经济进入了更高的层次。 </p>
<p>※※※※※※※※ </p>
<p>为了防止自己债卷未来有损失, 该公司决定给它买上保险, 这样债卷销售就更容易, 因为一旦债卷出现问题, 还可以获得保险公司的赔付, 保险公司一计算, 到目前为止伟哥销售伟约率很低, 毕竟做爱是刚性需求, 必须满足, 只要承诺可以接受保费, 就可以获得一大笔收入, 而违约风险很低。哇, 所有的债卷如果出问题还有保险公司负责理赔, 债卷公司销售这下子太好了, 保险公司也获得巨大平白无故的保险收入。 </p>
<p>哈佛导师评论: 这就是风险对冲, 策略联盟, 提高了企业的抗风险能力, 也保护了消费者利益。 </p>
<p>※※※※※※※※ </p>
<p>换猪男太多, 排长队等待, 该女无法承受, 说老娘不干了, 我搬家, 一时间有无数拥有伟哥的欠猪男。 </p>
<p>哈佛导师评论: 这是个别现象, 属于市场的正常波动, 不会影响整个经济。 </p>
<p>※※※※※※※※ </p>
<p>结果该女迟迟不肯搬回。一部分欠猪男没有收入, 只好宣布愿意低价交换伟哥, 伟哥突然一下子从16个猪下滑到8个猪一粒也卖不掉, 市场出现伟哥恐慌, 原来伟哥也可以暴跌, 一些拥有伟哥的人赖帐, 结果大量借贷到期无法返回现猪, 伟哥专卖店晕了, 不得不宣布有大量借贷者欠猪不还, 属于信用违约。 </p>
<p>哈佛导师评论: 这是个人行为, 大部分贷款是优质人群。 </p>
<p>※※※※※※※※ </p>
<p>大量次级猪贷违约, 那么对应他们的债卷也就一钱不值, 承担销售的债卷公司一看一粒伟哥16头猪, 这哪里还得起, 宣布倒闭。 </p>
<p>哈佛导师评论: 这是次贷危机, 不会影响整个金融贷款, </p>
<p>※※※※※※※※ </p>
<p>哈佛导师哪里晓得债卷公司还把债卷上了保险, 保险公司一看, 这哪里赔得起, 于是也宣布要倒闭。 </p>
<p>哈佛导师评论: 这是金融危机, 还不会影响整个实体经济。 </p>
<p>※※※※※※※※ </p>
<p>大量的人破产, 不敢消费, 经过经济下滑, 没有敢把猪借给别人, 怕有去无回, 市场越来越冷淡！ </p>
<p>哈佛导师评论: 全国人民都要出血的时刻到了, 虽然那些卖伟哥的, 卖债卷的, 卖保险的在赚钱的时候发了财, 现在搞出漏子了, 如果我们不帮他们埋单, 我们将来还是最大的受害者。 </p>
<p>※※※※※※※※ </p>
<p>伟哥专卖局决定向全国人民借7000亿头猪拯救市场, 市场依然故我, 全国有猪者和无猪者都很愤怒, 谁拿走了我们的猪? </p>
<p>哈佛导师评论: 早就告诉你们, 为什么不去监管? 现在唯一的办法, 就是找几个国外养猪户以负责任的大猪国形象来注猪, 否则大家都要完蛋! </p>
<p>※※※※※※※※ </p>
<p>后文: 据说该女已搬到中国定居, 此外哈佛教授带的几个研究生也在中国淘金中。<br />
阅读提示: 猪是现金, 伟哥是房子。 </p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/jinrongweiji-zenyanglianchengde/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>谁与你生死与共</title>
		<link>http://kuigg.com/shuiyuni-shengsiyugong</link>
		<comments>http://kuigg.com/shuiyuni-shengsiyugong#comments</comments>
		<pubDate>Mon, 26 Oct 2009 01:54:31 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[小凡原创]]></category>
		<category><![CDATA[小凡随笔]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=115</guid>
		<description><![CDATA[公元626年7月3日凌晨。
长安城，阴霾笼罩，压抑人心。
秦王府前，数百个全副武装的男人集结，他们在酝酿一个天大的阴谋。
为首的秦王，将要在这个血色黎明，去诛杀他的亲哥哥和亲弟弟，用暴力夺得皇位的继承权。
肃杀之气弥漫，这些死士心中目标坚定：决战玄武门。
秦王的内心，坚毅而又充满了恐惧。
这是一场空前绝后的赌博，赌的不仅是生死。
生，则可君临天下；死，则必遗臭万年。
忽然，一个婀娜的身影出现，披战甲，执利刃。
秦王妃！
她亲自慰勉每一位即将与她的丈夫并肩血战的将士。
在那个冷酷的凌晨，一个女性的身影与声音，迅速温暖了冰冷的铠甲。
她翻身上马，跨马扬鞭，直奔玄武门。
哪怕诛兄斩弟，也要紧跟你的身后。
这个13岁就嫁入李家的女子，在最危急的时刻，选择了与丈夫生死与共。
玄武门下，一箭定乾坤。
他们赢得了天下。
两个月后，秦王登基，再过十三天，秦王妃成为长孙皇后。
一抹红颜，温暖了一个时代，成就了一个盛世。
她是李世民唯一的女主角，留下一个不朽的传说。
]]></description>
			<content:encoded><![CDATA[<p>公元626年7月3日凌晨。<br />
长安城，阴霾笼罩，压抑人心。<br />
秦王府前，数百个全副武装的男人集结，他们在酝酿一个天大的阴谋。<br />
为首的秦王，将要在这个血色黎明，去诛杀他的亲哥哥和亲弟弟，用暴力夺得皇位的继承权。<br />
肃杀之气弥漫，这些死士心中目标坚定：决战玄武门。<br />
秦王的内心，坚毅而又充满了恐惧。<br />
这是一场空前绝后的赌博，赌的不仅是生死。<br />
生，则可君临天下；死，则必遗臭万年。<br />
忽然，一个婀娜的身影出现，披战甲，执利刃。<br />
秦王妃！<br />
她亲自慰勉每一位即将与她的丈夫并肩血战的将士。<br />
在那个冷酷的凌晨，一个女性的身影与声音，迅速温暖了冰冷的铠甲。<br />
她翻身上马，跨马扬鞭，直奔玄武门。<br />
哪怕诛兄斩弟，也要紧跟你的身后。<br />
这个13岁就嫁入李家的女子，在最危急的时刻，选择了与丈夫生死与共。<br />
玄武门下，一箭定乾坤。<br />
他们赢得了天下。<br />
两个月后，秦王登基，再过十三天，秦王妃成为长孙皇后。<br />
一抹红颜，温暖了一个时代，成就了一个盛世。<br />
她是李世民唯一的女主角，留下一个不朽的传说。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/shuiyuni-shengsiyugong/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>祭张灵甫将军文</title>
		<link>http://kuigg.com/ji-zhanglingfu</link>
		<comments>http://kuigg.com/ji-zhanglingfu#comments</comments>
		<pubDate>Fri, 15 May 2009 14:09:07 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[小凡原创]]></category>
		<category><![CDATA[小凡随笔]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=114</guid>
		<description><![CDATA[&#160;
祭张灵甫将军文 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 小葵的哥哥&#160; 98/5/15 
你忘记了么，那支铁血忠魂的王牌七十四师；
你忘记了么，那位忠肝义胆的张灵甫将军。
拨开历史阴沉的迷雾，直视将军刚毅的目光。
几度出生入死，几番身先士卒；几度从容淡定，几番荡气回肠。
八一三，弃袍持枪，杀得日寇抱头鼠窜；张古山，七度挂伤，坚守阵地脊梁不屈。
铁血战士，埋骨沙场，留下多少中华绝唱；忠魂将领，一身伤残，身负多少民族勋章。
倭寇举手降，英雄归故乡；将军百战死，壮士十年归。
盼天下太平，萧蔷燃战火；望国富民强，同门起硝烟。
三民主义的信仰，怎敢背弃；甫定国土的将士，浴血再战。
没有临阵杀敌的淋漓酣畅，不见驰骋疆场的满腔豪情；唯有无可奈何的一声叹息，只见同胞相残的黯然伤神。
三十六年五月一十六日，孟良崮。
身陷十余万众之重围，叹回天无力，将军拒俘自殁。
一发子弹，尽现铁血；一纸遗书，写满柔情。
舍了生命，舍不下的是老父与爱妻；殉了信仰，忘不掉的是民国和校长。
老父屈死，在那打倒牛鬼蛇神的浪潮里；
爱妻守寡，在那抚养遗腹孤儿的希望里。
民国偏安，江山易帜，再无青天白日满地红迎风飘扬的骄傲；
校长离去，同窗操戈，再无黄埔师生共北伐其力断金的豪情。
生前心已碎，死后任人谤；
萧瑟玫瑰园，只留衣冠冢。
可笑我们纪念抗日的胜利，却无知贬斥那位痛击日寇的将军；
可怜将军誓死捍卫的土地，却狭小难容一座掩埋忠骨的陵寝。

&#160;

]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>祭张灵甫将军文 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小葵的哥哥&nbsp; 98/5/15 </p>
<p>你忘记了么，那支铁血忠魂的王牌七十四师；<br />
你忘记了么，那位忠肝义胆的张灵甫将军。</p>
<p>拨开历史阴沉的迷雾，直视将军刚毅的目光。<br />
几度出生入死，几番身先士卒；几度从容淡定，几番荡气回肠。<br />
八一三，弃袍持枪，杀得日寇抱头鼠窜；张古山，七度挂伤，坚守阵地脊梁不屈。<br />
铁血战士，埋骨沙场，留下多少中华绝唱；忠魂将领，一身伤残，身负多少民族勋章。</p>
<p>倭寇举手降，英雄归故乡；将军百战死，壮士十年归。<br />
盼天下太平，萧蔷燃战火；望国富民强，同门起硝烟。<br />
三民主义的信仰，怎敢背弃；甫定国土的将士，浴血再战。<br />
没有临阵杀敌的淋漓酣畅，不见驰骋疆场的满腔豪情；唯有无可奈何的一声叹息，只见同胞相残的黯然伤神。</p>
<p>三十六年五月一十六日，孟良崮。<br />
身陷十余万众之重围，叹回天无力，将军拒俘自殁。</p>
<p>一发子弹，尽现铁血；一纸遗书，写满柔情。<br />
舍了生命，舍不下的是老父与爱妻；殉了信仰，忘不掉的是民国和校长。</p>
<p>老父屈死，在那打倒牛鬼蛇神的浪潮里；<br />
爱妻守寡，在那抚养遗腹孤儿的希望里。<br />
民国偏安，江山易帜，再无青天白日满地红迎风飘扬的骄傲；<br />
校长离去，同窗操戈，再无黄埔师生共北伐其力断金的豪情。</p>
<p>生前心已碎，死后任人谤；<br />
萧瑟玫瑰园，只留衣冠冢。<br />
可笑我们纪念抗日的胜利，却无知贬斥那位痛击日寇的将军；<br />
可怜将军誓死捍卫的土地，却狭小难容一座掩埋忠骨的陵寝。</p>
<p><a href="http://kuigg.com/attachments/2009/05/1_200905152207591.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/05/1_200905152207591.jpg" /></a></p>
<p>&nbsp;</p>
<p><a href="http://kuigg.com/attachments/2009/05/1_200905152208381.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/05/1_200905152208381.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/ji-zhanglingfu/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>还有一个月就高考了</title>
		<link>http://kuigg.com/2009-gaokao</link>
		<comments>http://kuigg.com/2009-gaokao#comments</comments>
		<pubDate>Tue, 05 May 2009 11:41:44 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[小凡原创]]></category>
		<category><![CDATA[小凡随笔]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=113</guid>
		<description><![CDATA[想想我已经参加过三次高考了 02 03 06年
03年是最重要的一次 把我带进了西安交大
遥想03年这个时侯 非典阴霾 学校封闭 我们就意气风发的准备高考了
高考的前后  对我以及大多数人来说 是完全不一样的世界
一下子六年就过去了 已经不记得多少次得到了那些自己曾经梦寐以求以为朝得之夕可死矣的东西 可是 得到了之后 又怎么样呢 大多时候 只有四个字 “不过如此”
交大一纸学位证 被我两次放弃 至今庸碌 不见成功 只见未来 —— 未来的那些 现在梦寐以求一旦得到亦不过如此的东西  
高考 神圣的高考 高考的神圣 在电影《高考1977》里被极大地表现
。。
废话不说了 祝愿即将参加高考的孩子们马到成功  你们无力改变大世界 高考却会改变你们的整个世界
康桥三班的孩子们 西安交大在等你们 康桥苑在等你们 康桥一班二班的前辈在等你们
恨不能晚生七年。。
]]></description>
			<content:encoded><![CDATA[<p>想想我已经参加过三次高考了 02 03 06年</p>
<p>03年是最重要的一次 把我带进了西安交大</p>
<p>遥想03年这个时侯 非典阴霾 学校封闭 我们就意气风发的准备高考了</p>
<p>高考的前后  对我以及大多数人来说 是完全不一样的世界</p>
<p>一下子六年就过去了 已经不记得多少次得到了那些自己曾经梦寐以求以为朝得之夕可死矣的东西 可是 得到了之后 又怎么样呢 大多时候 只有四个字 “不过如此”</p>
<p>交大一纸学位证 被我两次放弃 至今庸碌 不见成功 只见未来 —— 未来的那些 现在梦寐以求一旦得到亦不过如此的东西  </p>
<p>高考 神圣的高考 高考的神圣 在电影《高考1977》里被极大地表现</p>
<p>。。</p>
<p>废话不说了 祝愿即将参加高考的孩子们马到成功  你们无力改变大世界 高考却会改变你们的整个世界</p>
<p>康桥三班的孩子们 西安交大在等你们 康桥苑在等你们 康桥一班二班的前辈在等你们</p>
<p>恨不能晚生七年。。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/2009-gaokao/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>在上海的照片</title>
		<link>http://kuigg.com/shanghai-photo</link>
		<comments>http://kuigg.com/shanghai-photo#comments</comments>
		<pubDate>Wed, 25 Mar 2009 10:59:15 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=112</guid>
		<description><![CDATA[



]]></description>
			<content:encoded><![CDATA[<p><a href="http://kuigg.com/attachments/2009/03/1_200903251858231.jpg" target="_blank"><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903251858231.jpg" alt="" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903251858233.jpg" target="_blank"><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903251858233.jpg" alt="" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903251858234.jpg" target="_blank"><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903251858234.jpg" alt="" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903251858235.jpg" target="_blank"><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903251858235.jpg" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/shanghai-photo/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>生活在上海</title>
		<link>http://kuigg.com/shanghai-shenghuo</link>
		<comments>http://kuigg.com/shanghai-shenghuo#comments</comments>
		<pubDate>Fri, 06 Mar 2009 12:54:19 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=111</guid>
		<description><![CDATA[在松江的农村。。



]]></description>
			<content:encoded><![CDATA[<p>在松江的农村。。</p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903062053121.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903062053121.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903062053122.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903062053122.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/03/1_200903062053123.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/03/1_200903062053123.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/shanghai-shenghuo/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>老照片</title>
		<link>http://kuigg.com/old-photo</link>
		<comments>http://kuigg.com/old-photo#comments</comments>
		<pubDate>Mon, 02 Mar 2009 05:34:09 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=110</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/old-photo/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>窗户拍到的雪景</title>
		<link>http://kuigg.com/xuejing-2009</link>
		<comments>http://kuigg.com/xuejing-2009#comments</comments>
		<pubDate>Fri, 27 Feb 2009 09:58:18 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=109</guid>
		<description><![CDATA[





&#160;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757281.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757281.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757282.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757282.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757283.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757283.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757284.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757284.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757285.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757285.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902271757286.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902271757286.jpg" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xuejing-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>交大雪人</title>
		<link>http://kuigg.com/xueren-xjtu</link>
		<comments>http://kuigg.com/xueren-xjtu#comments</comments>
		<pubDate>Thu, 26 Feb 2009 10:44:40 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=108</guid>
		<description><![CDATA[&#160;
西安一个冬天下来都没下雪。。现在都春天了 居然还下了一场大雪&#160; 哈哈
&#160;





&#160;
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>西安一个冬天下来都没下雪。。现在都春天了 居然还下了一场大雪&nbsp; 哈哈</p>
<p>&nbsp;</p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902261844131.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902261844131.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902261844132.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902261844132.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902261844133.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902261844133.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902261844134.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902261844134.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902262003281.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902262003281.jpg" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xueren-xjtu/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>正宗大清格格</title>
		<link>http://kuigg.com/aixinjueluo-qixing</link>
		<comments>http://kuigg.com/aixinjueluo-qixing#comments</comments>
		<pubDate>Wed, 25 Feb 2009 06:12:44 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片收藏]]></category>
		<category><![CDATA[图片相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=107</guid>
		<description><![CDATA[&#160;
爱新觉罗启星&#160; 出身清皇族
&#160;






&#160;
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>爱新觉罗启星&nbsp; 出身清皇族</p>
<p>&nbsp;</p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411371.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411371.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411372.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411372.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411373.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411373.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411374.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411374.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411375.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411375.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902251411376.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902251411376.jpg" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/aixinjueluo-qixing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ps习作</title>
		<link>http://kuigg.com/ps-xizuo-2009</link>
		<comments>http://kuigg.com/ps-xizuo-2009#comments</comments>
		<pubDate>Mon, 23 Feb 2009 03:38:40 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=106</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://kuigg.com/attachments/2009/02/1_200902231138341.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231138341.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/ps-xizuo-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>又是一年梨花开</title>
		<link>http://kuigg.com/lihua-2009</link>
		<comments>http://kuigg.com/lihua-2009#comments</comments>
		<pubDate>Mon, 23 Feb 2009 02:50:24 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[小凡原创]]></category>
		<category><![CDATA[小凡随笔]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=105</guid>
		<description><![CDATA[那一年梨花盛开的时节，我伫立在蓝天之下，陪伴我的是那如朝阳映雪般灿烂争春的梨花。她轻轻吟诵“青青子衿悠悠我心”，任由雪白的花瓣缀满我的衣襟。
凄美，不可原谅的凄美。我仿佛听见我心灵的伤感。
纯洁，不容亵渎的纯洁。我能够看见她内心的清澈。
一枝梨花在斜阳露水里绽放，是暗含幽香的惆怅；一树梨花在料峭春寒里迎风招展，是恋眷红尘的情愫；千树万树梨花开，则是千年来未曾有解的相思。
千年的怅惘，化作一朵梨花，妆点一场春梦。
比梦境更真实，比彩虹更纯洁，比寒冰更温暖。我虔诚地仰望，我赞颂，我喜欢，我深爱，潮水般袭来的感情让我窒息。我几乎不敢直面那一树梨花，我不知道自己有限的生命和浑浊的心灵能不能承载她悠远的情愫和纯真的守望。 
然而梨花的光华，少瞬即逝。也许是因为夏天的召唤，也许是因为春天的不挽留。她悄然遁去，空留一地的花瓣。堪称大地的情殇，如诗如梦，演绎成风花雪月的绝唱。我不知道她以怎样一种情怀经历了凄美的绽放与凄伤的凋逝，唯有默默接受她给我留下的印迹，黯然离去。
长亭古道，芳草碧连天。我渐行渐远，赏月圆月缺，看云起云落，却无法释怀春的召唤，无法拭去梨花的印迹。夜风吹过，为了掩饰我内心深处的伤感，我把目光投向天空，仰视星辰。梨花雨，美人泪，暗夜里我独自品酌。然而，草不谢荣于春风,木不怨落于秋天，花开花落，本是自然使然，又何必强求一朵梨花咯血枝头以便占尽风头？
天空依旧蔚蓝，我依旧行走在春天里，我心里的梨花依旧绚烂。
借用温庭筠一首词：满宫明月梨花白，故人万里关山隔。金雁一双飞，泪痕沾绣衣。小园芳草绿，家住越溪曲。杨柳色依依，燕归君不归?
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;小葵的哥哥 &#160; 2.22 












&#160;
]]></description>
			<content:encoded><![CDATA[<p>那一年梨花盛开的时节，我伫立在蓝天之下，陪伴我的是那如朝阳映雪般灿烂争春的梨花。她轻轻吟诵“青青子衿悠悠我心”，任由雪白的花瓣缀满我的衣襟。<br />
凄美，不可原谅的凄美。我仿佛听见我心灵的伤感。<br />
纯洁，不容亵渎的纯洁。我能够看见她内心的清澈。<br />
一枝梨花在斜阳露水里绽放，是暗含幽香的惆怅；一树梨花在料峭春寒里迎风招展，是恋眷红尘的情愫；千树万树梨花开，则是千年来未曾有解的相思。<br />
千年的怅惘，化作一朵梨花，妆点一场春梦。<br />
比梦境更真实，比彩虹更纯洁，比寒冰更温暖。我虔诚地仰望，我赞颂，我喜欢，我深爱，潮水般袭来的感情让我窒息。我几乎不敢直面那一树梨花，我不知道自己有限的生命和浑浊的心灵能不能承载她悠远的情愫和纯真的守望。 </p>
<p>然而梨花的光华，少瞬即逝。也许是因为夏天的召唤，也许是因为春天的不挽留。她悄然遁去，空留一地的花瓣。堪称大地的情殇，如诗如梦，演绎成风花雪月的绝唱。我不知道她以怎样一种情怀经历了凄美的绽放与凄伤的凋逝，唯有默默接受她给我留下的印迹，黯然离去。<br />
长亭古道，芳草碧连天。我渐行渐远，赏月圆月缺，看云起云落，却无法释怀春的召唤，无法拭去梨花的印迹。夜风吹过，为了掩饰我内心深处的伤感，我把目光投向天空，仰视星辰。梨花雨，美人泪，暗夜里我独自品酌。然而，草不谢荣于春风,木不怨落于秋天，花开花落，本是自然使然，又何必强求一朵梨花咯血枝头以便占尽风头？<br />
天空依旧蔚蓝，我依旧行走在春天里，我心里的梨花依旧绚烂。<br />
借用温庭筠一首词：满宫明月梨花白，故人万里关山隔。金雁一双飞，泪痕沾绣衣。小园芳草绿，家住越溪曲。杨柳色依依，燕归君不归?<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;小葵的哥哥 &nbsp; 2.22 </p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048481.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048481.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048482.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048482.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048483.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048483.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048484.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048484.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048485.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048485.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048486.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048486.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048487.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048487.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048488.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048488.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_200902231048489.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_200902231048489.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_2009022310484810.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_2009022310484810.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_2009022310484811.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_2009022310484811.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/02/1_2009022310484812.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/02/1_2009022310484812.jpg" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/lihua-2009/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>键盘上每个键作用!!!</title>
		<link>http://kuigg.com/jianpan-meigejian-zuoyong</link>
		<comments>http://kuigg.com/jianpan-meigejian-zuoyong#comments</comments>
		<pubDate>Fri, 06 Feb 2009 07:24:20 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[其它]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=104</guid>
		<description><![CDATA[F1帮助
F2改名
F3搜索
F4地址
F5刷新
F6切换
F10菜单
CTRL+A全选
CTRL+C复制
CTRL+X剪切
CTRL+V粘贴
CTRL+Z撤消
CTRL+O打开
SHIFT+DELETE永久删除
DELETE删除
ALT+ENTER属性
ALT+F4关闭
CTRL+F4关闭
ALT+TAB切换
ALT+ESC切换
ALT+空格键窗口菜单
CTRL+ESC开始菜单
拖动某一项时按CTRL复制所选项目
拖动某一项时按CTRL+SHIFT创建快捷方式
将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放 
Ctrl+1,2,3&#8230;　切换到从左边数起第1,2,3&#8230;个标签
Ctrl+A　全部选中当前页面内容
Ctrl+C　复制当前选中内容
Ctrl+D　打开“添加收藏”面版(把当前页面添加到收藏夹中)
Ctrl+E　打开或关闭“搜索”侧边栏(各种搜索引擎可选)
Ctrl+F　打开“查找”面版
Ctrl+G　打开或关闭“简易收集”面板
Ctrl+H　打开“历史”侧边栏
Ctrl+I　打开“收藏夹”侧边栏/另:将所有垂直平铺或水平平铺或层叠的窗口恢复
Ctrl+K　关闭除当前和锁定标签外的所有标签
Ctrl+L　打开“打开”面版(可以在当前页面打开Iternet地址或其他文件&#8230;)
Ctrl+N　新建一个空白窗口(可更改,Maxthon选项→标签→新建)
Ctrl+O　打开“打开”面版(可以在当前页面打开Iternet地址或其他文件&#8230;)
Ctrl+P　打开“打印”面板(可以打印网页,图片什么的&#8230;)
Ctrl+Q　打开“添加到过滤列表”面板(将当前页面地址发送到过滤列表)
Ctrl+R　刷新当前页面
Ctrl+S　打开“保存网页”面板(可以将当前页面所有内容保存下来)
Ctrl+T　垂直平铺所有窗口
Ctrl+V　粘贴当前剪贴板内的内容
Ctrl+W　关闭当前标签(窗口)
Ctrl+X　剪切当前选中内容(一般只用于文本操作)
Ctrl+Y　重做刚才动作(一般只用于文本操作)
Ctrl+Z　撤消刚才动作(一般只用于文本操作)
Ctrl+F4　关闭当前标签(窗口)
Ctrl+F5　刷新当前页面
Ctrl+F6　按页面打开的先后时间顺序向前切换标签(窗口)
Ctrl+F11　隐藏或显示菜单栏
Ctrl+Tab　以小菜单方式向下切换标签(窗口)
Ctrl+Enter　域名自动完成http://www.XXX.com(内容可更改,Maxthon选项→地址栏→常规)/另:当输入焦点在搜索栏中时,为高亮关键字
Ctrl+拖曳　保存该链接的地址或已选中的文本或指定的图片到一个文件夹中(保存目录可更改,Maxthon选项→保存)
Ctrl+小键盘&#8217;+'　当前页面放大20%
Ctrl+小键盘&#8217;-'　当前页面缩小20%
Ctrl+小键盘&#8217;*'　恢复当前页面的缩放为原始大小
Ctrl+Alt+S　自动保存当前页面所有内容到指定文件夹(保存路径可更改,Maxthon选项→保存)
Ctrl+Shift+小键盘&#8217;+'　所有页面放大20%
Ctrl+Shift+小键盘&#8217;-'　所有页面缩小20%
Ctrl+Shift+F　输入焦点移到搜索栏
Ctrl+Shift+G　关闭“简易收集”面板
Ctrl+Shift+H　打开并激活到你设置的主页
Ctrl+Shift+N　在新窗口中打开剪贴板中的地址,如果剪贴板中为文字,则调用搜索引擎搜索该文字(搜索引擎可选择,Maxthon选项→搜索)
Ctrl+Shift+S　打开“保存网页”面板(可以将当前页面所有内容保存下来,等同于Ctrl+S)　
Ctrl+Shift+W　关闭除锁定标签外的全部标签(窗口)
Ctrl+Shift+F6　按页面打开的先后时间顺序向后切换标签(窗口)
Ctrl+Shift+Tab　以小菜单方式向上切换标签(窗口)
Ctrl+Shift+Enter　域名自动完成http://www.XXX.com.cn(内容可更改,Maxthon选项→地址栏→常规) 
Alt+1　保存当前表单
Alt+2　保存为通用表单
Alt+A　展开收藏夹列表 
资源管理器 
END显示当前窗口的底端
HOME显示当前窗口的顶端
NUMLOCK+数字键盘的减号(-)折叠所选的文件夹
NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容
NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹
向左键当前所选项处于展开状态时折叠该项，或选定其父文件夹
向右键当前所选项处于折叠状态时展开该项，或选定第一个子文件夹 
自然键盘 
【窗口】显示或隐藏“开始”菜单
【窗口】+F1帮助
【窗口】+D显示桌面
【窗口】+R打开“运行”
【窗口】+E打开“我的电脑”
【窗口】+F搜索文件或文件夹
【窗口】+U打开“工具管理器”
【窗口】+BREAK显示“系统属性”
【窗口】+TAB在打开的项目之间切换 
辅助功能 
按右边的SHIFT键八秒钟切换筛选键的开和关
按SHIFT五次切换粘滞键的开和关
按NUMLOCK五秒钟切换切换键的开和关
左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关
左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关 
运行 
按“开始”－“运行”，或按WIN键+R，在『运行』窗口中输入：
（按英文字符顺序排列）
%temp%&#8212;&#8212;&#8212;打开临时文件夹
.&#8212;&#8212;&#8212;&#8212;&#8211;C:\DocumentsandSettings\用户名所在文件夹
..&#8212;&#8212;&#8212;&#8212;-C:\DocumentsandSettings
&#8230;&#8212;&#8212;&#8212;&#8212;我的电脑
\&#8212;&#8212;&#8212;&#8212;&#8211;C盘
appwize.cpl&#8212;-添加、删除程序
access.cpl&#8212;&#8211;辅助功能选项
Accwiz&#8212;&#8212;&#8212;辅助功能向导
cmd&#8212;&#8212;&#8212;&#8212;CMD命令提示符
command&#8212;&#8212;&#8211;CMD命令提示符
chkdsk.exe&#8212;&#8211;Chkdsk磁盘检查
certmgr.msc&#8212;-证书管理实用程序
calc&#8212;&#8212;&#8212;&#8211;启动计算器
charmap&#8212;&#8212;&#8211;启动字符映射表
cintsetp&#8212;&#8212;-仓颉拼音输入法
cliconfg&#8212;&#8212;-SQLSERVER客户端网络实用程序
clipbrd&#8212;&#8212;&#8211;剪贴板查看器
control&#8212;&#8212;&#8211;打开控制面板
conf&#8212;&#8212;&#8212;&#8211;启动netmeeting
compmgmt.msc&#8212;计算机管理
cleanmgr&#8212;&#8212;-垃圾整理
ciadv.msc&#8212;&#8212;索引服务程序
dcomcnfg&#8212;&#8212;-打开系统组件服务
ddeshare&#8212;&#8212;-打开DDE共享设置
dxdiag&#8212;&#8212;&#8212;检查DirectX信息
drwtsn32&#8212;&#8212;-系统医生
devmgmt.msc&#8212;-设备管理器
desk.cpl&#8212;&#8212;-显示属性
dfrg.msc&#8212;&#8212;-磁盘碎片整理程序
diskmgmt.msc&#8212;磁盘管理实用程序
dvdplay&#8212;&#8212;&#8211;DVD播放器
eventvwr&#8212;&#8212;-事件查看器
eudcedit&#8212;&#8212;-造字程序
explorer&#8212;&#8212;-打开资源管理器
fsmgmt.msc&#8212;&#8211;共享文件夹管理器
firewall.cpl&#8212;WINDOWS防火墙
gpedit.msc&#8212;&#8211;组策略
hdwwiz.cpl&#8212;&#8211;添加硬件
iexpress&#8212;&#8212;-木马捆绑工具，系统自带
inetcpl.cpl&#8212;-INTETNET选项
intl.cpl&#8212;&#8212;-区域和语言选项（输入法选项）
irprops.cpl&#8212;-无线链接
joy.cpl&#8212;&#8212;&#8211;游戏控制器
lusrmgr.msc&#8212;-本机用户和组
logoff&#8212;&#8212;&#8212;注销命令
main.cpl&#8212;&#8212;-鼠标
mem.exe&#8212;&#8212;&#8211;显示内存使用情况
migwiz&#8212;&#8212;&#8212;文件转移向导
mlcfg32.cpl&#8212;-邮件
mplayer2&#8212;&#8212;-简易widnowsmediaplayer
mspaint&#8212;&#8212;&#8211;画图板
msconfig.exe&#8212;系统配置实用程序
mstsc&#8212;&#8212;&#8212;-远程桌面连接
magnify&#8212;&#8212;&#8211;放大镜实用程序
mmc&#8212;&#8212;&#8212;&#8212;打开控制台
mmsys.cpl&#8212;&#8212;声音和音频设备
mobsync&#8212;&#8212;&#8211;同步命令
ncpa.cpl&#8212;&#8212;-网络连接
nslookup&#8212;&#8212;-IP地址侦测器
netstartX&#8212;-开始X服务
netstopX&#8212;&#8211;停止X服务
netstat-an&#8212;-命令检查接口
netsetup.cpl&#8212;无线网络安装向导
notepad&#8212;&#8212;&#8211;打开记事本
nslookup&#8212;&#8212;-IP地址侦探器
narrator&#8212;&#8212;-屏幕“讲述人”
ntbackup&#8212;&#8212;-系统备份和还原
ntmsmgr.msc&#8212;-移动存储管理器
ntmsoprq.msc&#8212;移动存储管理员操作请求
nusrmgr.cpl&#8212;-用户账户
nwc.cpl&#8212;&#8212;&#8211;NetWare客户服务
osk&#8212;&#8212;&#8212;&#8212;打开屏幕键盘
odbcad32&#8212;&#8212;-ODBC数据源管理器
odbccp32.cpl&#8212;ODBC数据源管理器
oobe/msoobe/a-检查XP是否激活
packager&#8212;&#8212;-对象包装程序
perfmon.msc&#8212;-计算机性能监测程序
powercfg.cpl&#8212;电源选项
progman&#8212;&#8212;&#8211;程序管理器
regedit&#8212;&#8212;&#8211;注册表
rsop.msc&#8212;&#8212;-组策略结果集
regedt32&#8212;&#8212;-注册表编辑器
regsvr32/?&#8212;-调用、卸载DLL文件运行（详细请在cmd中输入regsvr32/?）
sapi.cpl&#8212;&#8212;-语音
services.msc&#8212;本地服务设置
syncapp&#8212;&#8212;&#8211;创建一个公文包
sysedit&#8212;&#8212;&#8211;系统配置编辑器
sigverif&#8212;&#8212;-文件签名验证程序
sndrec32&#8212;&#8212;-录音机
sndvol32&#8212;&#8212;-音量控制程序
shrpubw&#8212;&#8212;&#8211;共享文件夹设置工具
secpol.msc&#8212;&#8211;本地安全策略
sysdm.cpl&#8212;&#8212;系统
syskey&#8212;&#8212;&#8212;系统加密（一旦加密就不能解开，保护windowsxp系统的双重密码）
services.msc&#8212;本地服务设置
sfc.exe&#8212;&#8212;&#8211;系统文件检查器
sfc/scannow&#8212;windows文件保护
shutdown&#8212;&#8212;-关机命令（详细请在cmd中输入shutdown/?）
taskmgr&#8212;&#8212;&#8211;任务管理器
telephon.cpl&#8212;电话和调制解调器选项
telnet&#8212;&#8212;&#8212;远程连接程序
timedate.cpl&#8212;日期和时间
tourstart&#8212;&#8212;xp简介（安装完成后出现的漫游xp程序）
tsshutdn&#8212;&#8212;-60秒倒计时关机命令
utilman&#8212;&#8212;&#8211;辅助工具管理器
winver&#8212;&#8212;&#8212;检查Windows版本
winmsd&#8212;&#8212;&#8212;系统信息
wiaacmgr&#8212;&#8212;-扫描仪和照相机向导
winchat&#8212;&#8212;&#8211;XP自带局域网聊天
wmimgmt.msc&#8212;-打开windows管理体系结构(WMI)
wordpad&#8212;&#8212;&#8211;写字板
wuaucpl.cpl&#8212;-自动更新
wupdmgr&#8212;&#8212;&#8211;windows更新程序
write&#8212;&#8212;&#8212;-写字板
wscript&#8212;&#8212;&#8211;windows脚本宿主设置
wscui.cpl&#8212;&#8212;安全中心
C:/windows/fonts字体
hcp://services/centers/homepage帮助和支持 

]]></description>
			<content:encoded><![CDATA[<p>F1帮助<br />
F2改名<br />
F3搜索<br />
F4地址<br />
F5刷新<br />
F6切换<br />
F10菜单<br />
CTRL+A全选<br />
CTRL+C复制<br />
CTRL+X剪切<br />
CTRL+V粘贴<br />
CTRL+Z撤消<br />
CTRL+O打开<br />
SHIFT+DELETE永久删除<br />
DELETE删除<br />
ALT+ENTER属性<br />
ALT+F4关闭<br />
CTRL+F4关闭<br />
ALT+TAB切换<br />
ALT+ESC切换<br />
ALT+空格键窗口菜单<br />
CTRL+ESC开始菜单<br />
拖动某一项时按CTRL复制所选项目<br />
拖动某一项时按CTRL+SHIFT创建快捷方式<br />
将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放 </p>
<p>Ctrl+1,2,3&#8230;　切换到从左边数起第1,2,3&#8230;个标签<br />
Ctrl+A　全部选中当前页面内容<br />
Ctrl+C　复制当前选中内容<br />
Ctrl+D　打开“添加收藏”面版(把当前页面添加到收藏夹中)<br />
Ctrl+E　打开或关闭“搜索”侧边栏(各种搜索引擎可选)<br />
Ctrl+F　打开“查找”面版<br />
Ctrl+G　打开或关闭“简易收集”面板<br />
Ctrl+H　打开“历史”侧边栏<br />
Ctrl+I　打开“收藏夹”侧边栏/另:将所有垂直平铺或水平平铺或层叠的窗口恢复<br />
Ctrl+K　关闭除当前和锁定标签外的所有标签<br />
Ctrl+L　打开“打开”面版(可以在当前页面打开Iternet地址或其他文件&#8230;)<br />
Ctrl+N　新建一个空白窗口(可更改,Maxthon选项→标签→新建)<br />
Ctrl+O　打开“打开”面版(可以在当前页面打开Iternet地址或其他文件&#8230;)<br />
Ctrl+P　打开“打印”面板(可以打印网页,图片什么的&#8230;)<br />
Ctrl+Q　打开“添加到过滤列表”面板(将当前页面地址发送到过滤列表)<br />
Ctrl+R　刷新当前页面<br />
Ctrl+S　打开“保存网页”面板(可以将当前页面所有内容保存下来)<br />
Ctrl+T　垂直平铺所有窗口<br />
Ctrl+V　粘贴当前剪贴板内的内容<br />
Ctrl+W　关闭当前标签(窗口)<br />
Ctrl+X　剪切当前选中内容(一般只用于文本操作)<br />
Ctrl+Y　重做刚才动作(一般只用于文本操作)<br />
Ctrl+Z　撤消刚才动作(一般只用于文本操作)<br />
Ctrl+F4　关闭当前标签(窗口)<br />
Ctrl+F5　刷新当前页面<br />
Ctrl+F6　按页面打开的先后时间顺序向前切换标签(窗口)<br />
Ctrl+F11　隐藏或显示菜单栏<br />
Ctrl+Tab　以小菜单方式向下切换标签(窗口)<br />
Ctrl+Enter　域名自动完成http://www.XXX.com(内容可更改,Maxthon选项→地址栏→常规)/另:当输入焦点在搜索栏中时,为高亮关键字<br />
Ctrl+拖曳　保存该链接的地址或已选中的文本或指定的图片到一个文件夹中(保存目录可更改,Maxthon选项→保存)<br />
Ctrl+小键盘&#8217;+'　当前页面放大20%<br />
Ctrl+小键盘&#8217;-'　当前页面缩小20%<br />
Ctrl+小键盘&#8217;*'　恢复当前页面的缩放为原始大小<br />
Ctrl+Alt+S　自动保存当前页面所有内容到指定文件夹(保存路径可更改,Maxthon选项→保存)<br />
Ctrl+Shift+小键盘&#8217;+'　所有页面放大20%<br />
Ctrl+Shift+小键盘&#8217;-'　所有页面缩小20%<br />
Ctrl+Shift+F　输入焦点移到搜索栏<br />
Ctrl+Shift+G　关闭“简易收集”面板<br />
Ctrl+Shift+H　打开并激活到你设置的主页<br />
Ctrl+Shift+N　在新窗口中打开剪贴板中的地址,如果剪贴板中为文字,则调用搜索引擎搜索该文字(搜索引擎可选择,Maxthon选项→搜索)<br />
Ctrl+Shift+S　打开“保存网页”面板(可以将当前页面所有内容保存下来,等同于Ctrl+S)　<br />
Ctrl+Shift+W　关闭除锁定标签外的全部标签(窗口)<br />
Ctrl+Shift+F6　按页面打开的先后时间顺序向后切换标签(窗口)<br />
Ctrl+Shift+Tab　以小菜单方式向上切换标签(窗口)<br />
Ctrl+Shift+Enter　域名自动完成http://www.XXX.com.cn(内容可更改,Maxthon选项→地址栏→常规) </p>
<p>Alt+1　保存当前表单<br />
Alt+2　保存为通用表单<br />
Alt+A　展开收藏夹列表 </p>
<p>资源管理器 </p>
<p>END显示当前窗口的底端<br />
HOME显示当前窗口的顶端<br />
NUMLOCK+数字键盘的减号(-)折叠所选的文件夹<br />
NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容<br />
NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹<br />
向左键当前所选项处于展开状态时折叠该项，或选定其父文件夹<br />
向右键当前所选项处于折叠状态时展开该项，或选定第一个子文件夹 </p>
<p>自然键盘 </p>
<p>【窗口】显示或隐藏“开始”菜单<br />
【窗口】+F1帮助<br />
【窗口】+D显示桌面<br />
【窗口】+R打开“运行”<br />
【窗口】+E打开“我的电脑”<br />
【窗口】+F搜索文件或文件夹<br />
【窗口】+U打开“工具管理器”<br />
【窗口】+BREAK显示“系统属性”<br />
【窗口】+TAB在打开的项目之间切换 </p>
<p>辅助功能 </p>
<p>按右边的SHIFT键八秒钟切换筛选键的开和关<br />
按SHIFT五次切换粘滞键的开和关<br />
按NUMLOCK五秒钟切换切换键的开和关<br />
左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关<br />
左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关 </p>
<p>运行 </p>
<p>按“开始”－“运行”，或按WIN键+R，在『运行』窗口中输入：<br />
（按英文字符顺序排列）<br />
%temp%&#8212;&#8212;&#8212;打开临时文件夹<br />
.&#8212;&#8212;&#8212;&#8212;&#8211;C:\DocumentsandSettings\用户名所在文件夹<br />
..&#8212;&#8212;&#8212;&#8212;-C:\DocumentsandSettings<br />
&#8230;&#8212;&#8212;&#8212;&#8212;我的电脑<br />
\&#8212;&#8212;&#8212;&#8212;&#8211;C盘<br />
appwize.cpl&#8212;-添加、删除程序<br />
access.cpl&#8212;&#8211;辅助功能选项<br />
Accwiz&#8212;&#8212;&#8212;辅助功能向导<br />
cmd&#8212;&#8212;&#8212;&#8212;CMD命令提示符<br />
command&#8212;&#8212;&#8211;CMD命令提示符<br />
chkdsk.exe&#8212;&#8211;Chkdsk磁盘检查<br />
certmgr.msc&#8212;-证书管理实用程序<br />
calc&#8212;&#8212;&#8212;&#8211;启动计算器<br />
charmap&#8212;&#8212;&#8211;启动字符映射表<br />
cintsetp&#8212;&#8212;-仓颉拼音输入法<br />
cliconfg&#8212;&#8212;-SQLSERVER客户端网络实用程序<br />
clipbrd&#8212;&#8212;&#8211;剪贴板查看器<br />
control&#8212;&#8212;&#8211;打开控制面板<br />
conf&#8212;&#8212;&#8212;&#8211;启动netmeeting<br />
compmgmt.msc&#8212;计算机管理<br />
cleanmgr&#8212;&#8212;-垃圾整理<br />
ciadv.msc&#8212;&#8212;索引服务程序<br />
dcomcnfg&#8212;&#8212;-打开系统组件服务<br />
ddeshare&#8212;&#8212;-打开DDE共享设置<br />
dxdiag&#8212;&#8212;&#8212;检查DirectX信息<br />
drwtsn32&#8212;&#8212;-系统医生<br />
devmgmt.msc&#8212;-设备管理器<br />
desk.cpl&#8212;&#8212;-显示属性<br />
dfrg.msc&#8212;&#8212;-磁盘碎片整理程序<br />
diskmgmt.msc&#8212;磁盘管理实用程序<br />
dvdplay&#8212;&#8212;&#8211;DVD播放器<br />
eventvwr&#8212;&#8212;-事件查看器<br />
eudcedit&#8212;&#8212;-造字程序<br />
explorer&#8212;&#8212;-打开资源管理器<br />
fsmgmt.msc&#8212;&#8211;共享文件夹管理器<br />
firewall.cpl&#8212;WINDOWS防火墙<br />
gpedit.msc&#8212;&#8211;组策略<br />
hdwwiz.cpl&#8212;&#8211;添加硬件<br />
iexpress&#8212;&#8212;-木马捆绑工具，系统自带<br />
inetcpl.cpl&#8212;-INTETNET选项<br />
intl.cpl&#8212;&#8212;-区域和语言选项（输入法选项）<br />
irprops.cpl&#8212;-无线链接<br />
joy.cpl&#8212;&#8212;&#8211;游戏控制器<br />
lusrmgr.msc&#8212;-本机用户和组<br />
logoff&#8212;&#8212;&#8212;注销命令<br />
main.cpl&#8212;&#8212;-鼠标<br />
mem.exe&#8212;&#8212;&#8211;显示内存使用情况<br />
migwiz&#8212;&#8212;&#8212;文件转移向导<br />
mlcfg32.cpl&#8212;-邮件<br />
mplayer2&#8212;&#8212;-简易widnowsmediaplayer<br />
mspaint&#8212;&#8212;&#8211;画图板<br />
msconfig.exe&#8212;系统配置实用程序<br />
mstsc&#8212;&#8212;&#8212;-远程桌面连接<br />
magnify&#8212;&#8212;&#8211;放大镜实用程序<br />
mmc&#8212;&#8212;&#8212;&#8212;打开控制台<br />
mmsys.cpl&#8212;&#8212;声音和音频设备<br />
mobsync&#8212;&#8212;&#8211;同步命令<br />
ncpa.cpl&#8212;&#8212;-网络连接<br />
nslookup&#8212;&#8212;-IP地址侦测器<br />
netstartX&#8212;-开始X服务<br />
netstopX&#8212;&#8211;停止X服务<br />
netstat-an&#8212;-命令检查接口<br />
netsetup.cpl&#8212;无线网络安装向导<br />
notepad&#8212;&#8212;&#8211;打开记事本<br />
nslookup&#8212;&#8212;-IP地址侦探器<br />
narrator&#8212;&#8212;-屏幕“讲述人”<br />
ntbackup&#8212;&#8212;-系统备份和还原<br />
ntmsmgr.msc&#8212;-移动存储管理器<br />
ntmsoprq.msc&#8212;移动存储管理员操作请求<br />
nusrmgr.cpl&#8212;-用户账户<br />
nwc.cpl&#8212;&#8212;&#8211;NetWare客户服务<br />
osk&#8212;&#8212;&#8212;&#8212;打开屏幕键盘<br />
odbcad32&#8212;&#8212;-ODBC数据源管理器<br />
odbccp32.cpl&#8212;ODBC数据源管理器<br />
oobe/msoobe/a-检查XP是否激活<br />
packager&#8212;&#8212;-对象包装程序<br />
perfmon.msc&#8212;-计算机性能监测程序<br />
powercfg.cpl&#8212;电源选项<br />
progman&#8212;&#8212;&#8211;程序管理器<br />
regedit&#8212;&#8212;&#8211;注册表<br />
rsop.msc&#8212;&#8212;-组策略结果集<br />
regedt32&#8212;&#8212;-注册表编辑器<br />
regsvr32/?&#8212;-调用、卸载DLL文件运行（详细请在cmd中输入regsvr32/?）<br />
sapi.cpl&#8212;&#8212;-语音<br />
services.msc&#8212;本地服务设置<br />
syncapp&#8212;&#8212;&#8211;创建一个公文包<br />
sysedit&#8212;&#8212;&#8211;系统配置编辑器<br />
sigverif&#8212;&#8212;-文件签名验证程序<br />
sndrec32&#8212;&#8212;-录音机<br />
sndvol32&#8212;&#8212;-音量控制程序<br />
shrpubw&#8212;&#8212;&#8211;共享文件夹设置工具<br />
secpol.msc&#8212;&#8211;本地安全策略<br />
sysdm.cpl&#8212;&#8212;系统<br />
syskey&#8212;&#8212;&#8212;系统加密（一旦加密就不能解开，保护windowsxp系统的双重密码）<br />
services.msc&#8212;本地服务设置<br />
sfc.exe&#8212;&#8212;&#8211;系统文件检查器<br />
sfc/scannow&#8212;windows文件保护<br />
shutdown&#8212;&#8212;-关机命令（详细请在cmd中输入shutdown/?）<br />
taskmgr&#8212;&#8212;&#8211;任务管理器<br />
telephon.cpl&#8212;电话和调制解调器选项<br />
telnet&#8212;&#8212;&#8212;远程连接程序<br />
timedate.cpl&#8212;日期和时间<br />
tourstart&#8212;&#8212;xp简介（安装完成后出现的漫游xp程序）<br />
tsshutdn&#8212;&#8212;-60秒倒计时关机命令<br />
utilman&#8212;&#8212;&#8211;辅助工具管理器<br />
winver&#8212;&#8212;&#8212;检查Windows版本<br />
winmsd&#8212;&#8212;&#8212;系统信息<br />
wiaacmgr&#8212;&#8212;-扫描仪和照相机向导<br />
winchat&#8212;&#8212;&#8211;XP自带局域网聊天<br />
wmimgmt.msc&#8212;-打开windows管理体系结构(WMI)<br />
wordpad&#8212;&#8212;&#8211;写字板<br />
wuaucpl.cpl&#8212;-自动更新<br />
wupdmgr&#8212;&#8212;&#8211;windows更新程序<br />
write&#8212;&#8212;&#8212;-写字板<br />
w<A><A><A>script&#8212;&#8212;&#8211;windows脚本宿主设置<br />
wscui.cpl&#8212;&#8212;安全中心<br />
C:/windows/fonts字体<br />
hcp://services/centers/homepage帮助和支持 </p>
<p></A></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/jianpan-meigejian-zuoyong/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>奥巴马胜选演说·文言版</title>
		<link>http://kuigg.com/obama-wenyanwen</link>
		<comments>http://kuigg.com/obama-wenyanwen#comments</comments>
		<pubDate>Fri, 16 Jan 2009 14:32:10 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[政治]]></category>
		<category><![CDATA[网海拾贝]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=103</guid>
		<description><![CDATA[Hello，Chicago!
芝城父老，别来无恙， 
If there is anyone out there who still doubts that America is a place where all things are possible, who still wonders if the dream of our founders is alive in our time, who still questions the power of our democracy, tonight is your answer.
余尝闻世人有疑，不知当今美利坚凡事皆可成就耶？开国先贤之志方岿然于世耶？民主之伟力不减于昔年耶？凡存诸疑者，今夕当可释然。 
It’s the answer told by lines that stretched around [...]]]></description>
			<content:encoded><![CDATA[<p>Hello，Chicago!<br />
芝城父老，别来无恙， </p>
<p>If there is anyone out there who still doubts that America is a place where all things are possible, who still wonders if the dream of our founders is alive in our time, who still questions the power of our democracy, tonight is your answer.<br />
余尝闻世人有疑，不知当今美利坚凡事皆可成就耶？开国先贤之志方岿然于世耶？民主之伟力不减于昔年耶？凡存诸疑者，今夕当可释然。 </p>
<p>It’s the answer told by lines that stretched around schools and churches in numbers this nation has never seen, by people who waited three hours and four hours, many for the first time in their lives, because they believed that this time must be different, that their voices could be that difference.<br />
今夕之释然，皆蒙美利坚民众之协力——学塾祠庙之外，市井乡野之间，万千父老心焦似焚，苦待竟日，愿献一票之力。其中，平生未尝涉国事者，数亦不少，而今有此义举，皆因一念不衰——今夫天下，非同既往，愿发吁天之声，必成动地之势。 </p>
<p>It’s the answer spoken by young and old, rich and poor, Democrat and Republican, black, white, Hispanic, Asian, Native American, gay, straight, disabled and not disabled. Americans who sent a message to the world that we have never been just a collection of individuals or a collection of red states and blue states. We are, and always will be, the United States of America.<br />
今夕之释然，皆仰吾国同胞之齐心——何谈贫富老幼之差、党社宗族之异，惶论发肤肌体之别、志趣爱恶之分。吾国既以“合众”为名，吾辈则更无疏离之意，红蓝二党并肩而立，数十邦州挽手相合，无分你我，共称一家，昂然于世，齐声一呼，天下乃有此释然。<br />
It’s the answer that led those who’ve been told for so long by so many to be cynical and fearful and doubtful about what we can achieve to put their hands on the arc of history and bend it once more toward the hope of a better day.<br />
今夕之释然，皆因愤懑者之镇静，忧惧者之勇气，犹疑者之笃定——平素世间种种，消磨其志向，溃灭其梦想，而值此风云之际，除旧更新，当仁不让，倾力而动乾坤者，更何人哉！ </p>
<p>It’s been a long time coming, but tonight, because of what we did on this date in this election at this defining moment change has come to America.<br />
俟之诚久，其志弥坚。幸天地明察，乃有今日，乃有此刻，乃有此一选举，乃有我亿万美利坚大好国民——吾邦之大变革，方得自兹而始也！<br />
A little bit earlier this evening, I received an extraordinarily gracious call from Sen. McCain.<br />
Sen. McCain fought long and hard in this campaign. And he’s fought even longer and harder for the country that he loves. He has endured sacrifices for America that most of us cannot begin to imagine. We are better off for the service rendered by this brave and selfless leader. I congratulate him; I congratulate Gov. Palin for all that they’ve achieved. And I look forward to working with them to renew this nation’s promise in the months ahead.<br />
倾接参议员麦君凯恩电，虽未得晤，幸有一谈，其言谆谆，其意诚诚，鄙人感佩之至。选战期内，麦君劳碌几重，奔波几许，皆为国家计。诸般求索，时日良多，皆非余所能及。于国于民之惊人牺牲，亦非庸庸如吾辈者所可想见。以麦君之胆魄襟怀，能为吾邦所用，实国家之幸，万民之幸也。前途漫漫，其事未竟，余所盼瞩由衷者，唯共麦凯恩君、佩林君，及诸贤士比肩，会吾等之绵力，成吾邦之大业。<br />
I want to thank my partner in this journey, a man who campaigned from his heart, and spoke for the men and women he grew up with on the streets of Scranton and rode with on the train home to Delaware, the vice president-elect of the United States, Joe Biden.<br />
乔君拜登，亦吾所感铭至深者也。竞选之业，艰险不足与外人道，幸有乔君之辅佐，其诚天可鉴之。乔君其人，素言恳辞切，意笃情真，盖尝经斯兰克顿街乡邻之提命，饱聆特拉华州父老之晤教也。他日余既登总统之位，乔君必当副之。 </p>
<p>And I would not be standing here tonight without the unyielding support of my best friend for the last 16 years the rock of our family, the love of my life, the nation’s next first lady Michelle Obama.<br />
拙荆米氏，追随鄙人凡一十六年，既为爱侣，更为挚友，既为吾阖家之基石，又乃余终生之至爱。鄙人尝自忖度，倘无贤妻若此，今朝阔论高谈于此处者，不知何人矣！<br />
Sasha and Malia I love you both more than you can imagine. And you have earned the new puppy that’s coming with us to the new White House.<br />
小女萨沙、玛丽，余素深喜之。昔日为父尝与汝等言，此番选战若得一胜，愿购小犬一头相赠，待阖家乔迁总统府邸之日，偕汝等同进吾宅。今当胜负已出，既有一诺在前，必自践行不欺也。 </p>
<p>And while she’s no longer with us, I know my grandmother’s watching, along with the family that made me who I am. I miss them tonight. I know that my debt to them is beyond measure.<br />
祖母大人虽已仙逝，料必有灵在天，俯察人寰，想应颔首开颜矣。吾奥巴马氏列祖列宗，亦当如是。今日今时，此情此景，鄙人追思之心，乌鸟之情，曷其有极！唯生死陌路，仙凡有别，虽怀反哺之心，而无答报之门也！ </p>
<p>To my sister Maya, my sister Alma, all my other brothers and sisters, thank you so much for all the support that you’ve given me. I am grateful to them.<br />
至若玛雅、艾玛二姐妹，以及吾家诸同胞，所惠我者，亦属良多，久沐恩德，此当拜谢。 </p>
<p>And to my campaign manager, David Plouffe, the unsung hero of this campaign, who built the best — the best political campaign, I think, in the history of the United States of America.To my chief strategist David Axelrod who’s been a partner with me every step of the way.To the best campaign team ever assembled in the history of politics you made this happen, and I am forever grateful for what you’ve sacrificed to get it done.<br />
大卫•普劳夫君，大卫•阿克塞罗德君，一为鄙人竞选事务之经理，一为鄙人国事韬略之智囊。余尝自喟叹，左右谋士，余所仰赖者，皆亘古未见之贤才。普阿二君，则更此中之翘楚。区区不才，有何德能，可得膀臂若此？当此功成之际，感荷之心，亦自拳拳。 </p>
<p>But above all, I will never forget who this victory truly belongs to. It belongs to you. It belongs to you.<br />
至于鄙人铭之肺腑，须臾不敢忘怀者，则诸位也。盖今日鄙人之胜绩，实诸位之胜绩，鄙人之荣光，实诸位之荣光！ </p>
<p>I was never the likeliest candidate for this office. We didn’t start with much money or many endorsements. Our campaign was not hatched in the halls of Washington. It began in the backyards of Des Moines and the living rooms of Concord and the front porches of Charleston. It was built by working men and women who dug into what little savings they had to give $5 and $10 and $20 to the cause.<br />
余素朴陋，虽有参选之心，并无必胜之志。谋事之初，银资乏匮，从者寥寥；起事之地，皆蔽寓荒斋，不在高阁；成事之基，无非寻常百姓，涓滴之献。 </p>
<p>It grew strength from the young people who rejected the myth of their generation’s apathy who left their homes and their families for jobs that offered little pay and less sleep.<br />
It drew strength from the not-so-young people who braved the bitter cold and scorching heat to knock on doors of perfect strangers, and from the millions of Americans who volunteered and organized and proved that more than two centuries later a government of the people, by the people, and for the people has not perished from the Earth.<br />
今日之胜，有赖一众热血青年，抛其家，别其室，不辞其苦，不计其酬，矻矻于此——“国中青年爱国之心已泯”之谬论，今可休矣！今日之胜，有赖壮志未已之诸前辈，无惧寒暑，行走奔波，劝说民众。今日之胜，乃数百万美利坚民众之胜，察其意，皆属踊跃为国，观其行，处处谨严有序，足堪告慰二百年前开国之先贤——民有、民治、民享之政体，未尝动摇也！ </p>
<p>This is your victory.<br />
嗟夫！此实诸位之功也！ </p>
<p>And I know you didn’t do this just to win an election. And I know you didn’t do it for me.You did it because you understand the enormity of the task that lies ahead. For even as we celebrate tonight, we know the challenges that tomorrow will bring are the greatest of our lifetime — two wars, a planet in peril, the worst financial crisis in a century.<br />
余知诸君之意非在此一选举，亦非在鄙人一身。盖瞻前路之艰辛，益知此任非同小可也。虽今夕欢贺于此，而明朝酒醒，大患仍自当前，不容有怠——两地烽烟熊熊而起，四海之内纷纷而乱，金融业界惶惶而不得宁。 </p>
<p>Even as we stand here tonight, we know there are brave Americans waking up in the deserts of Iraq and the mountains of Afghanistan to risk their lives for us.There are mothers and fathers who will lie awake after the children fall asleep and wonder how they’ll make the mortgage or pay their doctors’ bills or save enough for their child’s college education. There’s new energy to harness, new jobs to be created, new schools to build, and threats to meet, alliances to repair.<br />
是夜，饮宴笙歌之声不绝于耳，而异邦大漠群山中，吾国大好青年，兀自苦戍边塞，惝恍竟夜，性命尚未得安。吾国千万庶民，为人父母者，兀自惴惴难眠，所忧者，乃房宅所贷、病患之费、抚育之资也。至若吾国能源之耗，百业之兴，痒序之教，攻伐之术，怀远之道，亦皆吾等忡忡挂怀者也。 </p>
<p>The road ahead will be long. Our climb will be steep. We may not get there in one year or even in one term. But, America, I have never been more hopeful than I am tonight that we will get there. I promise you, we as a people will get there.<br />
渺渺乎其远，如不可达，危危乎其高，若不可攀。朝夕岁月，焉得成就？余不揣愚钝，愿以四载韶华，付诸此业，胜算何如虽不可知，然昂扬必胜之奇志，成就伟业之壮怀，平生未之有也。君子一诺，其重何如，此地今夕，愿斗胆发一狂言——吾辈既在，其事必成！ </p>
<p>There will be setbacks and false starts. There are many who won’t agree with every decision or policy I make as president. And we know the government can’t solve every problem. But I will always be honest with you about the challenges we face. I will listen to you, especially when we disagree. And, above all, I will ask you to join in the work of remaking this nation, the only way it’s been done in America for 221 years — block by block, brick by brick, calloused hand by calloused hand.<br />
逶迤坎坷，份内之事。异见争端，料必有之。国中之政府，谅非无所不能者。余所秉承不移者，唯忠信矣。倘有危难于前，必无欺瞒于世。诸君言论臧否，纵悖逆相左之议，余必当洗耳以聆。于此之外，更当恳请诸君，不吝心血，致力报效，以振吾美利坚重兴之业。余亦别无他想，唯盼吾侪协力，延继吾国既肇二百二十一年之大统，汇涓滴之力，而成万世之业。 </p>
<p>What began 21 months ago in the depths of winter cannot end on this autumn night. This victory alone is not the change we seek. It is only the chance for us to make that change. And that cannot happen if we go back to the way things were. It can’t happen without you, without a new spirit of service, a new spirit of sacrifice.<br />
昔年冬日，余有志于斯，投身此业，屈指算来，倏然近二载矣。当此秋夜，追思反省，仍无溃退逃亡之意。选战之胜，无非一役之功，余梦寐所思矢志所求者，非在乎此。溯源究本，此役之胜，不过革世变时一大好良机耳。倘止步于斯，垂手而待，或无诸君倾力相援，则壮志丰功，无非泡影，诸般梦想，终必虚妄。 </p>
<p>So let us summon a new spirit of patriotism, of responsibility, where each of us resolves to pitch in and work harder and look after not only ourselves but each other. Let us remember that, if this financial crisis taught us anything, it’s that we cannot have a thriving Wall Street while Main Street suffers. In this country, we rise or fall as one nation, as one people.<br />
爱国之心，报国之念，吾人固有之，然逢今日之世，此心此念亦当一变——吾辈各执己业，益当各竭其力，各尽其命，非但为一己之利，而更期普世之荣。今岁，金融业界动荡多舛，细审观之，当可以之为鉴——实业之损，亦是金融之伤。可知，既在邦域之内，吾辈荣辱休戚，皆相与共矣！ </p>
<p>Let’s resist the temptation to fall back on the same partisanship and pettiness and immaturity that has poisoned our politics for so long. Let’s remember that it was a man from this state who first carried the banner of the Republican Party to the White House, a party founded on the values of self-reliance and individual liberty and national unity.Those are values that we all share.<br />
党争纷纭，阴谋卑鄙，愚鲁无知，皆腐蚀清白、惑乱政局之弊也，其缘由已久，余今愿与诸君协力，共灭除之。昔年曾有此郡先贤，执共和党之帜，而掌总统府之权。自强独立，自由统一等信念，皆斯人之所倡，亦吾辈之所宗。 </p>
<p>And while the Democratic Party has won a great victory tonight, we do so with a measure of humility and determination to heal the divides that have held back our progress. As Lincoln said to a nation far more divided than ours, we are not enemies but friends. Though passion may have strained, it must not break our bonds of affection.<br />
今岁选战，吾民主党人幸有一胜，然谦逊和合之心未尝少减。余素信服者，乃山河破碎之际，林肯总统之言——“既是至亲，终不为敌。虽弩张剑拔，而血脉未尝断，情义不少减。” </p>
<p>And to those Americans whose support I have yet to earn, I may not have won your vote tonight, but I hear your voices. I need your help. And I will be your president, too.<br />
固然，仍有四方志士，不为鄙人所动，另有高明之选。虽终悭此一票之缘，然诸君高论，余亦声声在耳，字字在心。倘能得诸君之援手，鄙人幸甚。他日待余总而统之，亦必不另眼以待也。 </p>
<p>And to all those watching tonight from beyond our shores, from parliaments and palaces, to those who are huddled around radios in the forgotten corners of the world, our stories are singular, but our destiny is shared, and a new dawn of American leadership is at hand.<br />
吾邦民众，散居天下，各安其命，而其志一也。吾邦鼎盛之势，今已乍现锋芒。 </p>
<p>To those — to those who would tear the world down: We will defeat you. To those who seek peace and security: We support you. And to all those who have wondered if America’s beacon still burns as bright: Tonight we proved once more that the true strength of our nation comes not from the might of our arms or the scale of our wealth, but from the enduring power of our ideals: democracy, liberty, opportunity and unyielding hope.<br />
至于心怀叵测，与世人为仇、与天下为敌者，吾邦猛志常在，彼等必取灭亡。心思纯良，久慕大同者，吾辈当倾力以助，鼎力相援。犹疑未定，不知吾自由之邦兴衰如何者，吾辈愿以今日盛况以告之——美利坚之所以谓之“美”者，非刀兵之强，金银之众，实民主、自由、机遇、梦想之美也！ </p>
<p>That’s the true genius of America: that America can change. Our union can be perfected. What we’ve already achieved gives us hope for what we can and must achieve tomorrow.<br />
天自有道，地自有德，恩赋吾邦无上异禀——无他，唯变而已矣。美利坚变革不怠，合众国日趋尽善。当以过往先贤之伟绩，助吾侪今日之雄心，开子孙万世之辉光。 </p>
<p>This election had many firsts and many stories that will be told for generations. But one that’s on my mind tonight’s about a woman who cast her ballot in Atlanta. She’s a lot like the millions of others who stood in line to make their voice heard in this election except for one thing: Ann Nixon Cooper is 106 years old.<br />
今岁选战，多开亘古之先，屡传千秋佳话。感我至深者，亚特兰大之老妪安•尼克松•库帕也——库氏之一票，于数百万美利坚民众之选票无异，其所以引人称奇者，其人今岁高龄一百有六矣。 </p>
<p>She was born just a generation past slavery; a time when there were no cars on the road or planes in the sky; when someone like her couldn’t vote for two reasons — because she was a woman and because of the color of her skin.<br />
当其父辈之时，天道不彰，黑人为奴。库氏其生也不逢时，汽车尚不行于道，飞机未曾起于空，库氏既属黑人，又系女流，票选一事，概无瓜葛。 </p>
<p>And tonight, I think about all that she’s seen throughout her century in America — the heartache and the hope; the struggle and the progress; the times we were told that we can’t, and the people who pressed on with that American creed: Yes we can.<br />
今日今时，回溯库氏百岁之涯，但见吾邦先贤屡败屡战，且退且进，悲欣交集，甘苦杂陈。幸而正道存焉，壮志存焉，曰：吾辈既在，无所不能。 </p>
<p>At a time when women’s voices were silenced and their hopes dismissed, she lived to see them stand up and speak out and reach for the ballot. Yes we can.<br />
万马齐喑，其事堪哀，吾邦女界怒而起，愤而争，苦战不歇，历数十载。幸哉库氏，以百岁之高龄，终得亲见女流自立于世，重获天赋之权——吾辈既在，无所不能！ </p>
<p>When there was despair in the dust bowl and depression across the land, she saw a nation conquer fear itself with a New Deal, new jobs, a new sense of common purpose. Yes we can.<br />
当百业萧条，国人绝望哀鸣之际，库氏亲见吾美利坚出旷世之新政，挽狂澜于既倒，扶大厦之将倾，退畏惧之势，扶奋勇之心，终至人各有位，民心乃安——吾辈既在，无所不能！ </p>
<p>When the bombs fell on our harbor and tyranny threatened the world, she was there to witness a generation rise to greatness and a democracy was saved. Yes we can.<br />
当吾国良港遭袭，天下桀纣当道，暴政肆虐之时，库氏亲见豪杰群起，民主不衰——吾辈既在，无所不能！ </p>
<p>She was there for the buses in Montgomery, the hoses in Birmingham, a bridge in Selma, and a preacher from Atlanta who told a people that “We Shall Overcome.” Yes we can.<br />
蒙哥马利公车之罢辍，伯明翰城黑人之群起，塞尔玛城血雨腥风之事，库氏般般亲历。更曾亲聆亚特兰大传教之士振臂登高之呼——“吾等必胜！”诚哉斯言！吾辈既在，无所不能！ </p>
<p>A man touched down on the moon, a wall came down in Berlin, a world was connected by our own science and imagination. And this year, in this election, she touched her finger to a screen, and cast her vote, because after 106 years in America, through the best of times and the darkest of hours, she knows how America can change. Yes we can.<br />
俟科学昌明于世，创想通贯一时，既登广寒之阙，又溃柏林之墙。洋洋乎！有百年如是，乃见今岁选战中，库氏之一票。浩浩兮！一百零六载交锋更迭，方有美利坚今日之变革——吾辈既在，无所不能！ </p>
<p>America, we have come so far. We have seen so much. But there is so much more to do. So tonight, let us ask ourselves — if our children should live to see the next century; if my daughters should be so lucky to live as long as Ann Nixon Cooper, what change will they see? What progress will we have made?<br />
转眼兴亡过手，而今迈步从头。追昔抚今，不禁扪心而问——俟再历百年岁月，倘吾等后辈儿孙，亦有得享高寿如库氏者，复可见何等之变数？吾辈今日之功，他年可得而见之乎？ </p>
<p>This is our chance to answer that call. This is our moment. This is our time, to put our people back to work and open doors of opportunity for our kids; to restore prosperity and promote the cause of peace; to reclaim the American dream and reaffirm that fundamental truth, that, out of many, we are one; that while we breathe, we hope. And where we are met with cynicism and doubts and those who tell us that we can’t, we will respond with that timeless creed that sums up the spirit of a people: Yes, we can.<br />
所谓天命时运，莫过于此——当为吾邦万民造安身立命之业，为吾辈儿孙启各显雄才之门，为寰宇各国创太平静好之世，为吾等壮志赋千秋不灭之元神。吾邦立国之本，必将光耀于天下。万千同胞，当如一人，一息尚存，梦想不灭。纵有世人旁观在侧，而疑窦生焉，吾辈亦当以千秋不易之训共答之曰——吾辈既在，无所不能！ </p>
<p>Thank you. God bless you. And may God bless the United States of America.<br />
拜谢诸君。愿天佑吾民，天佑吾邦。</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/obama-wenyanwen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>货币和广告牌</title>
		<link>http://kuigg.com/huobi-guanggaopai</link>
		<comments>http://kuigg.com/huobi-guanggaopai#comments</comments>
		<pubDate>Fri, 16 Jan 2009 08:58:34 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=102</guid>
		<description><![CDATA[


]]></description>
			<content:encoded><![CDATA[<p><a href="http://kuigg.com/attachments/2009/01/1_200901161657393.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/01/1_200901161657393.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/01/1_200901161657391.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/01/1_200901161657391.jpg" /></a></p>
<p><a href="http://kuigg.com/attachments/2009/01/1_200901161657392.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/01/1_200901161657392.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/huobi-guanggaopai/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>帮人翻译的情诗</title>
		<link>http://kuigg.com/fanyi-qingshi</link>
		<comments>http://kuigg.com/fanyi-qingshi#comments</comments>
		<pubDate>Mon, 12 Jan 2009 11:23:10 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[小凡原创]]></category>
		<category><![CDATA[小凡随笔]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=101</guid>
		<description><![CDATA[昨天在兵马俑上有人用英文发文述说相思之苦。。
闲的无聊 帮他翻译了一下&#160; 呵呵
&#160;
原文：
Come to Xi&#8217;an and choose XJTU far from Jiangsu 2 years ago,
which was all aim to forget a person.
Never call her this 2 years.
Never meet her any time.
Never mention her in any situations.
Force myself not to think of her,
not to recall the old happy times.
I once believed that time and distance can change [...]]]></description>
			<content:encoded><![CDATA[<p>昨天在兵马俑上有人用英文发文述说相思之苦。。</p>
<p>闲的无聊 帮他翻译了一下&nbsp; 呵呵</p>
<p>&nbsp;</p>
<p>原文：</p>
<p>Come to Xi&#8217;an and choose XJTU far from Jiangsu 2 years ago,<br />
which was all aim to forget a person.<br />
Never call her this 2 years.<br />
Never meet her any time.<br />
Never mention her in any situations.<br />
Force myself not to think of her,<br />
not to recall the old happy times.<br />
I once believed that time and distance can change anything.<br />
But,<br />
why do I miss her even more?<br />
The only thing I can do is walking in the darkness,<br />
and,<br />
sigh&#8230;&#8230; </p>
<p>&nbsp;</p>
<p>我翻译的：</p>
<p>我本江淮男儿郎<br />
千里辞家赴西北<br />
只为将那娇娥忘 </p>
<p>两度春秋不见君<br />
奈何其身驻我心<br />
日里夜里把她念 </p>
<p>曾信时光催人忘<br />
争奈夜来更思君<br />
唯有暗里声声叹 </p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/fanyi-qingshi/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>所谓新年</title>
		<link>http://kuigg.com/xinnian-2009</link>
		<comments>http://kuigg.com/xinnian-2009#comments</comments>
		<pubDate>Fri, 09 Jan 2009 08:30:26 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[图片相册]]></category>
		<category><![CDATA[小凡相册]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=100</guid>
		<description><![CDATA[&#160;
感谢吴春同学送的小狗

&#160;
过完春节再找一只睁眼睛的牛儿。。

]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>感谢吴春同学送的小狗</p>
<p><a href="http://kuigg.com/attachments/2009/01/1_200901091629161.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/01/1_200901091629161.jpg" /></a></p>
<p>&nbsp;</p>
<p>过完春节再找一只睁眼睛的牛儿。。</p>
<p><a href="http://kuigg.com/attachments/2009/01/1_200901091629311.jpg" target=_blank><img class="alignnone size-medium" src="http://kuigg.com/attachments/2009/01/1_200901091629311.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/xinnian-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>两个PHP冷门函数的简要使用</title>
		<link>http://kuigg.com/levenshtein-similar_text</link>
		<comments>http://kuigg.com/levenshtein-similar_text#comments</comments>
		<pubDate>Mon, 05 Jan 2009 20:08:03 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=99</guid>
		<description><![CDATA[相信你在使用Google或者Baidu搜索的时候，肯定碰到过他们的关键词提示。
对于搜索引擎来说，他们有一整套分词技术及完整的词库。而对于一般简单的PHP应用来说，做到这种完善的分词又是很困难的。
其实php中有两个函数，可以近似的完成这样的功能。
这两个函数就是：levenshtein 和 similar_text
以下分别是这两个函数的官方解释：
http://www.php.net/manual/en/function.levenshtein.php
http://www.php.net/manual/en/function.similar-text.php
我们来简单看一下使用这两个函数的效果。
echo levenshtein(&#8220;ubuntu&#8221;,&#8221;ubuntw&#8221;);
&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;aubvntu&#8221;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;vbvntw&#8221;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;ubuntu&#8221;);
这段代码的输出是：
1
2
3
0
也就是说，对于levenshtein函数，两个字符相似度越高，其返回值越小，如果相等，则函数返回0。
再来看看similar_text函数
similar_text(&#8220;ubuntu&#8221;,&#8221;ubuntw&#8221;,$a);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo $a;
&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160;&#160; similar_text(&#8220;ubuntu&#8221;,&#8221;aubvntu&#8221;,$a);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo $a;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160;&#160; similar_text(&#8220;ubuntu&#8221;,&#8221;vbvntw&#8221;,$a);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo $a;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo &#8220;&#60;br&#62;&#8221;;
&#160;&#160;&#160;&#160; similar_text(&#8220;ubuntu&#8221;,&#8221;ubuntu&#8221;,$a);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo $a;
代码输出：
83.333333333333
76.923076923077
50
100
与levenshtein相反，similar_text则是相似度越高，其值越大，如果相等，则返回100。
了解了这两个函数的用法，我们可以通过这两个函数来达成类似最开始Google的那种效果了。当然还得有一些技术前提，
比如在某些CMS中，像DedeCMS，它本身维护了一个关键词的数据表，这样我们在每次搜索的时候，可以使用上面两个
函数对DedeCMS的关键词表进行逐一匹配，然后设定一个匹配限制，如果大于（小于）该值，则可以给出类似Google那样
的提示了。
&#160;
]]></description>
			<content:encoded><![CDATA[<p>相信你在使用Google或者Baidu搜索的时候，肯定碰到过他们的关键词提示。</p>
<p>对于搜索引擎来说，他们有一整套分词技术及完整的词库。而对于一般简单的PHP应用来说，做到这种完善的分词又是很困难的。<br />
其实php中有两个函数，可以近似的完成这样的功能。</p>
<p>这两个函数就是：levenshtein 和 similar_text<br />
以下分别是这两个函数的官方解释：<br />
<A href="http://www.php.net/manual/en/function.levenshtein.php">http://www.php.net/manual/en/function.levenshtein.php</A><br />
<A href="http://www.php.net/manual/en/function.similar-text.php">http://www.php.net/manual/en/function.similar-text.php</A></p>
<p>我们来简单看一下使用这两个函数的效果。</p>
<p>echo levenshtein(&#8220;ubuntu&#8221;,&#8221;ubuntw&#8221;);<br />
&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;aubvntu&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;vbvntw&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp; echo levenshtein(&#8220;ubuntu&#8221;,&#8221;ubuntu&#8221;);</p>
<p>这段代码的输出是：</p>
<p>1<br />
2<br />
3<br />
0</p>
<p>也就是说，对于levenshtein函数，两个字符相似度越高，其返回值越小，如果相等，则函数返回0。</p>
<p>再来看看similar_text函数</p>
<p>similar_text(&#8220;ubuntu&#8221;,&#8221;ubuntw&#8221;,$a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $a;<br />
&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp; similar_text(&#8220;ubuntu&#8221;,&#8221;aubvntu&#8221;,$a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp; similar_text(&#8220;ubuntu&#8221;,&#8221;vbvntw&#8221;,$a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &#8220;&lt;br&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp; similar_text(&#8220;ubuntu&#8221;,&#8221;ubuntu&#8221;,$a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $a;</p>
<p>代码输出：</p>
<p>83.333333333333<br />
76.923076923077<br />
50<br />
100</p>
<p>与levenshtein相反，similar_text则是相似度越高，其值越大，如果相等，则返回100。</p>
<p>了解了这两个函数的用法，我们可以通过这两个函数来达成类似最开始Google的那种效果了。当然还得有一些技术前提，<br />
比如在某些CMS中，像DedeCMS，它本身维护了一个关键词的数据表，这样我们在每次搜索的时候，可以使用上面两个<br />
函数对DedeCMS的关键词表进行逐一匹配，然后设定一个匹配限制，如果大于（小于）该值，则可以给出类似Google那样<br />
的提示了。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/levenshtein-similar_text/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站之MySQL 索引分析和优化</title>
		<link>http://kuigg.com/mysql-suoyin-fenxiyouhua</link>
		<comments>http://kuigg.com/mysql-suoyin-fenxiyouhua#comments</comments>
		<pubDate>Sun, 04 Jan 2009 01:43:03 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=98</guid>
		<description><![CDATA[&#160;　　一、什么是索引？
　　索引用来快速地寻找那些具有特定值的记录，所有MySQL索引都以B-树的形式保存。如果没有索引，执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录，直至找到符合要求的记录。表里面的记录数量越多，这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引，MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录，通过索引查找记录至少要比顺序扫描记录快100倍。
　　
　　假设我们创建了一个名为people的表：
　　
　　CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );
　　
　　然后，我们完全随机把1000个不同name值插入到people表。下图显示了people表所在数据文件的一小部分：
　　
　　可以看到，在数据文件中name列没有任何明确的次序。如果我们创建了name列的索引，MySQL将在索引中排序name列：
　　
　　对于索引中的每一项，MySQL在内部为它保存一个数据文件中实际记录所在位置的“指针”。因此，如果我们要查找name等于“Mike”记录的peopleid（SQL命令为“SELECT peopleid FROM people WHERE name=&#8217;Mike&#8217;;”），MySQL能够在name的索引中查找“Mike”值，然后直接转到数据文件中相应的行，准确地返回该行的peopleid（999）。在这个过程中，MySQL只需处理一个行就可以返回结果。如果没有“name”列的索引，MySQL要扫描数据文件中的所有记录，即1000个记录！显然，需要MySQL处理的记录数量越少，则它完成任务的速度就越快。
　　
　　二、索引的类型
　　MySQL提供多种索引类型供选择：
　　
　　普通索引
　　这是最基本的索引类型，而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建：
　　创建索引，例如CREATE INDEX &#60;索引的名字&#62; ON tablename (列的列表);
　　修改表，例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
　　创建表的时候指定索引，例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );
　　
　　唯一性索引
　　这种索引和前面的“普通索引”基本相同，但有一个区别：索引列的所有值都只能出现一次，即必须唯一。唯一性索引可以用以下几种方式创建：
　　创建索引，例如CREATE UNIQUE INDEX &#60;索引的名字&#62; ON tablename (列的列表);
　　修改表，例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);
　　创建表的时候指定索引，例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;　　一、什么是索引？<br />
　　索引用来快速地寻找那些具有特定值的记录，所有MySQL索引都以B-树的形式保存。如果没有索引，执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录，直至找到符合要求的记录。表里面的记录数量越多，这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引，MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录，通过索引查找记录至少要比顺序扫描记录快100倍。<br />
　　<br />
　　假设我们创建了一个名为people的表：<br />
　　<br />
　　CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );<br />
　　<br />
　　然后，我们完全随机把1000个不同name值插入到people表。下图显示了people表所在数据文件的一小部分：<br />
　　<br />
　　可以看到，在数据文件中name列没有任何明确的次序。如果我们创建了name列的索引，MySQL将在索引中排序name列：<br />
　　<br />
　　对于索引中的每一项，MySQL在内部为它保存一个数据文件中实际记录所在位置的“指针”。因此，如果我们要查找name等于“Mike”记录的peopleid（SQL命令为“SELECT peopleid FROM people WHERE name=&#8217;Mike&#8217;;”），MySQL能够在name的索引中查找“Mike”值，然后直接转到数据文件中相应的行，准确地返回该行的peopleid（999）。在这个过程中，MySQL只需处理一个行就可以返回结果。如果没有“name”列的索引，MySQL要扫描数据文件中的所有记录，即1000个记录！显然，需要MySQL处理的记录数量越少，则它完成任务的速度就越快。<br />
　　<br />
　　二、索引的类型<br />
　　MySQL提供多种索引类型供选择：<br />
　　<br />
　　普通索引<br />
　　这是最基本的索引类型，而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建：<br />
　　创建索引，例如CREATE INDEX &lt;索引的名字&gt; ON tablename (列的列表);<br />
　　修改表，例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);<br />
　　创建表的时候指定索引，例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );<br />
　　<br />
　　唯一性索引<br />
　　这种索引和前面的“普通索引”基本相同，但有一个区别：索引列的所有值都只能出现一次，即必须唯一。唯一性索引可以用以下几种方式创建：<br />
　　创建索引，例如CREATE UNIQUE INDEX &lt;索引的名字&gt; ON tablename (列的列表);<br />
　　修改表，例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);<br />
　　创建表的时候指定索引，例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );<br />
　　<br />
　　主键<br />
　　主键是一种唯一性索引，但它必须指定为“PRIMARY KEY”。如果你曾经用过AUTO_INCREMENT类型的列，你可能已经熟悉主键之类的概念了。主键一般在创建表的时候指定，例如“CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); ”。但是，我们也可以通过修改表的方式加入主键，例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每个表只能有一个主键。<br />
　　<br />
　　全文索引<br />
　　MySQL从3.23.23版开始支持全文索引和全文检索。在MySQL中，全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建。它可以通过CREATE TABLE命令创建，也可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集，通过ALTER TABLE（或者CREATE INDEX）命令创建全文索引要比把记录插入带有全文索引的空表更快。本文下面的讨论不再涉及全文索引，要了解更多信息，请参见MySQL documentation。<br />
　　<br />
　　三、单列索引与多列索引<br />
　　索引可以是单列索引，也可以是多列索引。下面我们通过具体的例子来说明这两种索引的区别。假设有这样一个people表：<br />
　　<br />
　　CREATE TABLE people ( peopleid SMALLINT NOT NULL AUTO_INCREMENT, firstname CHAR(50) NOT NULL, lastname CHAR(50) NOT NULL, age SMALLINT NOT NULL, townid SMALLINT NOT NULL, PRIMARY KEY (peopleid) );<br />
　　<br />
　　下面是我们插入到这个people表的数据：<br />
　　<br />
　　这个数据片段中有四个名字为“Mikes”的人（其中两个姓Sullivans，两个姓McConnells），有两个年龄为17岁的人，还有一个名字与众不同的Joe Smith。<br />
　　<br />
　　这个表的主要用途是根据指定的用户姓、名以及年龄返回相应的peopleid。例如，我们可能需要查找姓名为Mike Sullivan、年龄17岁用户的peopleid（SQL命令为SELECT peopleid FROM people WHERE firstname=&#8217;Mike&#8217; AND lastname=&#8217;Sullivan&#8217; AND age=17;）。由于我们不想让MySQL每次执行查询就去扫描整个表，这里需要考虑运用索引。&nbsp;<br />
&nbsp;<br />
　　首先，我们可以考虑在单个列上创建索引，比如firstname、lastname或者age列。如果我们创建firstname列的索引（ALTER TABLE people ADD INDEX firstname (firstname);），MySQL将通过这个索引迅速把搜索范围限制到那些firstname=&#8217;Mike&#8217;的记录，然后再在这个“中间结果集”上进行其他条件的搜索：它首先排除那些lastname不等于“Sullivan”的记录，然后排除那些age不等于17的记录。当记录满足所有搜索条件之后，MySQL就返回最终的搜索结果。<br />
　　<br />
　　由于建立了firstname列的索引，与执行表的完全扫描相比，MySQL的效率提高了很多，但我们要求MySQL扫描的记录数量仍旧远远超过了实际所需要的。虽然我们可以删除firstname列上的索引，再创建lastname或者age列的索引，但总地看来，不论在哪个列上创建索引搜索效率仍旧相似。<br />
　　<br />
　　为了提高搜索效率，我们需要考虑运用多列索引。如果为firstname、lastname和age这三个列创建一个多列索引，MySQL只需一次检索就能够找出正确的结果！下面是创建这个多列索引的SQL命令：<br />
　　<br />
　　ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age);<br />
　　<br />
　　由于索引文件以B-树格式保存，MySQL能够立即转到合适的firstname，然后再转到合适的lastname，最后转到合适的age。在没有扫描数据文件任何一个记录的情况下，MySQL就正确地找出了搜索的目标记录！<br />
　　<br />
　　那么，如果在firstname、lastname、age这三个列上分别创建单列索引，效果是否和创建一个firstname、lastname、age的多列索引一样呢？答案是否定的，两者完全不同。当我们执行查询的时候，MySQL只能使用一个索引。如果你有三个单列的索引，MySQL会试图选择一个限制最严格的索引。但是，即使是限制最严格的单列索引，它的限制能力也肯定远远低于firstname、lastname、age这三个列上的多列索引。<br />
　　<br />
　　四、最左前缀<br />
　　多列索引还有另外一个优点，它通过称为最左前缀（Leftmost Prefixing）的概念体现出来。继续考虑前面的例子，现在我们有一个firstname、lastname、age列上的多列索引，我们称这个索引为fname_lname_age。当搜索条件是以下各种列的组合时，MySQL将使用fname_lname_age索引：<br />
　　<br />
　　firstname，lastname，age<br />
　　firstname，lastname<br />
　　firstname<br />
　　从另一方面理解，它相当于我们创建了(firstname，lastname，age)、(firstname，lastname)以及(firstname)这些列组合上的索引。下面这些查询都能够使用这个fname_lname_age索引：<br />
　　<br />
　　SELECT peopleid FROM people WHERE firstname=&#8217;Mike&#8217; AND lastname=&#8217;Sullivan&#8217; AND age=&#8217;17&#8242;; SELECT peopleid FROM people WHERE firstname=&#8217;Mike&#8217; AND lastname=&#8217;Sullivan&#8217;; SELECT peopleid FROM people WHERE firstname=&#8217;Mike&#8217;; The following queries cannot use the index at all: SELECT peopleid FROM people WHERE lastname=&#8217;Sullivan&#8217;; SELECT peopleid FROM people WHERE age=&#8217;17&#8242;; SELECT peopleid FROM people WHERE lastname=&#8217;Sullivan&#8217; AND age=&#8217;17&#8242;;<br />
　　<br />
　　五、选择索引列<br />
　　在性能优化过程中，选择在哪些列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有两种类型的列：在WHERE子句中出现的列，在join子句中出现的列。请看下面这个查询：<br />
　　<br />
　　SELECT age ## 不使用索引<br />
　　FROM people WHERE firstname=&#8217;Mike&#8217; ## 考虑使用索引<br />
　　AND lastname=&#8217;Sullivan&#8217; ## 考虑使用索引<br />
　　<br />
　　这个查询与前面的查询略有不同，但仍属于简单查询。由于age是在SELECT部分被引用，MySQL不会用它来限制列选择操作。因此，对于这个查询来说，创建age列的索引没有什么必要。下面是一个更复杂的例子：<br />
　　<br />
　　SELECT people.age, ##不使用索引<br />
　　town.name ##不使用索引<br />
　　FROM people LEFT JOIN town ON<br />
　　people.townid=town.townid ##考虑使用索引<br />
　　WHERE firstname=&#8217;Mike&#8217; ##考虑使用索引<br />
　　AND lastname=&#8217;Sullivan&#8217; ##考虑使用索引<br />
　　<br />
　　与前面的例子一样，由于firstname和lastname出现在WHERE子句中，因此这两个列仍旧有创建索引的必要。除此之外，由于town表的townid列出现在join子句中，因此我们需要考虑创建该列的索引。<br />
　　<br />
　　那么，我们是否可以简单地认为应该索引WHERE子句和join子句中出现的每一个列呢？差不多如此，但并不完全。我们还必须考虑到对列进行比较的操作符类型。MySQL只有对以下操作符才使用索引：&lt;，&lt;=，=，&gt;，&gt;=，BETWEEN，IN，以及某些时候的LIKE。可以在LIKE操作中使用索引的情形是指另一个操作数不是以通配符（%或者_）开头的情形。例如，“SELECT peopleid FROM people WHERE firstname LIKE &#8216;Mich%&#8217;;”这个查询将使用索引，但“SELECT peopleid FROM people WHERE firstname LIKE &#8216;%ike&#8217;;”这个查询不会使用索引。　　六、分析索引效率<br />
　　现在我们已经知道了一些如何选择索引列的知识，但还无法判断哪一个最有效。MySQL提供了一个内建的SQL命令帮助我们完成这个任务，这就是EXPLAIN命令。EXPLAIN命令的一般语法是：EXPLAIN 。你可以在MySQL文档找到有关该命令的更多说明。下面是一个例子：<br />
　　<br />
　　EXPLAIN SELECT peopleid FROM people WHERE firstname=&#8217;Mike&#8217; AND lastname=&#8217;Sullivan&#8217; AND age=&#8217;17&#8242;;<br />
　　<br />
　　这个命令将返回下面这种分析结果：<br />
　　<br />
　　下面我们就来看看这个EXPLAIN分析结果的含义。<br />
　　<br />
　　<br />
　　table：这是表的名字。<br />
　　type：连接操作的类型。下面是MySQL文档关于ref连接类型的说明：<br />
　　<br />
　　“对于每一种与另一个表中记录的组合，MySQL将从当前的表读取所有带有匹配索引值的记录。如果连接操作只使用键的最左前缀，或者如果键不是UNIQUE或PRIMARY KEY类型（换句话说，如果连接操作不能根据键值选择出唯一行），则MySQL使用ref连接类型。如果连接操作所用的键只匹配少量的记录，则ref是一种好的连接类型。”<br />
　　<br />
　　在本例中，由于索引不是UNIQUE类型，ref是我们能够得到的最好连接类型。<br />
　　<br />
　　如果EXPLAIN显示连接类型是“ALL”，而且你并不想从表里面选择出大多数记录，那么MySQL的操作效率将非常低，因为它要扫描整个表。你可以加入更多的索引来解决这个问题。预知更多信息，请参见MySQL的手册说明。<br />
　　<br />
　　possible_keys：<br />
　　可能可以利用的索引的名字。这里的索引名字是创建索引时指定的索引昵称；如果索引没有昵称，则默认显示的是索引中第一个列的名字（在本例中，它是“firstname”）。默认索引名字的含义往往不是很明显。<br />
　　<br />
　　Key：<br />
　　它显示了MySQL实际使用的索引的名字。如果它为空（或NULL），则MySQL不使用索引。<br />
　　<br />
　　key_len：<br />
　　索引中被使用部分的长度，以字节计。在本例中，key_len是102，其中firstname占50字节，lastname占50字节，age占2字节。如果MySQL只使用索引中的firstname部分，则key_len将是50。<br />
　　<br />
　　ref：<br />
　　它显示的是列的名字（或单词“const”），MySQL将根据这些列来选择行。在本例中，MySQL根据三个常量选择行。<br />
　　<br />
　　rows：<br />
　　MySQL所认为的它在找到正确的结果之前必须扫描的记录数。显然，这里最理想的数字就是1。<br />
　　<br />
　　Extra：<br />
　　这里可能出现许多不同的选项，其中大多数将对查询产生负面影响。在本例中，MySQL只是提醒我们它将用WHERE子句限制搜索结果集。<br />
　　<br />
　　七、索引的缺点<br />
　　到目前为止，我们讨论的都是索引的优点。事实上，索引也是有缺点的。<br />
　　<br />
　　首先，索引要占用磁盘空间。通常情况下，这个问题不是很突出。但是，如果你创建每一种可能列组合的索引，索引文件体积的增长速度将远远超过数据文件。如果你有一个很大的表，索引文件的大小可能达到操作系统允许的最大文件限制。<br />
　　<br />
　　第二，对于需要写入数据的操作，比如DELETE、UPDATE以及INSERT操作，索引会降低它们的速度。这是因为MySQL不仅要把改动数据写入数据文件，而且它还要把这些改动写入索引文件。<br />
　　<br />
　　【结束语】在大型数据库中，索引是提高速度的一个关键因素。不管表的结构是多么简单，一次500000行的表扫描操作无论如何不会快。如果你的网站上也有这种大规模的表，那么你确实应该花些时间去分析可以采用哪些索引，并考虑是否可以改写查询以优化应用。要了解更多信息，请参见MySQL manual。另外注意，本文假定你所使用的MySQL是3.23版，部分查询不能在3.22版MySQL上执行。<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/mysql-suoyin-fenxiyouhua/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL列类型选择与MYSQL查询效率</title>
		<link>http://kuigg.com/mysql-leixing-xiaolv</link>
		<comments>http://kuigg.com/mysql-leixing-xiaolv#comments</comments>
		<pubDate>Sun, 04 Jan 2009 01:29:50 +0000</pubDate>
		<dc:creator>kuiGG</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[学习资料]]></category>

		<guid isPermaLink="false">http://kuigg.com/?p=97</guid>
		<description><![CDATA[要选择有助于使查询执行更快的列，应遵循如下规则（这里，“BLOB 类型”应该理解为即包含B L O B也包含TEXT 类型）：
&#160;&#160; ■ 使用定长列，不使用可变长列。这条准则对被经常修改，从而容易产生碎片的表来说特别重要。例如，应该选择CHAR 列而不选择VARCHAR 列。所要权衡的是使用定长列时，表所占用的空间更多，但如果能够承担这种空间的耗费，使用定长行将比使用可变长的行处理快得多。
&#160;&#160; ■ 在较短的列能够满足要求时不要使用较长的列。如果正使用的是定长的CHAR 列，应该使它们尽量短。如果列中所存储的最长值为40 个字符，那么就不要将其定义为CHAR ( 2 5 5 )；只要定义为CHAR(40) 即可。如果能够使用MEDIUMINT 而不是BIGINT，表将会更小（磁盘I/O 也较少），其值在计算中也可以处理得更快。
&#160;&#160; ■ 将列定义为NOT NULL。这样处理更快，所需空间更少。而且有时还能简化查询，因为不需要检查是否存在特例NULL。
&#160;&#160; ■ 考虑使用ENUM 列。如果有一个只含有限数目的特定值的列，那么应该考虑将其转换为ENUM 列。ENUM 列的值可以更快地处理，因为它们在内部是以数值表示的。
&#160;&#160; ■ 使用PROCEDURE ANALYSE( )。如果使用的是MySQL3.23 或更新的版本，应该执行PROCEDURE ANALYSE( )，查看它所提供的关于表中列的信息：
&#160;&#160;&#160; 相应输出中有一列是关于表中每列的最佳列类型的建议。第二个例子要求PROCEDURE ANALYSE( ) 不要建议含有多于16 个值或取多于256 字节的ENUM 类型（可根据需要更改这些值）。如果没有这样的限制，输出可能会很长；ENUM 的定义也会很难阅读。根据PROCEDURE ANALYSE( ) 的输出，会发现可以对表进行更改以利用更有效的类型。如果希望更改值类型，使用ALTER TABLE 语句即可。
&#160;&#160;&#160; ■ 将数据装入B L O B。用BLOB [...]]]></description>
			<content:encoded><![CDATA[<p>要选择有助于使查询执行更快的列，应遵循如下规则（这里，“BLOB 类型”应该理解为即包含B L O B也包含TEXT 类型）：</p>
<p>&nbsp;&nbsp; ■ 使用定长列，不使用可变长列。这条准则对被经常修改，从而容易产生碎片的表来说特别重要。例如，应该选择CHAR 列而不选择VARCHAR 列。所要权衡的是使用定长列时，表所占用的空间更多，但如果能够承担这种空间的耗费，使用定长行将比使用可变长的行处理快得多。</p>
<p>&nbsp;&nbsp; ■ 在较短的列能够满足要求时不要使用较长的列。如果正使用的是定长的CHAR 列，应该使它们尽量短。如果列中所存储的最长值为40 个字符，那么就不要将其定义为CHAR ( 2 5 5 )；只要定义为CHAR(40) 即可。如果能够使用MEDIUMINT 而不是BIGINT，表将会更小（磁盘I/O 也较少），其值在计算中也可以处理得更快。</p>
<p>&nbsp;&nbsp; ■ 将列定义为NOT NULL。这样处理更快，所需空间更少。而且有时还能简化查询，因为不需要检查是否存在特例NULL。</p>
<p>&nbsp;&nbsp; ■ 考虑使用ENUM 列。如果有一个只含有限数目的特定值的列，那么应该考虑将其转换为ENUM 列。ENUM 列的值可以更快地处理，因为它们在内部是以数值表示的。</p>
<p>&nbsp;&nbsp; ■ 使用PROCEDURE ANALYSE( )。如果使用的是MySQL3.23 或更新的版本，应该执行PROCEDURE ANALYSE( )，查看它所提供的关于表中列的信息：</p>
<p>&nbsp;&nbsp;&nbsp; 相应输出中有一列是关于表中每列的最佳列类型的建议。第二个例子要求PROCEDURE ANALYSE( ) 不要建议含有多于16 个值或取多于256 字节的ENUM 类型（可根据需要更改这些值）。如果没有这样的限制，输出可能会很长；ENUM 的定义也会很难阅读。根据PROCEDURE ANALYSE( ) 的输出，会发现可以对表进行更改以利用更有效的类型。如果希望更改值类型，使用ALTER TABLE 语句即可。</p>
<p>&nbsp;&nbsp;&nbsp; ■ 将数据装入B L O B。用BLOB 存储应用程序中包装或未包装的数据，有可能使原来需要几个检索操作才能完成的数据检索得以在单个检索操作中完成。而且还对存储标准表结构不易表示的数据或随时间变化的数据有帮助。在第3 章ALTER TABLE 语句的介绍中，有一个例子处理存储来自Web 问卷的结果的表。该例子中讨论了在问卷中增加问题时，怎样利用ALTER TABLE 向该表追加列。</p>
<p>&nbsp;&nbsp;&nbsp; 解决该问题的另一个方法是让处理Web 的应用程序将数据包装成某种数据结构，然后将其插入单个BLOB 列。这样会增加应用程序对数据进行解码的开销（而且从表中检索出记录后要对其进行编码），但是简化了表的结构，并且不用在更改问卷时对表进行更改。另一方面， BLOB 值也有自己的固有问题，特别是在进行大量的DELETE 或UPDATE 操作时更是如此。删除BLOB 会在表中留下一个大空白，在以后将需用一个记录或可能是不同大小的多个记录来填充。</p>
<p>&nbsp;&nbsp;&nbsp; ■ 对容易产生碎片的表使用OPTIMIZE TABLE。大量进行修改的表，特别是那些含有可变长列的表，容易产生碎片。碎片不好，因为它在存储表的磁盘块中产生不使用的空间。随着时间的增长，必须读取更多的块才能取到有效的行，从而降低了性能。任意具有可变长行的表都存在这个问题，但这个问题对BLOB 列更为突出，因为它们尺寸的变化非常大。经常使用OPTIMIZE TABLE 有助于保持性能不下降。</p>
<p>&nbsp;&nbsp;&nbsp; ■ 使用合成索引。合成索引列有时很有用。一种技术是根据其他列建立一个散列值，并将其存储在一个独立的列中，然后可通过搜索散列值找到行。这只对精确匹配的查询有效。（散列值对具有诸如“ &lt;”或“ &gt; =”这样的操作符的范围搜索没有用处）。在MySQL3.23版及以上版本中，散列值可利用MD5( ) 函数产生。散列索引对BLOB 列特别有用。有一事要注意，在MySQL3.23.2 以前的版本中，不能索引BLOB 类型。甚至是在3.23.2 或更新的版本中，利用散列值作为标识值来查找BLOB 值也比搜索BLOB 列本身更快。</p>
<p>&nbsp;&nbsp;&nbsp; ■ 除非有必要，否则应避免检索较大的BLOB 或TEXT 值。例如，除非肯定WHERE 子句能够将结果恰好限制在所想要的行上，否则SELECT * 查询不是一个好办法。这样做可能会将非常大的BLOB 值无目的地从网络上拖过来。这是存储在另一列中的BLOB 标识信息很有用的另一种情形。可以搜索该列以确定想要的行，然后从限定的行中检索BLOB 值。</p>
<p>&nbsp;&nbsp;&nbsp; ■ 将BLOB 值隔离在一个独立的表中。在某些情况下，将BLOB 列从表中移出放入另一个副表可能具有一定的意义，条件是移出BLOB 列后可将表转换为定长行格式。这样会减少主表中的碎片，而且能利用定长行的性能优势。 </p>
]]></content:encoded>
			<wfw:commentRss>http://kuigg.com/mysql-leixing-xiaolv/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
