<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.0.10" --><rss 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/" version="2.0">

<channel>
	<title>Code Soil</title>
	<link>http://www.codesoil.net</link>
	<description>CODE SOIL - コードソイル [by Smalldust]</description>
	<pubDate>Tue, 26 May 2009 15:07:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.10</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CodeSoil" type="application/rss+xml" /><item>
		<title>Private Tracker Information Blog</title>
		<link>http://www.codesoil.net/2009/05/27/private-tracker-information-blog/</link>
		<comments>http://www.codesoil.net/2009/05/27/private-tracker-information-blog/#comments</comments>
		<pubDate>Tue, 26 May 2009 15:07:20 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject><dc:subject>private tracker</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2009/05/27/private-tracker-information-blog/</guid>
		<description><![CDATA[很多难以入手的资料、内容往往可以从pt（Private Tracker）获取；可是关于pt的信息却是少之又少。下面推荐的这两个Blog就是为数不多的，将pt介绍给世人的信息仓库：
http://filenetworks.blogspot.com/ 
不仅包括pt的介绍，还有一个“Invite Giveaways” 栏目，专门免费发放邀请（多是一些不那么隐蔽的pt）。
http://filesharefreak.com/
比较一般性质的bittorrent Blog，但是其内容大部分涉及pt、Seedbox以及专门讨论/交换邀请的论坛，不可忽视。
PS：不要管我要邀请，我也没有……

]]></description>
			<content:encoded><![CDATA[<p>很多难以入手的资料、内容往往可以从pt（Private Tracker）获取；可是关于pt的信息却是少之又少。下面推荐的这两个Blog就是为数不多的，将pt介绍给世人的信息仓库：</p>
<p><a href="http://filenetworks.blogspot.com/">http://filenetworks.blogspot.com/ </a><br />
不仅包括pt的介绍，还有一个“Invite Giveaways” 栏目，专门免费发放邀请（多是一些不那么隐蔽的pt）。</p>
<p><a href="http://filesharefreak.com/">http://filesharefreak.com/</a><br />
比较一般性质的bittorrent Blog，但是其内容大部分涉及pt、Seedbox以及专门讨论/交换邀请的论坛，不可忽视。</p>
<p>PS：不要管我要邀请，我也没有……
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2009/05/27/private-tracker-information-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Inexpensive NAS Server for Small Office</title>
		<link>http://www.codesoil.net/2009/05/24/inexpensive-nas-server-for-small-office/</link>
		<comments>http://www.codesoil.net/2009/05/24/inexpensive-nas-server-for-small-office/#comments</comments>
		<pubDate>Sun, 24 May 2009 08:10:46 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Server &amp; Storage</dc:subject><dc:subject>nas</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2009/05/24/inexpensive-nas-server-for-small-office/</guid>
		<description><![CDATA[从技术角度讲，计算机连接磁盘存储设备的形式有三种：DAS、NAS和SAN。
DAS即直接连接的存储设备，是指磁盘直接通过IDE、SCSI之类的数据总线连接到计算机，存储设备是唯一隶属于该计算机的。USB和eSATA连接的外置硬盘，从这个角度讲也属于DAS。NAS则是存储设备和计算机架构于IP网络之上，可以多台计算机共享存储设备。而SAN，包括常见的Fibre Channel SAN和iSCSI SAN，则是构建了一个存储专用的网络，不仅拥有NAS的可以共享的优点，还有着更高的效率。
言归正传，有一类存储设备，说它们是外接移动硬盘吧，是小看了他们的功能；可是说它们是存储服务器吧，又有点言过其辞了。
这种设备，就是以Buffalo公司的Link Station等产品为代表的“网络硬盘”。
乍一看，形状上似乎很象普通的USB移动硬盘，但是看到设备后面的LAN接口，以及从它比USB硬盘稍高的价格，我们就知道它其实是内置了操作系统的（当然，一般是一个嵌入式Linux，主要是提供Samba），这样才能使连在网络上的其他PC访问其文件，作为“网络硬盘”使用。
Link Station产品是已经内置硬盘的；还有一类产品，只是“网络硬盘盒”，你需要另够一般的SATA硬盘才能使用。这方面的代表作即是“玄箱”了。玄箱于几年前推出，推出当时就立刻博得了极高的人气。其原因在于，玄箱不仅允许你定制内置的硬盘，更重要的是它允许你定制它的OS——一款嵌入式的Linux。这样的设计使得需要电脑高手互相比试起玄箱的用法来。有的人用它来开设FTP，更有人自己设计一些程序脚本等等，来实现更复杂的功能。
下面介绍今天的主角（前面废话太多了，汗一个囧）： Corega公司于前天新推出的超级“硬盘盒”——CG-NSC4501GT。
下面我们就来一一列举出这个价值4.3万日元（约3000人民币）的“硬盘盒”到底有什么功能。

最大内置4块SATA硬盘（这一点就让它不同于一般意义上的“硬盘盒”了）
支持RAID 0/1/5/10/5+Spare ——这完全是企业级的标准啊！现在的主板一般都内置SATA的RAID 0/1功能，但是众所周知要实现RAID 5和RAID 10，是要靠专门的RAID控制器才能做到。今天我们的主角正是内置了Promise公司的RAID控制器。
支持dlna。DLNA是一个东芝制定的数码家电间的通信标准。看来这款产品是定位于高端家庭的。下面的介绍图也似乎证实了这一点（一家人如何利用本产品存储、交换数据的示意图）。

支持Active Directory认证——等等，哪个家庭会用Active Directory？这明明就是给办公室用的嘛！同时支持dlna和AD，让我觉得这款产品有点不伦不类——或许是希望在家庭、公司都能卖得出去？
支持连接USB打印机，作为打印服务器使用。这个有点意思。无论是家庭还是办公室（个人觉得主要还是在办公室使用），只需要一台USB打印机，就可以很多人共享了。再也不用总是开着一台电脑来做打印服务器了。

此外还有很多功能，在这里就省略了。
个人认为，这款产品作为小型办公室用（10人左右） 还是非常不错的。可以用来存储员工们的数据，以及各种企业资料。安全方面，它支持基于用户/组的访问权限设置（这样一般员工就无法偷窥老总的文件夹啦）以及配额，另外支持连接UPS，以免突然停电造成数据丢失。另外，定时的备份功能也非常方便。

]]></description>
			<content:encoded><![CDATA[<p>从技术角度讲，计算机连接磁盘存储设备的形式有三种：DAS、NAS和SAN。</p>
<p>DAS即直接连接的存储设备，是指磁盘直接通过IDE、SCSI之类的数据总线连接到计算机，存储设备是唯一隶属于该计算机的。USB和eSATA连接的外置硬盘，从这个角度讲也属于DAS。NAS则是存储设备和计算机架构于IP网络之上，可以多台计算机共享存储设备。而SAN，包括常见的Fibre Channel SAN和iSCSI SAN，则是构建了一个存储专用的网络，不仅拥有NAS的可以共享的优点，还有着更高的效率。<br />
<img style="float: left; padding-right: 5px" src="/wp-content/uploads/2009/05/linkstation.jpg" />言归正传，有一类存储设备，说它们是外接移动硬盘吧，是小看了他们的功能；可是说它们是存储服务器吧，又有点言过其辞了。</p>
<p>这种设备，就是以Buffalo公司的Link Station等产品为代表的“网络硬盘”。</p>
<p>乍一看，形状上似乎很象普通的USB移动硬盘，但是看到设备后面的LAN接口，以及从它比USB硬盘稍高的价格，我们就知道它其实是内置了操作系统的（当然，一般是一个嵌入式Linux，主要是提供Samba），这样才能使连在网络上的其他PC访问其文件，作为“网络硬盘”使用。</p>
<p>Link Station产品是已经内置硬盘的；还有一类产品，只是“网络硬盘盒”，你需要另够一般的SATA硬盘才能使用。这方面的代表作即是“<a href="http://kuroutoshikou.com/modules/display/?iid=118">玄箱</a>”了。玄箱于几年前推出，推出当时就立刻博得了极高的人气。其原因在于，玄箱不仅允许你定制内置的硬盘，更重要的是它允许你定制它的OS——一款嵌入式的Linux。这样的设计使得需要电脑高手互相比试起玄箱的用法来。有的人用它来开设FTP，更有人自己设计一些程序脚本等等，来实现更复杂的功能。</p>
<p>下面介绍今天的主角（前面废话太多了，汗一个囧）： Corega公司于前天新推出的超级“硬盘盒”——<a href="http://corega.jp/prod/nsc4501gt/">CG-NSC4501GT</a>。</p>
<p>下面我们就来一一列举出这个价值4.3万日元（约3000人民币）的“硬盘盒”到底有什么功能。</p>
<ul>
<li>最大内置4块SATA硬盘（这一点就让它不同于一般意义上的“硬盘盒”了）</li>
<li>支持RAID 0/1/5/10/5+Spare ——这完全是企业级的标准啊！现在的主板一般都内置SATA的RAID 0/1功能，但是众所周知要实现RAID 5和RAID 10，是要靠专门的RAID控制器才能做到。今天我们的主角正是内置了Promise公司的RAID控制器。</li>
<li>支持dlna。DLNA是一个东芝制定的数码家电间的通信标准。看来这款产品是定位于高端家庭的。下面的介绍图也似乎证实了这一点（一家人如何利用本产品存储、交换数据的示意图）。<br />
<img src="/wp-content/uploads/2009/05/minnade.gif" /></li>
<li>支持Active Directory认证——等等，哪个家庭会用Active Directory？这明明就是给办公室用的嘛！同时支持dlna和AD，让我觉得这款产品有点不伦不类——或许是希望在家庭、公司都能卖得出去？</li>
<li>支持连接USB打印机，作为打印服务器使用。这个有点意思。无论是家庭还是办公室（个人觉得主要还是在办公室使用），只需要一台USB打印机，就可以很多人共享了。再也不用总是开着一台电脑来做打印服务器了。</li>
</ul>
<p>此外还有很多功能，在这里就省略了。</p>
<p>个人认为，这款产品作为小型办公室用（10人左右） 还是非常不错的。可以用来存储员工们的数据，以及各种企业资料。安全方面，它支持基于用户/组的访问权限设置（这样一般员工就无法偷窥老总的文件夹啦）以及配额，另外支持连接UPS，以免突然停电造成数据丢失。另外，定时的备份功能也非常方便。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2009/05/24/inexpensive-nas-server-for-small-office/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mystery of Memory</title>
		<link>http://www.codesoil.net/2009/05/13/mystery-of-memory/</link>
		<comments>http://www.codesoil.net/2009/05/13/mystery-of-memory/#comments</comments>
		<pubDate>Wed, 13 May 2009 07:57:01 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Server &amp; Storage</dc:subject><dc:subject>ddr2</dc:subject><dc:subject>dimm</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2009/05/13/mystery-of-memory/</guid>
		<description><![CDATA[前几天，我有一台服务器需要增设4GB内存。现有的内存是2条512MB的，DDR2-3200，于是我就打电话过去，说要DDR2的内存，一共4G即可。
昨天，新内存终于到了，是两条带着散热片的DDR2-5300。大伙兴冲冲地拆开机器，一安装，发现按不进去。几个哥们傻呵呵的就要用蛮劲，我拦住了他们，仔细看了看之后傻了——这内存根本就装不上我们的机器，因为下面针脚的缺口位置不一样！
我知道DDR和DDR2是不兼容的，所以针脚的缺口位置明显不同，以免用户装错。但是现在，这台机器原来的两条512和这两条新的2GB的缺口仅仅相差4，5个针脚的距离，而且标签上明明写着DDR2-5300——难道标签贴错了？


后来查了一下相关资料，才明白这两条内存的区别：
前者（512MB的）的规格为PC2-3200R-333-12。这个3200R即是Registered之意。
后者（2GB的）的规格为PC2-5300F-555-11-E0。这个5300F即是Full Buffered之意。
原来，FB-DIMM（Full Buffered DIMM）和一般服务器用的Registered DIMM是不通用的。为避免插错，开口（key，也称notch）的位置是不同的。R-DIMM的开口在第64和65针之间，而FB-DIMM的开口则在第68和69针之间，中间正好差着4个针脚呢。

]]></description>
			<content:encoded><![CDATA[<p>前几天，我有一台服务器需要增设4GB内存。现有的内存是2条512MB的，DDR2-3200，于是我就打电话过去，说要DDR2的内存，一共4G即可。</p>
<p>昨天，新内存终于到了，是两条带着散热片的DDR2-5300。大伙兴冲冲地拆开机器，一安装，发现按不进去。几个哥们傻呵呵的就要用蛮劲，我拦住了他们，仔细看了看之后傻了——这内存根本就装不上我们的机器，因为下面针脚的缺口位置不一样！</p>
<p>我知道DDR和DDR2是不兼容的，所以针脚的缺口位置明显不同，以免用户装错。但是现在，这台机器原来的两条512和这两条新的2GB的缺口仅仅相差4，5个针脚的距离，而且标签上明明写着DDR2-5300——难道标签贴错了？</p>
<div style="text-align: center"><img src="/wp-content/uploads/2009/05/HYS72T64000HR-5-A.jpg" /></div>
<div style="text-align: center"><img src="/wp-content/uploads/2009/05/M395T5750CZ4.jpg" /></div>
<p>后来查了一下相关资料，才明白这两条内存的区别：</p>
<p>前者（512MB的）的规格为PC2-3200R-333-12。这个3200R即是Registered之意。</p>
<p>后者（2GB的）的规格为PC2-5300F-555-11-E0。这个5300F即是Full Buffered之意。</p>
<p>原来，FB-DIMM（Full Buffered DIMM）和一般服务器用的Registered DIMM是不通用的。为避免插错，开口（key，也称notch）的位置是不同的。R-DIMM的开口在第64和65针之间，而FB-DIMM的开口则在第68和69针之间，中间正好差着4个针脚呢。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2009/05/13/mystery-of-memory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>docs.torrents.ro Closed</title>
		<link>http://www.codesoil.net/2009/04/17/docstorrentsro-closed/</link>
		<comments>http://www.codesoil.net/2009/04/17/docstorrentsro-closed/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 14:29:19 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2009/04/17/docstorrentsro-closed/</guid>
		<description><![CDATA[docs.torrents.ro是我很喜欢的e-learning资料的Private Tracker。在那里我经常能找到其他站点没有的资料。
可是，今天当我要登录这个网站时，却突然如晴天霹雳般发现，它已经关闭了——我才几天没去，就突然关闭了？！
搜索了一下，发现了一条非官方的说明。
根据其说明，docs.torrents.ro的关闭并不是来自于法律方面的压力，没有任何人收到著作权等方面的法律威吓。其关闭原因的最大可能性是，由于docs.torrents.ro从来不收取捐助，而且是个人兴趣开设的网站，因此很可能站长没有时间，或者没有财力来继续维持这个网站了。
无论如何，看起来docs.torrents.ro的关闭将是永远的——或者至少也是很长一段时间的。非常遗憾Private Tracker又少了一个。
【补充】docs.torrents.ro在关闭前不久（大概就是2，3月的时候），对于上传下载Ratio采取了一个很有趣的方针：当某个资源的种子数低于一定程度（好像是5个）的时候，该资源就会自动变成Free资源（不计下载流量），以促进大家下载、做种。当种子数回复到5个以上时，又会变成普通资源（要计算下载流量）。这个方法对于没什么人气、或者是较老的资源很有效果。

]]></description>
			<content:encoded><![CDATA[<p>docs.torrents.ro是我很喜欢的e-learning资料的Private Tracker。在那里我经常能找到其他站点没有的资料。</p>
<p>可是，今天当我要登录这个网站时，却突然如晴天霹雳般发现，它已经关闭了——我才几天没去，就突然关闭了？！</p>
<p>搜索了一下，发现了<a href="http://filenetworks.blogspot.com/2009/04/docstorrentsro-shuts-down.html">一条非官方的说明</a>。</p>
<p>根据其说明，docs.torrents.ro的关闭并不是来自于法律方面的压力，没有任何人收到著作权等方面的法律威吓。其关闭原因的最大可能性是，由于docs.torrents.ro从来不收取捐助，而且是个人兴趣开设的网站，因此很可能站长没有时间，或者没有财力来继续维持这个网站了。</p>
<p>无论如何，看起来docs.torrents.ro的关闭将是永远的——或者至少也是很长一段时间的。非常遗憾Private Tracker又少了一个。</p>
<p>【补充】docs.torrents.ro在关闭前不久（大概就是2，3月的时候），对于上传下载Ratio采取了一个很有趣的方针：当某个资源的种子数低于一定程度（好像是5个）的时候，该资源就会自动变成Free资源（不计下载流量），以促进大家下载、做种。当种子数回复到5个以上时，又会变成普通资源（要计算下载流量）。这个方法对于没什么人气、或者是较老的资源很有效果。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2009/04/17/docstorrentsro-closed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why cannot 32bit Windows utilize all the 4GB memory?</title>
		<link>http://www.codesoil.net/2008/10/19/why-cannot-32bit-windows-utilize-all-the-4gb-memory/</link>
		<comments>http://www.codesoil.net/2008/10/19/why-cannot-32bit-windows-utilize-all-the-4gb-memory/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 15:43:43 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/10/19/why-cannot-32bit-windows-utilize-all-the-4gb-memory/</guid>
		<description><![CDATA[最近经常被问：明明电脑上安装了4GB的内存，为什么在32bit的Windows下面只能认出3GB多一点？
对此，稍稍Google一下就会发现有很多说明，大多是说“剩下的不到1GB被系统用掉了” “系统的硬件资源”等等。可是这样解释就会产生一个新的问题：那么为什么物理内存是1GB、2GB的时候不被系统“吃掉” ，4GB的时候系统就要吃掉一部分呢？
其实，上面的解释并不正确。其实，并不是剩下那1GB不到的内存空间被系统用掉了，而是这1GB对应的地址被系统占用了。换句话说，这1GB的空间系统无法访问。那么，这地址究竟被谁占用了呢？答案是MMIO（内存映射I/O），也就是把其他系统硬件映射到内存的地址上来进行的I/O。详细说明在下面的官方页面上也有。
http://support.microsoft.com/kb/929605
要解决这个问题，基本上就是换用64bit OS。——可是说起来容易做起来难，64bit环境的话，很多程序都可能无法运行。在32bit时代，咱们还是3GB万岁吧。

]]></description>
			<content:encoded><![CDATA[<p>最近经常被问：明明电脑上安装了4GB的内存，为什么在32bit的Windows下面只能认出3GB多一点？</p>
<p>对此，稍稍Google一下就会发现有很多说明，大多是说“剩下的不到1GB被系统用掉了” “系统的硬件资源”等等。可是这样解释就会产生一个新的问题：那么为什么物理内存是1GB、2GB的时候不被系统“吃掉” ，4GB的时候系统就要吃掉一部分呢？</p>
<p>其实，上面的解释并不正确。其实，并不是剩下那1GB不到的内存空间被系统用掉了，而是这<u><strong>1GB对应的地址</strong></u>被系统占用了。换句话说，这1GB的空间系统无法访问。那么，这地址究竟被谁占用了呢？答案是MMIO（内存映射I/O），也就是把其他系统硬件映射到内存的地址上来进行的I/O。详细说明在下面的官方页面上也有。</p>
<p><a href="http://support.microsoft.com/kb/929605">http://support.microsoft.com/kb/929605</a></p>
<p>要解决这个问题，基本上就是换用64bit OS。——可是说起来容易做起来难，64bit环境的话，很多程序都可能无法运行。在32bit时代，咱们还是3GB万岁吧。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/10/19/why-cannot-32bit-windows-utilize-all-the-4gb-memory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stop Windows from Searching into My Zip Files</title>
		<link>http://www.codesoil.net/2008/06/28/stop-windows-from-searching-into-my-zip-files/</link>
		<comments>http://www.codesoil.net/2008/06/28/stop-windows-from-searching-into-my-zip-files/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 07:26:41 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/06/28/stop-windows-from-searching-into-my-zip-files/</guid>
		<description><![CDATA[Windows XP的文件查找功能简直弱智得要命——这大概是大多数Windows用户的共同感想。
上一次，我已经禁用了默认的狗狗搜索工具，但是还有一个问题一直困扰我，就是Windows文件查找在搜索文件时，会打开我的Zip压缩文件进行查找。
的确，这可能算是一个体贴用户的功能能，可是我的Zip文件当中经常会有成千上万的文件（这也是打包成Zip的原因之一），而且我要搜索一个文件时，通常是知道它不Zip文件当中的。这样深入Zip文件的搜索就会消耗大部分的时间。
那么如何禁止它呢？Windows并没有提供这样的选项，甚至注册表里也没有。那么看来只好斩草除根——关掉Windows对Zip文件的支持。可以通过下面的命令实现（但是注意，这也使Windows无法打开Zip文件，除非你有其他的解压缩软件Like WinRAR）
regsvr32 /u zipfldr.dll
此外，要禁止Windows深入Cab文件搜索，还可以用下面的命令（但是由于通常CAB文件很少，也就无所谓了）
regsvr32 /u cabview.dll
要重新允许Zip文件（或Cab文件） ，只需用上面的command without &#8220;/u&#8221;。

]]></description>
			<content:encoded><![CDATA[<p>Windows XP的文件查找功能简直弱智得要命——这大概是大多数Windows用户的共同感想。</p>
<p>上一次，我已经<a href="http://www.codesoil.net/2008/04/11/disable-search-companion-in-windows-xp/">禁用了默认的狗狗搜索工具</a>，但是还有一个问题一直困扰我，就是Windows文件查找在搜索文件时，会打开我的Zip压缩文件进行查找。</p>
<p>的确，这可能算是一个体贴用户的功能能，可是我的Zip文件当中经常会有成千上万的文件（这也是打包成Zip的原因之一），而且我要搜索一个文件时，通常是知道它不Zip文件当中的。这样深入Zip文件的搜索就会消耗大部分的时间。</p>
<p>那么如何禁止它呢？Windows并没有提供这样的选项，甚至注册表里也没有。那么看来只好斩草除根——关掉Windows对Zip文件的支持。可以通过下面的命令实现（但是注意，这也使Windows无法打开Zip文件，除非你有其他的解压缩软件Like WinRAR）</p>
<p>regsvr32 /u zipfldr.dll</p>
<p>此外，要禁止Windows深入Cab文件搜索，还可以用下面的命令（但是由于通常CAB文件很少，也就无所谓了）</p>
<p>regsvr32 /u cabview.dll</p>
<p>要重新允许Zip文件（或Cab文件） ，只需用上面的command without &#8220;/u&#8221;。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/06/28/stop-windows-from-searching-into-my-zip-files/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Japanese Version EeePC</title>
		<link>http://www.codesoil.net/2008/04/28/japanese-version-eeepc/</link>
		<comments>http://www.codesoil.net/2008/04/28/japanese-version-eeepc/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 09:55:43 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject><dc:subject>EeePC</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/28/japanese-version-eeepc/</guid>
		<description><![CDATA[华硕在西方国家以及中国虽然已经推出了多款EeePC，相信人们早已经耳熟能详，但是在日本推出的这一款还是有许多不同的地方。这个周末逛了一下商场，又查了一下资料，这里就做一总结。
一、黑色外装
对于日本版EeePC，我最开始不太感兴趣的原因之一就是，当我从网站上看到它黑乎乎的身躯时，我感觉到的是以前那种方方正正IBM黑盒子的气息——要对不起IBM Fans了，我对于IBM的板砖机身设计实在是不感兴趣；我比较喜欢有光泽的，靓丽的流线型的设计。
但是，当我看到了真正的EeePC黑色版机身时，我发现它比照片上要漂亮多了。当然，据说珍珠白的型号也有，只是我没有见到过。

二、预装Windows XP Home SP2
和在中国发售的产品的不同点是，日本版EeePC预装Windows。尽管如此，其价格还是做到了45K日元左右（约合3千人民币），约为市面上其他低价笔记本的三分之一。
中国版EeePC预装Linux，而日本版EeePC预装Windows XP的原因，大概不是因为中国人爱用Linux，而是因为在日本人们不用盗版（也买不到盗版）的缘故。
并且，日文版的EeePC只支持预装的Windows XP——也就是说，即便想升级为Windows XP Professional或者是想更换系统OS为Linux，都只能“责任自负”。
三、其他
4GB SSD——相比日本其他厂商推出的内置64GB SSD的笔记本，EeePC的确有点“捉襟见肘”；但是其价格也的确在64GB SSD笔记本的八分之一左右。而且可以用SDHC卡作为第二块硬盘使用，4GB对于Windows XP来说也算是凑合够用了。
分辨率——800 x 480的分辨率实在是有点差强人意，和同样大小的工人舍产品（1024 x 600）比起来差一截（当然价钱上也差一截），对于想用EeePC当作高清晰视频播放器的人，可能会有些遗憾。
此外，电池工作时间3.2小时也稍短，摄像头也落后一代（现在都是130万像素，EeePC则为30万），但是对于一个如此便宜的笔记本（或是UMPC?）已经是物超所值了。

]]></description>
			<content:encoded><![CDATA[<p>华硕在西方国家以及中国虽然已经推出了多款EeePC，相信人们早已经耳熟能详，但是在日本推出的这一款还是有许多不同的地方。这个周末逛了一下商场，又查了一下资料，这里就做一总结。</p>
<p>一、黑色外装</p>
<p>对于日本版EeePC，我最开始不太感兴趣的原因之一就是，当我从网站上看到它黑乎乎的身躯时，我感觉到的是以前那种方方正正IBM黑盒子的气息——要对不起IBM Fans了，我对于IBM的板砖机身设计实在是不感兴趣；我比较喜欢有光泽的，靓丽的流线型的设计。</p>
<p>但是，当我看到了真正的EeePC黑色版机身时，我发现它比照片上要漂亮多了。当然，据说珍珠白的型号也有，只是我没有见到过。</p>
<p><img alt="EeePC" id="image86" src="http://www.codesoil.net/wp-content/uploads/2008/04/ph2.jpg" /></p>
<p>二、预装Windows XP Home SP2</p>
<p>和在中国发售的产品的不同点是，日本版EeePC预装Windows。尽管如此，其价格还是做到了45K日元左右（约合3千人民币），约为市面上其他低价笔记本的三分之一。</p>
<p>中国版EeePC预装Linux，而日本版EeePC预装Windows XP的原因，大概不是因为中国人爱用Linux，而是因为在日本人们不用盗版（也买不到盗版）的缘故。</p>
<p>并且，日文版的EeePC只支持预装的Windows XP——也就是说，即便想升级为Windows XP Professional或者是想更换系统OS为Linux，都只能“责任自负”。</p>
<p>三、其他</p>
<p>4GB SSD——相比日本其他厂商推出的内置64GB SSD的笔记本，EeePC的确有点“捉襟见肘”；但是其价格也的确在64GB SSD笔记本的八分之一左右。而且可以用SDHC卡作为第二块硬盘使用，4GB对于Windows XP来说也算是凑合够用了。</p>
<p>分辨率——800 x 480的分辨率实在是有点差强人意，和同样大小的工人舍产品（1024 x 600）比起来差一截（当然价钱上也差一截），对于想用EeePC当作高清晰视频播放器的人，可能会有些遗憾。</p>
<p>此外，电池工作时间3.2小时也稍短，摄像头也落后一代（现在都是130万像素，EeePC则为30万），但是对于一个如此便宜的笔记本（或是UMPC?）已经是物超所值了。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/28/japanese-version-eeepc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Welcome back, Demonoid.com</title>
		<link>http://www.codesoil.net/2008/04/13/welcome-back-demonoidcom/</link>
		<comments>http://www.codesoil.net/2008/04/13/welcome-back-demonoidcom/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 17:24:20 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/13/welcome-back-demonoidcom/</guid>
		<description><![CDATA[After 5 months of closing due to the threaten of CRIA - an association of record industry in Canada, Demonoid.com, one of the most popular bittorrent tracker and forum, reopened yesterday. The screenshot below shows the blank between April 11, 2008 and November 7, 2007 during which the site was closed.

On the days without Demonoid.com, [...]]]></description>
			<content:encoded><![CDATA[<p>After 5 months of closing due to the threaten of CRIA - an association of record industry in Canada, Demonoid.com, one of the most popular bittorrent tracker and forum, reopened yesterday. The screenshot below shows the blank between April 11, 2008 and November 7, 2007 during which the site was closed.</p>
<p><img id="image84" style="float: left; padding-right: 5px" alt="Demonoid" src="http://www.codesoil.net/wp-content/uploads/2008/04/demonoid.png" /></p>
<p>On the days without Demonoid.com, I tried thepiratebay.org, mininova.org and some private trackers. However, ebooks, the part which I most interested in is not emphasised on these sites. That was the reason why I always kept visiting the site every time I was connected to the internet.</p>
<p>The registrations are still closed. If you want to get an invitation, please email me. My email address is on the top page.</p>
<p>如果你需要demonoid.com的邀请，请email我。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/13/welcome-back-demonoidcom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Product from the King of Pirate?</title>
		<link>http://www.codesoil.net/2008/04/13/new-product-from-the-king-of-pirate/</link>
		<comments>http://www.codesoil.net/2008/04/13/new-product-from-the-king-of-pirate/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 16:08:02 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Essay</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/13/new-product-from-the-king-of-pirate/</guid>
		<description><![CDATA[几个小时前，门户级的IT业界资讯站cnBeta上发布了这样一条消息：小霸王出掌机，高清掌机开始接受预订！
小霸王？一听说这个词汇，我相信很多同龄人都会和我一样心里涌起一种怀旧的情绪。在那个年代，小霸王简直成了任天堂Famicon的代称，甚至可以说比Famicon远远有名。那个时代的中国经济还相对闭锁，对软件的知识产权也完全没有概念，小霸王正是利用了这个契机，从事现在看来违法的行当起了家。
到如今，Famicon的热潮已过多时，在我想来小霸王应该已经借用当年的东风成功起家，然后借用其品牌优势转型开发数码产品——如早期的学习机，现在的电子词典、MP3/4甚至手机……可是好像最近几年的确没怎么听说过小霸王的牌子。现在突然又冒出这么一则新闻，难道是小霸王卧薪尝胆十年，终于决定推出中国独自产权的游戏机了？！
但是，看到了新闻的最后我就一下子心凉了：“支持上千款8位，16位游戏卡” ……原来，只是把当年盗版Famicon的小霸王游戏机做成小型掌机而已！
小霸王，你还要继续吃多久盗版的老底呢？！
网上商城卖的小霸王Z9、Z10掌机，附送220合一的FC游戏卡，连机器带卡才卖180元——的确，这盘游戏卡都是“淘金者”“冒险岛”“魂斗罗”“小蜜蜂”这样的，在国人看起来是“小游戏”的玩意，可是您是否知道在正版市场，这220个游戏中每个游戏都售价200元人民币以上？即便在今天的日本，这些卡带依然售价如此（因为厂商早在十年前就停止了销售，都是二手渠道，多少会有折扣）。
这样算起来，光是这一盘220合一的卡带，如果是正版就要4万元人民币以上。在21世纪的现在，小霸王你抗得住任天堂的官司吗？ 就算任天堂放任不管，吃这Famicon的老底也是没有前景的。就算要盗版，你难道弄不出一个盗版的NDS，一个盗版的PSP吗？
猛然间我发现，其实这正说明了小霸王吃老本的原因所在：在这十几年二十来年中，小霸王不求进取，已经沦落得和中山市那些其他电子小厂一样的无名小卒了。
看看今天的许多IT风险资本，许多&#8221;Web 2.0”如雨后春笋般地崛起，在欣喜的同时也为他们担心：二十年后，他们的名字是会和现在一样显耀，还是只留在人们二十年前的回忆中呢？

]]></description>
			<content:encoded><![CDATA[<p>几个小时前，门户级的IT业界资讯站cnBeta上发布了这样一条消息：<a href="http://www.cnbeta.com/articles/53385.htm">小霸王出掌机，高清掌机开始接受预订</a>！</p>
<p>小霸王？一听说这个词汇，我相信很多同龄人都会和我一样心里涌起一种怀旧的情绪。在那个年代，小霸王简直成了任天堂Famicon的代称，甚至可以说比Famicon远远有名。那个时代的中国经济还相对闭锁，对软件的知识产权也完全没有概念，小霸王正是利用了这个契机，从事现在看来违法的行当起了家。</p>
<p>到如今，Famicon的热潮已过多时，在我想来小霸王应该已经借用当年的东风成功起家，然后借用其品牌优势转型开发数码产品——如早期的学习机，现在的电子词典、MP3/4甚至手机……可是好像最近几年的确没怎么听说过小霸王的牌子。现在突然又冒出这么一则新闻，难道是小霸王卧薪尝胆十年，终于决定推出中国独自产权的游戏机了？！</p>
<p>但是，看到了新闻的最后我就一下子心凉了：“支持上千款8位，16位游戏卡” ……原来，只是把当年盗版Famicon的小霸王游戏机做成小型掌机而已！</p>
<p>小霸王，你还要继续吃多久盗版的老底呢？！</p>
<p>网上商城卖的小霸王Z9、Z10掌机，附送220合一的FC游戏卡，连机器带卡才卖180元——的确，这盘游戏卡都是“淘金者”“冒险岛”“魂斗罗”“小蜜蜂”这样的，在国人看起来是“小游戏”的玩意，可是您是否知道在正版市场，这220个游戏中每个游戏都售价200元人民币以上？即便在今天的日本，这些卡带依然售价如此（因为厂商早在十年前就停止了销售，都是二手渠道，多少会有折扣）。</p>
<p>这样算起来，光是这一盘220合一的卡带，如果是正版就要4万元人民币以上。在21世纪的现在，小霸王你抗得住任天堂的官司吗？ 就算任天堂放任不管，吃这Famicon的老底也是没有前景的。就算要盗版，你难道弄不出一个盗版的NDS，一个盗版的PSP吗？</p>
<p>猛然间我发现，其实这正说明了小霸王吃老本的原因所在：在这十几年二十来年中，小霸王不求进取，已经沦落得和中山市那些其他电子小厂一样的无名小卒了。</p>
<p>看看今天的许多IT风险资本，许多&#8221;Web 2.0”如雨后春笋般地崛起，在欣喜的同时也为他们担心：二十年后，他们的名字是会和现在一样显耀，还是只留在人们二十年前的回忆中呢？</p>
<p align="center"><img alt="小霸王Z9/Z10" id="image83" src="http://www.codesoil.net/wp-content/uploads/2008/04/xiaobawang.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/13/new-product-from-the-king-of-pirate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Glance at New VirtualPCCenter 2.0 of NEC</title>
		<link>http://www.codesoil.net/2008/04/12/a-glance-at-new-virtualpccenter-20-of-nec/</link>
		<comments>http://www.codesoil.net/2008/04/12/a-glance-at-new-virtualpccenter-20-of-nec/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 12:41:32 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject><dc:subject>thin client</dc:subject><dc:subject>vpcc</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/12/a-glance-at-new-virtualpccenter-20-of-nec/</guid>
		<description><![CDATA[4月7日，NEC发布了虚拟PC型瘦客户系统VPCC的最新版本——VPCC 2.0。目前该产品只在日本国内出售，预计将来将会向全世界推广。
这次的VPCC 2.0系统中的新产品如下：

虚拟PC服务器采用最新的Express5800/120Rj-2
120Rj-2虚拟PC服务器是安装VMware ESX Server 3.5，并负责管理和执行VM的服务器，自然是采用了极为强悍的系统配置。
CPU为四核Xeon E5405，内存标配18GB，最大可扩展至48GB，本地存储由5块146.5GB的SAS硬盘构成。这样一台服务器，默认搭载10台Windows XP或Vista的虚拟PC，最大可扩展至50台虚拟PC。
入门级瘦客户机US110E
US110E是去年的US110的精简版，价格低廉适合于入门用户。其CPU为ARM926EJ 400MHz，OS为Windows CE 5.0，重量仅为350克
支持双显示器的瘦客户机US300
US300比起US110E要大得多也重得多（1.3Kg），价格也高出一截。其CPU为VIA C7 1GHz，单从主频上看要远远高于US110/US110E，不知道性能会更强劲？此外其OS是Windows XP Embedded SP2 + Feature Pack 2007，应该比Windows CE有着更好的设备兼容性和性能，此外RDP客户端也被升级到了6.0，全面支持Vista的各种效果。
SigmaSystemCenter Software Thinterminal 2.1
这个产品的名字有点长，不过用途倒是很广。这个软件存储于CD-ROM或者USB-ROM中，将其直接连接在一般的PC上启动，就可以使PC成为瘦客户机，而不需要任何其他的操作系统。
由于它的系统需求很低（只需奔腾2 CPU，96MB内存的PC即可），需要已经近乎废弃的旧电脑可以被再次利用，作为瘦客户机发挥余热。

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nec.co.jp/press/ja/0804/0701.html">4月7日</a>，NEC发布了虚拟PC型瘦客户系统VPCC的最新版本——VPCC 2.0。目前该产品只在日本国内出售，预计将来将会向全世界推广。</p>
<p>这次的VPCC 2.0系统中的新产品如下：</p>
<ol>
<li>虚拟PC服务器采用最新的<a href="http://www.nec.co.jp/press/ja/0804/0701-01.html">Express5800/120Rj-2</a><br />
120Rj-2虚拟PC服务器是安装VMware ESX Server 3.5，并负责管理和执行VM的服务器，自然是采用了极为强悍的系统配置。<br />
CPU为四核Xeon E5405，内存标配18GB，最大可扩展至48GB，本地存储由5块146.5GB的SAS硬盘构成。这样一台服务器，默认搭载10台Windows XP或Vista的虚拟PC，最大可扩展至50台虚拟PC。</li>
<li>入门级瘦客户机<a href="http://www.nec.co.jp/press/ja/0804/0701-02.html">US110E</a><br />
US110E是去年的US110的精简版，价格低廉适合于入门用户。其CPU为ARM926EJ 400MHz，OS为Windows CE 5.0，重量仅为350克</li>
<li>支持双显示器的瘦客户机<a href="http://www.nec.co.jp/press/ja/0804/0701-03.html">US300</a><br />
US300比起US110E要大得多也重得多（1.3Kg），价格也高出一截。其CPU为VIA C7 1GHz，单从主频上看要远远高于US110/US110E，不知道性能会更强劲？此外其OS是Windows XP Embedded SP2 + Feature Pack 2007，应该比Windows CE有着更好的设备兼容性和性能，此外RDP客户端也被升级到了6.0，全面支持Vista的各种效果。</li>
<li><a href="http://www.nec.co.jp/pfsoft/sigmasystemcenter/thinterminal/">SigmaSystemCenter Software Thinterminal 2.1</a><br />
这个产品的名字有点长，不过用途倒是很广。这个软件存储于CD-ROM或者USB-ROM中，将其直接连接在一般的PC上启动，就可以使PC成为瘦客户机，而不需要任何其他的操作系统。<br />
由于它的系统需求很低（只需奔腾2 CPU，96MB内存的PC即可），需要已经近乎废弃的旧电脑可以被再次利用，作为瘦客户机发挥余热。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/12/a-glance-at-new-virtualpccenter-20-of-nec/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Disable Search Companion in Windows XP</title>
		<link>http://www.codesoil.net/2008/04/11/disable-search-companion-in-windows-xp/</link>
		<comments>http://www.codesoil.net/2008/04/11/disable-search-companion-in-windows-xp/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 13:05:13 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/11/disable-search-companion-in-windows-xp/</guid>
		<description><![CDATA[Windows XP默认的搜索工具，据说是为了表示亲切友好弄成了一只狗的形象。但是实际上由于其过于傻瓜化的操作，使得高级用户在进行查找时反倒觉得难用。而User Interface上又没有提供简单的傻瓜用户-高级用户切换方式（像控制面向那样），就只能靠更改下面的注册表来达到目的：
HKEY_CURRENT_USER → Software → Microsoft → Windows → CurrentVersion → Explorer → CabinetState
在这里新建如下注册表值：
名字：Use Search Asst
类型：String（字符串）
值：no
之后重新打开一个搜索界面，就会发现搜索界面已经换成了清爽方便的高级搜索模式。
 
]]></description>
			<content:encoded><![CDATA[<p>Windows XP默认的搜索工具，据说是为了表示亲切友好弄成了一只狗的形象。但是实际上由于其过于傻瓜化的操作，使得高级用户在进行查找时反倒觉得难用。而User Interface上又没有提供简单的傻瓜用户-高级用户切换方式（像控制面向那样），就只能靠更改下面的注册表来达到目的：</p>
<p>HKEY_CURRENT_USER → Software → Microsoft → Windows → CurrentVersion → Explorer → CabinetState</p>
<p>在这里新建如下注册表值：</p>
<blockquote><p>名字：Use Search Asst<br />
类型：String（字符串）<br />
值：no</p></blockquote>
<p>之后重新打开一个搜索界面，就会发现搜索界面已经换成了清爽方便的高级搜索模式。</p>
<p align="center"><img alt="Search Companion" id="image80" src="http://www.codesoil.net/wp-content/uploads/2008/04/001.png" /> <img alt="Advanced Search" id="image78" src="http://www.codesoil.net/wp-content/uploads/2008/04/002.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/11/disable-search-companion-in-windows-xp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Run Windows Vista on Your Mobile Phone</title>
		<link>http://www.codesoil.net/2008/04/04/run-windows-vista-on-your-mobile-phone/</link>
		<comments>http://www.codesoil.net/2008/04/04/run-windows-vista-on-your-mobile-phone/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 03:43:45 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject><dc:subject>Atom</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/04/04/run-windows-vista-on-your-mobile-phone/</guid>
		<description><![CDATA[可曾想过，在你的手机上运行Windows Vista呢？现在这已经不是一个梦想，而是活生生的现实了。
Willcom公司于3月3日宣布，他们正在与Intel，Microsoft和Sharp共同开发一款新的手机。这款新的手机将于6月正式发布，操作系统为Windows Vista。
既然操作系统是Windows Vista，而不是一向用在掌上电脑和手机上的Windows CE，那么说明硬件就是一个完整的x86平台了。这么小的x86平台，是如何实现的呢？
其实，这要完全得益于Intel于今年3月初发布的Intel Centrino Atom Processor Technology，也就是开发代号为“Menlow”的低功耗超微型x86平台。
Atom是一个大小只有25平方毫米的45纳米技术CPU芯片，完全取代了它的前一代Intel A100/A110（90纳米工艺）。其频率为800MHz到1.87GHz，FSB为533MT/s。
不仅是手机，很多UMPC(Ultra Mobile PC)估计也会采用Atom。目前市面的UMPC多采用Intel A100/A110，AMD Geode或者是VIA C7系列。要买UMPC的人估计又要观望一下了。

]]></description>
			<content:encoded><![CDATA[<p><img id="image76" alt="Intel Atom" style="float: left; padding-right: 5px" src="http://www.codesoil.net/wp-content/uploads/2008/04/intel_atom.png" />可曾想过，在你的手机上运行Windows Vista呢？现在这已经不是一个梦想，而是活生生的现实了。</p>
<p><a title="Willcom Vista Mobile Phone" href="http://pc.watch.impress.co.jp/docs/2008/0303/willcom.htm">Willcom公司于3月3日宣布</a>，他们正在与Intel，Microsoft和Sharp共同开发一款新的手机。这款新的手机将于6月正式发布，操作系统为Windows Vista。</p>
<p>既然操作系统是Windows Vista，而不是一向用在掌上电脑和手机上的Windows CE，那么说明硬件就是一个完整的x86平台了。这么小的x86平台，是如何实现的呢？</p>
<p>其实，这要完全得益于Intel于今年3月初发布的<a title="Intel Atom" href="http://en.wikipedia.org/wiki/Intel_Atom">Intel Centrino Atom Processor Technology</a>，也就是开发代号为“Menlow”的低功耗超微型x86平台。</p>
<p>Atom是一个大小只有25平方毫米的45纳米技术CPU芯片，完全取代了它的前一代Intel A100/A110（90纳米工艺）。其频率为800MHz到1.87GHz，FSB为533MT/s。</p>
<p>不仅是手机，很多UMPC(Ultra Mobile PC)估计也会采用Atom。目前市面的UMPC多采用Intel A100/A110，AMD Geode或者是VIA C7系列。要买UMPC的人估计又要观望一下了。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/04/04/run-windows-vista-on-your-mobile-phone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Cool Utility - MSN Messenger History Merger</title>
		<link>http://www.codesoil.net/2008/03/07/a-cool-utility-msn-messenger-history-merger/</link>
		<comments>http://www.codesoil.net/2008/03/07/a-cool-utility-msn-messenger-history-merger/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 05:35:34 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Tools &amp; Utilities</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/03/07/a-cool-utility-msn-messenger-history-merger/</guid>
		<description><![CDATA[对于在同时在公司和家里使用MSN Messenger/Windows Live Messenger的人来说，聊天记录的管理就成了一个问题——尤其是聊天记录里面的信息比较重要的时候。
Messenger的聊天记录是以XML形式保存，每条消息使用一个标签记录。理论上讲，只要合并这些标签，再更改一些参数（例如表明会话数的FirstSessionID和LastSessionID属性），就可以将多个聊天记录合并为一个。
但是，这些操作如果一个一个手动来做，是非常耗费时间的。有没有一个工具，能够傻瓜式操作，自动将两个Messenger的聊天记录文件夹合并为一个呢？
微软的开源项目网站CodePlex上就有这么一个开源工具：MSN Messenger History Merger
http://www.codeplex.com/MsnHistoryMerger
该工具就是专用的MSN Messenger的XML聊天记录合并工具。目前的最新版的1.5版。需要注意的是，该工具需要.NET Framework 2.0才能运行。

]]></description>
			<content:encoded><![CDATA[<p>对于在同时在公司和家里使用MSN Messenger/Windows Live Messenger的人来说，聊天记录的管理就成了一个问题——尤其是聊天记录里面的信息比较重要的时候。</p>
<p>Messenger的聊天记录是以XML形式保存，每条消息使用一个标签记录。理论上讲，只要合并这些标签，再更改一些参数（例如表明会话数的FirstSessionID和LastSessionID属性），就可以将多个聊天记录合并为一个。</p>
<p>但是，这些操作如果一个一个手动来做，是非常耗费时间的。有没有一个工具，能够傻瓜式操作，自动将两个Messenger的聊天记录文件夹合并为一个呢？</p>
<p>微软的开源项目网站CodePlex上就有这么一个开源工具：MSN Messenger History Merger</p>
<p><a title="MSN Messenger History Merger" href="http://www.codeplex.com/MsnHistoryMerger">http://www.codeplex.com/MsnHistoryMerger</a></p>
<p>该工具就是专用的MSN Messenger的XML聊天记录合并工具。目前的最新版的1.5版。需要注意的是，该工具需要.NET Framework 2.0才能运行。
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/03/07/a-cool-utility-msn-messenger-history-merger/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Install ESX Server 3.5/3i onto ESX Server</title>
		<link>http://www.codesoil.net/2008/01/21/install-esx-server-353i-onto-esx-server/</link>
		<comments>http://www.codesoil.net/2008/01/21/install-esx-server-353i-onto-esx-server/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 03:30:50 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>esx3i</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/01/21/install-esx-server-353i-onto-esx-server/</guid>
		<description><![CDATA[已经有许多文章介绍如何在VMware Workstation上安装ESX Server，而在一台ESX Server上安装ESX Server其实也是大同小异。这里就把安装时的关键步骤记录一下。
# 下面的文章中，将直接安装在硬件的ESX Server称为【Host ESX Server】，将安装在Host ESX Server上的ESX Server称为【Guest ESX Server】
1. 做好Guest ESX Server的设置
就如同安装其他Guest OS一样，通过VI Client或者VirtualCenter连接到Host ESX Server，并创建一台VM。 创建时，OS类型选择“其他”，vCPU为2个，内存为1GB或更多即可。
2. 将网卡类型改为e1000
在创建好VM之后，不要急着安装。
在安装Guest ESX Server时，由于ESX Server无法识别默认的AMD网卡，需要手动编辑.vmx文件，将网卡类型改为ESX Server能够识别的“e1000” 。
登录到Host ESX Server的Service Console，在/vmfs/volumes/下找到创建好的VM的.vmx文件，用vi编辑器在其中加入如下行：
ethernet0.virtualDev = &#8220;e1000&#8243;
这里，ethernet0是第一个虚拟网卡，如果创建VM时设置了多块网卡，需要分别设置。设置好之后，可通过启动VM时的Boot Menu来确认。

默认的网卡类型：AMD Am79C970A

更改后的网卡类型：Intel E1000
3. Host ESX Server硬件的CPU必须支持VT (Virtualization Technology) (如果是AMD CPU，则是AMD-V)
Intel的VT或AMD的AMD-V是在CPU级别提供对虚拟化支持的技术。在ESX Server上安装32位的操作系统，如Windows XP时，打开或关闭VT功能对性能不会造成多大影响，但是在ESX Server上再安装ESX Server时，不使用VT却能让ESX Server虚拟机的启动时间变慢到10倍以上。
（我在不开启VT的情况下，在一台双Xeon CPU，12GB内存的ESX Server 3上安装ESX Server 3i，经过4小时的100%CPU占用率之后我放弃了）
4. 打开VMware的后门
要让ESX 3.5/3i顺利地运行在Host [...]]]></description>
			<content:encoded><![CDATA[<p>已经有许多文章介绍如何在VMware Workstation上安装ESX Server，而在一台ESX Server上安装ESX Server其实也是大同小异。这里就把安装时的关键步骤记录一下。</p>
<p># 下面的文章中，将直接安装在硬件的ESX Server称为【Host ESX Server】，将安装在Host ESX Server上的ESX Server称为【Guest ESX Server】</p>
<p><strong>1. 做好Guest ESX Server的设置</strong></p>
<p>就如同安装其他Guest OS一样，通过VI Client或者VirtualCenter连接到Host ESX Server，并创建一台VM。 创建时，OS类型选择“其他”，vCPU为2个，内存为1GB或更多即可。</p>
<p><strong>2. 将网卡类型改为e1000</strong></p>
<p>在创建好VM之后，不要急着安装。<br />
在安装Guest ESX Server时，由于ESX Server无法识别默认的AMD网卡，需要手动编辑.vmx文件，将网卡类型改为ESX Server能够识别的“e1000” 。</p>
<p>登录到Host ESX Server的Service Console，在/vmfs/volumes/下找到创建好的VM的.vmx文件，用vi编辑器在其中加入如下行：</p>
<div class="ch_code_container" style="font-family: Courier New,monospace">ethernet0.virtualDev = &#8220;e1000&#8243;</div>
<p>这里，ethernet0是第一个虚拟网卡，如果创建VM时设置了多块网卡，需要分别设置。设置好之后，可通过启动VM时的Boot Menu来确认。</p>
<div align="center"><img id="image67" alt="Ethernet" src="http://www.codesoil.net/wp-content/uploads/2008/01/ethernet.png" /><br />
默认的网卡类型：AMD Am79C970A</div>
<p align="center"><img id="image68" alt="e1000" src="http://www.codesoil.net/wp-content/uploads/2008/01/e1000.png" /><br />
更改后的网卡类型：Intel E1000</p>
<p><strong>3. Host ESX Server硬件的CPU必须支持VT (Virtualization Technology) (如果是AMD CPU，则是AMD-V)</strong></p>
<p>Intel的VT或AMD的AMD-V是在CPU级别提供对虚拟化支持的技术。在ESX Server上安装32位的操作系统，如Windows XP时，打开或关闭VT功能对性能不会造成多大影响，但是在ESX Server上再安装ESX Server时，不使用VT却能让ESX Server虚拟机的启动时间变慢到10倍以上。</p>
<p>（我在不开启VT的情况下，在一台双Xeon CPU，12GB内存的ESX Server 3上安装ESX Server 3i，经过4小时的100%CPU占用率之后我放弃了）</p>
<p><strong>4. 打开VMware的后门</strong></p>
<p>要让ESX 3.5/3i顺利地运行在Host ESX Server上，还需要打开VMware的“后门”，否则很有可能会见到VMware中的“紫屏”（可以和Windows中的“蓝屏”媲美）。</p>
<p>要打开这个后门，允许在虚拟机上安装ESX Server，需要在.vmx文件中增加如下两行：</p>
<div class="ch_code_container" style="font-family: Courier New,monospace">monitor_control.vt32 = &#8220;true&#8221;<br />
monitor_control.restrict_backdoor = &#8220;true&#8221;</div>
<p>这个后门不仅避免了“紫屏”等死机、不稳定等问题，更是将启动速度再提高10倍。我在打开VT的情况下启动Guest ESX Server花费了30分钟，在即打开VT，又打开这些后门选项之后，只花费了2分钟。</p>
<p><strong>5. 在Host ESX Server上允许Promiscuous Mode</strong></p>
<p>做好上面的一切之后，你应该就可以顺利安装Guest ESX Server了。可是安装完成启动之后，却发现无法通过VirtualCenter来管理它——甚至连ping Guest ESX Server的Service Console都ping不通！这是为什么呢？</p>
<p>原因在于Host ESX Server上，连接着Guest ESX Server的vSwitch的设置。vSwitch默认是不允许promiscuous mode（允许网卡监听发往其他MAC地址的包的模式）的。但是在Guest ESX Server中，网卡只是一个桥接（bridge）作用，并不直接绑定MAC地址。因此，必须在Host ESX Server中允许promiscuous mode，Host ESX Server才能正确地将包传递给Guest ESX Server的Service Console（3i则是管理用IP）。</p>
<p align="center"><img alt="Promiscuous Mode" id="image69" src="http://www.codesoil.net/wp-content/uploads/2008/01/promiscuous.png" /></p>
<p>到这里，就可以体验ESX 3.5/3i的神奇世界了。</p>
<div align="center"><a class="imagelink" title="ESX Server 3i" href="http://www.codesoil.net/wp-content/uploads/2008/01/009.png"><img id="image70" alt="ESX Server 3i" src="http://www.codesoil.net/wp-content/uploads/2008/01/009.thumbnail.png" /></a> <a title="ESX Server 3i Configuration" class="imagelink" href="http://www.codesoil.net/wp-content/uploads/2008/01/010.png"><img alt="ESX Server 3i Configuration" id="image71" src="http://www.codesoil.net/wp-content/uploads/2008/01/010.thumbnail.png" /> </a><a class="imagelink" title="ESX Server 3.5" href="http://www.codesoil.net/wp-content/uploads/2008/01/n001.png"><img id="image72" alt="ESX Server 3.5" src="http://www.codesoil.net/wp-content/uploads/2008/01/n001.thumbnail.png" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/01/21/install-esx-server-353i-onto-esx-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Determine the Availability of Intel VT from ESX Server</title>
		<link>http://www.codesoil.net/2008/01/10/how-to-determine-the-availability-of-intel-vt-from-esx-server/</link>
		<comments>http://www.codesoil.net/2008/01/10/how-to-determine-the-availability-of-intel-vt-from-esx-server/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 05:10:09 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>esx</dc:subject><dc:subject>vt</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2008/01/10/how-to-determine-the-availability-of-intel-vt-from-esx-server/</guid>
		<description><![CDATA[Intel VT (Virtualization Technology) is a set of processor enhancements, which enables virtualization platforms to offload workloads to system hardware, thus run virtual machines at &#8220;near native&#8221; performance.
Especially when you want to install virtualization software onto another virtualization platform, Intel VT can greatly improve the performance. For example, you may want to install VMware ESX [...]]]></description>
			<content:encoded><![CDATA[<p>Intel VT (Virtualization Technology) is a set of processor enhancements, which enables virtualization platforms to offload workloads to system hardware, thus run virtual machines at &ldquo;near native&rdquo; performance.</p>
<p>Especially when you want to install virtualization software onto another virtualization platform, Intel VT can greatly improve the performance. For example, you may want to install VMware ESX Server 3i onto VMware ESX Server 3 or VMware Workstation 6.</p>
<p>On an ESX Server, to determine whether Intel VT is enabled, you can use the esxcfg-info command. Although you can reboot the machine and go to BIOS setting to confirm it, this command should be the most convenient way.</p>
<p>Logon to the Service Console, and type:</p>
<p class="green-emp" style="FONT-FAMILY: Courier New">esxcfg-info -w | grep VT</p>
<p>you will get the following output if VT is enabled:</p>
<p class="blue-emp" style="FONT-FAMILY: Courier New">|&#8212;-VT Support&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;3</p>
<p>(Values other than 3, such as 0, 2 should mean &ldquo;no VT available&rdquo; and &ldquo;VT disabled&rdquo; respectively, although I am not very sure)</p>
<p>NOTE: The above flag is only for ESX Server 3.0.x. In ESX Server 3.5.x, it is called &ldquo;HV Support&rdquo;, not &ldquo;VT Support&rdquo;. Therefore you have to change the command as following in ESX 3.5:</p>
<p class="green-emp" style="FONT-FAMILY: Courier New">esxcfg-info -w | grep HV</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2008/01/10/how-to-determine-the-availability-of-intel-vt-from-esx-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MAC Address for Virtual Machines</title>
		<link>http://www.codesoil.net/2007/11/28/mac-address-for-virtual-machines/</link>
		<comments>http://www.codesoil.net/2007/11/28/mac-address-for-virtual-machines/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 05:13:10 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Miscellaneous</dc:subject><dc:subject>esx</dc:subject><dc:subject>mac address</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/11/28/mac-address-for-virtual-machines/</guid>
		<description><![CDATA[虚拟世界的MAC地址
先看一下真实世界的MAC地址是如何分配，如何保证没有重复的。
每块网卡都有一个MAC地址，MAC地址是一个6字节、也即48bit的数据。前3字节称为OUI，是由IEEE组织注册给网络设备生产商的；每个厂商拥有一个或多个OUI，彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备，互不重复。
在VM的世界中，每一台拥有虚拟NIC（网卡）的设备当然也拥有MAC地址。这虚拟网卡的MAC地址，当然也是按照规定，前三字节为OUI，后三字节逐一分配给每个设备。
由于虚拟网卡的&#8221;制造商&#8220;是VMware，XenSource，微软等虚拟平台软件的生产商，OUI当然就分配给了他们。 
&#160;
VMware VM所使用的OUI
按照VMware ESX 3的[Server Configuration Guide]的说法，VMware的使用下面的三个OUI作为VM的MAC地址：

00:0C:29 - 用于自动生成的MAC地址
00:50:56 - 用于手动设置的MAC地址
00:05:69 - 曾经用于旧版本的VM（大约是在ESX 1.5的时代），在ESX 3中已经不再使用

但是在实际应用上，我发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址：

00:50:56:00:00:00 - 00:50:56:3F:FF:FF
    这一段MAC地址可以用于手动设置的MAC地址
00:50:56:40:00:00 - 00:50:56:FF:FF:FF
    这一段（我的推测，不一定准确），则是用于ESX 3上的自动生成的MAC地址（包括VM和Service Console）

&#160;
MAC地址的生成
OUI有了，后三字节如何生成呢？要知道虚拟机是经常被创建和销毁的，这一点不像实体PC。网卡生产商可以计算每年生产多少块网卡，从而为每块网卡分配不同的MAC地址； VMware却不可能计算出每年有多少台VM、有多少块虚拟网卡被创建。
VMware ESX Server的算法是，使用散列算法，通过VM的UUID来生成MAC地址。VM的UUID是每一台VM特有的、128bit的ID，是由ESX Server硬件SMBIOS的UUID、加上VM的路径生成的。因此，一台虚拟机的虚拟网卡的MAC地址就与下面四个因素有关：

VMware的OUI
Host (ESX Server)的SMBIOS中的UUID
VM在服务器上的路径
网卡的实体名 (Entity Name)，用来确保同一VM上的不同网卡有不同的MAC地址

&#160;
MAC地址冲突的检测与解决
MAC地址一旦生成，就不会再有变化，除非上面所述的四项因素发生改变（最可能发生的就是第三项，VM在服务器上的路径改变）。
尽管如此，由于散列算法本身的特征，还是有万一发生MAC地址冲突的可能（可能性极小，和年末ジャンボ中头彩的几率差不多）。ESX Server会不断跟踪和检测运行中和挂起(Suspend)的VM，以保证没有MAC地址冲突。但是已经关闭电源的VM是不在检查对象之内的。

因此，万一一台VM启动时ESX检测到MAC地址冲突，它会分配给VM的虚拟网卡一个新的MAC地址。所以从这个意义上说，VM的MAC地址是可能发生变化的&#8212;&#8212;只是这个概率实在太小。 
&#160;
手动指定MAC地址
手动指定MAC地址仅用于一些极其特殊的情况，通常是进行P2V的时候。例如，某物理服务器上的软件，其License已经与该服务器的MAC地址绑定，如果MAC地址改变则软件无法运行；再如，某些底层网络软件以MAC地址来鉴别机器时，为了不做更改能够继续使用，在P2V的时候也要手动指定MAC地址。
打开一个VM的.vmx文件，可以看到如下设置：（如果有多块NIC的话，那么就会有ethernet0、ethernet1、ethernet2&#8230;&#8230;）
ethernet0.addressType = &#34;generated&#34;
ethernet0.generatedAddress = &#34;00:0c:29:9b:fb:18&#34;
这说明该NIC是自动生成的MAC地址。只需如下更改即可变为手动分配的MAC地址：
ethernet0.addressType = &#34;static&#34;
ethernet0.address = &#34;00:50:56:00:00:01&#34;
其中的00:50:56:00:00:01就是手动指定的MAC地址。
]]></description>
			<content:encoded><![CDATA[<h3>虚拟世界的MAC地址</h3>
<p>先看一下真实世界的MAC地址是如何分配，如何保证没有重复的。</p>
<p>每块网卡都有一个MAC地址，MAC地址是一个6字节、也即48bit的数据。前3字节称为<a href="http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier">OUI</a>，是由IEEE组织注册给网络设备生产商的；每个厂商拥有一个或多个OUI，彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备，互不重复。</p>
<p>在VM的世界中，每一台拥有虚拟NIC（网卡）的设备当然也拥有MAC地址。这虚拟网卡的MAC地址，当然也是按照规定，前三字节为OUI，后三字节逐一分配给每个设备。</p>
<p>由于虚拟网卡的&rdquo;制造商&ldquo;是VMware，XenSource，微软等虚拟平台软件的生产商，OUI当然就分配给了他们。 </p>
<p>&nbsp;</p>
<h3>VMware VM所使用的OUI</h3>
<p>按照VMware ESX 3的[<a href="http://www.vmware.com/support/pubs/vi_pubs.html">Server Configuration Guide</a>]的说法，VMware的使用下面的三个OUI作为VM的MAC地址：</p>
<ul class="red-emp">
<li>00:0C:29 - 用于自动生成的MAC地址</li>
<li>00:50:56 - 用于手动设置的MAC地址</li>
<li>00:05:69 - 曾经用于旧版本的VM（大约是在ESX 1.5的时代），在ESX 3中已经不再使用</li>
</ul>
<p>但是在实际应用上，我发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址：</p>
<ul>
<li>00:50:56:00:00:00 - 00:50:56:3F:FF:FF<br />
    这一段MAC地址可以用于手动设置的MAC地址</li>
<li>00:50:56:40:00:00 - 00:50:56:FF:FF:FF<br />
    这一段（我的推测，不一定准确），则是用于ESX 3上的自动生成的MAC地址（包括VM和Service Console）</li>
</ul>
<p>&nbsp;</p>
<h3>MAC地址的生成</h3>
<p>OUI有了，后三字节如何生成呢？要知道虚拟机是经常被创建和销毁的，这一点不像实体PC。网卡生产商可以计算每年生产多少块网卡，从而为每块网卡分配不同的MAC地址； VMware却不可能计算出每年有多少台VM、有多少块虚拟网卡被创建。</p>
<p>VMware ESX Server的算法是，使用散列算法，通过VM的UUID来生成MAC地址。VM的UUID是每一台VM特有的、128bit的ID，是由ESX Server硬件SMBIOS的UUID、加上VM的路径生成的。因此，一台虚拟机的虚拟网卡的MAC地址就与下面四个因素有关：</p>
<ul class="green-emp">
<li>VMware的OUI</li>
<li>Host (ESX Server)的SMBIOS中的UUID</li>
<li>VM在服务器上的路径</li>
<li>网卡的实体名 (Entity Name)，用来确保同一VM上的不同网卡有不同的MAC地址</li>
</ul>
<p>&nbsp;</p>
<h3>MAC地址冲突的检测与解决</h3>
<p>MAC地址一旦生成，就不会再有变化，除非上面所述的四项因素发生改变（最可能发生的就是第三项，VM在服务器上的路径改变）。</p>
<p>尽管如此，由于散列算法本身的特征，还是有万一发生MAC地址冲突的可能（可能性极小，和年末ジャンボ中头彩的几率差不多）。ESX Server会不断跟踪和检测运行中和挂起(Suspend)的VM，以保证没有MAC地址冲突。但是已经关闭电源的VM是不在检查对象之内的。</p>
<p></p>
<p>因此，万一一台VM启动时ESX检测到MAC地址冲突，它会分配给VM的虚拟网卡一个新的MAC地址。所以从这个意义上说，VM的MAC地址是可能发生变化的&mdash;&mdash;只是这个概率实在太小。 </p>
<p>&nbsp;</p>
<h3>手动指定MAC地址</h3>
<p>手动指定MAC地址仅用于一些极其特殊的情况，通常是进行P2V的时候。例如，某物理服务器上的软件，其License已经与该服务器的MAC地址绑定，如果MAC地址改变则软件无法运行；再如，某些底层网络软件以MAC地址来鉴别机器时，为了不做更改能够继续使用，在P2V的时候也要手动指定MAC地址。</p>
<p>打开一个VM的.vmx文件，可以看到如下设置：（如果有多块NIC的话，那么就会有ethernet0、ethernet1、ethernet2&hellip;&hellip;）</p>
<div style="font-family: monospace;" class="blue-emp">ethernet0.addressType = &quot;generated&quot;<br />
ethernet0.generatedAddress = &quot;00:0c:29:9b:fb:18&quot;</div>
<p>这说明该NIC是自动生成的MAC地址。只需如下更改即可变为手动分配的MAC地址：</p>
<div style="font-family: monospace;" class="blue-emp">ethernet0.addressType = &quot;static&quot;<br />
ethernet0.address = &quot;00:50:56:00:00:01&quot;</div>
<p>其中的00:50:56:00:00:01就是手动指定的MAC地址。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/11/28/mac-address-for-virtual-machines/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Settings for CETSC - RDP Client on Windows CE</title>
		<link>http://www.codesoil.net/2007/11/24/settings-for-cetsc-rdp-client-on-windows-ce/</link>
		<comments>http://www.codesoil.net/2007/11/24/settings-for-cetsc-rdp-client-on-windows-ce/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 13:01:25 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>rdp</dc:subject><dc:subject>thin client</dc:subject><dc:subject>wince</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/11/24/settings-for-cetsc-rdp-client-on-windows-ce/</guid>
		<description><![CDATA[Windows CE被很多Thin Client采用，作为嵌入式的操作系统。在WinCE based Thin Client上，通常使用RDP协议与远程桌面进行连接，对Windows CE Terminal Services Client (cetsc.exe)的配置也就非常重要。
启动CETSC后，CETSC读取.rdp文件中的设置，或是根据注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client下的设置连接远程主机。下面就是一个可以设置的选项列表（对.rdp文件和注册表均适用）。注意此处以在Thin Client上广泛使用的Windows CE 5.0为例；Windows CE 6的设置有所不同。此外这些设置不适用于Windows Mobile。



Value
Type
Description


AlternateShell
String
如果指定了该值，则RDP连接后登录到指定的shell程序，或执行指定的应用程序，而不是登录到通常的shell (explorer.exe)。


AudioRedirectionMode
DWORD
指定声音在哪里播放，默认值为0：
            0 - 在远程主机播放
            1 - 在本地 (Thin Client)播放
      [...]]]></description>
			<content:encoded><![CDATA[<p>Windows CE被很多Thin Client采用，作为嵌入式的操作系统。在WinCE based Thin Client上，通常使用RDP协议与远程桌面进行连接，对Windows CE Terminal Services Client (cetsc.exe)的配置也就非常重要。</p>
<p>启动CETSC后，CETSC读取.rdp文件中的设置，或是根据注册表<strong>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client</strong>下的设置连接远程主机。下面就是一个可以设置的选项列表（对.rdp文件和注册表均适用）。注意此处以在Thin Client上广泛使用的Windows CE 5.0为例；<a href="http://msdn2.microsoft.com/en-us/library/aa934226.aspx">Windows CE 6的设置</a>有所不同。此外这些设置不适用于Windows Mobile。</p>
<table class="dtTABLE">
<tbody>
<tr>
<th>Value</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td><strong>AlternateShell</strong></td>
<td>String</td>
<td>如果指定了该值，则RDP连接后登录到指定的shell程序，或执行指定的应用程序，而不是登录到通常的shell (explorer.exe)。</td>
</tr>
<tr>
<td><strong>AudioRedirectionMode</strong></td>
<td>DWORD</td>
<td>指定声音在哪里播放，默认值为0：<br />
            0 - 在远程主机播放<br />
            1 - 在本地 (Thin Client)播放<br />
            2 - 不播放声音 </td>
</tr>
<tr>
<td><strong><strong><strong>AutoReconnectEnabled</strong> </strong></strong></td>
<td>DWORD</td>
<td>当连接异常中断时，是否允许自动重新连接，默认值为1：<br />
            0 - 不允许<br />
            1 - 允许 </td>
</tr>
<tr>
<td><strong><strong>BBarEnabled</strong></strong></td>
<td>DWORD</td>
<td>是否显示屏幕顶部的连接栏 (Connection Bar)，默认值为1<br />
            0 - 不显示<br />
            1 - 显示 </td>
</tr>
<tr>
<td><strong><strong>BBarShowMinimizeBtn</strong></strong></td>
<td>DWORD</td>
<td>是否显示连接栏上的最小化按钮，默认值为1<br />
            0 - 不显示<br />
            1 - 显示 </td>
</tr>
<tr>
<td><strong><strong>BBarShowPinBtn</strong></strong></td>
<td>DWORD</td>
<td>是否显示连接栏上的固定按钮 (Pin Button)，默认值为0<br />
            0 - 不显示<br />
            1 - 显示 </td>
</tr>
<tr>
<td><strong><strong>BBarShowRestoreBtn</strong></strong></td>
<td>DWORD</td>
<td>是否显示连接栏上的还原窗口大小按钮 (Restore Button)，默认值为1<br />
            0 - 不显示<br />
            1 - 显示 </td>
</tr>
<tr>
<td><strong><strong>BBarPinned</strong></strong></td>
<td>DWORD</td>
<td>是否自动隐藏连接栏，默认值为1<br />
            0 - 自动隐藏连接栏<br />
            1 - 一直显示连接栏 </td>
</tr>
<tr>
<td><strong><strong>BitmapCacheSize</strong></strong></td>
<td>DWORD</td>
<td>以KB为单位指定内存里的位图缓冲区大小，默认值为1500，最大值为32000 </td>
</tr>
<tr>
<td><strong><strong>BitmapPersistCacheLocation</strong></strong></td>
<td>String</td>
<td>指定位图缓冲区的位于何处，默认值为\Temp </td>
</tr>
<tr>
<td><strong><strong>BitmapPersistenceEnabled</strong></strong></td>
<td>DWORD</td>
<td>指定是否允许位图缓冲。默认值为0<br />
            0 - 不允许<br />
            1 - 允许 </td>
</tr>
<tr>
<td><strong><strong>ColorDepthID</strong></strong></td>
<td>DWORD</td>
<td>颜色深度，以bpp (bits per pixel)为单位。默认值为4<br />
            0 - 4 bpp<br />
            1 - 8 bpp<br />
            2 - 15 bpp<br />
            3 - 16 bpp<br />
            4 - 24 bpp </td>
</tr>
<tr>
<td><strong><strong>Compress</strong></strong></td>
<td>DWORD</td>
<td>是否启用文件和目录压缩，默认值为1<br />
            0 - 不启用<br />
            1 - 启用 </td>
</tr>
<tr>
<td><strong><strong>ConnectToServerConsole</strong></strong></td>
<td>DWORD</td>
<td>指定是否连接到远程主机的Console session。对于Windows x68和Windows CE来说，可以用 mstsc /console 或 cetsc /console命令连接到Console session，不需要该选项。该选项只用于不使用Windows作为OS的Thin Client。默认值为0<br />
            0 - 不连接到Console session (连接到Terminal Services session)。<br />
            1 - 连接到Console session<br />
            由于Windows XP无Console session和Terminal Services session之分，该参数对XP无效。 </td>
</tr>
<tr>
<td><strong>DesktopHeight</strong></td>
<td>DWORD</td>
<td>以像素为单位指定屏幕高度，默认为1024 </td>
</tr>
<tr>
<td><strong>DesktopWidth</strong></td>
<td>DWORD</td>
<td>以像素为单位指定屏幕宽度，默认为1280 </td>
</tr>
<tr>
<td><strong>Disable Full Window Drag</strong></td>
<td>DWORD</td>
<td>指定拖动窗口时是否显示窗口内容。默认值为1<br />
            0 - 不显示<br />
            1 - 显示 </td>
</tr>
<tr>
<td><strong>Disable Menu Anims</strong></td>
<td>DWORD</td>
<td>是否允许菜单动画显示。默认值为1<br />
            0 - 不允许<br />
            1 - 允许 </td>
</tr>
<tr>
<td><strong>Disable Themes</strong></td>
<td>DWORD</td>
<td>是否允许显示主题。默认值为0<br />
            0 - 不允许<br />
            1 - 允许 </td>
</tr>
<tr>
<td><strong>Disable Wallpaper</strong></td>
<td>DWORD</td>
<td>是否允许壁纸。默认值为1<br />
            0&nbsp;- 禁止壁纸<br />
            1 - 允许壁纸 </td>
</tr>
<tr>
<td><strong><strong>DisableFileAccess</strong></strong></td>
<td>DWORD</td>
<td>指定用户是否有权访问本地（Thin Client上面的）文件系统。默认值为1<br />
            0 - 允许用户访问本地文件系统<br />
            1 - 禁止用户访问本地文件系统 </td>
</tr>
<tr>
<td><strong>Domain</strong></td>
<td>String</td>
<td>要连接的远程主机所在的域</td>
</tr>
<tr>
<td><strong><strong>EnableDriveRedirection</strong></strong></td>
<td>DWORD</td>
<td>是否允许重定向驱动器。默认值为1<br />
            0 - 不允许<br />
            1 - 允许</td>
</tr>
<tr>
<td><strong><strong>EnablePortRedirection</strong></strong></td>
<td>DWORD</td>
<td>是否允许重定向串口 (COM口)。默认值为1<br />
            0 - 不允许<br />
            1 - 允许</td>
</tr>
<tr>
<td><strong><strong>EnablePrinterRedirection</strong></strong></td>
<td>DWORD</td>
<td>是否允许重定向打印机。默认值为1<br />
            0 - 不允许<br />
            1 - 允许</td>
</tr>
<tr>
<td><strong><strong>EnableSCardRedirection</strong></strong></td>
<td>DWORD</td>
<td>是否允许重定向智能卡 (Smart Card)。默认值为1<br />
            0 - 不允许<br />
            1 - 允许</td>
</tr>
<tr>
<td><strong><strong>KeyboardHookMode</strong></strong></td>
<td>DWORD</td>
<td>设置Alt - TAB键的作用。默认值为2<br />
            0 - 显示本地 (Thin Client)的项目<br />
            1 - 显示远程 (Server)的项目<br />
            2 - 全屏时显示远程项目，窗口时显示本地项目</td>
</tr>
<tr>
<td><strong><strong>MaxReconnectAttempts</strong></strong></td>
<td>DWORD</td>
<td>设置连接丢失时重新尝试的次数。默认值为20</td>
</tr>
<tr>
<td><strong><strong>MCSPort</strong></strong></td>
<td>DWORD</td>
<td>设置RDP服务的端口。仅用于非Windows-based的Thin Client。</td>
</tr>
<tr>
<td><strong>MRUx (x=0,1,2..)</strong></td>
<td>String</td>
<td>MRU = Most Recently Used，最近访问过的主机列表</td>
</tr>
<tr>
<td><strong><strong>Password</strong></strong></td>
<td>Binary</td>
<td>登陆远程主机用的密码</td>
</tr>
<tr>
<td><strong><strong>ServerName</strong></strong></td>
<td>String</td>
<td>远程主机名或IP地址</td>
</tr>
<tr>
<td><strong><strong>StartFullScreen </strong></strong></td>
<td>DWORD</td>
<td>是否以全屏模式开始远程连接，默认值为1<br />
            0 - 不以全屏模式<br />
            1 - 以全屏模式</td>
</tr>
<tr>
<td><strong><strong>UserName</strong></strong></td>
<td>String</td>
<td>登陆远程主机用的用户名</td>
</tr>
<tr>
<td><strong><strong>WorkingDir</strong></strong></td>
<td>String</td>
<td>工作目录</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/11/24/settings-for-cetsc-rdp-client-on-windows-ce/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Introduction to NEC’s Thin Client</title>
		<link>http://www.codesoil.net/2007/11/23/introduction-to-nec-thin-client/</link>
		<comments>http://www.codesoil.net/2007/11/23/introduction-to-nec-thin-client/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 07:03:45 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>NEC</dc:subject><dc:subject>thin client</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/11/23/introduction-to-necs-thin-client/</guid>
		<description><![CDATA[一直想找个机会贴一下NEC的Thin Client Device，今天就拿出来秀一秀吧。

TC-Station（上图左）是2005年4月25日正式发表的大概是NEC最初的专用瘦客户机产品（在这之前就已经推出过将普通PC硬盘去掉的瘦客户机产品）。
标售价格：5.5万日元
操作系统：基于UNIX的专用OS
本体重量：0.85kg
消费电力：8W
TC-Station High-end Model（上图右）是2005年11月21日正式发表的升级产品。和普通版的最大区别在于它内置了一个IC卡读卡器。 
标售价格：7.8万日元
操作系统：Windows XPe
本体重量：1.92kg
消费电力：Max 24W

US100是2006年11月6日正式发表的，NEC的第一款面向全球发售的瘦客户机产品。在这一款产品中，NEC以两项特有技术领先于其他厂商的产品：高速视频播放&#8212;&#8212;部分解决了瘦客户机上的视频性能问题；VoIP语音电话，解决了RDP不支持语音输入，无法进行电话会议的问题。US是U-Station的缩写。
标售价格：5.2万日元
操作系统：基于UNIX的专用OS
本体重量：0.42kg
消费电力：Max 13W

US110是2007年10月15日正式发表的下一代产品。它不仅继承和发扬了US100的高速视频播放和点到点VoIP语音电话的特有功能，更是以其极高的性价比对其他厂商构成了极大的威胁。
标售价格：4.9万日元
操作系统：Windows CE
本体重量：0.35kg
消费电力：11W（平均），25W（最大）
]]></description>
			<content:encoded><![CDATA[<p>一直想找个机会贴一下NEC的Thin Client Device，今天就拿出来秀一秀吧。</p>
<p><img id="image60" alt="TC-Station" src="http://www.codesoil.net/wp-content/uploads/2007/11/tc-station.jpg" /></p>
<p>TC-Station（上图左）是<a href="http://www.nec.co.jp/press/ja/0504/2502.html">2005年4月25日正式发表</a>的大概是NEC最初的<u><strong>专用</strong></u>瘦客户机产品（在这之前就已经推出过将普通PC硬盘去掉的瘦客户机产品）。</p>
<p>标售价格：5.5万日元<br />
操作系统：基于UNIX的专用OS<br />
本体重量：0.85kg<br />
消费电力：8W</p>
<p>TC-Station High-end Model（上图右）是<a href="http://www.nec.co.jp/press/ja/0511/2101.html">2005年11月21日正式发表</a>的升级产品。和普通版的最大区别在于它内置了一个IC卡读卡器。 </p>
<p>标售价格：7.8万日元<br />
操作系统：Windows XPe<br />
本体重量：1.92kg<br />
消费电力：Max 24W</p>
<p><img id="image58" alt="US100" src="http://www.codesoil.net/wp-content/uploads/2007/11/us100.jpg" /></p>
<p>US100是<a href="http://www.nec.co.jp/press/ja/0611/0605.html">2006年11月6日正式发表</a>的，NEC的第一款面向全球发售的瘦客户机产品。在这一款产品中，NEC以两项特有技术领先于其他厂商的产品：高速视频播放&mdash;&mdash;部分解决了瘦客户机上的视频性能问题；VoIP语音电话，解决了RDP不支持语音输入，无法进行电话会议的问题。US是U-Station的缩写。</p>
<p>标售价格：5.2万日元<br />
操作系统：基于UNIX的专用OS<br />
本体重量：0.42kg<br />
消费电力：Max 13W</p>
<p><img id="image59" alt="US110" src="http://www.codesoil.net/wp-content/uploads/2007/11/us110.jpg" /></p>
<p>US110是<a href="http://www.nec.co.jp/press/ja/0710/1503.html">2007年10月15日正式发表</a>的下一代产品。它不仅继承和发扬了US100的高速视频播放和点到点VoIP语音电话的特有功能，更是以其极高的性价比对其他厂商构成了极大的威胁。</p>
<p>标售价格：4.9万日元<br />
操作系统：Windows CE<br />
本体重量：0.35kg<br />
消费电力：11W（平均），25W（最大）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/11/23/introduction-to-nec-thin-client/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Virtual Infrastructure New Features</title>
		<link>http://www.codesoil.net/2007/11/13/virtual-infrastructure-new-features/</link>
		<comments>http://www.codesoil.net/2007/11/13/virtual-infrastructure-new-features/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 15:47:51 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>esx3i</dc:subject><dc:subject>vdm</dc:subject><dc:subject>vi3.5</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/11/13/virtual-infrastructure-new-features/</guid>
		<description><![CDATA[VMware在VM World 2007上公布了许多新产品的新特性，这里就把旗舰产品Virtual Infrastructure (ESX Server, VirtualCenter)的最新动向、特性做一总结（这里的资料都不是&#8220;新闻&#8221;，相信大家都已经从大小道消息早就知道了，只是做一归纳）。


Virtual&#160;Infrastructure 3.5
Plug-and-Play Datacenter: ESX 3i
VMware ESX Server 3i 是基于VMware ESX Server 3发展而来的下一代Hypervisor体系结构。简单来说，ESX 3i就是ESX 3去掉了COS (Service Console)之后的部分。
根据VMware统计，传统的ESX Server 3中，基于REHL3的COS占用了约2GB的硬盘资源，并且需要打针对REHL3的补丁&#8212;&#8212;针对ESX Server3的补丁中，有一半左右是针对COS的。与之相反，Hypervisor部分（VMKernel）只占用32MB的硬盘。在ESX 3i中，就是去掉了这臃肿的、占原来ESX Server 3的98%的COS，留下一个轻便的，甚至可以嵌入服务器固件的内核。

当然，COS也不是说扔掉就能直接扔掉的&#8212;&#8212;COS作为一个SHELL，一个命令行的操作界面，还是提供了很多功能的。那么这些功能在没有了COS的ESX 3i中是如何实现的呢？
■ 使用命令和脚本管理ESX的功能&#8212;&#8212;在ESX 3i中，由于ESX服务器本身上已经没有命令行界面，因此提供了一个远程的命令行界面（类似SSH的感觉），叫做Remote CLI (Remote Command Line Interface)。通过这一&#8220;新SSH&#8221;，可以像在本地一样执行命令。
■ 服务器性能和健康状态的监控&#8212;&#8212;在传统的ESX 3中，只需要安装软件 (例如NEC的ESMPRO) 即可监控服务器的各项状况，如温度，风扇转速等等。在ESX 3i中，则通过标准的监控协议CIM来进行服务器状况的监控。

■ 3rd Party Agent&#8212;&#8212;在传统的ESX 3中，有时候会需要在COS安装一些第三方的软件的Agent，例如用于备份的软件。在ESX 3i中则只能通过其提供的界面，API等进行通信；对于备份则可使用VCB (VMware Consolidated Backup)进行。
Storage VMotion
在很久前的VCP会议中就听说过Storage VMotion。基本描述起来就是：现有的VMotion并不移动VM的存储节点（也即image文件所在的位置），而是移动VM隶属的计算节点（从一台Host移动到另一台Host）。而Storage VMotion则可以同时移动VM的存储节点，也即把VM从一个Datastore移动到另一个Datastore。
但是，VMware却同时告诉我们，Storage VMotion并不像VMotion那样可以轻松地执行。因为Storage VMotion耗费资源尤其是I/O资源，并且有部分功能不完善（例如目前还没有GUI，只能通过svmotion，svmotion.pl脚本操作），因此不应该像VMotion那样在业务中日常应用，而是作为一个能让系统不间断运作的维护工具。VMware建议的应用场景包括：Storage Array [...]]]></description>
			<content:encoded><![CDATA[<p>VMware在VM World 2007上公布了许多新产品的新特性，这里就把旗舰产品Virtual Infrastructure (ESX Server, VirtualCenter)的最新动向、特性做一总结（这里的资料都不是&ldquo;新闻&rdquo;，相信大家都已经从大小道消息早就知道了，只是做一归纳）。</p>
<p>
</p>
<p><strong><u><font size="4" color="#333399">Virtual&nbsp;Infrastructure 3.5</font></u></strong></p>
<p><strong><font size="3">Plug-and-Play Datacenter: ESX 3i</font></strong></p>
<p>VMware ESX Server 3i 是基于VMware ESX Server 3发展而来的下一代Hypervisor体系结构。简单来说，ESX 3i就是ESX 3去掉了COS (Service Console)之后的部分。</p>
<p>根据VMware统计，传统的ESX Server 3中，基于REHL3的COS占用了约2GB的硬盘资源，并且需要打针对REHL3的补丁&mdash;&mdash;针对ESX Server3的补丁中，有一半左右是针对COS的。与之相反，Hypervisor部分（VMKernel）只占用32MB的硬盘。在ESX 3i中，就是去掉了这臃肿的、占原来ESX Server 3的98%的COS，留下一个轻便的，甚至可以嵌入服务器固件的内核。</p>
<p align="center"><img id="image54" alt="ESX Server 3i" src="http://www.codesoil.net/wp-content/uploads/2007/11/esx3i.png" /></p>
<p>当然，COS也不是说扔掉就能直接扔掉的&mdash;&mdash;COS作为一个SHELL，一个命令行的操作界面，还是提供了很多功能的。那么这些功能在没有了COS的ESX 3i中是如何实现的呢？</p>
<p>■ 使用命令和脚本管理ESX的功能&mdash;&mdash;在ESX 3i中，由于ESX服务器本身上已经没有命令行界面，因此提供了一个远程的命令行界面（类似SSH的感觉），叫做Remote CLI (Remote Command Line Interface)。通过这一&ldquo;新SSH&rdquo;，可以像在本地一样执行命令。</p>
<p>■ 服务器性能和健康状态的监控&mdash;&mdash;在传统的ESX 3中，只需要安装软件 (例如NEC的ESMPRO) 即可监控服务器的各项状况，如温度，风扇转速等等。在ESX 3i中，则通过标准的监控协议CIM来进行服务器状况的监控。</p>
<p align="center"><img id="image56" alt="Hardware Monitoring via CIM" src="http://www.codesoil.net/wp-content/uploads/2007/11/hw-info.png" /></p>
<p>■ 3rd Party Agent&mdash;&mdash;在传统的ESX 3中，有时候会需要在COS安装一些第三方的软件的Agent，例如用于备份的软件。在ESX 3i中则只能通过其提供的界面，API等进行通信；对于备份则可使用VCB (VMware Consolidated Backup)进行。</p>
<p><strong><font size="3">Storage VMotion</font></strong></p>
<p>在很久前的VCP会议中就听说过Storage VMotion。基本描述起来就是：现有的VMotion并不移动VM的存储节点（也即image文件所在的位置），而是移动VM隶属的计算节点（从一台Host移动到另一台Host）。而Storage VMotion则可以同时移动VM的存储节点，也即把VM从一个Datastore移动到另一个Datastore。</p>
<p>但是，VMware却同时告诉我们，Storage VMotion并不像VMotion那样可以轻松地执行。因为Storage VMotion耗费资源尤其是I/O资源，并且有部分功能不完善（例如目前还没有GUI，只能通过svmotion，svmotion.pl脚本操作），因此不应该像VMotion那样在业务中日常应用，而是作为一个能让系统不间断运作的维护工具。VMware建议的应用场景包括：Storage Array Migration（比如说买了新的FC SAN，要把整个系统从旧SAN移动到新SAN，又不想中断业务时），I/O Optimization（比如说LUN之间的负载不平衡，有的LUN上VM很多，有的LUN上VM却很少时）。</p>
<p>据称Storage VMotion将在ESX Server 3.5（当然也包括ESX Server 3i 3.5）中提供，并逐步在以后的版本中补完功能。</p>
<p><strong><font size="3">Site Recovery Manager</font></strong></p>
<p>这也是3.5当中（VirtualCenter 2.5）提供的一个功能。如果说VMware HA (High Availability)是面向服务器、VM的灾难恢复方案，那么Site Recovery Manager就是面向Site的灾难恢复方案。只要预先定义好备用的一套Site（包括Host，存储，VM，网络拓扑结构等），Site Recovery Manager就可以按照计划或在发生万一的故障时进行fail over。</p>
<p><strong><font size="3">Distributed Power Management (DPM)</font></strong></p>
<p>上次TSX的时候听说DPM，还以为是什么UPS的虚拟化工具&mdash;&mdash;电源管理嘛。其实，所谓的&ldquo;分布式电源管理&rdquo;，是一个环保节能（也即最近提倡的Green Datacenter）的工具。可以把DPM与DRS进行比较：DRS是Load Balance的解决方案，可以自动平衡各Host间的负载，将VM平均移动到各个Host上；而DPM则是节约电能的解决方案，当VM数量较少时，DPM将VM集中移动到几台Host上，然后将其他没有VM运行的Host关闭电源。</p>
<p><strong><font size="3">Update Manager</font></strong></p>
<p>Update Manager也是VC2.5中的新功能，其功能其实很简单&mdash;&mdash;利用DRS将某一台ESX上的所有VM移动到其他Host上，然后对这台ESX进行打补丁等升级维护工作。难得的是这些全是全自动的。</p>
<p>顺便说一句，ESX 3i中，虽然只有32MB但是一样是要升级的。只不过3i不再（也无法）靠安装补丁文件的方式，而是靠更换整个3i的Image的方式（有点像固件、BIOS更新）进行升级。</p>
<p><strong><font size="3">Guided Consolidation</font></strong></p>
<p>这个功能更不是什么出奇的东西了。Guided Consolidation = Capacity Planner + Converter + 集成在一起的图形界面。具体来说，就是通过VC，自动发现网络中的物理服务器（只限于Win2003等），通过Capacity Planner分析该服务器，给出移植到虚拟平台的方案，然后通过Converter执行P2V，转移到虚拟化世界来。</p>
<p><strong><font size="3">Para-Virtualization (exp.), Vista Guest OS, enhanced HA, enhanced VCB, NPIV and more<br />
</font></strong></p>
<p>在3.5中，也会试验性地支持Para-Virtualization，当然这也需要OS的支持（如RHEL5等）。此外，Windows Vista也终于结束了漫长的评测过程，正式被纳为虚拟OS家族的成员。</p>
<p>还有许多其他的功能，这里就不一一说明，有兴趣的话请Google相关资料。
</p>
<p>
</p>
<p><font size="4" color="#333399"><strong><u>Beyond&nbsp;3.5 &hellip;</u></strong></font></p>
<p><strong><font size="3">Enhanced&nbsp;VMotion</font></strong></p>
<p>众所周知，执行VMotion的要求近于苛刻&mdash;&mdash;这也不能怪VMware，因为不同CPU之间，即使是微小的指令集的差异，也会导致对于企业应用来说噩梦一般的&ldquo;蓝屏&rdquo;。此外更令人郁闷的是，两台Host只见究竟能否做VMotion，只有在实际做之前才知道（当然，熟悉VMotion的VCP可以轻易的事先判断）。</p>
<p>VMware将会逐渐打破这一壁垒。首先是通过AMD的&ldquo;AMD-V Extended Migration Technology&rdquo;以及Intel的&ldquo;Flex Migration&rdquo;，使得同一厂商的不同CPU家族之间可以Hot Migration；并且会逐渐依靠其夹在VM和硬件中间的身份进行协调，使得在不久的将来不同厂商的CPU只见的VMotion也成为可能。</p>
<p><strong><font size="3">Software FT (Fault-tolerant Virtual Machines)</font></strong></p>
<p>这一新特性的正式名称还不清楚，但是光看名字已经让人振奋不已。容错（fault tolerance，ft）服务器通常指一台服务器中包含两套相通的模块，通过lockstep processing互为备份，即便其中一组模块当机也能无停止地切换到另一组模块。它能提供99.999%，也即年当机时间不超过5分钟的连续可用性 (Continuous Availability, CA)。而相比之下，MSCS等集群只能提供99.9%，也即年当机时间8小时45分钟左右的高可用性（High Availability, HA）。</p>
<p>在VMware即将提供的软件FT（或虚拟FT？）功能中，可以将两台位于不同物理Host上的VM捆绑为一台fault tolerant VM，同步操作。从某种角度来说，用户不必再去购买昂贵的硬件容错服务器，而是通过使用Virtual Infrastructure就能拥有数台可靠的&ldquo;软&rdquo;容错虚拟服务器了。当然，究竟&ldquo;软&rdquo;容错能否从&ldquo;硬&rdquo;容错手中抢到市场，还要看&ldquo;软&rdquo;容错是否稳定，是否能像&ldquo;硬&rdquo;容错一样提供99.999%的可用性了。</p>
<p>Software FT虽然很可能不会在3.5中提供，但是预计将在明年中提供（4.0?）。</p>
<p>
</p>
<p><strong><u><font size="4" color="#333399">Related Products</font></u></strong></p>
<p><strong><font size="3">Virtual Desktop Manager (VDM) 2.0</font></strong></p>
<p>其实VDM并不是Virtual Infrastructure产品的一部分；它属于VMware的VDI产品族。它和著名的Leostream Connection Broker一样，是一个VDI Broker产品，是客户端设备连接虚拟桌面时的&ldquo;管家&rdquo;。有关VDM的详细信息，我将专文介绍。</p>
<div style="text-align: center;"><img id="image55" alt="Virtual Desktop Manager (VDM)" src="http://www.codesoil.net/wp-content/uploads/2007/11/vdm.png" /></div>
<p>&nbsp;根据目前的消息，VDM2.0将在明年2008年2月份推出。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/11/13/virtual-infrastructure-new-features/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Big Problem : Access Denied when Using Qwinsta.exe or WTSOpenServer API</title>
		<link>http://www.codesoil.net/2007/08/16/big-problem-access-denied-when-using-qwinstaexe-or-wtsopenserver-api/</link>
		<comments>http://www.codesoil.net/2007/08/16/big-problem-access-denied-when-using-qwinstaexe-or-wtsopenserver-api/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 13:30:48 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>.Net Programming</dc:subject><dc:subject>rpc</dc:subject><dc:subject>terminal service</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/08/16/big-problem-access-denied-when-using-qwinstaexe-or-wtsopenserver-api/</guid>
		<description><![CDATA[This article describes the solution for the &#8220;access denied&#8221; error occurs when using qwinsta.exe/rwinsta.exe or WTSOpenServer Windows API function to access to a Windows XP SP2 PC.
The same thing happens when you are trying to connect to a Windows XP SP2&#160;using Terminal Services Manager from a Windows 2003 Server.&#160;
- Because essentially qwinsta.exe command calls WTS [...]]]></description>
			<content:encoded><![CDATA[<p>This article describes the solution for the <font color="#ff0000">&ldquo;access denied&rdquo;</font> error occurs when using qwinsta.exe/rwinsta.exe or WTSOpenServer Windows API function to access to a Windows XP SP2 PC.</p>
<p>The same thing happens when you are trying to connect to a Windows XP SP2&nbsp;using Terminal Services Manager from a Windows 2003 Server.&nbsp;</p>
<p>- Because essentially qwinsta.exe command calls WTS functions (WTSOpenServer, WTSEnumerateSessions, &hellip;), you will encounter the same error when using either the command or the API.</p>
<p>As a quick answer, check the following points.<br />
<strong>1. Ensure you have the correct credential<br />
</strong>Although you do not need to provide a username and a password when executing qwinsta.exe or WTSOpenServer, Windows use its stored credentials automatically, just like accessing a shared folder.</p>
<p>The easiest way to confirm the credential is to use Explorer to access remote server&rsquo;s C$ share. Also, you can use &ldquo;net use&rdquo; command.</p>
<p>For those who want to connect to a remote server programmatically using WTSOpenServer API, WNetAddConnection2 function should be enough to make sure you got a piece of credential before calling WTSOpenServer function.</p>
<p>Of course the user in the credential should be a use on the remote server who has enough privilege to carry out the operation.</p>
<p><strong>2. Open RPC ports on firewall<br />
</strong>An API call involves connecting to a remote machine use RPC. In most cases the RPC service is running and you can confirm that from the service management interface. To open RPC ports, simply enable &ldquo;File and Printer Sharing&rdquo; in the Windows Firewall setting.</p>
<p>(Generally, if the RPC is blocked by the firewall on remote machine, the error should be &quot;1722 RPC server is unavailable&quot; rather then &quot;5 Access denied&quot;)</p>
<p><strong>3. Disable &quot;Force Guest&quot; log on</strong></p>
<p>You can change this option from either local security policy or registery.</p>
<p>Local security policy : run secpol.msc &gt; Secuirty Settings &gt; Local Policies &gt; Security Options &gt; Network access : Sharing and security model for local accounts, and set to &quot;Classic&quot;.</p>
<p>Registry : find &quot;forceguest&quot; item in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa, and set it to 0.</p>
<p>The two ways are equivalent. If this option is set to 1, remote logged in user will be impersonated as Guest account (and if Guest account is disabled, login fails). Set it to 0 enables user logging in as themselves.</p>
<p><strong>4. If you still receive &ldquo;access denied&rdquo; and it only happens when the remote OS is Windows XP SP2, it is very probably the following case.</strong></p>
<p>To confirm, you need a packet sniffer such as Wireshark (a great freeware).<br />
When you use a sniffer to capture the SMB packets, you can see the authentication is OK (NTLM if workstation, Kerberos if Windows 2003 domain), but the RPC get nca_s_fault_access_denied (0&#215;00000005) as error code.</p>
<p>This means the remote RPC component failed to execute the requested operation. It is because in Windows XP SP2, it is not allowed to operate on terminal service (Remote Desktop) through RPC by default. To modify this setting to enable Remote Desktop API through RPC, you need to find the following registry key:</p>
<p><font face="Courier New">HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server</font></p>
<p>Then add a DWORD value named &ldquo;AllowRemoteRPC&rdquo; and change its value to 1.</p>
<p>I googled it and it seems there is no official document on it. (I don&#8217;t know why)</p>
<p>Access denied error often misleads us into thinking it must be&nbsp;because of the insufficient privilege, or because that the qwinsta.exe command / WTSOpenServer failed to utilized the credential. It wasted me about 5 hours in researching how to attach a credential to a RPC call, and I even got caught deeply into the complicated SSPI/LSA authentication architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/08/16/big-problem-access-denied-when-using-qwinstaexe-or-wtsopenserver-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free is not everything</title>
		<link>http://www.codesoil.net/2007/06/30/free-is-not-everything/</link>
		<comments>http://www.codesoil.net/2007/06/30/free-is-not-everything/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 10:57:22 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Essay</dc:subject><dc:subject>ft</dc:subject><dc:subject>vmware</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/06/30/free-is-not-everything/</guid>
		<description><![CDATA[一个来月没写东西了，原因很简单，先是大病一场断断续续修养了两个星期；接着是新加坡出差；明天还要去北京&#8230;&#8230;日子就这么在疲倦和麻痹中流逝而去了。
今天说一说&#8220;免费&#8221;。人们都喜欢免费的东西&#8212;&#8212;从商场门口的免费品尝到网上的免费软件。只要是免费，就算品质不太好，服务不周到也就不大计较了。&#8220;要饭吃还嫌馊？&#8221;&#8212;&#8212;我头脑中映出的就是这句歇后语。
那么，在企业应用中事情又是如何呢？我身边最近发生了这样的一个真实的事例。
【都是免费惹的祸】
我们组的技术人员H君三年来一直在做VMware GSX Server的技术支持工作。
如大家所知道的那样，VMware GSX Server是VMware稍早期的产品，运行在Windows或Linux的Host OS之上。2006年2月，VMware公司宣布将最低售价为$1400美元的VMware GSX Server作为免费软件提供。7月，这款已经成为免费软件的VMware GSX Server以另一个名字推出&#8212;&#8212;VMware Server。
将收费软件变成免费软件，厂商、用户皆大欢喜，何乐而不为呢？
可是问题偏偏就出在这里。GSX变成免费软件之后，对于免费软件自然不会提供技术支持。对于已经购买GSX的客户，在售后服务合同到期后不会在续签。于是，H君就陆续收到了许多客户的抱怨。
&#8220;我们的GSX需要升级，可是新版本的GSX，也就是VMware Server是免费软件！这怎么可以？你们要想办法继续提供售后支持。&#8221;
&#8220;当初你们说GSX虚拟技术多么好多么好，和你们公司的服务器捆绑推销给了我们，现在GSX你们不支持了？！那要我们怎么办？服务器也要退货！&#8221;
&#8230;&#8230;
最近几个月，H君都在头疼这些事情&#8212;&#8212;都是免费惹的祸啊。
【我们的服务器贵在哪里】
NEC最值得骄傲的计算机技术是什么？是超级计算机。NEC的超级计算机世界闻名，远销欧美科研机关，目前法国气象局的气象预报系统就是使用了NEC的超级计算机。
那么NEC最值得骄傲的计算机产品是什么？是ft服务器，也就是容错(fault-tolerant)服务器。台湾不是架设了和日本新干线媲美的高速铁路么，里面的核心控制服务器全都是用的NEC的ft服务器。ft服务器里面，所有的硬件&#8212;&#8212;CPU，内存，主板，硬盘，网卡等等全都是两套；服务器由4个模块构成：CPU Module #1, #2, PCI Module #1, #2。这四个模块以双工方式(duplex)同时运行，任何一个模块出了问题都可以零时延地fail over到另一个模块上。这样就保证了即便在万一的情况下（硬件的硬性损坏），也能365天 x 24小时无停止地运作。
看看 ft的主页就知道，ft的价格不菲。最最便宜的也要138万日元，按照今天的汇率（1人民币比16.18日元）相当于8万5千多人民币。在两三年前的汇率下相当于10万人民币（可见人民币上涨的速度真快呀~~~这是题外话）。而这仅仅是最便宜的ft。台湾高铁使用的ft，由于配置非常高，售价要在这个价格的十几倍以上，也就是一台服务器100万人民币以上。具体价格这里就不便介绍了。
不仅ft，NEC的其它服务器其实也都不便宜。这些昂贵的服务器，到底比那些杂牌的服务器强多少呢？
其实，从技术角度上讲，未必比那些杂牌服务器强很多，毕竟这个IT时代每个IT企业都必须掌握最新的技术才能生存。但是，包括NEC在内，这些大企业的产品的价值不仅在于产品本身。
前几个月某国某地ft服务器出现问题，更换了模块之后还是陆续出现问题。这里且不说问题的原因（其实很多都是人为造成的），单说出现问题后，由于频繁更换模块，已经没有备用的模块了。于是NEC就直接从日本空运过去十几个CPU Module和PCI Module，并直接派技术人员去更换、调查。这些就仿佛在说：&#8220;服务器出现问题了不怕，我们立刻免费给你换新的！又出问题了？那我们再给你免费换新的！&#8221;
这些更换用的模块、以及技师的海外出差费用都极其昂贵。用户花大价钱购买服务器，在某种程度上来说，购买的就是这种安心的售后服务。
【结语】
对于企业来说，采购时不仅要考虑当时的费用，而且要考虑到维护和持续使用时产生的费用&#8212;&#8212;也即TCO的概念。对于没有售后保障的免费产品，在TCO上没有任何优势而言，除了小规模、实验性的应用之外，对于企业来说是不大适合的。
]]></description>
			<content:encoded><![CDATA[<p>一个来月没写东西了，原因很简单，先是大病一场断断续续修养了两个星期；接着是新加坡出差；明天还要去北京&hellip;&hellip;日子就这么在疲倦和麻痹中流逝而去了。</p>
<p>今天说一说&ldquo;免费&rdquo;。人们都喜欢免费的东西&mdash;&mdash;从商场门口的免费品尝到网上的免费软件。只要是免费，就算品质不太好，服务不周到也就不大计较了。&ldquo;要饭吃还嫌馊？&rdquo;&mdash;&mdash;我头脑中映出的就是这句歇后语。</p>
<p>那么，在企业应用中事情又是如何呢？我身边最近发生了这样的一个真实的事例。</p>
<p>【都是免费惹的祸】</p>
<p>我们组的技术人员H君三年来一直在做VMware GSX Server的技术支持工作。</p>
<p>如大家所知道的那样，VMware GSX Server是VMware稍早期的产品，运行在Windows或Linux的Host OS之上。2006年2月，VMware公司宣布将最低售价为$1400美元的VMware GSX Server作为免费软件提供。7月，这款已经成为免费软件的VMware GSX Server以另一个名字推出&mdash;&mdash;VMware Server。</p>
<p>将收费软件变成免费软件，厂商、用户皆大欢喜，何乐而不为呢？</p>
<p>可是问题偏偏就出在这里。GSX变成免费软件之后，对于免费软件自然不会提供技术支持。对于已经购买GSX的客户，在售后服务合同到期后不会在续签。于是，H君就陆续收到了许多客户的抱怨。</p>
<p>&ldquo;我们的GSX需要升级，可是新版本的GSX，也就是VMware Server是免费软件！这怎么可以？你们要想办法继续提供售后支持。&rdquo;<br />
&ldquo;当初你们说GSX虚拟技术多么好多么好，和你们公司的服务器捆绑推销给了我们，现在GSX你们不支持了？！那要我们怎么办？服务器也要退货！&rdquo;<br />
&hellip;&hellip;</p>
<p>最近几个月，H君都在头疼这些事情&mdash;&mdash;都是免费惹的祸啊。</p>
<p>【我们的服务器贵在哪里】</p>
<p>NEC最值得骄傲的计算机技术是什么？是超级计算机。NEC的超级计算机世界闻名，远销欧美科研机关，目前法国气象局的气象预报系统就是使用了NEC的超级计算机。</p>
<p>那么NEC最值得骄傲的计算机产品是什么？是ft服务器，也就是容错(fault-tolerant)服务器。台湾不是架设了和日本新干线媲美的高速铁路么，里面的核心控制服务器全都是用的NEC的ft服务器。ft服务器里面，所有的硬件&mdash;&mdash;CPU，内存，主板，硬盘，网卡等等全都是两套；服务器由4个模块构成：CPU Module #1, #2, PCI Module #1, #2。这四个模块以双工方式(duplex)同时运行，任何一个模块出了问题都可以零时延地fail over到另一个模块上。这样就保证了即便在万一的情况下（硬件的硬性损坏），也能365天 x 24小时无停止地运作。</p>
<p>看看 ft的主页就知道，ft的价格不菲。最最便宜的也要138万日元，按照今天的汇率（1人民币比16.18日元）相当于8万5千多人民币。在两三年前的汇率下相当于10万人民币（可见人民币上涨的速度真快呀~~~这是题外话）。而这仅仅是最便宜的ft。台湾高铁使用的ft，由于配置非常高，售价要在这个价格的十几倍以上，也就是一台服务器100万人民币以上。具体价格这里就不便介绍了。</p>
<p>不仅ft，NEC的其它服务器其实也都不便宜。这些昂贵的服务器，到底比那些杂牌的服务器强多少呢？</p>
<p>其实，从技术角度上讲，未必比那些杂牌服务器强很多，毕竟这个IT时代每个IT企业都必须掌握最新的技术才能生存。但是，包括NEC在内，这些大企业的产品的价值不仅在于产品本身。</p>
<p>前几个月某国某地ft服务器出现问题，更换了模块之后还是陆续出现问题。这里且不说问题的原因（其实很多都是人为造成的），单说出现问题后，由于频繁更换模块，已经没有备用的模块了。于是NEC就直接从日本空运过去十几个CPU Module和PCI Module，并直接派技术人员去更换、调查。这些就仿佛在说：&ldquo;服务器出现问题了不怕，我们立刻免费给你换新的！又出问题了？那我们再给你免费换新的！&rdquo;</p>
<p>这些更换用的模块、以及技师的海外出差费用都极其昂贵。用户花大价钱购买服务器，在某种程度上来说，购买的就是这种安心的售后服务。</p>
<p>【结语】</p>
<p>对于企业来说，采购时不仅要考虑当时的费用，而且要考虑到维护和持续使用时产生的费用&mdash;&mdash;也即TCO的概念。对于没有售后保障的免费产品，在TCO上没有任何优势而言，除了小规模、实验性的应用之外，对于企业来说是不大适合的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/06/30/free-is-not-everything/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress 2.0.x bug: wpautop Generates needless br Tag for colgroup</title>
		<link>http://www.codesoil.net/2007/05/27/wordpress-20x-bug-wpautop-generates-needless-br-tag-for-colgroup/</link>
		<comments>http://www.codesoil.net/2007/05/27/wordpress-20x-bug-wpautop-generates-needless-br-tag-for-colgroup/#comments</comments>
		<pubDate>Sat, 26 May 2007 18:28:28 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Web Development</dc:subject><dc:subject>wordpress</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/05/27/wordpress-20x-bug-wpautop-generates-needless-for-colgroup/</guid>
		<description><![CDATA[在最近的一篇blog中，使用了colgroup HTML标签。没想到，使用了colgroup的帖子经过XHTML Validator的检查，发现居然不符合XHTML规范。究其原因，说是发现了如下错误：
Error Line 78 column 139: document type does not allow element &#34;br&#34; here. 
...ALIGN: center&#34;&#62;&#60;/col&#62;&#60;/colgroup&#62;&#60;br /&#62;
但是奇怪的是，我的源代码中，&#60;/colgroup&#62;后并没有&#60;br /&#62;。我们可以用W3Shool给出的最简单的例子进行实验：
&#60;table border=&#34;1&#34;&#62;
&#160; &#60;colgroup span=&#34;3&#34; style=&#34;color:#FF0000;&#34;&#62;&#60;/colgroup&#62;
&#160; &#60;tr&#62;
&#160;&#160;&#160; &#60;td&#62;1&#60;/td&#62;&#60;td&#62;2&#60;/td&#62;&#60;td&#62;3&#60;/td&#62;&#60;td&#62;4&#60;/td&#62;
&#160; &#60;/tr&#62;
&#60;/table&#62;
试着在Wordpress (2.0.x，包括最新的2.0.10。在2.2上则没有这个bug) 中编辑一个新帖子，在代码画面敲入上面这段代码，发布，再去看生成的HTML时就会发现变成了这个样子：
&#60;table border=&#34;1&#34;&#62;
&#160; &#60;colgroup span=&#34;3&#34; style=&#34;color:#FF0000;&#34;&#62;&#60;/colgroup&#62;&#60;br /&#62;
&#160; &#60;tr&#62;
&#160;&#160;&#160; &#60;td&#62;1&#60;/td&#62;&#60;td&#62;2&#60;/td&#62;&#60;td&#62;3&#60;/td&#62;&#60;td&#62;4&#60;/td&#62;
&#160; &#60;/tr&#62;
&#60;/table&#62;
由于&#60;/colgroup&#62;和&#60;tr&#62;之间是不允许有&#60;br/&#62;的，所以导致XHTML验证错误。
那么追根到底是在什么时候这个&#60;br/&#62;被添加到输出的HTML中的呢？调查了一下数据库，发现在数据库里面的内容还是没有&#60;br/&#62;的，这说明它是在读取post的内容时，由相关的Filter添加的。一个post的内容在被从数据库读出来，到被显示在网页上之间使用的是叫做the_content的Filter Tag。在Wordpress中，默认有如下Filter被添加到the_content的处理中：
add_filter('the_content', 'wptexturize');
add_filter(&#8217;the_content&#8217;, 'convert_smilies&#8217;);
add_filter(&#8217;the_content&#8217;, 'convert_chars&#8217;);
add_filter(&#8217;the_content&#8217;, 'wpautop&#8217;);
经过检查，发现位于/wp-includes/functions-formatting.php中的wpautop函数中有如下代码：
function wpautop($pee, $br = 1) {
&#160;// &#8230;
&#160;if ($br) $pee = preg_replace(&#8216;&#124;(?&#60;!&#60;br /&#62;)\s*\n&#124;&#8217;, &#34;&#60;br /&#62;\n&#34;, $pee); [...]]]></description>
			<content:encoded><![CDATA[<p>在最近的一篇blog中，使用了<a href="http://www.w3schools.com/tags/tag_colgroup.asp">colgroup</a> HTML标签。没想到，使用了colgroup的帖子经过XHTML Validator的检查，发现居然不符合XHTML规范。究其原因，说是发现了如下错误：</p>
<blockquote class="reference" style="COLOR: rgb(0,0,0); FONT-FAMILY: Arial"><p>Error <em>Line 78 column 139</em>: <strong>document type does not allow element &quot;br&quot; here</strong>. <br />
<code style="BACKGROUND-COLOR: rgb(238,238,238)">...ALIGN: center&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;<span style="COLOR: rgb(255,0,0)"><strong>&lt;br /&gt;</strong></span></code></p></blockquote>
<p>但是奇怪的是，我的源代码中，&lt;/colgroup&gt;后并没有&lt;br /&gt;。我们可以用W3Shool给出的最简单的例子进行实验：</p>
<div class="ch_code_container">&lt;<font color="#0000ff">table</font> <font color="#ff0000">border</font>=&quot;1&quot;&gt;<br />
&nbsp; &lt;<font color="#0000ff">colgroup</font> <font color="#ff0000">span</font>=&quot;3&quot; <font color="#ff0000">style</font>=&quot;color:#FF0000;&quot;&gt;&lt;/<font color="#0000ff">colgroup</font>&gt;<br />
&nbsp; &lt;<font color="#0000ff">tr</font>&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;<font color="#0000ff">td</font>&gt;1&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;2&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;3&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;4&lt;/<font color="#0000ff">td</font>&gt;<br />
&nbsp; &lt;/<font color="#0000ff">tr</font>&gt;<br />
&lt;/<font color="#0000ff">table</font>&gt;</div>
<p>试着在Wordpress (2.0.x，包括最新的2.0.10。在2.2上则没有这个bug) 中编辑一个新帖子，在代码画面敲入上面这段代码，发布，再去看生成的HTML时就会发现变成了这个样子：</p>
<div class="ch_code_container">&lt;<font color="#0000ff">table</font> <font color="#ff0000">border</font>=&quot;1&quot;&gt;<br />
&nbsp; &lt;<font color="#0000ff">colgroup</font> <font color="#ff0000">span</font>=&quot;3&quot; <font color="#ff0000">style</font>=&quot;color:#FF0000;&quot;&gt;&lt;/<font color="#0000ff">colgroup</font>&gt;<strong>&lt;<font color="#0000ff">br</font> /&gt;</strong><br />
&nbsp; &lt;<font color="#0000ff">tr</font>&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;<font color="#0000ff">td</font>&gt;1&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;2&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;3&lt;/<font color="#0000ff">td</font>&gt;&lt;<font color="#0000ff">td</font>&gt;4&lt;/<font color="#0000ff">td</font>&gt;<br />
&nbsp; &lt;/<font color="#0000ff">tr</font>&gt;<br />
&lt;/<font color="#0000ff">table</font>&gt;</div>
<p>由于&lt;/colgroup&gt;和&lt;tr&gt;之间是不允许有&lt;br/&gt;的，所以导致XHTML验证错误。</p>
<p>那么追根到底是在什么时候这个&lt;br/&gt;被添加到输出的HTML中的呢？调查了一下数据库，发现在数据库里面的内容还是没有&lt;br/&gt;的，这说明它是在读取post的内容时，由相关的Filter添加的。一个post的内容在被从数据库读出来，到被显示在网页上之间使用的是叫做the_content的Filter Tag。在Wordpress中，默认有如下Filter被添加到the_content的处理中：</p>
<p><code>add_filter('the_content', 'wptexturize');<br />
add_filter(&#8217;the_content&#8217;, 'convert_smilies&#8217;);<br />
add_filter(&#8217;the_content&#8217;, 'convert_chars&#8217;);<br />
add_filter(&#8217;the_content&#8217;, 'wpautop&#8217;);</code></p>
<p>经过检查，发现位于/wp-includes/functions-formatting.php中的wpautop函数中有如下代码：</p>
<div style="word-wrap: break-word" class="ch_code_container"><span style="FONT-WEIGHT: bold; COLOR: rgb(0,0,0)">function</span> wpautop<span style="COLOR: rgb(102,204,102)">(</span><span style="COLOR: rgb(0,0,255)">$pee</span>, <span style="COLOR: rgb(0,0,255)">$br</span> = <span style="COLOR: rgb(204,102,204)">1</span><span style="COLOR: rgb(102,204,102)">)</span> <span style="COLOR: rgb(102,204,102)">{</span><br />
&nbsp;<span style="COLOR: rgb(128,128,128); FONT-STYLE: italic">// &hellip;</span><br />
&nbsp;<span style="COLOR: rgb(177,177,0)">if</span> <span style="COLOR: rgb(102,204,102)">(</span><span style="COLOR: rgb(0,0,255)">$br</span><span style="COLOR: rgb(102,204,102)">)</span> <span style="COLOR: rgb(0,0,255)">$pee</span> = <a href="http://www.php.net/preg_replace"><span style="COLOR: rgb(0,0,102)">preg_replace</span></a><span style="COLOR: rgb(102,204,102)">(</span><span style="COLOR: rgb(255,0,0)">&lsquo;|(?&lt;!&lt;br /&gt;)<span style="FONT-WEIGHT: bold; COLOR: rgb(0,0,153)">\s</span>*<span style="FONT-WEIGHT: bold; COLOR: rgb(0,0,153)">\n</span>|&rsquo;</span>, <span style="COLOR: rgb(255,0,0)">&quot;&lt;br /&gt;<span style="FONT-WEIGHT: bold; COLOR: rgb(0,0,153)">\n</span>&quot;</span>, <span style="COLOR: rgb(0,0,255)">$pee</span><span style="COLOR: rgb(102,204,102)">)</span>; <span style="COLOR: rgb(128,128,128); FONT-STYLE: italic">// optionally make line breaks</span><br />
&nbsp;<span style="COLOR: rgb(0,0,255)">$pee</span> = <a href="http://www.php.net/preg_replace"><span style="COLOR: rgb(0,0,102)">preg_replace</span></a><span style="COLOR: rgb(102,204,102)">(</span><span style="COLOR: rgb(255,0,0)">&lsquo;!(&lt;/?(?:table|thead|tfoot|caption|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])[^&gt;]*&gt;)<span style="FONT-WEIGHT: bold; COLOR: rgb(0,0,153)">\s</span>*&lt;br /&gt;!&rsquo;</span>, <span style="COLOR: rgb(255,0,0)">&quot;$1&quot;</span>, <span style="COLOR: rgb(0,0,255)">$pee</span><span style="COLOR: rgb(102,204,102)">)</span>;<br />
&nbsp;<span style="COLOR: rgb(128,128,128); FONT-STYLE: italic">// &hellip;</span><br />
&nbsp;<span style="COLOR: rgb(177,177,0)">return</span> <span style="COLOR: rgb(0,0,255)">$pee</span>; <br />
<span style="COLOR: rgb(102,204,102)">}</span></div>
<p>可见，该函数中用preg_replace函数通过正则表达式删除掉了添加在table，thead，tfoot等后面的&lt;br /&gt;，却没有删除colgroup后面的&lt;br/&gt;。因此，只要在这一行添加colgroup即可修正这个bug。将修改后的functions-formatting.php重新上传到服务器后，在此进行XHTML验证，正常通过。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/05/27/wordpress-20x-bug-wpautop-generates-needless-br-tag-for-colgroup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Review Questions of Class - VMware Infrastructure 3: Install and Configure</title>
		<link>http://www.codesoil.net/2007/05/26/review-questions-of-class-vmware-infrastructure-3-install-and-configure/</link>
		<comments>http://www.codesoil.net/2007/05/26/review-questions-of-class-vmware-infrastructure-3-install-and-configure/#comments</comments>
		<pubDate>Sat, 26 May 2007 14:33:33 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>VDI &amp; Virtualization</dc:subject><dc:subject>vcp</dc:subject><dc:subject>vi3</dc:subject><dc:subject>vmware</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/05/26/review-questions-of-class-vmware-infrastructure-3-install-and-configure/</guid>
		<description><![CDATA[在为期四天的VMware培训结束之后，最后除了提交一份调查问券之外，还有一份Review Question。根据老师的说法，这个可以看作是VCP考试的例题。回家在网上google了一下，发现这些例题和答案是公开在互联网上的，既然这样就不用担心是内部用的东西了。这里就把我做的解释也一起拿出来供有意报考VCP的同学参考（当然，可能&#8220;参考&#8221;一下网上流传的VCP真题更快捷一些&#8230;&#8230;）。

1. Understand VMware Products
Which of the following most closely describes the purpose of ACE (the Assured Computing Environment)?
A. ACE helps desktop managers provision secure, standardized PC environments throughout the enterprise.
B. ACE enhances system security for ESX Server by providing firewall protection for both virtual machines and the Service Console.
C. ACE enhances virtual infrastructure manageability [...]]]></description>
			<content:encoded><![CDATA[<p>在为期四天的<a href="/2007/05/26/tips-from-classroom-vmware-infrastructure-3-install-and-configure/">VMware培训结束</a>之后，最后除了提交一份调查问券之外，还有一份Review Question。根据老师的说法，这个可以看作是VCP考试的例题。回家在网上google了一下，发现这些例题和答案是<a href="http://eval.vmeduc.com/exam.php">公开在互联网上</a>的，既然这样就不用担心是内部用的东西了。这里就把我做的解释也一起拿出来供有意报考VCP的同学参考（当然，可能&ldquo;参考&rdquo;一下网上流传的VCP真题更快捷一些&hellip;&hellip;）。</p>
<div style="font-size: 0.9em; font-family: monospace;" title="VMware Training Review Question">
<h3>1. Understand VMware Products</h3>
<p>Which of the following most closely describes the purpose of ACE (the Assured Computing Environment)?</p>
<p style="margin-left: 4em; text-indent: -2em;">A. ACE helps desktop managers provision secure, standardized PC environments throughout the enterprise.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. ACE enhances system security for ESX Server by providing firewall protection for both virtual machines and the Service Console.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. ACE enhances virtual infrastructure manageability by acting as a proxy between Virtual Center and the ESX and VMware Server systems under management.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. ACE enhances reliability of the virtual infrastructure by providing hardware redundancy for ESX Server.<span> </span></p>
<h3>2. Differentiate Among VMware Products</h3>
<p>All VMware virtualization products are based on the same underlying virtualization technology, but there are some differences among these products. Which one of the following statements is true?</p>
<p style="margin-left: 4em; text-indent: -2em;">A. VMware Server and VMware Workstation both provide tools for remote management of virtual machines.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. Because it runs on the bare metal, ESX Server supports a narrower range of physical hardware than either Workstation or VMware Server.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. ESX Server supports more types of guest operating system than Workstation or Vmware Server.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. Only ESX Server allows virtual machines to be configured with multiple virtual CPUs.</p>
<h3>3. Understand Virtual Center Management </h3>
<p>Pointing a VI Client directly to an ESX Server host rather than a VirtualCenter Server: </p>
<p style="margin-left: 4em; text-indent: -2em;">A. is not recommended, even if VirtualCenter was not purchased. </p>
<p style="margin-left: 4em; text-indent: -2em;">B. works identically, but any tasks issued are superceded by the VirtualCenter Server. </p>
<p style="margin-left: 4em; text-indent: -2em;">C. is similar except that objects are at the host and not datacenter level, and enterprise tasks such as cloning and migrating VMs are not available.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. is similar except that objects are at the host and not datacenter level, but typical tasks such as template creation and cloning VMs are available.</p>
<h3>4. Understand Networking </h3>
<p>When defining a NIC team (bond) in ESX Server, it is possible to designate some of the physical NICs that make up the bond as &quot;standby&quot; NICs. Which statement most accurately describes the purpose of a standby NIC? A standby NIC: </p>
<p style="margin-left: 4em; text-indent: -2em;">A. is used only when network traffic exceeds the capacity of the rest of the team.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. is used only in the case of the failure of other NICs in the team.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. is not used as part of the team until activated by the administrator.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. is used to implement traffic shaping for the rest of the team.</p>
<h3>5. Operate and Manage ESX Server</h3>
<p>Which of the following is true about cold migration of a VM from one host to another using VMware Infrastructure 3? requires</p>
<p style="margin-left: 4em; text-indent: -2em;">A. The VM must be powered off.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. The VM must be either powered off or suspended.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. The two hosts involved must use the same network labels.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. Both hosts must have the same bit type (32-bit or 64-bit) CPU.</p>
<h3>6. Understand Resources </h3>
<p>If a VM that belongs to a resource pool does not have enough physical resources available to meet its reservation:</p>
<p style="margin-left: 4em; text-indent: -2em;">A. it will power off immediately.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. VMs outside the resource pool will not be able to power on.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. it will not be able to power on until sufficient physical resources in use are freed up.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. if its reservations are expandable, it will attempt to draw upon the resources of its parent resource pool. </p>
<h3>7. Administer Virtual Machines Under ESX Server</h3>
<p>Hitting ESC when first powering on a VM in ESX Server 3.0</p>
<p style="margin-left: 4em; text-indent: -2em;">A. enters the boot order of the BIOS.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. does nothing, as ESC is not a valid option.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. directs the VM to directly boot from network.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. enters the general BIOS options and is an alternative to hitting F12.</p>
<h3>8. Configure Storage </h3>
<p>Upgrading an ESX Server 2.x host&#8217;s VMFS-2 volume to VMFS-3, and then referencing the VMFS-3 volume from an ESX Server 3.0 host:</p>
<p style="margin-left: 4em; text-indent: -2em;">A. will allow any VMs on the original VMFS-2 to be powered on.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. will allow the ESX Server 3.0 host to view the VMs in read-only mode.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. will allow both the ESX Server 2.x and ESX Server 3.0 hosts to view the VMs in read-only mode.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. requires both the ESX Server 2.x and ESX Server 3.0 hosts to be managed by VirtualCenter 2.0 in order to perform the upgrade of the VMFS-2 volume.</p>
<h3>9. Configure Licensing</h3>
<p>If the connection between the license server and VirtualCenter 2.0 Server is lost:</p>
<p style="margin-left: 4em; text-indent: -2em;">A. there is no impact because licenses are stored and configured per host when using a license server.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. VMs will continue to run, but after a grace period ends, they cannot be powered back on until connectivity with the license server is restored. </p>
<p style="margin-left: 4em; text-indent: -2em;">C. ESX Server hosts can be configured and additional hosts added, but no VMs can be powered on until connectivity with the license server is restored.</p>
<p style="margin-left: 4em; text-indent: -2em;">D. all VMs will power off if connectivity is not restored within a 48 hour grace period. Hence, we recommend installing the license server on the same machine with the VirtualCenter Server.</p>
<h3>10. Understand VMotion </h3>
<p>64-bit CPUs are supported for VMotion in VirtualCenter 2.0 </p>
<p style="margin-left: 4em; text-indent: -2em;">A. only when migrating 32-bit Guest OSes.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. when migrating either 32-bit or 64-bit Guest OSes, so long as the Nx flag is hidden.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. when migrating either 32-bit or 64-bit Guest OSes, regardless of CPU compatibility </p>
<p style="margin-left: 4em; text-indent: -2em;">D. when migrating either 32-bit or 64-bit Guest OSes, so long as the VMware CPU Compatibility Tool detects two compatible CPUs.</p>
<h3>11. Troubleshoot an ESX Server </h3>
<p>Suppose you attempt to use Web Access to reach an individual ESX host but receive a &quot;host not found&quot; error. Which of the following is LEAST likely to be the cause of the problem? </p>
<p style="margin-left: 4em; text-indent: -2em;">A. The Apache Tomcat server is not currently running on the host.</p>
<p style="margin-left: 4em; text-indent: -2em;">B. The server is not currently powered on.</p>
<p style="margin-left: 4em; text-indent: -2em;">C. The Service Console&#8217;s IP address has recently been changed. </p>
<p style="margin-left: 4em; text-indent: -2em;">D. Your VI Client has not been configured to allow you to use the Web Access facility.</p>
</div>
<h3>&nbsp;</h3>
<h3>Answers</h3>
<p style="margin-left: 4em; text-indent: -2em;">1. A &nbsp;&nbsp; 2. B &nbsp;&nbsp; 3. C &nbsp;&nbsp; 4. B &nbsp;&nbsp; 5. B &nbsp;&nbsp; 6. D &nbsp;&nbsp; 7. A &nbsp;&nbsp; 8. A &nbsp;&nbsp; 9. B &nbsp;&nbsp; 10. D &nbsp;&nbsp; 11. D&nbsp;<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<h3>Explanation</h3>
<ol>
<li>VMware ACE (Assured Computing Environment)正如答案A所说，是用来提供安全、基于策略进行管理的虚拟PC环境的平台。VMware ACE可以作为一个独立平台使用，也可以和VMware Workstation 6结合使用，但是不可以和Virtual Infrastructure一起使用。 </li>
<li>VMware Workstation没有提供远程管理工具；ESX Server比其他产品所支持的Guest OS更少，原因已经在正确答案B里面说明了。最后的D，除了ESX之外其它产品也支持多CPU，只是支持的CPU数量可能不同。 </li>
<li>A的话前半句是对的，因为连接到VC可以提供更多的功能；但是如果没有购买VC的话就只能连接ESX了。<br />
    C和D的描述基本一致，唯一的差别就是Clone之类的操作是否可以进行。没有VC的话是不能克隆的。 </li>
<li>多块物理网卡 (NIC)可以绑定在一起 (NIC Teaming)，从而实现负载平衡 (Load Balancing) 或者Fail over。Standby NIC的作用就是当前NIC发生故障时自动启用，以实现Fail over的。 </li>
<li>Cold Migration顾名思义，就是在VM在停止状态时的移动。无论是Power Off还是Suspend，VM都会完全停止，不使用任何CPU和内存，因此可以Code Migration。如果VM正在使用着CPU和内存，就只能VMotion了。 </li>
<li>A是错的，即便无论如何也满足不了A的Reservation，VC也只是会发出警告，而不会Power Off掉VM（除非定义了某些自动操作，比如资源不足时自动关闭VM等）。B更是无关了，因为是在Resource&nbsp;Pool的外面。<br />
    C也不对，因为即便物理资源不够，VM还是能够启动，这时VC会把Resource Pool中其它VM所使用的资源强行剥夺过来，分配给这个VM以满足其Reservation。如果其它VM处也没有那么多资源，这时就无法启动了。 </li>
<li>无需说明了，在VM的BIOS画面敲ESC键可选择启动顺序。 </li>
<li>这个问题有一点Tricky。VMFS-2升级到VMFS-3之后，就是VMFS-3了，和其它的VMFS-3分区没有任何区别。ESX 2.x无法访问（只读都不行）VMFS-3。此外，升级VMFS-2并不需要把ESX 2加入到VC中。 </li>
<li>这个问题几乎天天被问，估计不用说明就都知道了。就算连接不到License Server了，还有14天的Grace Period。这14天结束之后，虽然正在运行的VM不会被强行关掉，但是却无法再启动任何VM了，除非再连接回License Server。 </li>
<li>看到D就不用看其它答案了，VMware CPU Compatibility Tool就是为了检测两台主机的CPU是否满足VMotion的要求的。 </li>
<li>访问ESX Server的Web Access不需要VI Client，因为Web Access是架设在ESX Server上的Tomcat Web Server，只需要浏览器就可以了。 </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/05/26/review-questions-of-class-vmware-infrastructure-3-install-and-configure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Difference between em and percent font-size in Firefox</title>
		<link>http://www.codesoil.net/2007/05/26/difference-between-em-and-percent-font-size-in-firefox/</link>
		<comments>http://www.codesoil.net/2007/05/26/difference-between-em-and-percent-font-size-in-firefox/#comments</comments>
		<pubDate>Sat, 26 May 2007 11:29:55 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Web Development</dc:subject><dc:subject>css</dc:subject><dc:subject>firefox</dc:subject><dc:subject>font size</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/05/26/different-between-em-and-percent-font-size-in-firefox/</guid>
		<description><![CDATA[刚刚发现了百分比(%)在IE和在Firefox中的表现并不相同，现在居然发现即便是在Firefox内部，em和%的表现也并不一样。
首先先要讨论一下，作为font-size等CSS属性的单位，78%和0.78em到底是否相同？
遗憾的是，我并不是CSS专家，所以我没法回答按照标准这两个单位是否完全相同。但是，根据某些权威网站的说明，
Both em and % are relative measures. The difference is what each is relative to. Em is always relative to font size. % is relative to the containing block, usually the body, a div, or a table, unless applied to font-size, in which case it applies to the parent font-size.
也就是说，在用于font-size的时候，两者的涵义应该是相同的。但是，当我用下面在Firefox (ver 2.0.0.3, 默认字体微软雅黑16px)上显示如下HTML片段时，却出现了令我不解的结果：
&#60;body style=&#34;font-size:100%&#34;&#62;
&#160; &#60;span [...]]]></description>
			<content:encoded><![CDATA[<p>刚刚<a href="/2007/05/26/difference-between-ie-and-firefox-when-using-percent-as-font-size-unit/">发现了百分比(%)在IE和在Firefox中的表现并不相同</a>，现在居然发现即便是在Firefox内部，em和%的表现也并不一样。</p>
<p>首先先要讨论一下，作为font-size等CSS属性的单位，78%和0.78em到底是否相同？</p>
<p>遗憾的是，我并不是CSS专家，所以我没法回答按照标准这两个单位是否完全相同。但是，根据<a href="http://css-discuss.incutio.com/?page=EmVsPercentWidths">某些权威网站的说明</a>，</p>
<blockquote class="reference"><p>Both em and % are relative measures. The difference is what each is relative to. Em is always relative to font size. % is relative to the containing block, usually the body, a div, or a table, unless applied to font-size, in which case it applies to the parent font-size.</p></blockquote>
<p>也就是说，在用于font-size的时候，两者的涵义应该是相同的。但是，当我用下面在Firefox (ver 2.0.0.3, 默认字体微软雅黑16px)上显示如下HTML片段时，却出现了令我不解的结果：</p>
<div class="ch_code_container">&lt;<span style="COLOR: #0000ff">body</span> <span style="COLOR: #ff0000">style</span>=&quot;font-size:100%&quot;&gt;<br />
&nbsp; &lt;<span style="COLOR: #0000ff">span</span> <span style="COLOR: #ff0000">style</span>=&quot;<strong>font-size:0.97em</strong>&quot;&gt;这个测试用来比较不同字体单位下的表示情况。[0.97em]&lt;<span style="COLOR: #0000ff">/span</span>&gt;&lt;<span style="COLOR: #0000ff">br/</span>&gt;<br />
&nbsp; &lt;<span style="COLOR: #0000ff">span</span> <span style="COLOR: #ff0000">style</span>=&quot;<strong>font-size:97%</strong>&quot;&gt;这个测试用来比较不同字体单位下的表示情况。[97%]&lt;<span style="COLOR: #0000ff">/span</span>&gt;&lt;<span style="COLOR: #0000ff">br/</span>&gt;<br />
&lt;<span style="COLOR: #0000ff">/body</span>&gt; </div>
<p align="center"><img id="image45" alt="Firefox" src="http://www.codesoil.net/wp-content/uploads/2007/05/firefox-font-size.png" /><br />
Firefox下的结果</p>
<p align="center"><img id="image46" alt="Internet Explorer" src="http://www.codesoil.net/wp-content/uploads/2007/05/ie-font-size.png" /><br />
IE下的结果</p>
<p>看了这些结果，我真的不明白了：到底font-size单位中的百分比和em是否相同？</p>
<p>此外，有一点让我安心的就是，如果使用em作为单位的话，就没有上一篇文章中提到的，IE和Firefox中大小不一致的现象了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/05/26/difference-between-em-and-percent-font-size-in-firefox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Difference between IE and Firefox when using percent as font-size unit</title>
		<link>http://www.codesoil.net/2007/05/26/difference-between-ie-and-firefox-when-using-percent-as-font-size-unit/</link>
		<comments>http://www.codesoil.net/2007/05/26/difference-between-ie-and-firefox-when-using-percent-as-font-size-unit/#comments</comments>
		<pubDate>Sat, 26 May 2007 08:30:31 +0000</pubDate>
		<dc:creator>smalldust</dc:creator>
		
	<dc:subject>Web Development</dc:subject><dc:subject>css</dc:subject><dc:subject>font size</dc:subject>
		<guid isPermaLink="false">http://www.codesoil.net/2007/05/26/em-percent-unit-font-size-lead-to-different-appearence-in-ie-and-firefox/</guid>
		<description><![CDATA[



font-size
IE6/IE7 
Firefox 


100%
16px
16px


99%


98%


97%
15px


96%
15px


95%


94%


93%


92%


91%


90%
14px
14px


89%


88%


87%


86%


85%


84%
13px
13px


83%


82%


81%


80%


79%


78%
12px
12px


77%


76%


75%


74%


73%


72%
11px


71%
11px


70%


69%


68%


67%


66%



今天在测试IE7和firefox下blog的字体显示时，发现在某些特定的font-size下，IE和firefox所显示的字体大小并不相同。
这里要提前说明的是，我所遇到的问题是在如下环境下发生的：

所测试的字体为宋体 (Simsun)以及目前最时髦的微软雅黑 (Yahei)。测试结果表明，这个问题无论是在宋体还是在微软雅黑都会发生 
IE版本为IE6或IE7，firefox为2.0.0.3 
CSS当然是使用em体系，也即百分比单位、或者em单位的font-size (这年头应该很少有人用px来定义文档字体了吧？) 
Firefox的默认字体大小设置为16px，IE无法设定默认字体（中等大小时）大小（如果哪位知道如何更改默认字体大小，还请告诉我），据有关文档称也是16px。 

为了找出问题的根本原因，我写了一段php代码用来输出font-size等于100% (也即1em) 到 50% (0.5em)之间的每隔1% (0.01em)的文字显示结果。该程序的运行结果如下图所示。

上图是在Firefox下的测试结果。然后，根据IE和Firefox下的结果，得出了右面的这张表格。
通过这张表格即可看出，虽然在大多数的的情况下IE和Firefox的结果是相同的，但是当设置font-size=97%的时候，IE会显示16px的字体，而Firefox则显示15px的字体。同样font-size=72%时，IE显示12px字体，Firefox则显示11px字体。
实际用计算器计算一下就知道，当font-size为97%时，16px X 97% = 15.52px。也就是说，在IE中15.52px被解释为16px字体，而在Firefox当中15.52px被解释为15px字体 (不知道是不是Firefox的计算方法有问题？或者是W3C规定这样做的？还是我计算错误？)。
补充一条最新发现：刚才试着用CSSViewer这个插件检查了一下font-size=97%时的像素值，发现结果并不是我想象的15.52px，而是15.4667px&#8212;&#8212;不知道Firefox中究竟是按照什么标准计算百分比单位的font-size的呢？
IE和Firefox究竟谁对谁错，实在是难以说清，不过有一点是肯定的&#8212;&#8212;就是在设计CSS的时候，要特别注意这些IE和Firefox之间不同的地方。
]]></description>
			<content:encoded><![CDATA[<table style="FLOAT: right; MARGIN-LEFT: 4px" class="rowlist">
<colgroup><col style="TEXT-ALIGN: right"></col><col style="TEXT-ALIGN: center"></col><col style="TEXT-ALIGN: center"></col></colgroup>
<tbody>
<tr>
<th>font-size</th>
<th>IE6/IE7 </th>
<th>Firefox </th>
</tr>
<tr>
<td>100%</td>
<td rowspan="4">16px</td>
<td rowspan="3">16px</td>
</tr>
<tr>
<td>99%</td>
</tr>
<tr>
<td>98%</td>
</tr>
<tr>
<td>97%</td>
<td rowspan="7">15px</td>
</tr>
<tr>
<td>96%</td>
<td rowspan="6">15px</td>
</tr>
<tr>
<td>95%</td>
</tr>
<tr>
<td>94%</td>
</tr>
<tr>
<td>93%</td>
</tr>
<tr>
<td>92%</td>
</tr>
<tr>
<td>91%</td>
</tr>
<tr>
<td>90%</td>
<td rowspan="6">14px</td>
<td rowspan="6">14px</td>
</tr>
<tr>
<td>89%</td>
</tr>
<tr>
<td>88%</td>
</tr>
<tr>
<td>87%</td>
</tr>
<tr>
<td>86%</td>
</tr>
<tr>
<td>85%</td>
</tr>
<tr>
<td>84%</td>
<td rowspan="6">13px</td>
<td rowspan="6">13px</td>
</tr>
<tr>
<td>83%</td>
</tr>
<tr>
<td>82%</td>
</tr>
<tr>
<td>81%</td>
</tr>
<tr>
<td>80%</td>
</tr>
<tr>
<td>79%</td>
</tr>
<tr>
<td>78%</td>
<td rowspan="7">12px</td>
<td rowspan="6">12px</td>
</tr>
<tr>
<td>77%</td>
</tr>
<tr>
<td>76%</td>
</tr>
<tr>
<td>75%</td>
</tr>
<tr>
<td>74%</td>
</tr>
<tr>
<td>73%</td>
</tr>
<tr>
<td>72%</td>
<td rowspan="7">11px</td>
</tr>
<tr>
<td>71%</td>
<td rowspan="6">11px</td>
</tr>
<tr>
<td>70%</td>
</tr>
<tr>
<td>69%</td>
</tr>
<tr>
<td>68%</td>
</tr>
<tr>
<td>67%</td>
</tr>
<tr>
<td>66%</td>
</tr>
</tbody>
</table>
<p>今天在测试IE7和firefox下blog的字体显示时，发现在某些特定的font-size下，IE和firefox所显示的字体大小并不相同。</p>
<p>这里要提前说明的是，我所遇到的问题是在如下环境下发生的：</p>
<ul>
<li>所测试的字体为宋体 (Simsun)以及目前最时髦的微软雅黑 (Yahei)。测试结果表明，这个问题无论是在宋体还是在微软雅黑都会发生 </li>
<li>IE版本为IE6或IE7，firefox为2.0.0.3 </li>
<li>CSS当然是使用em体系，也即百分比单位、或者em单位的font-size (这年头应该很少有人用px来定义文档字体了吧？) </li>
<li>Firefox的默认字体大小设置为16px，IE无法设定默认字体（中等大小时）大小（如果哪位知道如何更改默认字体大小，还请告诉我），据有关文档称也是16px。 </li>
</ul>
<p>为了找出问题的根本原因，我写了一段php代码用来输出font-size等于100% (也即1em) 到 50% (0.5em)之间的每隔1% (0.01em)的文字显示结果。该程序的运行结果如下图所示。</p>
<p style="TEXT-ALIGN: center"><img id="image43" alt="Font size test for em/% unit" src="http://www.codesoil.net/wp-content/uploads/2007/05/font-test.png" /></p>
<p>上图是在Firefox下的测试结果。然后，根据IE和Firefox下的结果，得出了右面的这张表格。</p>
<p>通过这张表格即可看出，虽然在大多数的的情况下IE和Firefox的结果是相同的，但是当设置font-size=97%的时候，IE会显示16px的字体，而Firefox则显示15px的字体。同样font-size=72%时，IE显示12px字体，Firefox则显示11px字体。</p>
<p>实际用计算器计算一下就知道，当font-size为97%时，16px X 97% = 15.52px。也就是说，在IE中15.52px被解释为16px字体，而在Firefox当中15.52px被解释为15px字体 (不知道是不是Firefox的计算方法有问题？或者是W3C规定这样做的？还是我计算错误？)。</p>
<p><strong><font color="#ff0000">补充一条最新发现</font></strong>：刚才试着用<a href="https://addons.mozilla.org/en-US/firefox/addon/2104">CSSViewer这个插件</a>检查了一下font-size=97%时的像素值，发现结果并不是我想象的15.52px，而是15.4667px&mdash;&mdash;不知道Firefox中究竟是按照什么标准计算百分比单位的font-size的呢？</p>
<p>IE和Firefox究竟谁对谁错，实在是难以说清，不过有一点是肯定的&mdash;&mdash;就是在设计CSS的时候，要特别注意这些IE和Firefox之间不同的地方。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codesoil.net/2007/05/26/difference-between-ie-and-firefox-when-using-percent-as-font-size-unit/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
