<?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>猫窝私语 — Makumo's Blog &#187; 计算机</title>
	<atom:link href="http://www.makumo.com/category/computer/feed" rel="self" type="application/rss+xml" />
	<link>http://www.makumo.com</link>
	<description></description>
	<lastBuildDate>Wed, 24 Mar 2010 08:48:48 +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>小窝顺利更新至wordpress 2.7 正式版</title>
		<link>http://www.makumo.com/wp_upgrade_to_27.cat</link>
		<comments>http://www.makumo.com/wp_upgrade_to_27.cat#comments</comments>
		<pubDate>Fri, 12 Dec 2008 18:32:42 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[升级]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=251</guid>
		<description><![CDATA[昨天（准确的说是前天，已经过了12点了=。=！）登陆后台发现wordpress 2.7 正式版已经发布了，当时太晚了，也就没来的及更新。刚刚把2.7DOWN了下来，依旧老样子的程序：备份文件，备份数据库，覆盖程序，最后upgrade一下，一切都很顺利，有不少人说2.7版和mg12的主题有些冲突，不过我这是没有遇到过。
一进后台超级不适应，整个后台大换脸，看来还是要有短时间来适应下，不过整体来看还是很漂亮的，使用起来非常舒服，新加入的评论分页还没有机会尝试，毕竟来小窝串门的人还不是很多，以后还是有机会的，其他的新功能在慢慢研究了，已经2点了，明天还要去单位参加培训，休息去喽O(∩_∩)O
]]></description>
			<content:encoded><![CDATA[<p>昨天（准确的说是前天，已经过了12点了=。=！）登陆后台发现wordpress 2.7 正式版已经发布了，当时太晚了，也就没来的及更新。刚刚把2.7DOWN了下来，依旧老样子的程序：备份文件，备份数据库，覆盖程序，最后upgrade一下，一切都很顺利，有不少人说2.7版和mg12的主题有些冲突，不过我这是没有遇到过。</p>
<p>一进后台超级不适应，整个后台大换脸，看来还是要有短时间来适应下，不过整体来看还是很漂亮的，使用起来非常舒服，新加入的评论分页还没有机会尝试，毕竟来小窝串门的人还不是很多，以后还是有机会的，其他的新功能在慢慢研究了，已经2点了，明天还要去单位参加培训，休息去喽O(∩_∩)O</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/wp_upgrade_to_27.cat/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>wordpress自带标签云设置</title>
		<link>http://www.makumo.com/tag_cloud_setup.cat</link>
		<comments>http://www.makumo.com/tag_cloud_setup.cat#comments</comments>
		<pubDate>Sat, 29 Nov 2008 15:42:46 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[标签云]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=198</guid>
		<description><![CDATA[总觉得标签云有些怪怪的，感觉使用标签不止这么多，而且最大的字体有些大了。于是乎发动懒猫精神上网搜索了下，这一刻搜索引擎是强大的  
在Slyar的blog上看到相关的一篇文章修改WordPress标签云的字体大小以及显示数量介绍到标签云的一系列参数，顺便也转录过来了：
smallest – Adjusts the size of the smallest tags in the cloud. Default is &#8220;8&#8243;.
largest – Adjusts the size of the biggest tags in the cloud. Default is &#8220;22&#8243;.
unit – Sets the unit type for font size (i.e. point or em). Default is &#8220;pt&#8221;.
number – How many tags will display in the cloud. [...]]]></description>
			<content:encoded><![CDATA[<p>总觉得标签云有些怪怪的，感觉使用标签不止这么多，而且最大的字体有些大了。于是乎发动懒猫精神上网搜索了下，这一刻搜索引擎是强大的 <img src='http://www.makumo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' /> </p>
<p>在<strong>Slyar</strong><a title="Slyar" href="http://www.slyar.com/blog/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="Slyar" style="margin: 0 3px;padding: 0;border: none;" /></a>的blog上看到相关的一篇文章<strong>修改WordPress标签云的字体大小以及显示数量</strong><a title="修改WordPress标签云的字体大小以及显示数量" href="http://www.slyar.com/blog/tag-cloud-font.html" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="修改WordPress标签云的字体大小以及显示数量" style="margin: 0 3px;padding: 0;border: none;" /></a>介绍到标签云的一系列参数，顺便也转录过来了：</p>
<blockquote><p><span style="color: #ff6600;">smallest</span> – Adjusts the size of the smallest tags in the cloud. <span style="color: #ff6600;">Default is &#8220;8&#8243;.</span><br />
<span style="color: #ff6600;">largest</span> – Adjusts the size of the biggest tags in the cloud. <span style="color: #ff6600;">Default is &#8220;22&#8243;.</span><br />
<span style="color: #ff6600;">unit</span> – Sets the unit type for font size (i.e. point or em). <span style="color: #ff6600;">Default is &#8220;pt&#8221;.</span><br />
<span style="color: #ff6600;">number</span> – How many tags will display in the cloud. <span style="color: #ff6600;">Default is &#8220;45&#8243;.<br />
</span><span style="color: #ff6600;">format</span> – &#8220;Flat&#8221; displays an inline cloud with each term separated by whitespace. &#8220;List&#8221; generates an unordered list. &#8220;Array&#8221; lets you define an array of tags. <span style="color: #ff6600;">Default is &#8220;flat&#8221;.</span><br />
<span style="color: #ff6600;">orderby</span> – Sort the cloud by &#8220;name&#8221; or &#8220;count&#8221;. <span style="color: #ff6600;">Default is &#8220;name&#8221;.</span><br />
<span style="color: #ff6600;">order</span> – Sort the cloud in ascending or descending order. <span style="color: #ff6600;">Default is &#8220;ASC&#8221;. </span></p></blockquote>
<p>把参数值写入<span style="color: #0000ff;">\wp-includes\widgets.php</span>中的<span style="color: #0000ff;">wp_tag_cloud()</span>函数中即可，例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">wp_tag_cloud<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'unit=px&amp;amp;smallest=12&amp;amp;largest=20&amp;amp;number=50&amp;amp;orderby=count'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>即把标签云设置成最大字体20像素，最小字体12像素，显示数目50，按照使用次数排序</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/tag_cloud_setup.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FusionCharts参数简单说明</title>
		<link>http://www.makumo.com/fusioncharts_reference.cat</link>
		<comments>http://www.makumo.com/fusioncharts_reference.cat#comments</comments>
		<pubDate>Fri, 21 Nov 2008 14:40:21 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[建站日志]]></category>
		<category><![CDATA[页面设计]]></category>
		<category><![CDATA[FusionCharts]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=170</guid>
		<description><![CDATA[之前介绍了这款很不错的Flash统计图软件FusionChartsFree，它是FusionCharts的一个免费版本，根据官网介绍，最新版本V3支持46种统计图样式，多统计图联动等等一些很有意思的功能，官网的一些统计图demo。
在上篇文章中曾经提到了字体小等等一些问题，这几天好好看了下附带的说明文档，其实这些都可以设置的。在说明文档Chart XML Reference栏目下就有详细的参数说明，针对不同的统计图表都用不同的参数说明。公共部分比如baseFont：设置字体样式；baseFontSize：设置字体大小，将&#60;graph&#62;中间加上baseFontSize=‘12’,字体就变成12号字了；还有numberPrefix、numberSuffix：前缀、后缀，根据说明中的提示“To use special characters for numberPrefix or numberSuffix, you&#8217;ll need to URL Encode them.”，比如后缀想显示“元”，在graph标签种应该设置成numberSuffix=‘%D4%AA’，一些文本编辑器支持代码转换可以直接转，实在找不到可以借用搜索引擎，例如百度，在搜索框输入“元”，点搜索，在地址栏里面“http://www.baidu.com.cn/s?wd=%D4%AA”中的wd=后面的字符串就是“元”字转过的编码。参数有许多，根据不同的图表，参数也有不同之处，可以通过设置不同的参数显示出很有个性的统计图出来。这里就不再一一说明了，可以参照说明文档中的说明，虽然都是英文版的，但是很简单明了，一般写过程序的基本都能看得懂。
最后顺便提下LICENSE，免费版只用于individual/research/commercial（个人/研究/交流），要尊重别人的劳动成果和知识产权。LICENSE如下：

FusionCharts Free can be used for free if you are a individual/research/commercial user.
FusionCharts Free can be distributed for free with your free or commercial softwares, irrespective of whether they&#8217;re open source or closed source.
You must not sell FusionCharts Free as [...]]]></description>
			<content:encoded><![CDATA[<p>之前介绍了这款很不错的Flash统计图软件<strong>FusionChartsFree</strong><a title="FusionChartsFree" href="http://www.makumo.com/fusioncharts.cat" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="FusionChartsFree" style="margin: 0 3px;padding: 0;border: none;" /></a>，它是<strong>FusionCharts</strong><a title="FusionCharts" href="http://www.fusioncharts.com" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="FusionCharts" style="margin: 0 3px;padding: 0;border: none;" /></a>的一个免费版本，根据官网介绍，最新版本V3支持46种统计图样式，多统计图联动等等一些很有意思的功能，<a href="http://www.fusioncharts.com/LiveDemos.asp" target="_blank">官网的一些统计图demo</a>。</p>
<p>在上篇文章中曾经提到了字体小等等一些问题，这几天好好看了下附带的说明文档，其实这些都可以设置的。在说明文档<strong>Chart XML Reference</strong>栏目下就有详细的参数说明，针对不同的统计图表都用不同的参数说明。公共部分比如baseFont：设置字体样式；<strong>baseFontSize：设置字体大小</strong>，将&lt;graph&gt;中间加上baseFontSize=‘12’,字体就变成12号字了；还有numberPrefix、numberSuffix：前缀、后缀，根据说明中的提示“<span style="color: #ff6600;">To use special characters for numberPrefix or numberSuffix, you&#8217;ll need to URL Encode them.</span>”，比如后缀想显示“元”，在graph标签种应该设置成numberSuffix=‘%D4%AA’，一些文本编辑器支持代码转换可以直接转，实在找不到可以借用搜索引擎，例如百度，在搜索框输入“元”，点搜索，在地址栏里面“http://www.baidu.com.cn/s?wd=%D4%AA”中的wd=后面的字符串就是“元”字转过的编码。参数有许多，根据不同的图表，参数也有不同之处，可以通过设置不同的参数显示出很有个性的统计图出来。这里就不再一一说明了，可以参照说明文档中的说明，虽然都是英文版的，但是很简单明了，一般写过程序的基本都能看得懂。</p>
<p>最后顺便提下LICENSE，免费版只用于individual/research/commercial（个人/研究/交流），要尊重别人的劳动成果和知识产权。LICENSE如下：</p>
<ul>
<li>FusionCharts Free can be used for free if you are a individual/research/commercial user.</li>
<li>FusionCharts Free can be distributed for free with your free or commercial softwares, irrespective of whether they&#8217;re open source or closed source.</li>
<li>You must not sell FusionCharts Free as a component in itself. However, your commercial product can embed FusionCharts Free.</li>
<li>You must not represent in any way that you&#8217;re the author of FusionCharts Free.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/fusioncharts_reference.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO、点击数、其他</title>
		<link>http://www.makumo.com/seo_hits.cat</link>
		<comments>http://www.makumo.com/seo_hits.cat#comments</comments>
		<pubDate>Tue, 18 Nov 2008 15:42:10 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=164</guid>
		<description><![CDATA[这今天看了几篇SEO相关的文章，正好手边有个良好的测试对象，就拿自己的小窝试一试。懒猫当然是借助插件帮忙了，先去下载了All in One SEO Pack，其实可以自己修改相关文件来达到插件的作用，不过作为标准懒猫，还是拿来主义O(∩_∩)O。不过有点比较郁闷的是插件包里面带着有zh_CN.mo的语言包，为什么显示还是英文=。=不过好在比较简单，英文也就凑合这用了。设置完成后将WP默认的“站名-文章名”的title转变成对搜索引擎相对友好的“文章名-站名”，同时也把页面中的keyword和description填补了起来。在编写文章的时候也可以填写相关SEO的内容，还是很方便的。顺便补完了分类的描述，使分类页面中间的description能正常显示，不过显示出来的文字前后多了个&#60;p&#62;&#60;/p&#62;。。改天找下对应的函数，把这个抹掉。
WP居然不自带文章点击数的统计，难道国外的博客都不将点击数作为一种衡量标准吗？虽然说点击数水分比较大，但是也不至于舍弃这个功能吧，也仅仅是加个字段，加几句代码罢了。依旧发挥懒猫精神，下了wp-postviews，安装后，在样式侧边管理里面多了一个新的模块，可以显示热门文章了，不过我遇到了两个很奇怪的问题，一个就是将计数器控制调整成everyone，怎么刷新都不见点击数加1；另外就是之前All in One SEO Pack所设置的meta标签内容全部乱码了-_-!暂时先停止这个插件，之后慢慢研究那块冲突了。
懒猫还是比较爱吃的，准备抽个时间把以前网上搜索的食谱整理下，发出来，一是方便自己查找，二是有福共享嘛。
晚上天气还是好冷。。。打一会字就手脚冰凉了，不多写了，钻被窝了。O(∩_∩)O
]]></description>
			<content:encoded><![CDATA[<p>这今天看了几篇SEO相关的文章，正好手边有个良好的测试对象，就拿自己的小窝试一试。懒猫当然是借助插件帮忙了，先去下载了<strong>All in One SEO Pack</strong><a title="All in One SEO Pack" href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="All in One SEO Pack" style="margin: 0 3px;padding: 0;border: none;" /></a>，其实可以自己修改相关文件来达到插件的作用，不过作为标准懒猫，还是拿来主义O(∩_∩)O。不过有点比较郁闷的是插件包里面带着有zh_CN.mo的语言包，为什么显示还是英文=。=不过好在比较简单，英文也就凑合这用了。设置完成后将WP默认的“站名-文章名”的title转变成对搜索引擎相对友好的“文章名-站名”，同时也把页面中的keyword和description填补了起来。在编写文章的时候也可以填写相关SEO的内容，还是很方便的。顺便补完了分类的描述，使分类页面中间的description能正常显示，不过显示出来的文字前后多了个&lt;p&gt;&lt;/p&gt;。。改天找下对应的函数，把这个抹掉。</p>
<p>WP居然不自带文章点击数的统计，难道国外的博客都不将点击数作为一种衡量标准吗？虽然说点击数水分比较大，但是也不至于舍弃这个功能吧，也仅仅是加个字段，加几句代码罢了。依旧发挥懒猫精神，下了<strong>wp-postviews</strong><a title="wp-postviews" href="http://lesterchan.net/wordpress/readme/wp-postviews.html" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="wp-postviews" style="margin: 0 3px;padding: 0;border: none;" /></a>，安装后，在样式侧边管理里面多了一个新的模块，可以显示热门文章了，不过我遇到了两个很奇怪的问题，一个就是将计数器控制调整成everyone，怎么刷新都不见点击数加1；另外就是之前All in One SEO Pack所设置的meta标签内容全部乱码了-_-!暂时先停止这个插件，之后慢慢研究那块冲突了。</p>
<p>懒猫还是比较爱吃的，准备抽个时间把以前网上搜索的食谱整理下，发出来，一是方便自己查找，二是有福共享嘛。</p>
<p>晚上天气还是好冷。。。打一会字就手脚冰凉了，不多写了，钻被窝了。O(∩_∩)O</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/seo_hits.cat/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash统计效果图——FusionChartsFree</title>
		<link>http://www.makumo.com/fusioncharts.cat</link>
		<comments>http://www.makumo.com/fusioncharts.cat#comments</comments>
		<pubDate>Sun, 16 Nov 2008 06:02:16 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[页面设计]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[FusionCharts]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=159</guid>
		<description><![CDATA[很久前开发网站的时候曾经遇到过页面显示统计图的问题，直接调用office显示实在是惨不忍睹，当时用的是一个叫TeeChartOffice的插件，虽然同样是需要office支持，不过显示效果好很多，而且不存在浏览器兼容问题，它是先生成图片，然后调用图片显示。但是那个插件问题也很多，最致命的是对中文支持不是很好，经常把中文显示成方块，具体也不知道是什么地方设置问题，可能今天显示的好好的，明天显示就变成方块了，过几天又好了。。。
前几天又遇到网站显示统计图的需求，网上找了一下，大部分是要求组件。检索到一个用VML的解决方案，显示效果还比较满意，就先使用着了。不过随后发现VML只支持IE，没办法，只有放弃。
网上搜索时无意在一篇博文中看到了一款叫FusionChartsFree的Flash版统计图，下来试用了下，内附的使用文档还是很全面的，包括用法和例子。有点遗憾的是没有源码，不过一个free版也不能要求太多。还有一点就是中文汉字显示很小，估计只有10号，英文还能看清，中文基本就是一团。暂时先不填写XML中的标题和描述，先凑合用了。继续寻找更好的统计图。
后附几张效果图，从自带说明文档里面截取的：



]]></description>
			<content:encoded><![CDATA[<p>很久前开发网站的时候曾经遇到过页面显示统计图的问题，直接调用office显示实在是惨不忍睹，当时用的是一个叫TeeChartOffice的插件，虽然同样是需要office支持，不过显示效果好很多，而且不存在浏览器兼容问题，它是先生成图片，然后调用图片显示。但是那个插件问题也很多，最致命的是对中文支持不是很好，经常把中文显示成方块，具体也不知道是什么地方设置问题，可能今天显示的好好的，明天显示就变成方块了，过几天又好了。。。</p>
<p>前几天又遇到网站显示统计图的需求，网上找了一下，大部分是要求组件。检索到一个用VML的解决方案，显示效果还比较满意，就先使用着了。不过随后发现VML只支持IE，没办法，只有放弃。</p>
<p>网上搜索时无意在一篇<strong>博文</strong><a title="博文" href="http://hi.baidu.com/phoenix_lee15/blog/item/effcac13cc66f8045baf5330.html" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="博文" style="margin: 0 3px;padding: 0;border: none;" /></a>中看到了一款叫<strong>FusionChartsFree</strong><a title="FusionChartsFree" href="http://www.filetransit.com/go.php?id=34476-4-1" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="FusionChartsFree" style="margin: 0 3px;padding: 0;border: none;" /></a>的Flash版统计图，下来试用了下，内附的使用文档还是很全面的，包括用法和例子。有点遗憾的是没有源码，不过一个free版也不能要求太多。还有一点就是中文汉字显示很小，估计只有10号，英文还能看清，中文基本就是一团。暂时先不填写XML中的标题和描述，先凑合用了。继续寻找更好的统计图。</p>
<p>后附几张效果图，从自带说明文档里面截取的：<br />
<img class="alignnone size-full wp-image-161" title="show02" src="http://www.makumo.com/wp-content/uploads/2008/11/show02.jpg" alt="" width="500" height="265" /><br />
<img class="alignnone size-full wp-image-160" title="show01" src="http://www.makumo.com/wp-content/uploads/2008/11/show01.jpg" alt="" width="500" height="198" /><br />
<img class="alignnone size-full wp-image-162" title="show03" src="http://www.makumo.com/wp-content/uploads/2008/11/show03.jpg" alt="" width="500" height="289" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/fusioncharts.cat/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>解决wordpress留言评论者IP都是127.0.0.1</title>
		<link>http://www.makumo.com/ip_127_0_0_1.cat</link>
		<comments>http://www.makumo.com/ip_127_0_0_1.cat#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:30:06 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[IP]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=153</guid>
		<description><![CDATA[刚刚开始用2.1版本的时候就发现这个问题，所有评论这的IP都是127.0.0.1，当时也没在意，心想可能是那块没有设置好，反正评论的人也不多。前几天更新成2.6.3后，发现这个问题依旧存在，127.0.0.1似乎在评论审核的黑名单中，弄的所有的评论都变成垃圾评论，都要一个个审核，很是烦人。
上网查了下资料，遇到这个问题的人并不多，还在有人提起，也有热心人回复了大概原因以及大概解决方案：原因是空间商启用了某种缓存机制导致取IP产生错误，使得结果都是本机IP，也就是127.0.0.1。解决方案也很简单，更换获取IP语句就好。
查了下PHP获取IP的语句，主要是以下几种

1
2
3
4
5
6
$_SERVER&#91;&#34;HTTP_X_FORWARDED_FOR&#34;; 
$_SERVER&#91;&#34;HTTP_CLIENT_IP&#34;&#93;; 
$_SERVER&#91;&#34;REMOTE_ADDR&#34;&#93;; 
getenv&#40;&#34;HTTP_X_FORWARDED_FOR&#34;&#41;; 
getenv&#40;&#34;HTTP_CLIENT_IP&#34;&#41;; 
getenv&#40;&#34;REMOTE_ADDR&#34;&#41;;

剩下的就很简单了，写一个测试页面，一个一个试，看那个能显示正确的IP地址，在修改/wp-includes/comment.php ,我的文件是在第718行

718
$commentdata&#91;'comment_author_IP'&#93; = preg_replace&#40; '/[^0-9a-fA-F:., ]/', '',$_SERVER&#91;'REMOTE_ADDR'&#93; &#41;;

将$_SERVER['REMOTE_ADDR']改成上面测试正确IP的语句，问题解决。
本人对PHP还是初学者阶段，如有叙述不当之处，还希望多多斧正。
]]></description>
			<content:encoded><![CDATA[<p>刚刚开始用2.1版本的时候就发现这个问题，所有评论这的IP都是127.0.0.1，当时也没在意，心想可能是那块没有设置好，反正评论的人也不多。前几天更新成2.6.3后，发现这个问题依旧存在，127.0.0.1似乎在评论审核的黑名单中，弄的所有的评论都变成垃圾评论，都要一个个审核，很是烦人。</p>
<p>上网查了下资料，遇到这个问题的人并不多，还在有人提起，也有热心人回复了大概原因以及大概解决方案：原因是空间商启用了某种缓存机制导致取IP产生错误，使得结果都是本机IP，也就是127.0.0.1。解决方案也很简单，更换获取IP语句就好。</p>
<p>查了下PHP获取IP的语句，主要是以下几种</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED_FOR&quot;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;REMOTE_ADDR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED_FOR&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;REMOTE_ADDR&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>剩下的就很简单了，写一个测试页面，一个一个试，看那个能显示正确的IP地址，在修改/wp-includes/comment.php ,我的文件是在第718行</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>718
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$commentdata</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment_author_IP'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'/[^0-9a-fA-F:., ]/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>将$_SERVER['REMOTE_ADDR']改成上面测试正确IP的语句，问题解决。</p>
<p>本人对PHP还是初学者阶段，如有叙述不当之处，还希望多多斧正。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/ip_127_0_0_1.cat/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WP的代码高亮提示插件</title>
		<link>http://www.makumo.com/highlight_code.cat</link>
		<comments>http://www.makumo.com/highlight_code.cat#comments</comments>
		<pubDate>Wed, 12 Nov 2008 17:01:23 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=130</guid>
		<description><![CDATA[今天无意翻阅以前发的文章，发现原来使用的高亮插件coolcode版面乱掉了，试着调了一会CSS，效果依旧不是很理想，无奈只有放弃。（后来才发现是定了首行缩进的缘故，不过考虑到coolcode修改经常标签丢失，也还是放弃了）
在网上搜索了下，先用的是Syntax Highlighter，页面显示还是很漂亮的，不过可能是纯JS的缘故，我这显示总是用一种滞后。页面打开后，显示的是普通的代码，代码比较长，页面版面变形厉害，等页面输出完毕后，代码部分才变成需要的高亮样式，感觉比较难受，而且个人喜欢使用禁用JS的火狐上网，看自己页面效果全无。只有先放一边了。
下载iG Syntax Hiliter，启用的时候不同的提示严重错误，无法启动，错误代码是：路径/geshi.php不存在，一头雾水，在服务器上查了下，文件的确在那，头晕中。
Highlight Source Pro和WP-Syntax有点类似，使用pre标签，每行代码短还好，代码一长，滚动条就出来了，有点破坏整体风格，虽然有些人可能喜欢滚动条。
暂时先用着WP-Syntax了，毕竟用到代码的地方并不是很多，有空再去网上找找其他的高亮插件了。
]]></description>
			<content:encoded><![CDATA[<p>今天无意翻阅以前发的文章，发现原来使用的高亮插件coolcode版面乱掉了，试着调了一会CSS，效果依旧不是很理想，无奈只有放弃。（后来才发现是定了首行缩进的缘故，不过考虑到coolcode修改经常标签丢失，也还是放弃了）</p>
<p>在网上搜索了下，先用的是<strong>Syntax Highlighter</strong><a title="Syntax Highlighter" href="http://code.google.com/p/syntaxhighlighter/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="Syntax Highlighter" style="margin: 0 3px;padding: 0;border: none;" /></a>，页面显示还是很漂亮的，不过可能是纯JS的缘故，我这显示总是用一种滞后。页面打开后，显示的是普通的代码，代码比较长，页面版面变形厉害，等页面输出完毕后，代码部分才变成需要的高亮样式，感觉比较难受，而且个人喜欢使用禁用JS的火狐上网，看自己页面效果全无。只有先放一边了。</p>
<p>下载<strong>iG Syntax Hiliter</strong><a title="iG Syntax Hiliter" href="http://blog.igeek.info/still-fresh/2006/02/25/code-for-fun/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="iG Syntax Hiliter" style="margin: 0 3px;padding: 0;border: none;" /></a>，启用的时候不同的提示严重错误，无法启动，错误代码是：路径/geshi.php不存在，一头雾水，在服务器上查了下，文件的确在那，头晕中。</p>
<p><strong>Highlight Source Pro</strong><a title="Highlight Source Pro" href="http://blog.kno.at/tools/highlight-source-pro" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="Highlight Source Pro" style="margin: 0 3px;padding: 0;border: none;" /></a>和<strong>WP-Syntax</strong><a title="WP-Syntax" href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="WP-Syntax" style="margin: 0 3px;padding: 0;border: none;" /></a>有点类似，使用pre标签，每行代码短还好，代码一长，滚动条就出来了，有点破坏整体风格，虽然有些人可能喜欢滚动条。</p>
<p>暂时先用着WP-Syntax了，毕竟用到代码的地方并不是很多，有空再去网上找找其他的高亮插件了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/highlight_code.cat/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>优化SQL Server的内存占用之执行缓存</title>
		<link>http://www.makumo.com/sql_procedure_cache.cat</link>
		<comments>http://www.makumo.com/sql_procedure_cache.cat#comments</comments>
		<pubDate>Wed, 12 Nov 2008 07:06:26 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.makumo.com/?p=134</guid>
		<description><![CDATA[（转载以便日后查找，原作者实在没找到是谁，不过还是很感谢作者）
在论坛上常见有朋友抱怨，说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成：数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用缓存一般相对变化不大，则我们进行内存调优的主要着眼点在数据缓存和执行缓存的控制上。本文主要介绍一下执行缓存的调优。数据缓存的调优将在另外的文章中介绍。
对于减少执行缓存的占用，主要可以通过使用参数化查询减少内存占用。
1、使用参数化查询减少执行缓存占用
我们通过如下例子来说明一下使用参数化查询对缓存占用的影响。为方便试验，我们使用了一台没有其它负载的SQL Server进行如下实验。下面的脚本循环执行一个简单的查询，共执行10000次。
　　首先，我们清空一下SQL Server已经占用的缓存：

1
dbcc freeproccache

　　然后，执行脚本：

1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @t datetime
SET @t = getdate&#40;&#41;
SET NOCOUNT ON
DECLARE @i INT, @count INT, @sql nvarchar&#40;4000&#41;
SET @i = 20000
WHILE @i &#38;lt;= 30000
BEGIN
    SET @sql = 'SELECT @count=count(*) FROM P_Order WHERE MobileNo = ' + cast&#40; @i AS varchar&#40;10&#41; &#41;
    EXEC sp_executesql [...]]]></description>
			<content:encoded><![CDATA[<p>（转载以便日后查找，原作者实在没找到是谁，不过还是很感谢作者）</p>
<p>在论坛上常见有朋友抱怨，说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成：数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用缓存一般相对变化不大，则我们进行内存调优的主要着眼点在数据缓存和执行缓存的控制上。本文主要介绍一下执行缓存的调优。数据缓存的调优将在另外的文章中介绍。</p>
<p>对于减少执行缓存的占用，主要可以通过使用参数化查询减少内存占用。</p>
<p><strong>1、使用参数化查询减少执行缓存占用</strong></p>
<p>我们通过如下例子来说明一下使用参数化查询对缓存占用的影响。为方便试验，我们使用了一台没有其它负载的SQL Server进行如下实验。下面的脚本循环执行一个简单的查询，共执行10000次。<br />
　　首先，我们清空一下SQL Server已经占用的缓存：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;">dbcc freeproccache</pre></td></tr></table></div>

<p>　　然后，执行脚本：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;">DECLARE @t datetime
<span style="color: #993333; font-weight: bold;">SET</span> @t <span style="color: #66cc66;">=</span> getdate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> NOCOUNT <span style="color: #993333; font-weight: bold;">ON</span>
DECLARE @i INT<span style="color: #66cc66;">,</span> @count INT<span style="color: #66cc66;">,</span> @sql nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">20000</span>
WHILE @i &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">30000</span>
BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> @sql <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'SELECT @count=count(*) FROM P_Order WHERE MobileNo = '</span> <span style="color: #66cc66;">+</span> cast<span style="color: #66cc66;">&#40;</span> @i <span style="color: #993333; font-weight: bold;">AS</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
    EXEC sp_executesql @sql <span style="color: #66cc66;">,</span>N<span style="color: #ff0000;">'@count INT OUTPUT'</span><span style="color: #66cc66;">,</span> @count OUTPUT
    <span style="color: #993333; font-weight: bold;">SET</span> @i <span style="color: #66cc66;">=</span> @i <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span>
END
PRINT DATEDIFF<span style="color: #66cc66;">&#40;</span> second<span style="color: #66cc66;">,</span> @t<span style="color: #66cc66;">,</span> current_timestamp <span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>输出：<br />
DBCC 执行完毕。如果 DBCC 输出了错误信息，请与系统管理员联系。<br />
11</p>
<p>使用了11秒完成10000次查询。</p>
<p>我们看一下SQL Server缓存中所占用的查询计划：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> Count<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span> CNT<span style="color: #66cc66;">,</span>sum<span style="color: #66cc66;">&#40;</span>size_in_bytes<span style="color: #66cc66;">&#41;</span> TotalSize <span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_cached_plans</pre></td></tr></table></div>

<p>查询结果：共有2628条执行计划缓存在SQL Server中。它们所占用的缓存达到：<br />
92172288字节 = 90012KB = 87 MB。<br />
<span id="more-134"></span><br />
我们也可以使用dbcc memorystatus 命令来检查SQL Server的执行缓存和数据缓存占用。执行结果如下：<br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo001.gif"><img class="alignnone size-medium wp-image-136" title="图示一" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo001.gif" alt="" width="250" height="147" /></a><br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo002.gif"><img class="alignnone size-medium wp-image-137" title="图示二" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo002.gif" alt="" width="186" height="155" /></a><br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo003.gif"><img class="alignnone size-medium wp-image-138" title="图示三" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo003.gif" alt="" width="179" height="82" /></a></p>
<p>执行缓存占用了90088KB，有2629个查询计划在缓存里，有1489页空闲内存（每页8KB）可以被数据缓存和其他请求所使用。</p>
<p>我们现在修改一下前面的脚本，然后重新执行一下dbcc freeproccache。再执行一遍修改后的脚本：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;">DECLARE @t datetime
<span style="color: #993333; font-weight: bold;">SET</span> @t <span style="color: #66cc66;">=</span> getdate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> NOCOUNT <span style="color: #993333; font-weight: bold;">ON</span>
DECLARE @i INT<span style="color: #66cc66;">,</span> @count INT<span style="color: #66cc66;">,</span> @sql nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">20000</span>
WHILE @i &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">30000</span>
BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> @sql <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'select @count=count(*) FROM P_Order WHERE MobileNo = @i'</span>
    EXEC sp_executesql @sql<span style="color: #66cc66;">,</span> N<span style="color: #ff0000;">'@count int output, @i int'</span><span style="color: #66cc66;">,</span> @count OUTPUT<span style="color: #66cc66;">,</span> @i
    <span style="color: #993333; font-weight: bold;">SET</span> @i <span style="color: #66cc66;">=</span> @i <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span>
END
PRINT DATEDIFF<span style="color: #66cc66;">&#40;</span> second<span style="color: #66cc66;">,</span> @t<span style="color: #66cc66;">,</span> current_timestamp <span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>输出：<br />
DBCC 执行完毕。如果 DBCC 输出了错误信息，请与系统管理员联系。<br />
1<br />
即这次只用1秒钟即完成了10000次查询。</p>
<p>我们再看一下sys.dm_exec_cached_plans中的查询计划：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> Count<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span> CNT<span style="color: #66cc66;">,</span>sum<span style="color: #66cc66;">&#40;</span>size_in_bytes<span style="color: #66cc66;">&#41;</span> TotalSize <span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_cached_plans</pre></td></tr></table></div>

<p>查询结果：共有4条执行计划被缓存。它们共占用内存： 172032字节 = 168KB。<br />
如果执行dbcc memorystatus，则得到结果：<br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo004.gif"><img class="alignnone size-medium wp-image-139" title="图示四" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo004.gif" alt="" width="250" height="145" /></a><br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo005.gif"><img class="alignnone size-medium wp-image-140" title="图示五" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo005.gif" alt="" width="175" height="142" /></a><br />
<a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo006.gif"><img class="alignnone size-medium wp-image-141" title="图示六" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo006.gif" alt="" width="170" height="71" /></a><br />
有<span style="font-family: Calibri;">12875</span>页空闲内存<span style="font-family: Calibri;">(</span>每页<span style="font-family: Calibri;">8KB)</span>可以被数据缓存所使用。</p>
<p>到这里，我们已经看到了一个反差相当明显的结果。在现实中，这个例子中的前者，正是经常被使用的一种执行SQL脚本的方式（例如：在程序中通过合并字符串方式拼成一条SQL语句，然后通过ADO.NET或者ADO方式传入SQL Server执行）。</p>
<p>解释一下原因：</p>
<p>我们知道，SQL语句在执行前首先将被编译并通过查询优化引擎进行优化，从而得到优化后的执行计划，然后按照执行计划被执行。对于整体相似、仅仅是参数不同的SQL语句，SQL Server可以重用执行计划。但对于不同的SQL语句，SQL Server并不能重复使用以前的执行计划，而是需要重新编译出一个新的执行计划。同时，SQL Server在内存足够使用的情况下，此时并不主动清除以前保存的查询计划（注：对于长时间不再使用的查询计划，SQL Server也会定期清理）。这样，不同的SQL语句执行方式，就将会大大影响SQL Server中存储的查询计划数目。如果限定了SQL Server最大可用内存，则过多无用的执行计划占用，将导致SQL Server可用内存减少，从而在执行查询时尤其是大的查询时与磁盘发生更多的内存页交换。如果没有限定最大可用内存，则SQL Server由于可用内存减少，从而会占用更多内存。</p>
<p>对此，我们一般可以通过两种方式实现参数化查询：一是尽可能使用存储过程执行SQL语句（这在现实中已经成为SQL Server DBA的一条原则），二是使用sp_executesql 方式执行单个SQL语句（注意不要像上面的第一个例子那样使用sp_executesql)。</p>
<p>在现实的同一个软件系统中，大量的负载类型往往是类似的，所区别的也只是每次传入的具体参数值的不同。所以使用参数化查询是必要和可能的。另外，通过这个例子我们也看到，由于使用了参数化查询，不仅仅是优化了SQL Server内存占用，而且由于能够重复使用前面被编译的执行计划，使后面的执行不需要再次编译，最终执行10000次查询总共只使用了1秒钟时间。</p>
<p><strong>2、检查并分析SQL Server执行缓存中的执行计划</strong></p>
<p>通过上面的介绍，我们可以看到SQL缓存所占用的内存大小。也知道了SQL Server执行缓存中的内容主要是各种SQL语句的执行计划。则要对缓存进行优化，就可以通过具体分析缓存中的执行计划，看看哪些是有用的、哪些是无用的执行计划来分析和定位问题。</p>
<p>通过查询DMV: sys.dm_exec_cached_plans,可以了解数据库中的缓存情况，包括被使用的次数、缓存类型、占用的内存大小等。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> usecounts<span style="color: #66cc66;">,</span> cacheobjtype<span style="color: #66cc66;">,</span> objtype<span style="color: #66cc66;">,</span>size_in_bytes<span style="color: #66cc66;">,</span> plan_handle <span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_cached_plans</pre></td></tr></table></div>

<p><a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo007.gif"><img class="alignnone size-full wp-image-142" title="图示七" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo007.gif" alt="" width="500" height="131" /></a></p>
<p>通过缓存计划的plan_handle可以查询到该执行计划详细信息，包括所对应的SQL语句：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> TOP <span style="color: #cc66cc;">100</span> usecounts<span style="color: #66cc66;">,</span>
    objtype<span style="color: #66cc66;">,</span>
    p<span style="color: #66cc66;">.</span>size_in_bytes<span style="color: #66cc66;">,</span>
    <span style="color: #66cc66;">&#91;</span>sql<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>text<span style="color: #66cc66;">&#93;</span>
<span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_cached_plans p
<span style="color: #993333; font-weight: bold;">OUTER</span> APPLY sys<span style="color: #66cc66;">.</span>dm_exec_sql_text <span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">.</span>plan_handle<span style="color: #66cc66;">&#41;</span> sql
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> usecounts</pre></td></tr></table></div>

<p><a href="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo008.gif"><img class="alignnone size-full wp-image-135" title="图示8" src="http://www.makumo.com/wp-content/uploads/2008/11/sqlmemo008.gif" alt="" width="500" height="159" /></a></p>
<p>我们可以选择针对那些执行计划占用较大内存、而被重用次数较少的SQL语句进行重点分析。看其调用方式是否合理。另外，也可以对执行计划被重复使用次数较多的SQL语句进行分析，看其执行计划是否已经经过优化。进一步，通过对查询计划的分析，还可以根据需要找到系统中最占用IO、CPU时间、执行次数最多的一些SQL语句，然后进行相应的调优分析。篇幅所限，这里不对此进行过多介绍。读者可以查阅联机丛书中的：sys.dm_exec_query_plan内容得到相关帮助。</p>
<p>附：<br />
1:关于DBCC MEMORY，可以查看微软的知识库: <a href="http://support.microsoft.com/kb/907877/EN-US2">http://support.microsoft.com/kb/907877/EN-US</a><br />
2:关于sys.dm_exec_cached_plans和sys.dm_exec_sql_text，请参阅联机丛书。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/sql_procedure_cache.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web 前端优化最佳实践之内容篇[转]</title>
		<link>http://www.makumo.com/best_practices_for_speeding_up_your_web_site_content.cat</link>
		<comments>http://www.makumo.com/best_practices_for_speeding_up_your_web_site_content.cat#comments</comments>
		<pubDate>Fri, 27 Jun 2008 13:21:24 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[页面设计]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.makumo.com/2008/06/best_practices_for_speeding_up_your_web_site_content.html</guid>
		<description><![CDATA[（朋友发给我的，觉得很不错就转到这来了，方便随时查看。）
Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则也由 13 条到 14 条，再到 20 条，乃至现在的 34 条&#8211;真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。
面向内容的优化规则目前有 10 条。
1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests)
作为第一条，可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析，有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求：
    * 1) 合并文件，比如把多个 CSS 文件合成一个；
    * 2) CSS Sprites 利用 CSS background 相关元素进行背景图绝对定位；参见：CSS Sprites: Image Slicing&#8217;s Kiss of Death
    * 3) 图像地图
    * 4) [...]]]></description>
			<content:encoded><![CDATA[<p>（朋友发给我的，觉得很不错就转到这来了，方便随时查看。）</p>
<p>Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则也由 13 条到 14 条，再到 20 条，乃至现在的 34 条&#8211;真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。</p>
<p>面向内容的优化规则目前有 10 条。</p>
<p>1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests)</p>
<p>作为第一条，可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析，有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求：<br />
    * 1) 合并文件，比如把多个 CSS 文件合成一个；<br />
    * 2) CSS Sprites 利用 CSS background 相关元素进行背景图绝对定位；参见：CSS Sprites: Image Slicing&#8217;s Kiss of Death<br />
    * 3) 图像地图<br />
    * 4) 内联图象 使用 data: URL scheme 在实际的页面嵌入图像数据.</p>
<p>2. 减少 DNS 查找 (Reduce DNS Lookups)</p>
<p>必须明确的一点，DNS 查找的开销是很大的。另外，我倒是觉得这是 Yahoo! 所有站点的通病，Yahoo！主站点可能还不够明显，一些分站点，存在明显的类似问题。对于国内站点来说，如果过多的使用了站外的 Widget ，也很容易引起过多的 DNS 查找问题。</p>
<p>3. 避免重定向 (Avoid Redirects)</p>
<p>不是绝对的避免，尽量减少。另外，应该注意一些不必要的重定向。比如对 Web 站点子目录的后面添加个 / (Slash) ，就能有效避免一次重定向。http://www.dbanotes.net/arch 与 http://www.dbanotes.net/arch/ 二者之间是有差异的。如果是 Apache 服务器，通过配置 Alias 或mod_rewrite 或是 DirectorySlash 能够消除这个问题。</p>
<p>4. 使得 Ajax 可缓存 (Make Ajax Cacheable)</p>
<p>响应时间对 Ajax 来说至关重要，否则用户体验绝对好不到哪里去。提高响应时间的有效手段就是 Cache 。其它的一些优化规则对这一条也是有效的。</p>
<p>5. 延迟载入组件 (Post-load Components)</p>
<p>6. 预载入组件 (Preload Components)</p>
<p>上面两条严格说来，都是属于异步这个思想灵活运用的事儿。</p>
<p>7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)</p>
<p>8. 切分组件到多个域 (Split Components Across Domains)</p>
<p>主要的目的是提高页面组件并行下载能力。但不要跨太多域名，否则就和第二条有些冲突了。</p>
<p>9. 最小化 iframe 的数量 (Minimize the Number of iframes)</p>
<p>熟悉 SEO 的朋友知道 iframe 是 SEO 的大忌。针对前端优化来说 iframe 有其好处，也有其弊端，一分为二看问题吧。</p>
<p>10. 杜绝 http 404 错误 (No 404s)</p>
<p>对页面链接的充分测试加上对 Web 服务器 error 日志的不断跟踪能有效减少 404 错误，亦能提升用户体验。值得一提的是，CSS 与 Java Script 引起的 404 错误因为定位稍稍&#8221;难&#8221;一点而往往容易被忽略。</p>
<p>这是内容篇的 10 条。应该说具体引导性的内容还不够详细。逐渐会根据自己的理解补充上来。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/best_practices_for_speeding_up_your_web_site_content.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小窍门：如何不让别人使用自己电脑某个软件</title>
		<link>http://www.makumo.com/knack_1.cat</link>
		<comments>http://www.makumo.com/knack_1.cat#comments</comments>
		<pubDate>Wed, 24 Oct 2007 06:14:48 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[小窍门]]></category>
		<category><![CDATA[窍门]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/10/knack_1.html</guid>
		<description><![CDATA[如果不想让别人使用某个软件，只要在其安装目录下新建一个文件名为ws2_32.dll的文件，这样系统就会以文件出错误而禁止运行。
本方法适用基于NT系统的WinXP，Win2000，Win2003！Win98没有试，用的时候再删除该文件就是。想在自己电脑上禁止朋友玩游戏，又不能让人看出来是故意的（电脑出现蓝屏的原因），这招就够绝的。比如：qq，我的qq放在d:\qq\里面，你可以把我说的文件放在这个里面就ok了，不过自己用的时候记得一定要删除，不然也是上不去的。
原理：当程序试图访问网络的时候，首先调用ws2_32.dll这个动态链接库！但一般蓝屏代码0&#215;000000f4程序有个问题就是先找自己目录下面有没有这个文件，有个话就调用自己目录下面的！否则的话就调用WIN目录下面的。
DLL文件：ws2_32或者ws2_32.dll DLL
名称：WinSock2.032bit
描述： ws2_32.dll是WindowsSocket蓝屏死机s应用程序接口，用于支持Internet和网络应用程序。
]]></description>
			<content:encoded><![CDATA[<p>如果不想让别人使用某个软件，只要在其安装目录下新建一个文件名为ws2_32.dll的文件，这样系统就会以文件出错误而禁止运行。<br />
本方法适用基于NT系统的WinXP，Win2000，Win2003！Win98没有试，用的时候再删除该文件就是。想在自己电脑上禁止朋友玩游戏，又不能让人看出来是故意的（电脑出现蓝屏的原因），这招就够绝的。比如：qq，我的qq放在d:\qq\里面，你可以把我说的文件放在这个里面就ok了，不过自己用的时候记得一定要删除，不然也是上不去的。</p>
<p>原理：当程序试图访问网络的时候，首先调用ws2_32.dll这个动态链接库！但一般蓝屏代码0&#215;000000f4程序有个问题就是先找自己目录下面有没有这个文件，有个话就调用自己目录下面的！否则的话就调用WIN目录下面的。</p>
<p>DLL文件：ws2_32或者ws2_32.dll DLL<br />
名称：WinSock2.032bit<br />
描述： ws2_32.dll是WindowsSocket蓝屏死机s应用程序接口，用于支持Internet和网络应用程序。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/knack_1.cat/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>redhat9下安装 MySQL5+Apache2+php5[转]</title>
		<link>http://www.makumo.com/redhat9_m_a_p.cat</link>
		<comments>http://www.makumo.com/redhat9_m_a_p.cat#comments</comments>
		<pubDate>Mon, 06 Aug 2007 05:30:54 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/08/redhat9%e4%b8%8b%e5%ae%89%e8%a3%85-mysql5apache2php5%e8%bd%ac.html</guid>
		<description><![CDATA[（正在研究LINUX，寻找了点资料，大家一起分享。）
准备工作： 下载安装文件mysql-standard-5.0.27-linux-i686.tar.gz、httpd-2.2.3.tar.gz、php-5.2.0.tar.gz ，并把它们放在/usr/local/src/ 文件夹里。
一、安装MySQL5
  
1、 在 /usr/local/  里建立 mysql 文件夹。
   # cd /usr/local
   # mkdir mysql
 
2、在 mysql 文件夹里解压文件( 这样解压出的文件夹就是当前文件夹下面 )。
   # cd mysql
   # tar -zxfz  /usr/local/src/mysql-standard-5.0.27-linux-i686.tar.gz
   # ln -s mysql mysql-standard-5.0.27-linux-i686 
//为文件夹 mysql-standard-5.0.27-linux-i686 建立快捷方式。
 
3、# groupadd mysql   
// 建立mysql组
   # useradd mysql -g mysql 
//建立mysql用户并且加入到mysql组中 
 
4、# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf  
//在 support-files目录下有4个模版文件，我们选择其中一个座位Mysql的配置文件，覆盖/etc/my.cnf(系统默认的配置，其中设置了性能参数和Mysql的一些路径参数)。
 
5、# ./scripts/mysql_install_db &#8211;user=mysql    
//初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限。
 
6、# chown -R root .    
 //设定root能访问/usr/local/mysql ( 注意root 后面有一个空格和点)。
 
7、 # [...]]]></description>
			<content:encoded><![CDATA[<p>（正在研究LINUX，寻找了点资料，大家一起分享。）</p>
<p><strong>准备工作</strong>： 下载安装文件mysql-standard-5.0.27-linux-i686.tar.gz、httpd-2.2.3.tar.gz、php-5.2.0.tar.gz ，并把它们放在/usr/local/src/ 文件夹里。<br />
<strong>一、安装MySQL5<br />
</strong>  <br />
1、 在 /usr/local/  里建立 mysql 文件夹。<br />
   # cd /usr/local<br />
   # mkdir mysql<br />
 <br />
2、在 mysql 文件夹里解压文件( 这样解压出的文件夹就是当前文件夹下面 )。<br />
   # cd mysql<br />
   # tar -zxfz  /usr/local/src/mysql-standard-5.0.27-linux-i686.tar.gz<br />
   # ln -s mysql mysql-standard-5.0.27-linux-i686 <br />
//为文件夹 mysql-standard-5.0.27-linux-i686 建立快捷方式。<br />
 <br />
3、# groupadd mysql   <br />
// 建立mysql组<br />
   # useradd mysql -g mysql <br />
//建立mysql用户并且加入到mysql组中 <br />
 <br />
4、# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf  <br />
//在 support-files目录下有4个模版文件，我们选择其中一个座位Mysql的配置文件，覆盖/etc/my.cnf(系统默认的配置，其中设置了性能参数和Mysql的一些路径参数)。<br />
 <br />
5、# ./scripts/mysql_install_db &#8211;user=mysql    <br />
//初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限。<br />
 <br />
6、# chown -R root .    <br />
 //设定root能访问/usr/local/mysql ( 注意root 后面有一个空格和点)。<br />
 <br />
7、 # chown -R mysql data     <br />
//设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置，在mysql_install_db时产生。<br />
 <br />
8、# chown -R mysql data/.    <br />
//设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件<br />
 <br />
9、# chgrp -R mysql .      <br />
//设定mysql组能够访问/usr/local/mysql<br />
 <br />
10、# /usr/local/mysql/bin/mysqld_safe &#8211;user=mysql &amp;     <br />
//运行mysql,如果没有问题的话,应该会出现类似这样的提示:[1] 42264<br />
   # Starting mysqld daemon with databases from /usr/local/mysql/var    <br />
//如果出现 mysql ended这样的语句，表示Mysql没有正常启动，你可以到log中查找问题，Log文件的通常在/etc/my.cnf中配置。大多数问题是权限设置不正确引起的。<br />
 <br />
11、# /usr/local/mysql/bin/mysqladmin -u root password yourpassword    <br />
//默认安装密码为空，为了安全你必须马上修改.<br />
 <br />
12、# cp support-files/mysql.server /etc/rc.d/init.d/mysqld     <br />
//copy编译目录的一个脚本<br />
   # chmod 700 /etc/init.d/mysqld    <br />
//设置使mysql每次启动都能自动运行<br />
   # chkconfig &#8211;add mysqld<br />
   # chkconfig &#8211;level 345 mysqld on<br />
 <br />
13、# service mysqld start    <br />
//启动mysqld服务<br />
   # netstat -atln     <br />
//查看3306端口是否打开。要注意在防火墙中开放该端口。<br />
  <br />
<strong>二、安装apache2</strong><br />
  <br />
1、解压文件<br />
   # cd /usr/local <br />
   # tar -zxvf /usr/local/srchttpd-2.2.3.tar.gz<br />
 <br />
2、安装<br />
   # cd httpd-2.2.3<br />
   # ./configure &#8211;prefix=/usr/local/apache &#8211;enable-track-vars &#8211;enable-cgi &#8211;enable-so &#8211;enable-rewrite &#8211;enable-mods-shared=all &#8211;with-config-file-path=/usr/local/apache/conf<br />
   # make<br />
   # make install<br />
 <br />
3、启动<br />
   # /usr/local/apache/bin/apachectl start<br />
   # netstat -utl   //并检查是否启动<br />
 <br />
4、把apache加入开机启动，把下面这一行加入到/etc/rc.local中。<br />
   /usr/local/apache/bin/apachectl start<br />
  <br />
<strong>三、安装php5<br />
</strong>  <br />
请先安装libxml，2.6.10以上版本的。</p>
<p>1、# cd /usr/local<br />
   # tar -zvxf /usr/local/src/php-5.2.0.tar.gz <br />
   # cd php-5.2.0<br />
 <br />
2、# ./configure &#8211;prefix=/usr/local/php &#8211;with-mysql &#8211;with-apxs2=/usr/local/apache/bin/apxs<br />
&#8211;enable-trace-vars &#8211;with-zlib-dir=/soft/zlib-1.2.3/<br />
 <br />
3、 # make; make install<br />
 <br />
4、拷贝PHP配置文件php.ini:<br />
   # cp ../php5.2.0/php.ini-dist /usr/local/php/lib/php.ini<br />
 <br />
5、添加php类型<br />
   # vi /usr/local/apache/conf/httpd.conf<br />
   AddType application/x-httpd-php .php (230行左右)<br />
 <br />
6、重启<br />
   # /usr/local/apache/bin/apachectl stop<br />
   # /usr/local/apache/bin/apachectl start<br />
 <br />
7、测试<br />
   # cd /usr/local/apache/htdocs<br />
   # vi test.php<br />
   &lt;?php<br />
      phpinfo();<br />
   ?&gt;<br />
最后输入 http://<font color="#000000">您的地址</font>/test.php 测试</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/redhat9_m_a_p.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera的鼠标手势</title>
		<link>http://www.makumo.com/opera_mouse_gestures.cat</link>
		<comments>http://www.makumo.com/opera_mouse_gestures.cat#comments</comments>
		<pubDate>Tue, 24 Jul 2007 04:04:07 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[计算机]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[鼠标手势]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/07/opera_mouse_gestures.html</guid>
		<description><![CDATA[周末帮朋友配台电脑，回来无事中，看朋友新机用的不亦乐乎，也过去凑个热闹。看朋友时不时在Maxthon浏览器上用鼠标画着“L”，一问才知道原来是鼠标手势。又火星了一把，连忙回到自己电脑上研究下，发现自己的Firefox再不知什么时候已经装了鼠标手势的插件，用起来还是很舒服的，方便呀。
今天上班，习惯打开Opera，突然想到这个有没有鼠标手势的，试了下，没有预想的效果。心想这么方便的功能不应该没有呀，在设置里面找了半天，没有找到（我用的是英文版的，Opera中文菜单显示的超级难看）。上网查了下资料，还是有的。具体在“工具－首选项－高级－快捷方式”下面，英文的是“Tools &#8211; Preferences &#8211; Advanced &#8211; Shortcuts”下面，钩选“启用鼠标手势”（Enable mouse gestures），使用默认方案就可以了，想调整的话可以双击下面方案调整。详细可以看Opera的帮助文档
感觉Opera的鼠标手势不像Maxthon和Firefox可以在屏幕上画出鼠标轨迹和提示，除非记得每个手势，要不很容易误操作
另外，鼠标手势是Opera发明的一种特色功能，至于Myie/Maxthon的鼠标手势功能那都是参考了Opera而来的。
]]></description>
			<content:encoded><![CDATA[<p>周末帮朋友配台电脑，回来无事中，看朋友新机用的不亦乐乎，也过去凑个热闹。看朋友时不时在Maxthon浏览器上用鼠标画着“L”，一问才知道原来是鼠标手势。又火星了一把，连忙回到自己电脑上研究下，发现自己的Firefox再不知什么时候已经装了鼠标手势的插件，用起来还是很舒服的，方便呀。</p>
<p>今天上班，习惯打开Opera，突然想到这个有没有鼠标手势的，试了下，没有预想的效果。心想这么方便的功能不应该没有呀，在设置里面找了半天，没有找到（我用的是英文版的，Opera中文菜单显示的超级难看）。上网查了下资料，还是有的。具体在“工具－首选项－高级－快捷方式”下面，英文的是“Tools &#8211; Preferences &#8211; Advanced &#8211; Shortcuts”下面，钩选“启用鼠标手势”（Enable mouse gestures），使用默认方案就可以了，想调整的话可以双击下面方案调整。详细可以看Opera的<a target="_blank" href="http://help.opera.com/Windows/9.01/zh-cn/mouse.html">帮助文档</a></p>
<p>感觉Opera的鼠标手势不像Maxthon和Firefox可以在屏幕上画出鼠标轨迹和提示，除非记得每个手势，要不很容易误操作</p>
<p>另外，鼠标手势是Opera发明的一种特色功能，至于Myie/Maxthon的鼠标手势功能那都是参考了Opera而来的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/opera_mouse_gestures.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多引擎病毒扫描网站VirusTotal</title>
		<link>http://www.makumo.com/virustotal.cat</link>
		<comments>http://www.makumo.com/virustotal.cat#comments</comments>
		<pubDate>Tue, 10 Jul 2007 02:25:27 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[病毒安全]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[病毒]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/07/virustotal.html</guid>
		<description><![CDATA[当朋友传给你文件，而你又不能确定文件的安全的时候，尤其是你需要这个文件但机器上又没有很好或者最新病毒库的杀毒软件，你会怎么处理？拒绝接受还是先使用再说？Virustotal可以帮你解决这个问题。（感觉怎么说都像是在做广告=。=语言这个东西还是要靠积累呀！）
Virustotal是一项分析可疑文件和便利快速探测病毒,蠕虫,木马和各类被反病毒引擎所能探测的恶意软件的服务，目前是25个病毒引擎，详细参看分析结果列表。当然他是免费的，所以只能帮你分析，不能帮你去处，你可以根据分析结果来决定如何处理这个文件。
首先当然是进入VirusTotal站点，网址是：www.virustotal.com。这是个国外站点，不过页面很简单，不会英文也会使用^^
点击右上“浏览”选取需要扫描的文件后点击“Send”按钮。只能单个文件分析，如果有多个文件请打包。如图：

显示文件上传中，请稍等，文件越大时间越长。如图：

如果使用人数比较多，会提示文件正在排队中，以及排队时间，如图：

分析中，依次使用多个病毒引擎进行分析，时间比较长，可以先做其他事情。如图：

分析结果以及文件基本信息。如图：

除了直接使用网站，还可以使用VirusTotal Uploader。这是一款官方提供的只有几十k的小插件。安装了它以后你只需对要检查的文件右键–&#62;发送到-&#62;VirusTotal就可以了，很方便。如果使用的是Firefox，你还可以使用VirusTotal的Firefox插件。
同类型的网站还有Jotti、Virus.Org等等，使用起来大同小异，就不多叙述了。
PS：图片宽度一超过500，版面就乱了=。=无奈只有缩小点了，可能看不清楚。不知道有没有只自动截断图片超出范围部分的插件，自己先找找再说。
]]></description>
			<content:encoded><![CDATA[<p>当朋友传给你文件，而你又不能确定文件的安全的时候，尤其是你需要这个文件但机器上又没有很好或者最新病毒库的杀毒软件，你会怎么处理？拒绝接受还是先使用再说？<a target="_blank" href="http://www.virustotal.com">Virustotal</a>可以帮你解决这个问题。（感觉怎么说都像是在做广告=。=语言这个东西还是要靠积累呀！）</p>
<p>Virustotal是一项分析可疑文件和便利快速探测病毒,蠕虫,木马和各类被反病毒引擎所能探测的恶意软件的服务，目前是25个病毒引擎，详细参看分析结果列表。当然他是免费的，所以只能帮你分析，不能帮你去处，你可以根据分析结果来决定如何处理这个文件。</p>
<p>首先当然是进入VirusTotal站点，网址是：<a target="_blank" href="http://www.virustotal.com">www.virustotal.com</a>。这是个国外站点，不过页面很简单，不会英文也会使用^^<br />
点击右上“浏览”选取需要扫描的文件后点击“Send”按钮。只能单个文件分析，如果有多个文件请打包。如图：<br />
<img width="500" src="/wp-content/uploads/2007/07/VirusTotal_1.jpg" height="49" style="width: 500px; height: 49px" /></p>
<p>显示文件上传中，请稍等，文件越大时间越长。如图：<br />
<img src="/wp-content/uploads/2007/07/VirusTotal_2.jpg" style="width: 500px; height: 51px" /></p>
<p>如果使用人数比较多，会提示文件正在排队中，以及排队时间，如图：<br />
<img src="/wp-content/uploads/2007/07/VirusTotal_3.jpg" style="width: 500px; height: 36px" /></p>
<p>分析中，依次使用多个病毒引擎进行分析，时间比较长，可以先做其他事情。如图：<br />
<img src="/wp-content/uploads/2007/07/VirusTotal_4.jpg" style="width: 500px; height: 81px" /></p>
<p>分析结果以及文件基本信息。如图：<br />
<img src="/wp-content/uploads/2007/07/VirusTotal_5.jpg" style="width: 500px; height: 376px" /><br />
除了直接使用网站，还可以使用<strong>VirusTotal Uploader</strong><a title="VirusTotal Uploader" href="http://www.virustotal.com/vtsetup.exe" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="VirusTotal Uploader" style="margin: 0 3px;padding: 0;border: none;" /></a>。这是一款官方提供的只有几十k的小插件。安装了它以后你只需对要检查的文件右键–&gt;发送到-&gt;VirusTotal就可以了，很方便。如果使用的是Firefox，你还可以使用VirusTotal的<strong>Firefox插件</strong><a title="Firefox插件" href="https://addons.mozilla.org/en-US/firefox/addon/4451" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="Firefox插件" style="margin: 0 3px;padding: 0;border: none;" /></a>。</p>
<p>同类型的网站还有<a target="_blank" href="http://virusscan.jotti.org/">Jotti</a>、<a target="_blank" href="http://scanner.virus.org/">Virus.Org</a>等等，使用起来大同小异，就不多叙述了。</p>
<p>PS：图片宽度一超过500，版面就乱了=。=无奈只有缩小点了，可能看不清楚。不知道有没有只自动截断图片超出范围部分的插件，自己先找找再说。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/virustotal.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>图片分辨率闹出来的笑话</title>
		<link>http://www.makumo.com/joke_pixel_inch.cat</link>
		<comments>http://www.makumo.com/joke_pixel_inch.cat#comments</comments>
		<pubDate>Tue, 03 Jul 2007 03:02:52 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[心情点滴]]></category>
		<category><![CDATA[页面设计]]></category>
		<category><![CDATA[分辨率]]></category>
		<category><![CDATA[图形处理]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/07/joke_pixel_inch.html</guid>
		<description><![CDATA[搬家免不了的要去电信办电话和ADSL的移机，正巧朋友在电信工作，也免得自己跑营业大厅了。但是还有身份证的问题，这个也简单，中午扫描了下身份证，传给我朋友，就等着上门检测线路了。谁知没过多久朋友一个电话就打来了“打印不行呀，整一A4纸大的身份证！！”我一听顿时瀑布汗……，连忙问用什么软件打印的，朋友说是系统自带的“图片和传真查看器”，自己试了下，只有默认的几种打印格式，没法调原始或者其他的，问朋友有没有其他的，他说有ACDSEE，但是按打印，打印机没有反映。我连忙在自己着试了下，同样A4大小的身份证，感觉像是通缉犯=。=，上网查了下资料，原来是分辨率的原因，扫描的图片默认一般是300像素/英寸，调到72像素/英寸就差不多了。于是说调就调，调好后发给朋友，过了会，朋友说到好象小了点。小了点？那没关系，改96像素/英寸试试，发过去后朋友说差不多了。
说到打印图片，方法有很多，再没有装任何图形处理软件的情况下用系统自带的画图板、WORD、IE都可以做到打印图片。系统自带的图片查看器就PASS了，除了固定几种尺寸，基本打出来的都是满A4的图片……
]]></description>
			<content:encoded><![CDATA[<p>搬家免不了的要去电信办电话和ADSL的移机，正巧朋友在电信工作，也免得自己跑营业大厅了。但是还有身份证的问题，这个也简单，中午扫描了下身份证，传给我朋友，就等着上门检测线路了。谁知没过多久朋友一个电话就打来了“打印不行呀，整一A4纸大的身份证！！”我一听顿时瀑布汗……，连忙问用什么软件打印的，朋友说是系统自带的“图片和传真查看器”，自己试了下，只有默认的几种打印格式，没法调原始或者其他的，问朋友有没有其他的，他说有ACDSEE，但是按打印，打印机没有反映。我连忙在自己着试了下，同样A4大小的身份证，感觉像是通缉犯=。=，上网查了下资料，原来是分辨率的原因，扫描的图片默认一般是300像素/英寸，调到72像素/英寸就差不多了。于是说调就调，调好后发给朋友，过了会，朋友说到好象小了点。小了点？那没关系，改96像素/英寸试试，发过去后朋友说差不多了。</p>
<p>说到打印图片，方法有很多，再没有装任何图形处理软件的情况下用系统自带的画图板、WORD、IE都可以做到打印图片。系统自带的图片查看器就PASS了，除了固定几种尺寸，基本打出来的都是满A4的图片……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/joke_pixel_inch.cat/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>让DIV里面的文字垂直居中</title>
		<link>http://www.makumo.com/div_middle.cat</link>
		<comments>http://www.makumo.com/div_middle.cat#comments</comments>
		<pubDate>Thu, 21 Jun 2007 00:49:33 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[页面设计]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DIV]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/06/div_middle.html</guid>
		<description><![CDATA[之前在做DIV+CSS的页面中经常遇到这种问题，虽然可以用定高以及DIV的位置解决，但是遇到文字内容不固定就比较头痛。今天无意中看到篇文章说到这点，转录如下：

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.con_div&#123; 
  width:440px; 
  height:300px; 
  border:1px solid #777; 
  text-align:center; 
  display:table-cell; 
  vertical-align:middle; 
  background:red; 
  color:#fff 
&#125; 
/*FOR IE*/ 
.fixie&#123; 
  width:0; 
  height:100%; 
  display:inline-block; 
  vertical-align:middle; 
&#125;


17
&#60;div class=&#34;con_div&#34;&#62;测试内容&#60;/div&#62;

 
看来还是要找些CSS的书来看下
]]></description>
			<content:encoded><![CDATA[<p>之前在做DIV+CSS的页面中经常遇到这种问题，虽然可以用定高以及DIV的位置解决，但是遇到文字内容不固定就比较头痛。今天无意中看到篇文章说到这点，转录如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.con_div</span><span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">440px</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">300px</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #3333ff;">:table-</span>cell<span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">red</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span> 
<span style="color: #00AA00;">&#125;</span> 
<span style="color: #808080; font-style: italic;">/*FOR IE*/</span> 
<span style="color: #6666ff;">.fixie</span><span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #3333ff;">:inline-</span>block<span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span> 
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>17
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;div class=&quot;con_div&quot;&gt;测试内容&lt;/div&gt;</pre></td></tr></table></div>

<p> <br />
看来还是要找些CSS的书来看下</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/div_middle.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>coolcode——在wordpress中插入源代码</title>
		<link>http://www.makumo.com/wordpress_coolcode.cat</link>
		<comments>http://www.makumo.com/wordpress_coolcode.cat#comments</comments>
		<pubDate>Mon, 18 Jun 2007 09:34:57 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[coolcode]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/06/wordpress_coolcode.html</guid>
		<description><![CDATA[之前写过几片包含部分源代码文章，由于不知道如何在wordpress中正确显示源代码，就直接换个颜色，当普通文本编辑了。不过总觉的很别扭，虽然和正文的颜色不同，看上去还是一团团的，分不清那个是那个。老办法，GOOGLE下，网上资源还是很丰富的啦。
先是找到一个叫 Syntax Highlighter &#8211; php Beautifier 的插件 不过作者的页面好象被删除了，找不到具体的下载地址，继续搜索发现了一个叫 CoolCode 的插件，这里有详细的使用说明和下载，就不在文中引用了，下载安装后感觉不错，很清楚的高亮着色显示代码。
例子如下（这个是Hello, Dolly中的一段代码）：
（更新版本、模板后coolcode显示错位了。。。调了半天也没调好，无奈放弃了。2008-11-12注）
]]></description>
			<content:encoded><![CDATA[<p>之前写过几片包含部分源代码文章，由于不知道如何在wordpress中正确显示源代码，就直接换个颜色，当普通文本编辑了。不过总觉的很别扭，虽然和正文的颜色不同，看上去还是一团团的，分不清那个是那个。老办法，GOOGLE下，网上资源还是很丰富的啦。<br />
先是找到一个叫 <strong>Syntax Highlighter &#8211; php Beautifier</strong><a title="Syntax Highlighter - php Beautifier" href="http://scott.yang.id.au/project/phphighlighter/" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="Syntax Highlighter - php Beautifier" style="margin: 0 3px;padding: 0;border: none;" /></a> 的插件 不过作者的页面好象被删除了，找不到具体的下载地址，继续搜索发现了一个叫 <strong>CoolCode</strong><a title="CoolCode" href="http://www.coolcode.cn/andot/wordpress-plugin-coolcode/26" target="_blank"><img src="http://www.makumo.com/wp-content/plugins/name-homepage/external.png" alt="CoolCode" style="margin: 0 3px;padding: 0;border: none;" /></a> 的插件，<a href="http://www.coolcode.cn/andot/wordpress-plugin-coolcode/26" target="_blank">这里</a>有详细的使用说明和下载，就不在文中引用了，下载安装后感觉不错，很清楚的高亮着色显示代码。<br />
例子如下（这个是Hello, Dolly中的一段代码）：</p>
<p>（更新版本、模板后coolcode显示错位了。。。调了半天也没调好，无奈放弃了。2008-11-12注）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/wordpress_coolcode.cat/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>K2的树型分类显示</title>
		<link>http://www.makumo.com/k2_categories_tree.cat</link>
		<comments>http://www.makumo.com/k2_categories_tree.cat#comments</comments>
		<pubDate>Mon, 18 Jun 2007 04:58:54 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[K2]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/06/k2_categories_tree.html</guid>
		<description><![CDATA[今天在一个二级分类里加了篇文章，回到首页发现侧边栏的文章分类变的乱七八糟了，试着自己调整下未果，于是乎祭起GOOGLE法器。参考了 肚破惊天 和 懶懶喵 的两篇相关文章，在wp_list_cats()中加上hierarchical=1，终于搞定。转摘如下：
wp_list_cats()各個自設選項列表如下，中间用连接符&#38;连接
sort_column
ID 或 name，预设为 ‘ID
分别为依 ID 值或分类名称排序
sort_order
asc 或 desc，预设为递增 asc
排序递增或递减
list
0 或 1，预设为以清单方式显示： 1
设定是否以清单方式显示
将会在分类上加上&#60;ul&#62; &#60;li&#62;
optiondates
0 或 1，预设为不显示： 0
设定是否显示每个分类下最新发表文章的发表日期
optioncount
0 或 1，预设为不显示： 0
是否显示分类所拥有的文章计数
hide_empty
0 或 1，预设为隐藏： 1
设定是否隐藏无文章的分类
use_desc_for_title
0 或 1，预设为显示成分类说明： 1
设定分类连结的title是否显示为分类说明
&#60;a title=&#8221;分类说明&#8221; href=&#8221;…&#62;
children
0 或 1，预设为显示： 1
是否显示子分类
hierarchical
0 或 1，预设为层级方式显示： 1
子分类是否以层级方式显示
child_of
无默认值
只显示某项分类（ID）的子分类
child_of=分类ID值
有设定此项目的话，hide_empty要设为0
exclude
无默认值
设定不要显示的分类ID，可为复数
如 exclude=ID1,ID2,ID3,…..
feed
无默认值
设定分类 RSS 的显示文字
如 feed=RSS
如果这个项目有设定的话，分类之后将会显示分类Feed的连结
feed_image
无默认值
设定分类 RSS 的图片路径
如 feed=images/rss.gif
如果同时有设定 feed_image 与 feed，则将以 feed_image 为主
还要在k2的style.css里加一段代码，先找到sytle.css里的这段代码

1
2
3
4
/*- Sidebar Subpages Menu */
.sb-pagemenu ul &#123;
margin-left: 10px;
&#125;

在/*- [...]]]></description>
			<content:encoded><![CDATA[<p>今天在一个二级分类里加了篇文章，回到首页发现侧边栏的文章分类变的乱七八糟了，试着自己调整下未果，于是乎祭起GOOGLE法器。参考了 <a target="_blank" href="http://pute.net.ru/post/18">肚破惊天</a> 和 <a target="_blank" href="http://blog.nahoya.com/archives/2006_04/105">懶懶喵</a> 的两篇相关文章，在wp_list_cats()中加上hierarchical=1，终于搞定。转摘如下：</p>
<p>wp_list_cats()各個自設選項列表如下，中间用连接符&amp;连接</p>
<blockquote><p><strong>sort_column<br />
</strong>ID 或 name，预设为 ‘ID<br />
分别为依 ID 值或分类名称排序</p>
<p><strong>sort_order<br />
</strong>asc 或 desc，预设为递增 asc<br />
排序递增或递减</p>
<p><strong>list<br />
</strong>0 或 1，预设为以清单方式显示： 1<br />
设定是否以清单方式显示<br />
将会在分类上加上&lt;ul&gt; &lt;li&gt;</p>
<p><strong>optiondates<br />
</strong>0 或 1，预设为不显示： 0<br />
设定是否显示每个分类下最新发表文章的发表日期<br />
<strong>optioncount<br />
</strong>0 或 1，预设为不显示： 0<br />
是否显示分类所拥有的文章计数</p>
<p><strong>hide_empty<br />
</strong>0 或 1，预设为隐藏： 1<br />
设定是否隐藏无文章的分类</p>
<p><strong>use_desc_for_title<br />
</strong>0 或 1，预设为显示成分类说明： 1<br />
设定分类连结的title是否显示为分类说明<br />
&lt;a title=&#8221;分类说明&#8221; href=&#8221;…&gt;</p>
<p><strong>children</strong><br />
0 或 1，预设为显示： 1<br />
是否显示子分类</p>
<p><strong>hierarchical<br />
</strong>0 或 1，预设为层级方式显示： 1<br />
子分类是否以层级方式显示</p>
<p><strong>child_of<br />
</strong>无默认值<br />
只显示某项分类（ID）的子分类<br />
child_of=分类ID值<br />
有设定此项目的话，hide_empty要设为0</p>
<p><strong>exclude<br />
</strong>无默认值<br />
设定不要显示的分类ID，可为复数<br />
如 exclude=ID1,ID2,ID3,…..</p>
<p><strong>feed<br />
</strong>无默认值<br />
设定分类 RSS 的显示文字<br />
如 feed=RSS<br />
如果这个项目有设定的话，分类之后将会显示分类Feed的连结</p>
<p><strong>feed_image</strong><br />
无默认值<br />
设定分类 RSS 的图片路径<br />
如 feed=images/rss.gif<br />
如果同时有设定 feed_image 与 feed，则将以 feed_image 为主</p></blockquote>
<p>还要在k2的style.css里加一段代码，先找到sytle.css里的这段代码</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*- Sidebar Subpages Menu */</span>
<span style="color: #6666ff;">.sb-pagemenu</span> ul <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>在/*- Sidebar Subpages Menu */后面加上</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sb-categories</span> ul<span style="color: #6666ff;">.children</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>即可</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/k2_categories_tree.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个伪装ASP.NET框架的挂马</title>
		<link>http://www.makumo.com/net-trojan.cat</link>
		<comments>http://www.makumo.com/net-trojan.cat#comments</comments>
		<pubDate>Thu, 24 May 2007 06:49:23 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[病毒安全]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[木马]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/05/net-trojan.html</guid>
		<description><![CDATA[前段时间朋友的服务器被挂马了，找我帮忙。登陆他的站点，发现所有页面尾部有2段IFRAME的挂马。远程登陆他的服务器，查看了他的原代码，并没有看到挂马代码。查了下资料，应该确定是 ISAPI扩展 出了问题。在主IIS上——右键属性——ISAPI，共有4个扩展：
1、ASP.NET_1.1.（版本号） 级别是低， 路径C:\WINDOWS\Microsoft.NET\Framework\v1.1.xxxxx\aspnet_filter.dll
2、ASP.NET_1.0.（版本号） 级别是高， 路径C:\WINDOWS\Microsoft.NET\Framework\v1.0.xxxxx\aspnet_filter.dll
3、RpcProxy
4、wanps.dll 级别是高， 路径c:\windows\help\wanps.dll
很明显，最后一个就是挂马。
查看目录还包括另外2个文件：
wanps.ini内容为：

1
2
=GAG5=ABCDEFG
Redirector=C:windowshelpwanps.txt

wanps.txt内容为：

1
2
3
4
5
6
7
8
9
10
&#60;body&#62; 
&#60;i src=&#34;http://XXXXX.org/&#34; mce_src=&#34;http://XXXXX.org/&#34; height=0 width=0&#62;&#60;/i&#62; 
&#60;language=&#34;java&#34;&#62; 
&#60;!-- 
var expires = new Date(); 
expires.setTime(expires.getTime() + 5 * 24* 60 * 60 * 1000); 
=&#34;GAG5=ABCDEFG;expires=&#34;+expires.toGMTString(); 
--&#62; 
&#60;/&#62; 
&#60;/body&#62;

停止IIS，删掉有问题的ISAPI和相关文件，重启IIS，浏览网页，挂马少了一个，不过还有一个依旧存在。代码类似，只不过网页地址加密过。
继续在网上查资料，也考虑到中了其他病毒/木马，或者ARP欺骗挂马，但是用杀软检查已经ARP检测工具也没有发现相关病毒以及ARP攻击，系统目录下asp.dll文件也没有什么改动。没办法，又把目光回到IIS上，初看那另外3条ISAPI扩展好象没有什么问题。不过我记得WIN2003默认.NET版本是1.1的，怎么有个1.0的，检查了C:\WINDOWS\Microsoft.NET\Framework目录下各个版本的文件，发现问题所在，那个1.0的文件夹下面只有3个文件，除了aspnet_filter.dll还有另外2个DLL（删快了，忘记录文件名了），判定应该是这块问题。停止IIS，删除ISAPI以及文件，再重启，挂马解决。
最后总结下目前几种挂马：
  1、最基本的网页添加挂马，可以在受害程序中查找到挂马代码。通过程序漏洞、系统漏洞的方式直接添加在原始程序的头尾或者中间部分。删除原始程序代码中木马部分，打上漏洞补丁既能解决 。
  2、病毒、木马挂马。解决方法：查杀病毒、木马。
  3、ISAPI扩展挂马 ，往往全站都被挂马，原始程序中无挂马部分。解决方法如上。
  4、系统文件C:\WINDOWS\system32\inetsrv\asp.dll（特指ASP的站点，PHP站点应该也有类似的）被修改挂马，用MD5软件和正常asp.dll的MD5码对比即可鉴别，解决方法停止IIS用正常的覆盖问题文件，重启IIS即可。
  5、ARP欺骗挂马，原理不多叙述了，可以google下关键字“ARP 挂马 原理”，有很多这方面说明，以及解决方法。
  6、CDN挂马，这个我也不是很懂，出现的比较少，感觉这个就类似某些地区的ADSL上网会被强行插入广告或者跳转至114站点。
目前只知道这么多了，以后有新的在补充。
]]></description>
			<content:encoded><![CDATA[<p>前段时间朋友的服务器被挂马了，找我帮忙。登陆他的站点，发现所有页面尾部有2段IFRAME的挂马。远程登陆他的服务器，查看了他的原代码，并没有看到挂马代码。查了下资料，应该确定是 ISAPI扩展 出了问题。在主IIS上——右键属性——ISAPI，共有4个扩展：<br />
1、ASP.NET_1.1.（版本号） 级别是低， 路径C:\WINDOWS\Microsoft.NET\Framework\v1.1.xxxxx\aspnet_filter.dll<br />
2、ASP.NET_1.0.（版本号） 级别是高， 路径C:\WINDOWS\Microsoft.NET\Framework\v1.0.xxxxx\aspnet_filter.dll<br />
3、RpcProxy<br />
4、wanps.dll 级别是高， 路径c:\windows\help\wanps.dll<br />
很明显，最后一个就是挂马。<br />
查看目录还包括另外2个文件：<br />
wanps.ini内容为：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;">=</span>GAG5<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">ABCDEFG</span>
<span style="color: #000099;">Redirector</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">C:windowshelpwanps.txt</span></pre></td></tr></table></div>

<p>wanps.txt内容为：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;body&gt; 
&lt;i src=&quot;http://XXXXX.org/&quot; mce_src=&quot;http://XXXXX.org/&quot; height=0 width=0&gt;&lt;/i&gt; 
&lt;language=&quot;java&quot;&gt; 
&lt;!-- 
var expires = new Date(); 
expires.setTime(expires.getTime() + 5 * 24* 60 * 60 * 1000); 
=&quot;GAG5=ABCDEFG;expires=&quot;+expires.toGMTString(); 
--&gt; 
&lt;/&gt; 
&lt;/body&gt;</pre></td></tr></table></div>

<p>停止IIS，删掉有问题的ISAPI和相关文件，重启IIS，浏览网页，挂马少了一个，不过还有一个依旧存在。代码类似，只不过网页地址加密过。</p>
<p>继续在网上查资料，也考虑到中了其他病毒/木马，或者ARP欺骗挂马，但是用杀软检查已经ARP检测工具也没有发现相关病毒以及ARP攻击，系统目录下asp.dll文件也没有什么改动。没办法，又把目光回到IIS上，初看那另外3条ISAPI扩展好象没有什么问题。不过我记得WIN2003默认.NET版本是1.1的，怎么有个1.0的，检查了C:\WINDOWS\Microsoft.NET\Framework目录下各个版本的文件，发现问题所在，那个1.0的文件夹下面只有3个文件，除了aspnet_filter.dll还有另外2个DLL（删快了，忘记录文件名了），判定应该是这块问题。停止IIS，删除ISAPI以及文件，再重启，挂马解决。</p>
<p>最后总结下目前几种挂马：<br />
  1、最基本的网页添加挂马，可以在受害程序中查找到挂马代码。通过程序漏洞、系统漏洞的方式直接添加在原始程序的头尾或者中间部分。删除原始程序代码中木马部分，打上漏洞补丁既能解决 。<br />
  2、病毒、木马挂马。解决方法：查杀病毒、木马。<br />
  3、ISAPI扩展挂马 ，往往全站都被挂马，原始程序中无挂马部分。解决方法如上。<br />
  4、系统文件C:\WINDOWS\system32\inetsrv\asp.dll（特指ASP的站点，PHP站点应该也有类似的）被修改挂马，用MD5软件和正常asp.dll的MD5码对比即可鉴别，解决方法停止IIS用正常的覆盖问题文件，重启IIS即可。<br />
  5、ARP欺骗挂马，原理不多叙述了，可以google下关键字“ARP 挂马 原理”，有很多这方面说明，以及解决方法。<br />
  6、CDN挂马，这个我也不是很懂，出现的比较少，感觉这个就类似某些地区的ADSL上网会被强行插入广告或者跳转至114站点。</p>
<p>目前只知道这么多了，以后有新的在补充。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/net-trojan.cat/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>更换了K2的汉化文件</title>
		<link>http://www.makumo.com/change-k2-mo.cat</link>
		<comments>http://www.makumo.com/change-k2-mo.cat#comments</comments>
		<pubDate>Mon, 21 May 2007 08:33:08 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[建站日志]]></category>
		<category><![CDATA[K2]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/05/change-k2-mo.html</guid>
		<description><![CDATA[　　更换了K2的汉化MO文件，这下翻译看起来舒服多了。也比较符合中国人的说话习惯。文章的显示时间也去掉了TIME部分，只有日期了，简洁了很多。用PoEdit看了K2的PO文件，感觉还是很有意思的，可以根据需要调整翻译的词语顺序结构了。用文本编辑器修改页面代码，写入中文部分经常显示出来是乱码，用主题编辑器处理就能正确显示，比较费解，看起来都是文本编辑器，估计可能是编辑器代码选的不对。另外感觉可以写入特殊英文字段在用MO文件转下，有空去试试。
]]></description>
			<content:encoded><![CDATA[<p>　　更换了K2的汉化MO文件，这下翻译看起来舒服多了。也比较符合中国人的说话习惯。文章的显示时间也去掉了TIME部分，只有日期了，简洁了很多。用<a target="_blank" href="http://www.poedit.org">PoEdit</a>看了K2的PO文件，感觉还是很有意思的，可以根据需要调整翻译的词语顺序结构了。用文本编辑器修改页面代码，写入中文部分经常显示出来是乱码，用主题编辑器处理就能正确显示，比较费解，看起来都是文本编辑器，估计可能是编辑器代码选的不对。另外感觉可以写入特殊英文字段在用MO文件转下，有空去试试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/change-k2-mo.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.CC/.TV 域名注册商的陷阱</title>
		<link>http://www.makumo.com/c-domain.cat</link>
		<comments>http://www.makumo.com/c-domain.cat#comments</comments>
		<pubDate>Mon, 21 May 2007 07:42:39 +0000</pubDate>
		<dc:creator>玛酷猫</dc:creator>
				<category><![CDATA[计算机]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://nest.makumo.com/2007/05/cctv-%e5%9f%9f%e5%90%8d%e6%b3%a8%e5%86%8c%e5%95%86%e7%9a%84%e9%99%b7%e9%98%b1.html</guid>
		<description><![CDATA[ 　　近几年，一直有不少注册商向企业主大力推销.cc域名，而他们推销的手法也多大同小异，一般都称.CC是新的全球性国际顶级域名，其含义为“Commercial Company”(商业公司)或者是“Chinese Company”(中国公司)。许多注册商甚至推出了中文.cc的域名来吸引企业用户购买。
中国互联网协会网络域名专家王云指出，事实上注册商的这种推销手法其中存在多重误导成份。所谓.CC，其实是位于印度洋、人口仅636人CocosIslands(科科斯群岛)岛国的国家和地区顶级域名，国际域名管理组织ICANN从来没有设立过Commercial Company或Chinese Company这样的通用顶级域名。而中文.CC实际上也只不过是一个岛国的国家顶级域名为后缀的中文域名。至于所谓“Chinese Company”和“Commercial Company”，只是某些企业为了营利而进行的误导，有投机、套利的嫌疑。
“类似于.cc这样情况的的顶级域名还有.la(老挝人民共和国)和.tv(图瓦卢)。这些国家由于经济落后和人口稀少等原因一般都将域名资源卖给了国外一些域名注册机构，而国内的一些不法注册商则利用大众对此事不甚了解的特点，蓄意曲解这些域名的含义并从中牟利。”一位业内人士透漏。
“作为一个和互联网接触不多的人，我应该怎么判断域名的好坏？” 自从今年年初互联网域名与地址管理机构ICANN宣布正式开始运营“.asia(亚洲)”顶级域名开始，互联网上的顶级域名已经达到了266种之多，许多大众面对数量如此庞大的顶级域名显得无所适从。而互联网域名作为一种虚拟财产，对其价值的估算并没有绝对权威的标准，更加深了人们的困惑。
业内专家介绍，尽管不存在绝对权威的标准，但Internet上最著名的域名交易商Greatdomains公布的域名估价模式还是具有很高的权威性和参考价值。
Greatdomains采用三个C来估计域名的价值，这三个C分别为Characters(域名长度)，Commerce(商业价值)和.Com(所在的顶级域名)。Greatdomains对每个C的评估结果分为0到4星五个等级，而三个C综合起来就决定了域名的价值。就顶级域名而言，Greatdomains认为同样的域名下，.com的价值是.net的四倍，而所有其它顶级域名的价值都不超过.com的十分之一。
“对于域名投资，政府首先应该对域名注册行业进行清理整顿，对存在欺诈行为的注册商进行严厉的处罚，另一方面也需要企业主加强自我保护意识，域名投资有风险，入市需谨慎。”该专家表示。
（节选《财经时报》相关报道）
]]></description>
			<content:encoded><![CDATA[<p> 　　近几年，一直有不少注册商向企业主大力推销.cc域名，而他们推销的手法也多大同小异，一般都称.CC是新的全球性国际顶级域名，其含义为“Commercial Company”(商业公司)或者是“Chinese Company”(中国公司)。许多注册商甚至推出了中文.cc的域名来吸引企业用户购买。</p>
<p>中国互联网协会网络域名专家王云指出，事实上注册商的这种推销手法其中存在多重误导成份。<font COLOR="#ff6600">所谓.CC，其实是位于印度洋、人口仅636人CocosIslands(科科斯群岛)岛国的国家和地区顶级域名，国际域名管理组织ICANN从来没有设立过Commercial Company或Chinese Company这样的通用顶级域名</font>。而中文.CC实际上也只不过是一个岛国的国家顶级域名为后缀的中文域名。至于所谓“Chinese Company”和“Commercial Company”，只是某些企业为了营利而进行的误导，有投机、套利的嫌疑。</p>
<p>“<font COLOR="#ff6600">类似于.cc这样情况的的顶级域名还有.la(老挝人民共和国)和.tv(图瓦卢)。这些国家由于经济落后和人口稀少等原因一般都将域名资源卖给了国外一些域名注册机构，而国内的一些不法注册商则利用大众对此事不甚了解的特点，蓄意曲解这些域名的含义并从中牟利。</font>”一位业内人士透漏。</p>
<p>“作为一个和互联网接触不多的人，我应该怎么判断域名的好坏？” 自从今年年初互联网域名与地址管理机构ICANN宣布正式开始运营“.asia(亚洲)”顶级域名开始，互联网上的顶级域名已经达到了266种之多，许多大众面对数量如此庞大的顶级域名显得无所适从。而互联网域名作为一种虚拟财产，对其价值的估算并没有绝对权威的标准，更加深了人们的困惑。</p>
<p>业内专家介绍，尽管不存在绝对权威的标准，但Internet上最著名的域名交易商Greatdomains公布的域名估价模式还是具有很高的权威性和参考价值。</p>
<p>Greatdomains采用三个C来估计域名的价值，这三个C分别为Characters(域名长度)，Commerce(商业价值)和.Com(所在的顶级域名)。Greatdomains对每个C的评估结果分为0到4星五个等级，而三个C综合起来就决定了域名的价值。就顶级域名而言，Greatdomains认为同样的域名下，.com的价值是.net的四倍，而所有其它顶级域名的价值都不超过.com的十分之一。</p>
<p>“对于域名投资，政府首先应该对域名注册行业进行清理整顿，对存在欺诈行为的注册商进行严厉的处罚，另一方面也需要企业主加强自我保护意识，域名投资有风险，入市需谨慎。”该专家表示。</p>
<p>（节选《财经时报》相关报道）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makumo.com/c-domain.cat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
