<?xml version="1.0" encoding="GBK"?>
<?xml-stylesheet href="/style/rss.css" type="text/css"?>
<rss version="2.0" xmlns:eb="http://blog.tom.com/">
<channel>
  <title>寻找宁静雪</title>
  <link>http://blog.tom.com/czb86</link>
  <description><![CDATA[财经 | 车 | IT | 手机 | 影音 | 旅游 | 美图 | 新闻 | 吃 | 玩 ]]></description>
  <language>zh</language>
  <generator>newblog.tom.com RSS</generator>
  <pubDate></pubDate>    <item>
		<title><![CDATA[ LINQ的内部执行原理浅析 ]]></title>
		<link>http://blog.tom.com/czb86/article/4806.html</link>
		<description><![CDATA[ 　　LINQ（Language Integrated Query）是Visual Studio 2008中的领军人物。借助于LINQ技术，我们可以使用一种类似SQL的语法来查询任何形式的数据。目前为止LINQ所支持的数据源有SQL Server、XML以及内存中的数据集合。开发人员也可以使用其提供的扩展框架添加更多的数据源，例如MySQL、Amazon甚至是Google Desktop。<br>
　　一般来讲，这类查询语句的一个重要特点就是可以并行化执行。虽然有些情况下并行可能会带来一些问题，但这种情况非常少见。这样也就水到渠成地引出了PLINQ这个并行处理的LINQ类库。<br>
　　PLINQ原名为Parallel LINQ，支持XML和内存中的数据集合。执行于远程服务器上的查询语句（例如LINQ to SQL）显然无法实现这个功能。<br>
　　将LINQ语句转换为PLINQ语句极为简单——只需要在查询语句中From子句所指定的数据源的最后添加.AsParallel()即可。随后Where、OrderBy和Select子句将自动改为调用这个并行的LINQ版本。<br>
　　据MSDN Magazine介绍，PLINQ可以以三种方式执行。第一种是管道处理：一个线程用来读取数据源，而其他的线程则用来处理查询语句，二者同步进行——虽然这个单一的消费线程可能并不那么容易与多个生产线程同步。不过若是能够仔细配置好负载平衡的话，仍然会极大地减少内存占用。<br>
　　第二种模式叫做“stop and go”，用于处理结果集需要被一次返回时（例如调用ToList、ToArray或对结果排序）的情况。在这种模式下，将依次完成各个处理过程，并将结果统一返回给消费线程。这个模式在性能上将优于第一种模式，因为它省去了用来保持线程同步所花费的开销。<br>
　　最后一种方法叫做“inverted enumeration”。该方法并不需要实现收集到所有的输出，然后在单一的线程中处理，而是将最终调用的函数通过ForAll扩展传递到每个线程中。这是目前为止最快的一种处理模式，不过这需要传递到ForAll中的函数是线程安全的，且最好不包含任何lock之类的互斥语句。<br>
<p>　　若是PLINQ中任意的一个线程抛出异常，那么所有的其他线程将会被终止。若是抛出了多个异常，那么这些异常将被组合成一个MultipleFailuresException类型的异常，但每个异常的调用堆栈仍会被保留。</p>
<p><br></p>
　　<font color="#FF0000">补充</font><br>
　　感觉C#设计人员对LINQ的语法考虑欠佳，我对LINQ涉猎不深，但是举例说明我对LINQ语法设计的考虑：<br>
　　问题：从int数组a中选择范围在18～28之间的值，并按照升序输出int数组b<br>
　　已知：int[] a;<br>
　　解决：int[] b = SQL{select int from a where int &gt;= 18 and int &lt;= 28 order by int};<br>
　　问题：从结构体Point列表a中选择距离Point O不超过单位100的Point列表b<br>
　　已知：List&lt;Point&gt; a; Point O; 函数float Distance(Point A, Point B);<br>
　　解决：List&lt;Point&gt; b = SQL{select Point from a where Distance(Point, O) &lt;= 100};<br>
　　问题：将字符串s中所有数字设置为字符'0'<br>
　　已知：string s; 设char[] chars = s.ToCharArray();<br>
　　解决：char[] result = SQL{update chars set char = '0' where char &gt;= '0' and char &lt;= '9'};<br>
　　问题：在byte数组a后插入255，形成新的数组b<br>
　　已知：byte[] a;<br>
　　解决：byte[] b = SQL{insert into a values(255)};<br>
　　问题：删除int数组a中的负值，形成新的数组b<br>
　　已知：int[] a;<br>
　　解决：int[] b = SQL{delete int from a where int &lt; 0};<br>
<br> ]]></description>
		<eb:creationDate>2009-01-08 13:09:39</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ IIS6详解 ]]></title>
		<link>http://blog.tom.com/czb86/article/4803.html</link>
		<description><![CDATA[ <p>IIS6.0是微软在WEB浏览应用方面里程碑的改进，相比IIS5.1，IIS6.0不仅仅是版本号的差别，更多的是功能上的改进和增强。那么IIS6.0中到底有一些什么新特性呢？本文就IIS6.0中的一些重要特性进行介绍。<br>
（一）改善的IIS安装方式<br>
Microsoft Windows Server 2003家族中的Internet信息服务 （IIS）提供了可用于Intranet、Internet或Extranet上的集成 Web 服务器能力，这种服务器具有可靠性、可伸缩性、安全性以及可管理性的特点，可以使用IIS 6.0为动态网络应用程序创建功能强大的通讯平台。IIS 6.0提供了一些新功能来帮助组织、IT专业人士和Web管理员为单个IIS服务器或多个服务器上可能存在的上千个网站实现高性能、可靠性、可伸缩性和安全性的目标。IIS 6.0只能在Windows Server 2003服务器的数据中心版、企业版、标准版以及Web版这四种版本之中运行，不能在Windows XP、2000或NT上运行。<br>
　　除了Windows 2003 Web版之外，Windows 2003的其余版本默认不再安装IIS。Windows 2003 Server安装完成后，安装IIS有三种途径：即利用“管理您的服务器”向导、利用控制面板“添加或删除程序”的“添加/删除Windows组件”功能以及执行无人值守安装。<br>
微软在利用“管理您的服务器”向导来安装IIS时较以前有了很大的改观，采用了一种新型的“安装任何部件之前总是征求用户意见”的IIS安装策略，在高度安全和“锁定”模式下安装。说明微软确实在认真对待安全问题；而使用控制面板中的“添加/删除Windows组件”功能比较灵活，可以自行选择组件进行安装。在IIS 6.0中增加了20多个组件，在IIS中取消了文档，所有文档都以帮助文件的形式发布，不再有IISHelp虚拟目录，而且在IIS 6.0网站上必须自己创建该目录。在默认情况下，IIS只为静态内容提供服务，即ASP、ASP.NET、在服务器端的包含文件、WebDAV发布和 FrontPage Server Extensions 等功能只有在启用时才工作。<br>
（二）增强的服务<br>
　　微软在IIS 6.0中对大部分模块都进行了重新设计以便利用基本Windows内核HTTP.sys。这使其具有内置的响应和请求缓存和队列功能，并能够将应用程序进程请求直接路由到工作进程，从而改善可靠性和性能。IIS 6.0中提供了POP3服务和POP3服务Web管理器，从而在Windows 2003 Server上可以不用安装Exchange Server，也可以接受和发送邮件。<br>
　　统一描述、发现和集成协议（Universal Description, Discovery, and Integration，即UDDI）服务是Windows 2003 Server提供的跟IIS有关的又一种新的功能，默认不安装。UDDI是一种产业标准，能够通过广告发布IIS服务器提供的Web服务——这里“广告”一词的含义与日常生活中的广告不同，它是指一种让客户程序（通常是Web浏览器）获知Web服务（通常是ASP.NET应用）各种细节的方式。UDDI仍在发展之中，但一些企业已经在内部采用UDDI，以便开发者将自己的代码发布给其他协作开发的人。最后一种重要的支持服务是后台智能传送服务（Background Intelligent Transfer Service，简称BITS）。BITS是一种后台文件传输机制和队列管理器，也称作节流传输服务。BITS控制文件请求，减少带宽消耗并改善最终用户的体验。针对IIS启用BITS可保证Web服务器的服务质量，如果没有BITS，当100个用户同时下载一个500 MB的文件，服务器的带宽可能就被消耗殆尽，导致其他访问Web服务的用户频繁地遇到超时错误。<br>
（三）全新设计的内核<br>
　　IIS 4.0和IIS 5.0从体系结构上来看，其内核都是一样的，采用TCP/IP内核，前者应用程序为MTX.exe，后者为DLLhost.exe。它们都是在用户模式下运行的发布Web内容的应用程序，或者在Inetinfo进程之内以System账号运行，或者在Inetinfo进程之外以IWAM用户运行，其体系结构如图1所示。<br>
图1 IIS4.X以及IIS5.X体系结构<br>
从IIS 6.0开始，为了使IIS不仅能够轻松地支持1000个Web网站，而且能够支持10000个甚至更多的网站，同时还要提高Web服务器的安全性和可靠性，微软放弃了原有的IIS内核，重新构造了一个内核http.sys内核，其体系结构如图2所示。<br>
图2 IIS6.0体系结构<br>
在IIS 6.0中可以将监听请求、创建和监视Web网站、运行Web服务等不同的任务隔离了开来。新的设计极大地改善可用性、安全和性能；IIS 6.0的内核体系主要建立在W3SVC、http.sys以及W3Core三个组件之上。<br>
（1）W3SVC<br>
　　W3SVC组件的任务是根据配置数据的设置创建和监视工作线程，由工作线程运行Web网站应用。在IIS 5.0中与IIS6.0中的W3SVC组件最接近的是IIS管理服务，IIS管理服务是Inetinfo的一部分，如果Inetinfo出现问题，IIS管理服务也会出现问题，出现问题后就无法重新启动IIS管理服务。在IIS 6.0中W3SVC作为一个独立的进程运行，Web应用出现问题后不会影响其它服务。W3SVC一直处于运行状态，实时监视Web应用的状况，一旦出现异常情况可根据用户指定的参数监视和重新启动应用程序。<br>
（2）http.sys<br>
　　 Windows Server 2003 家族成员中的超文本传输协议（HTTP）栈以一个名为HTTP.sys 的内核模式设备驱动程序形式来实现，它是网络子系统的一部分。IIS 6.0体系设计中最重大的变化是加入了http.sys驱动程序，http.sys驱动程序的任务是处理HTTP请求，它为 HTTP 服务器应用程序提供高性能的连接性，而且它在内核模式下执行操作。将处理HTTP请求的任务从IIS 5.0、IIS 4.0的用户模式改变到IIS 6.0的内核模式标志着新一代IIS服务器的诞生。<br>
　　IIS 6.0的https.sys内核模式驱动程序极大地减少了用户模式和内核模式之间的切换次数。http.sys监听着HTTP请求，决定由哪一个用户模式的进程来处理该请求，或者是否由驱动程序本身返回用户请求的内容。另外，微软在http.sys驱动程序中采用了许多优化的算法，使其能够将请求直接转发到适当的工作进程。<br>
（3）W3Core<br>
默认情况下，IIS 6.0在工作进程隔离模式下运行，在这种模式中，对于每一个Web应用，IIS 6.0都用一个独立的w3wp.exe的实例来运行它。w3wp.exe也称为工作进程（Worker Process），或W3Core。 工作进程隔离模式不存在进程内（In-Process）应用程序存在的问题，有效地提高了可靠性和安全性。w3wp.exe的所有实例都在一个权限有限的“网络服务”账号下运行，必要时，还可以将工作进程配置成用其他用户账号运行。如果缓冲区溢出攻击成功入侵了一个Web应用，攻击者只能访问当时运行工作进程的账号有权访问的资源，默认的网络服务账号不能写入Inetpub文件夹，执行权限也极其有限，所以象CodeRed蠕虫之类的攻击根本不可能得逞。<br>
（四）带宽和连接限制<br>
　　在IIS 5.0和IIS 4.0中不能直接操作服务器的网卡，虽然可以通过Web网站属性对话框的“性能”来允许启用带宽限制功能，指定允许网站占用的最大带宽，但是这个功能不一定起作用。IIS 6.0启用带宽限制功能后，必须在服务器中安装QoS数据包计划程序，该安装为自动安装，在安装QoS数据包计划程序期间Windows 2003 Server会临时地停止所有网络服务。配置好QoS数据包计划程序后，才能设置带宽限制，通过配置给定站点的网络带宽，可以更好地控制该站点允许的流量。<br>
带宽限制可以是针对所有网站，也可以是针对单个网站的。设置全局WWW服务最大带宽不会替代已为服务器上的单个网站设定的最大带宽。单个站点根据已设置的最大值来限制带宽，而全局设置限制所有其他未限制带宽的网站。另外，全局WWW服务带宽限制设置不会影响FTP站点或FTP服务。<br>
在II6中允许设置的最小带宽限制值是1024 Byte/秒。对于“正常”的负载，服务器使用的带宽不应超过其全部可用带宽的50%。如果服务器有较大的高峰负载，请将正常负载保持在50%以下，剩下的带宽可在高峰期使用。<br>
在IIS6.0中可以将 Internet 信息服务（IIS）配置成允许数目不受限制的并发连接，或限制该网站接收的连接个数。如果连接趋向于波动，则将“网站连接”设置成不受限制。如果为了保证系统性能，可以将站点限定在特定的连接数，网站的并发连接数是衡量网站性能的一个指标。<br>
（五）网站标识与ID<br>
网站标识由 IP 地址、TCP 端口以及主机头名（可选）组成，它使名称与静态 IP 地址相关联从而主控多个站点。将主机名添加到名称解析系统（DNS）中，以便当有请求到达服务器时，IIS使用主机名来确定客户端请求的站点，该主机名在 HTTP 头中传递。<br>
对于IIS服务器来说，唯一标识一个网站的不是网站的名称，而是网站的ID数值。当在IIS 5.0和IIS 4.0中创建一个新网站时，Web服务器将下一个可用的数字顺序号指定给网站，即Web服务器给默认站点指定的数字是1，下一个网站是2，接下来是3、4，等等），这个数字就是网站的唯一ID。如果要访问一个网站的日志文件，首先必须知道该网站的ID，因为日志文件保存在W3SVC&lt;网站的ID编号&gt;目录。如果Web服务器上运行着多个网站，仅仅依靠日志文件的路径名称根本无法判断哪一个日志目录属于哪一个网站，而且在编写管理脚本和修改配置数据文件时，必须知道网站ID。<br>
在IIS 5.0和IIS 4.0中，从IIS管理器无法直接找到网站的ID编号。而IIS 6.0的管理器在网站清单中增加了一个新的“标识符”列，该列的内容就是网站的ID编号。网站的ID是根据网站的名字计算出网站的ID，例如130023491，该网站对应日志文件路径为“W3SVC130023491”。在IIS6中通过修改注册表可以使用原有的网站ID顺序生成方式，也可以禁用IIS 6.0新式的ID生成方式，禁用后顺序生成是在现有的ID基础上开始累加。如要要禁用现有的ID生成方式而改为顺序生成ID方式，其具体的操作步骤是：找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetMgr\Parameters注册子键，创建一个REG_DWORD值“IncrementalSiteIDCreation”，将它设置为十进制“2”。<br>
（六）安全以及安全策略<br>
　　 IIS 6.0默认不安装在Windows 2003 Server服务器中，即使按照缺省方式安装，Web服务器只能提供静态内容服务。除此之外Windows Server 2003还有一个新的组策略“禁止安装IIS”，有了该组策略，可以禁止Windows 2003在活动目录（AD）森林中禁止不准备作Web服务器用的机器上安装IIS 6.0，防止网络上出现根本无用的、不安全的IIS 6.0服务器。 　要想在IIS 6.0上运行程序，必须使用IIS 6.0的一种新特性——Web服务扩展（Web Service Extension）。<br>
在Web服务扩展管理中可以看到“所有未知ISAPI扩展”和“所有未知CGI扩展”默认情况下是禁用的，意味着除非明确地允许一个应用在IIS 6.0上运行，否则它就不能运行。如果一个用户请求了某个没有启用的文件，IIS 6.0将向用户返回404错误——文件或目录没有找到，同时在W3SVC日志中记录“404.2文件或目录无法找到：锁定策略禁止该请求”。另外，“systemroot\system32”下有一个iisext.vbs脚本，它也能够配置并管理运行带有IIS 6.0的Windows Server 2003的Web服务扩展、应用程序和单独的文件。管理员可以使用此脚本来启用和列出应用程序；添加和删除应用程序依存关系；启用、禁用和列出 Web 服务扩展；以及添加、删除、启用、禁用和列出单个文件。<br>
　　另一个安全方面的改进之处是IIS 6.0允许指派一个加密服务提供者（Cryptographic Service Provider，CSP），能够将基于硬件的安全套接字层（SSL）加速器集成到IIS 6.0，从而把加密任务从服务器的通用CPU转移到了专门为加密操作而优化的专用设备，有利于提高性能和可靠性。除此之外在IIS6.0中还有其它一些安全改进：<br>
（1）以具有低级访问权限的账户运行。IIS 工作进程在访问权限极少的用户上下文中运行。这大大减少了潜在攻击的影响。<br>
（2）提高了ASP运行程序的安全性。所有的ASP内置功能总是以具有极少访问权限的账号IUSR_computername运行。<br>
（3）运行可执行文件的限制。为了运行系统文件夹中的大多数可执行文件（如cmd.exe），必须是Administrators组、LocalSystem、Interactive或Service账号的成员。该限制限制了对 Administrators的远程访问，因此匿名用户无法运行可执行文件。<br>
（4）修补程序管理。对于修补程序管理，管理员可在不中断服务的情况下安装最新的安全修补程序。<br>
（5）IIS 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展，则服务器拒绝请求。<br>
（6）内容的写保护。在默认情况下，拒绝匿名用户（以IUSR_computername账号运行）对 Web 内容进行写入访问。<br>
（7）超时和限制。在IIS 6.0中，默认设置是安全而主动的，这样可最大限度地减少因以前太宽松的超时和限制而造成的攻击。<br>
（8）上载数据限制，管理员可以限制能上载到服务器的数据。<br>
（9）缓冲区溢出保护，工作进程会检测缓冲区溢出，并在检测到时退出程序。<br>
（10）文件验证，IIS 在将请求发送到请求处理程序（ISAPI 扩展）之前会验证请求的内容是否存在。<br>
（11）脚本资源访问：该权限允许访问 ASP 页脚本和其他脚本的“源代码”，它是新增功能，且在默认情况下被禁用。它可在选择了“读取”或“写入”权限时可用。<br>
（七）异步CGI处理<br>
IIS 5.0和IIS 4.0以同步方式运行CGI（Common Gateway Interface，通用网关接口）进程，这实际上意味着每次只有一个线程能够访问一个CGI进程，所以IIS 5.0和IIS 4.0对CGI支持的可伸缩性不佳。IIS 6.0能够异步运行CGI进程，所以如果一个线程调用了一个CGI应用程序，它不必再等待CGI进程处理完毕和返回信息。异步CGI改善了IIS服务器运行CGI Web应用程序的性能，使得IIS能够运行更多执行关键任务的基于CGI的应用程序。<br>
CGI程序在Web服务器接收到包含CGI程序名和程序所需参数的URL时执行。如果将 CGI 程序编译为可执行 (.exe) 文件，则必须提供包含程序执行权限的目录，以便用户可以运行程序。如果 CGI 程序以脚本形式（例如 Perl 脚本）编写，则既可为目录提供执行权限，也可为其提供脚本权限。要使用脚本权限，必须将脚本解释程序标记为脚本引擎。<br>
在默认情况下IIS_WPG组不具备启动CGI进程的权利。如果创建了新账号并将其添加到 IIS_WPG 组以运行工作进程标识，还必须授予此账号两种启动 CGI 进程的用户权利。这些用户权利是“调整进程的内存配额”和“替换进程级令牌”。 为更加安全起见，Web 服务器不将命令解释程序的特殊字符传递给映射的 CGI 应用程序。默认情况下，“( , ; % &lt; &gt;”字符不能包含在调用 CGI 应用程序的 URL 中。<br>
（八）应用程序池<br>
　　 IIS 6.0只有在工作进程隔离模式下运行时才能使用这个应用程序池功能，应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔，所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。通过创建新的应用程序池以及为其指派网站和应用程序，可以让服务器更加有效、可靠，同时也可以让其他应用程序一直保持可用状态。<br>
 在应用程序池的“属性”对话框有“回收”、“性能”、“运行状况”以及“标识”四个标签。在工作进程隔离模式中，IIS可以配置成定期重新启动应用程序池中的工作进程，从而更好地管理那些有错误的工作进程。这确保了池中的应用程序运行正常，并且可以恢复丢失的系统资源。默认情况下，应用程序池每隔1740分钟（29小时）回收一次。W3SVC根据“运行状况”页的选项来判断应用程序池运行是否正常。在默认情况下，当IIS 6.0回收一个池时，它会使用一种称为“overlapped recycle”的回收技术。在这种回收模式下，失败的工作进程仍会保持运行状态，同时创建一个新的工作进程。<br>
（九）配置数据<br>
　　在IIS 5.0和IIS 4.0中，配置数据库采用二进制文件结构，而在IIS 6.0中的配置数据由Metabase.xml和mbschema.xml这两个XML文件构成。Metabase.xml包含IIS 6.0服务器的配置信息，mbschema.xml包含配置数据的模式定义。按照这种方式保存配置数据时，IIS 6.0利用系统的机器码（Machine Key）加密配置数据的某些部分，因此，配置数据的副本只对创建该副本的机器有用，在IIS管理器还允许保存配置数据副本。在IIS6.0中还可以使用命令行脚本iisback.vbs（在systemroot\System32中）创建和管理远程或本地计算机的IIS配置的备份副本，管理员可以使用此脚本工具创建其IIS配置的备份副本，从备份副本还原IIS配置以及列出和删除备份副本。这样可以先精心配置一个模板，然后用它来创建和配置新的网站，而且在出现问题时，配置信息副本还可以用来恢复网站的设置。<br>
由于IIS 6.0配置信息是可移植的，因此便于升级。IIS 6.0的配置数据是标准的文本文件（XML文件），可以用记事本之类的文本编辑器打开和编辑。如果修改了IIS 5.0或IIS 4.0的配置数据，有时必须重新启动IIS，如果系统上网站的数量很多，可能需要不少时间。IIS 6.0支持一种“运行时允许编辑”功能，这样IIS 6.0几乎立即就能根据配置文件的设置作相应的修改，根本无需重新启动。<br>
在IIS6.0中提供了配置文件历史版本目录，在进行配置/还原时可以很方便的恢复到某个版本的配置。在IIS6.0配置中还提供了对某一个文件打开时直接进行授权——即在IIS管理器中选择一个文件夹右键单击，然后选择“权限”菜单打开文件夹的“安全”对话框。在该对话框中可以设置文件夹的NTFS授权，不必再离开IIS管理器，不但节约时间，而且非常方便。<br>
　　在IIS6.0中对“目录安全性”页下的“安全通信”允许配置SSL、证书信任列表（CTL）、客户证书。在IIS 5.0和IIS 4.0中，除非在Web网站上安装一个证书，否则不能访问该属性页。IIS 6.0不必在Web服务器上安装证书也可以访问和使用该属性页。<br>
（十）通配符应用程序<br>
　 在IIS 5.0和IIS 4.0中ISAPI筛选器可以针对所有进入Web服务器或Web网站的请求执行操作的代码。IIS 6.0提供了一种更加灵活的新型机制来提供通常由ISAPI筛选器提供的服务，它就是ISAPI截取器（Interceptor），或者称为通配符应用程序（Wildcard Application）。在 “应用程序配置”对话框中可以将一个或多个ISAPI DLL配置成通配符应用程序，对于每一个接收到的请求，IIS 6.0将调用这里列出的各个通配符应用程序。除了针对所有网站配置通配符应用程序，还可以针对单个网站或在目录层次上配置通配符应用程序。由于这些ISAPI截取器是标准的ISAPI应用程序，它们具有普通ISAPI应用程序具备的所有功能，包括访问消息正文的能力。<br>
　　通配符应用程序可以做到开发者要做的任何事情，诸如URL定制、验证身份、记录特殊的日志信息、检测攻击企图、创建内容，等等。通配符应用程序结束处理后，它把请求转交给适当的处理引擎（例如处理ASP页面的asp.dll），由处理引擎进一步处理请求。另外，通配符应用程序还可以通过调用为ISAPI应用程序新增的ExecuteURL功能，将请求传递到同一个应用程序池中的任意页面。<br>
（十一）日志功能<br>
　　与IIS4.x和IIS5.x相比，IIS 6.0在日志功能方面有许多重大的改进。在IIS 6.0中，记录日志的功能由http.sys实现，http.sys在内核模式下运行。这就加快了日志写入速度，同时避免了多个工作进程争用同一日志文件。当http.sys遇到错误时，不能将日志信息写入Web网站的日志，这时http.sys会把事件写入一个新的日志文件httperr.log。<br>
　　在排解故障、优化IIS 6.0的过程中，httperr.log日志文件是十分重要的。默认情况下，httperr.log文件保存在system32/logfiles目录。在httperr.log日志文件中可以找到的信息包括：所有的503（服务不可用）错误，空闲连接超时，解析URL时出现的各种错误，最后10个提交给失败的应用程序池的请求。<br>
　　IIS 6.0提供了“集中的二进制日志记录”，它是多个网站用来向单个日志文件写入不带格式的二进制日志数据的过程。当启用时，运行IIS的Web服务器上的所有网站都将数据写入单个日志文件中，日志文件的扩展名是“.ibl”。对于有大量网站的公司，创建成百上千个带格式的日志文件以及将日志数据写入磁盘中的过程可快速消耗运行 IIS 的服务器上宝贵的 CPU 和存储器资源，从而产生性能和可伸缩性问题。要启用二进制日志功能，只要把配置文件的W3SVCC/CentralBinaryLoggingEnabled条目设置成ture（1）即可。微软的Log Parser 2.0工具能够读取二进制日志文件并生成报告，它还能够读取前面介绍的httperr.log文件并生成报告。<br>
　　IIS 5.0和IIS 4.0的IIS管理器允许在指定日志文件路径的时候输入一个远程服务器的通用命名规范（UNC）的路径，但Web服务器实际上不会把日志保存到远程服务器。IIS 6.0可以通过网络，使用完整的通用命名约定 (UNC) 路径将日志数据写入到远程共享上。<br>
（十二）默认设置的变化<br>
　　在IIS 6.0中许多配置项目的默认值已经与IIS 5.0或IIS 4.0的不同。<br>
（1）默认的连接超时时间已经从900秒减少到120秒。<br>
（2）EnableParentPaths设置默认关闭。<br>
（3）如果某种文件类型没有在MimeMap配置属性中映射，所有对该类文件的请求将被拒绝。<br>
（4） 默认情况下，所有工作进程会在1740分钟后自动回收，回收期间会话信息可能丢失。<br>
（5）运行CGI应用程序的用户上下文必须是一个IIS_WPG组的成员。<br>
（6）Windows 2003不安装Collaboration Data Objects for Windows NT Server（CDONTS）。<br>
（7）ASP请求默认限制在204800字节之下，每一个域限制在100 KB之下。<br>
（8）默认情况下，http.sys仅接受标题小于16 KB的请求。<br>
（9）在新安装的 IIS 6.0 中的子验证，在默认情况下不再启用。<br>
　　本文从十二个方面介绍了IIS6.0的一些新功能和特性，IIS6.0的体系结构设计以及功能提升等方面具有突破性意义，与IIS4.0、IIS5.0相比是一个里程碑，在IIS6.0中还有很多实用的功能和新特性，读者朋友可以亲自去体验IIS6.0。<br>
<br></p> ]]></description>
		<eb:creationDate>2009-01-05 05:43:07</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ 突破XP下IIS连接数10的限制 ]]></title>
		<link>http://blog.tom.com/czb86/article/4802.html</link>
		<description><![CDATA[ <p>WindowsXP专业版操作系统中最多允许10个客户端的连接，在Windows2000服务器版或Windows2003服务器版操作系统中不存在这种连接限制问题，他们使用的IIS基本上一致。那就肯定有办法突破其设置。<br>
到Microsoft网站看看，找到一个管理IIS的小工具MetaEdit，MetaEdit工作在WindowsNT4.0、 Windows2000上，我发现它在WindowsXP上也能正常工作，另外，MetaEdit只能管理II4.0、IIS5.0或更高版本的IIS。<br>
下面利用这个工具突破WindowsXP专业版IIS客户端连接限制：<br>
首先，你需要到下面的地址下载MetaEdit，最新版本是2.2 http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe<br>
然后，执行MtaEdt22.exe按向导提示完成MetaEdit安装。最后，在MetaEdit中设置客户端连接限制的参数。安装MetaEdit完 毕后，在开始菜单的程序组AdministrativeTools下点击MetaEdit2.2运行，出现窗口：在窗口的左边将树展开至LM\ W3SVC，直接在W3SVC文件夹上单击，选择右边列表中Name为MaxConnections的项，双击后，出现对话框：在最后Data的文本框中 默认的是10，这就是WindowsXP专业版IIS默认设置的最大客户端连接数了，现在你可以改变这个默认值了，我把它改为最大，注意：在 Win2000上的IIS客户端连接数最大为2000000000。<br>
<br></p> ]]></description>
		<eb:creationDate>2009-01-05 05:37:49</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ XP下安装IIS6 ]]></title>
		<link>http://blog.tom.com/czb86/article/4801.html</link>
		<description><![CDATA[ <p>首先在运行中输入“c:windowsinfsysoc.inf”,系统会自动使用记事本打开sysoc.inf这个文件,找到“[Components]”这一段,找到类似“iis=iis.dll,OcEntry,iis.inf,,7”的一行字,把这一行替换为“iis=iis2.dll,OcEntry,iis2.inf,,7”,之后保存并关闭。</p>
<p>在iis6.0安装包中找到iis.dl_和iis.in_两个文件,一起拷贝到硬盘目录（C:WINDOWSsystem）。</p>
<p style="background-color: #ffff80">打开开始菜单中的“命令提示符”,使用Expand命令解开iis.dl_和iis.in_ ,令格式为：<br>
在运行中输入“CMD”然后回车，打开命令行模式，在命令行下输入下列的两条命令，在每一行命令结束后回车：<br>
Expand C:WINDOWSsystemiis.dl_ c:windowssystem32setupiis2.dll<br>
Expand C:WINDOWSsystemiis.in_ c:windowsinfiis2.inf<br>
<br></p>
<p>打开"控制面板",点击“添加删除程序”图标,之后点击“添加删除Windows组件”,你会发现,Internet信息服务（IIS）重新出现 了！接下来就是循规蹈矩安装IIS。但需要提醒一点，在安装过程中若跳出定位相关文件时，请把目录指向iis6.0安装包所在目录。</p>
<p>最后还有一点注意的：如果你在安装过程中,系统需要你插入Window Whistler CD或者需要你提供exch_adsii***.dll这个文件,那是因为你按照默认的选项安装了IIS。要解决这个问题,只要在安装IIS的时候先点击 “详细信息”,然后取消对SMTP的选择（即不安装SMTP服务器）,那么复制文件的时候就不会需要那两个文件了。</p>
<p><br>
<br></p> ]]></description>
		<eb:creationDate>2009-01-05 05:33:12</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ 在尝试安装.NET Framework 1.0、1.1、2.0、3.0 或 3.5时报错的解决办法 ]]></title>
		<link>http://blog.tom.com/czb86/article/4800.html</link>
		<description><![CDATA[ <p>安装更新报错时，请卸载计算机上的所有 .NET Framework 版本，然后在计算机上重新安装所有 .NET Framework 版本。您可能需要完成下列方法中的多种方法。</p>
<p><strong><font color="#FF0000">方法 1：手动删除并重新安装 .NET Framework</font></strong><br>
要手动删除并重新安装 .NET Framework，请按照下列步骤操作：<br>
1、删除 .NET Framework。<br>
  a.单击“开始”，然后单击“控制面板”。<br>
  b.双击“添加或删除程序”。<br>
  c.记下计算机上已安装的每个 .NET Framework 版本，然后卸载所有 .NET Framework 版本。<br>
  d.出现提示时，重新启动计算机。<br>
2、使用 Windows Installer 清理实用程序来清理所有 .NET Framework 版本的 MSI 数据库状态。   a.<a href="http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe" target="_blank">立即下载 Windows Installer 清理实用程序包</a>。<br>
  b.以管理员身份或属于本地管理员组成员的用户帐户的身份安装 Windows Installer 清理实用程序。<br>
  c.单击“开始”，指向“所有程序”，然后单击“Windows 安装清理”。<br>
  d.在 Windows Installer 清理实用程序中，删除 .NET Framework 的所有 Windows Installer 应用程序。<br>
3、重新启动计算机。<br>
4、下载然后重新安装计算机上以前安装的所有 .NET Framework 版本。<br>
要下载 .NET Framework 1.0，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=d7158dee-a83f-4e21-b05a-009d06457787" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=d7158dee-a83f-4e21-b05a-009d06457787</a><br>
要下载 .NET Framework 1.0 Service Pack 3，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=6978d761-4a92-4106-a9bc-83e78d4abc5b" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=6978d761-4a92-4106-a9bc-83e78d4abc5b</a><br>
要下载 .NET Framework 1.1，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3</a><br>
要下载 .NET Framework 1.1 Service Pack 1，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38</a><br>
要下载 .NET Framework 2.0，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5</a><br>
要下载 .NET Framework 2.0 Service Pack 1，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&amp;DisplayLang=zh-cn" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&amp;DisplayLang=zh-cn</a><br>
要下载 .NET Framework 3.0，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043&amp;DisplayLang=zh-cn" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043&amp;DisplayLang=zh-cn</a><br>
要下载 .NET Framework 3.0 Service Pack 1，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ec2ca85d-b255-4425-9e65-1e88a0bdb72a&amp;DisplayLang=zh-cn" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=ec2ca85d-b255-4425-9e65-1e88a0bdb72a&amp;DisplayLang=zh-cn</a><br>
要下载 .NET Framework 3.5，请访问下面的 Microsoft 网站：<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&amp;DisplayLang=zh-cn" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&amp;DisplayLang=zh-cn</a><br>
<br>
5、出现提示时，重新启动计算机。<br>
注意：重新安装了所有 .NET Framework 版本后，您可以使用 Windows Update 来检查 .NET Framework 的更新。</p>
<p><font color="#FF0000"><strong>方法 2：使用 .NET Framework 自动清理工具</strong></font><br>
此工具不替代标准卸载过程。在使用此清理工具之前，您应尝试使用上文介绍的方法 1 中的步骤执行卸载。<br>
<br>
.NET Framework 清理工具可为您删除 .NET Framework。有关如何获取和使用此工具的信息，请访问下面的 MSDN 网站：<a href="http://blogs.msdn.com/astebner/archive/2006/05/30/611355.aspx" target="_blank">http://blogs.msdn.com/astebner/archive/2006/05/30/611355.aspx</a><br>
<br>
注意：此清理工具删除多个 .NET Framework 版本使用的共享文件和注册表项。为保证所有 .NET Framework 版本正常运行，如果运行清理工具删除 .NET Framework，则必须先使用此清理工具删除所有已安装的 .NET Framework 版本。然后，您必须从最低版本号开始重新安装所有以前安装的版本。<br>
<br>
假定您的计算机上安装了 .NET Framework 1.1 和 .NET Framework 2.0，而且您计划使用此清理工具。在此情况下，您应先使用清理工具删除 .NET Framework 1.1，然后使用清理工具删除 .NET Framework 2.0。在已删除两个版本后，即可先重新安装 .NET Framework 1.1，然后安装 .NET Framework 2.0。<br>
<br>
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性，Microsoft 不作任何暗示保证或其他形式的保证。<br>
<br>
<br></p>
<p><font color="#FF9900">在使用下列任一配置时，您可能会遇到此问题：</font><br>
·将 Microsoft .NET Framework 1.0 Service Pack 3 与下列任一操作系统一起使用：<br>
Microsoft Windows 2000 Advanced Server Service Pack 4 (SP4)<br>
Microsoft Windows 2000 Datacenter Server SP4<br>
Microsoft Windows 2000 Professional SP4<br>
Microsoft Windows 2000 Server SP4<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter Edition SP1<br>
Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise Edition SP1<br>
Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition<br>
Windows Server 2003 Standard Edition 32 位 x86 SP1<br>
Windows Server 2003 Standard Edition 32 位 x86 SP2<br>
Windows Server 2003 Standard x64 Edition SP2<br>
Windows Server 2003 Standard x64 Edition<br>
Windows Server 2003 Web Edition SP1<br>
Windows Server 2003 Web Edition SP2<br>
Windows Vista Business<br>
Windows Vista Enterprise<br>
Windows Vista Home Basic<br>
Windows Vista Home Premium<br>
Windows Vista Ultimate<br>
Windows XP Home Edition SP2<br>
Windows XP Media Center Edition 2005<br>
Windows XP Professional SP2<br>
Windows XP Professional x64 Edition<br>
Windows XP Professional x64 Edition SP2<br>
Windows XP Tablet PC Edition SP2<br>
<br>
·将 Microsoft .NET Framework 1.1 Service Pack 1 与下列任一操作系统一起使用：<br>
Windows 2000 Advanced Server SP4<br>
Windows 2000 Datacenter Server SP4<br>
Windows 2000 Professional SP4<br>
Windows 2000 Server SP4<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition<br>
Windows Server 2003 Standard Edition 32 位 x86 SP2<br>
Windows Server 2003 Standard x64 Edition SP2<br>
Windows Server 2003 Standard x64 Edition<br>
Windows Server 2003 Web Edition SP2<br>
Windows Vista Business<br>
Windows Vista Enterprise<br>
Windows Vista Home Basic<br>
Windows Vista Home Premium<br>
Windows Vista Ultimate<br>
Windows XP Home Edition SP2<br>
Windows XP Media Center Edition 2005<br>
Windows XP Professional SP2<br>
Windows XP Professional x64 Edition<br>
Windows XP Professional x64 Edition SP2<br>
<br>
·将 Microsoft .NET Framework 2 或 Microsoft .NET Framework 2 SP1 与下列任一操作系统一起使用：<br>
Windows 2000 Advanced Server SP4<br>
Windows 2000 Datacenter Server SP4<br>
Windows 2000 Professional SP4<br>
Windows 2000 Server SP4<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter Edition SP1<br>
Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition<br>
Windows Server 2003 Datacenter x64 Edition SP2<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise Edition SP1<br>
Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition<br>
Windows Server 2003 Enterprise x64 Edition SP2<br>
Windows Server 2003 Standard Edition 32 位 x86 SP1<br>
Windows Server 2003 Standard Edition 32 位 x86 SP2<br>
Windows Server 2003 Standard x64 Edition<br>
Windows Server 2003 Standard x64 Edition SP2<br>
Windows Server 2003 Web Edition SP1<br>
Windows Server 2003 Web Edition SP2<br>
Windows XP Home Edition SP2<br>
Windows XP Media Center Edition 2005<br>
Windows XP Professional SP2<br>
Windows XP Professional x64 Edition<br>
Windows XP Professional x64 Edition SP2<br>
Windows XP Tablet PC Edition SP2<br>
<br>
·将 Microsoft .NET Framework 3.0 或 Microsoft .NET Framework 3.0 SP1 与下列任一操作系统一起使用：<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter Edition SP1<br>
Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition<br>
Windows Server 2003 Datacenter x64 Edition SP2<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise Edition SP1<br>
Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition<br>
Windows Server 2003 Enterprise x64 Edition SP2<br>
Windows Server 2003 Standard Edition 32 位 x86 SP1<br>
Windows Server 2003 Standard Edition 32 位 x86 SP2<br>
Windows Server 2003 Standard x64 Edition<br>
Windows Server 2003 Standard x64 Edition SP2<br>
Windows Server 2003 Web Edition SP1<br>
Windows Server 2003 Web Edition SP2<br>
Windows XP Home Edition SP2<br>
Windows XP Media Center Edition 2005<br>
Windows XP Professional SP2<br>
Windows XP Professional x64 Edition<br>
Windows XP Professional x64 Edition SP2<br>
Windows XP Tablet PC Edition SP2<br>
<br>
·将 Microsoft .NET Framework 3.5 与下列任一操作系统一起使用：<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter Edition SP1<br>
Windows Server 2003 Datacenter Edition SP2<br>
Windows Server 2003 Datacenter x64 Edition<br>
Windows Server 2003 Datacenter x64 Edition SP2<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP1<br>
用于基于 Itanium 的系统的 Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise Edition SP1<br>
Windows Server 2003 Enterprise Edition SP2<br>
Windows Server 2003 Enterprise x64 Edition<br>
Windows Server 2003 Enterprise x64 Edition SP2<br>
Windows Server 2003 Standard Edition 32 位 x86 SP1<br>
Windows Server 2003 Standard Edition 32 位 x86 SP2<br>
Windows Server 2003 Standard x64 Edition<br>
Windows Server 2003 Standard x64 Edition SP2<br>
Windows Server 2003 Web Edition SP1<br>
Windows Server 2003 Web Edition SP2<br>
Windows Vista Business<br>
Windows Vista Enterprise<br>
Windows Vista Home Basic<br>
Windows Vista Home Premium<br>
Windows Vista Ultimate<br>
Windows XP Home Edition SP2<br>
Windows XP Media Center Edition 2005<br>
Windows XP Professional SP2<br>
Windows XP Professional x64 Edition<br>
Windows XP Professional x64 Edition SP2<br>
Windows XP Tablet PC Edition SP2<br>
<br></p> ]]></description>
		<eb:creationDate>2009-01-05 01:48:02</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ Ni-MH镍氢充电电池的保养 ]]></title>
		<link>http://blog.tom.com/czb86/article/4780.html</link>
		<description><![CDATA[ 1.【先充后用】<br>
<br>
一般情况下，新的镍氢电池只含有少量的电量，大家购买后要先进行充电然后再使用。但如果电池出厂时间比较短，电量很足，推荐先使用然后再充电。<br>
<br>
<p><br></p>
2.【充电3次后性能最佳】<br>
<br>
新买的镍氢电池一般要经过3-4次的充电和使用，性能才能发挥到最佳状态，很多朋友第一次充电碰到的小问题，比方第一次充电后拍PP数量没有想象的那么多呀？在3-4次充电和使用后就都迎刃而解了。<br>
<p><br>
<br></p>
3.【用完再充】<br>
<br>
虽然镍氢电池的记忆效应小，仍然推荐大家尽量每次使用完后再充电，并且是一次性充满，不要充一会用一会然后再充。这可是“延年益寿”的重要一点噢。<br>
<p><br>
<br></p>
<p>4.【注意散热，保持清洁】</p>
<p>电池充电时，要注意充电器周围的散热，太刻意用什么风扇吹没有什么必要，但要注意的是充电器周围不要放置太多杂物。普通用户在使用电池的过程中，电池往往没有专用的存放包；用户在替换电池后，会习惯性的把电池随手放好，而不管所放的地方是否干净、潮湿。这样的后果就是电池容易弄脏、触点易与金属比如钥匙等接触、容易受潮，而这些都是电池的大敌。建议：用户应该设置一个电池专用放置点，并保持电池的清洁。为了避免电量流失等问题发生，保持电池两端的接触点和电池盖子的内部干净，必要时使用柔软、清洁的干布轻擦。<br>
<br></p>
<p><br></p>
5.【长期不用，小心存放】<br>
<br>
长时间不用的时候，记得把电池从电池仓中取出，置于干燥的环境中推荐放入牌电池盒中，可以避免电池短路。<br>
<br>
<p><br></p>
6.【久置电池带电保存，重新使用慢充为宜】<br>
<br>
长期不用的镍氢电池会在存放几个月后，电池自然进入一种“休眠”状态，电池寿命大大降低。如果镍氢电池已经放置了很长的时候，建议你先用慢充进行充电为宜。这里涉及到另一个关键问题：对于镍氢电池，电池是应该完全放电后再保存，还是带电保存？这两种截然不同的观点，应该采用哪种呢？许多人都认为应采用前者，但笔者却认为电池带电保存比较合理。因为：据测试，镍氢电池保存的最佳条件是带电80%左右保存。这是因为镍氢电池的自放电较大（一个月10%-15%左右），如果电池完全放电后再保存，很长时间内不使用，电池的自放电现象就会造成电池的过放电，会损坏电池。不信？那你想一想新买的镍氢充电电池是不是都还有电的，其中就是这个道理。建议：多比较，纠正错误的观点，从正确的方向入手保养电池，否则会事与愿违。<br>
<br>
<p><br></p>
7.【不要对Ni-H电池过度放电】<br>
<br>
有很多朋友发帖子询问，如何对镍氢进行放电？在询问了诸多电池专家后，得出了一致的结论提醒朋友们。尽量不要对镍氢电池放电，过放会导致充电失败，这样做的危害远远大于镍氢电池本身的记忆效应！<br>
<br>
<p><br></p>
8.【NiH充电前&lt;1.2V,充满后&gt;1.4V】<br>
<br>
万用表自检电池充满与否。一般镍氢电池在充电前，电压在1.2V以下，充满后正常电压在1.4V左右。大家以此判断，也就很容易判断电池的状态了。<br>
<br>
<p><br></p>
9.【快充有害，名牌为佳】<br>
<br>
充电器主要分为快充和慢充。慢充电流小，通常在200mA左右，比如我们常见的充电电流是在160mA左右。她的充电时间长，充电1800mAh的镍氢电池要16个小时左右。时间虽然是慢了些，可是充电会充的很足，并且不伤电池。快充电流通常都在400mA以上，充电时间明显减少很多，3-4个小时就可以搞定，也赢得了大家的喜爱。快充种类很多，价格不一。所以大家也常常有疑问，同是快充，价格为什么相差甚大呢？好的充电器特别是好的快充都带有防过度充电保护功能的，比方我们常见的松下极品充电器BQ 390在这方面表现尤为出色，优秀的芯片软件设计能力在对电池充电时，也把快充对电池的伤害降到了最低。<br>
<br>
<p><br></p>
10.【快充多次慢充恢复】<br>
<br>
<p>矛盾出现：慢充不伤电池但是充电时间太长；快充可以节省时间，但对电池有伤害，即使是目前世面上最好的松下极品充电器BQ390也只能很好的降低伤害程度，但不可完全避免。解决矛盾的方法就是要买一个快充和一个慢充。用快充充一段时间，比方5、10次之后，改用慢充充电一两次。这样就又把电池的性能恢复到最佳状态。</p>
<p><br></p>
<br>
11.【同牌同号同期使用】<br>
<br>
电池使用时一般都是电池组，就是4节或6节串联起来，这时候，保持每节电池的平衡就很重要了，否则因为其中的一节电池问题而影响整个电池组的工作。首先要保证电池容量一致，最好选择相同牌子相同型号同时购买的电池。然后，要保持电池内部的电量一致，简单的说，就是电池组的电要么都是满的，要么都是空的。如果有比较多的电池组成若干组电池组，可以试着“精选”一下。具体就是说，将容量、电压等参数相近的电池单体串联成一组电池组，由于条件不足，一般情况下测一下放完点后的电压<br>
<p>和冲好电的电压就可以了。</p>
<p><br></p>
<br>
12.【充放电】<br>
<br>
高档的NI-MH充电器用的是-DELTA V检测电池电压来判断电池是否充满。电池充电时的电压曲线和放电时有点相似，开始时是比较快的上升，之后缓慢上升，等到充好的时候，电压又开始快速下降，只是下降的幅度不是很大。之前常用的镍镉电池也类似，只是下降的速度和幅度比NI-MH都大。而市场上最多的充电器（比较便宜的那种）常常用的就是衡压充电，比如老GP充电宝就是1.4V衡压，就是电池冲到1.4V时由于没有电压差了，充电就结束了。这样的结果，往往就是电池无法充满，特别是一些比较旧的电池，由于内阻增大，真正加在电池上的电压更低。而且这种充电器电流往往较小，充电往往要10多个小时。而用-DELTA V自动切断的充电器，由于能够准确地控制充电时间，因此可以比较可靠的使用大电流充电。大电流充电对于镍氢电池的损害并没有大家想象的利害，相反的时，现在DC的使用状况，更需要大电流充电。首先是时间问题，不用讲了。然后，镍氢电池有个特性，就是你充的电流越大，它能放出的电流也就越大，现在DC都是电老虎，电流都不小，因此相对来说使用相对来说较大的电流充电是个明智的选择，可以让电池放得更加干净。一般5号充电电流不能超过1.5C，C为电池容量，就是1000MAH的电池，不要超过1.5A。我一般用0.5C进行充电（我的充电器可调电流）。<br>
<br>
放电方面，一般情况下，DC黑屏后拿去充就可以了，NI-MH记忆效应很小。不过在一段时间使用后，以及要平衡电池、激活电池的时候，要控制好电池放电的终止电压。NI-MH电池的终止电压为0.9V，放电的时候注意不要过放电，放到每节电池0.9V时就可以停止放电了。NI-MH电池没有镍镉电池强悍，对过充过放以及高温都比较敏感。充放电温度。一般来说，不要让电池的温度高于45度。电池充满的时候，电池会发热，大电流充满时温度应该为42度左右，不要超过45度，否则寿命会很快降低，电池内阻将会增大。还有，充电后电池温度较高，等冷却后才可对其充电，充电钱也要等电池冷却。长时间不用后重新使用，最好充放几遍重新激活电池。平时使用的时候要注意保持包装皮的完整，不能有破损，以免短路。不要摔打冲击电池，不要火烧等等。<br>
<br>
<br>
<br> ]]></description>
		<eb:creationDate>2008-12-27 14:35:21</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ [转载] Javascript进阶 ]]></title>
		<link>http://blog.tom.com/czb86/article/4585.html</link>
		<description><![CDATA[ Javascript的普及应用率远比Java高，它与CSS和HTML一样，是所有Web开发人员的必修课程。<br>
Javascript在很多人眼中不过是鸡肋，它的应用价值被局限在了客户端数据验证。Javascript是Web领域不可缺少的组成部分，开发人员对它的认识程度是分层次的。<br>
<br>
1、数据验证的工具。这是javascript被应用得最多的场景，也是多数web程序员对javascript建立印象的第一步。正由于这一步已经被太多的web程序员走过了，所以对于web开发的新手，早已只需要上网下载一些别人开发好的用于验证的js，直接调用就OK了。数据验证不过是javascript被当作语言来应用的第一步。<br>
<br>
2、OO。具有一定的web开发经验之后，程序员往往会需要在客户端去满足用户的一些特殊的需求。最简单的情况就是实现省市的选择框关联——也许这也是多数web程序员可以共享的经验。实现这个并不难，但是在实现的过程中，程序员需要以对象的形式来操作select，生成新的option对象。虽然javascript的面向对象特性可能有的人已经在数据验证的工作中有了模糊的概念，但当你深切地认识到javascript的OO特性时，你对它的认识程度就已经上了一个台阶了。<br>
<br>
3、DOM解析。相信多数web程序员经历了第二阶段，或多或少都用过innerHTML和innerText等方法来改变当前页面区域的内容，getElementByXX类的方法应该也是比较熟悉了。这个过程之后，你在开发中遇到的新问题就是解决遍历文档时寻找需要的位置，并且对该位置的内容进行修改。innerHTML与getElementByXX结合，你可以解决部分的这类问题。没有去为文档定义id，或者要处理的内容分散在各个标签中，单纯的依靠这类方法就不是那么容易解决问题了。了解如何通过javascript进行DOM解析，也是使用javascript进行页面特征处理的必经之路。Ajax的应用中，javascript的DOM解析能力是非常重要的。查看实时页面代码的工具已经是这个阶段的web开发人员必备的工具了。<br>
<br>
4、ECMA。作为web开发领域的标准，ECMA不过是javascript的脚本核心。当web开发人员不断解决Javascript的浏览器兼容性问题时，他们都会有去了解这个标准的冲动的。参照标准，程序员在这个阶段系统化的梳理自己对javascript的理解。可以负责任的说，这个阶段的web程序员，已经能够解决大多数javascript问题了。<br>
<br>
5、特殊的需求特殊来处理。到了第五个阶段，往往web开发人员是由于特定的系统需求，而需要去了解javascript的新的应用方式。例如javascript的webservice调用方式，javascript的正则表达式应用等。这种需求并不强烈，但确实存在，因此会有部分程序员需要走到这一步。第五阶段的web程序员与第四阶段的web程序员没有能力上的区别，相差的不过是面对实际问题的解决经验。<br>
<br>
以上对Javascript学习阶段的理解略显粗浅，但基本是我自己的深切理解。<br>
<br> ]]></description>
		<eb:creationDate>2008-11-06 14:29:46</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ Fs2you与IIS的和睦相处(关于抢占80断口的问题) ]]></title>
		<link>http://blog.tom.com/czb86/article/4311.html</link>
		<description><![CDATA[ 　　最近IIS总是无法启动，显示“发生意外错误0x8ffe2740”，后来用Fport扫了下，发现是80端口被peer.exe这个进程占用了。她是Fs2you网络硬盘下载软件的一个进程，开机会自动运行。（因为长期使用Fs2you免费网盘共享些资料的，觉得速度和稳定性也还算不错。）<br>
<br>
&nbsp;&nbsp; 为了两者和谐共存，提供以下两种办法：<br>
　　1、第一次开机在进程中找到peer.exe，结束该进程，再启动IIS运行正常。注销后再次登陆系统，peer.exe就会退居二线使用4000端口而拱手让出80端口了。IIS可以正常运行；点击Fs2you下载，下载器亦可以正常运行。<br>
<br>
　　2、躲避。<br>
　　修改IIS TCP端口为其他端口，见下图：<br>
<div style="text-align: center;"><a href="http://images.blog.tom.com/newimg/469/598/2008/0614/1213407371.jpeg" target="_blank"><img src="http://images.blog.tom.com/newimg/469/598/2008/0614/1213407371.jpeg"></a><br></div>
<br>
　　比如改成8080，然后重新启动IIS，地址栏输全“http://127.0.0.1:8080/”，就可以正常浏览了。<span style="color: rgb(255, 1, 2);">注意</span>：光输入“127.0.0.1:8080”是不行的。<br>
<br>
　　网上有评论Fs2you是流氓软件的，但是我个人觉得这个软件还是相当不错的，只是首次启动就占用用80端口这一点有些不讲道理...仅此而已<br>
<br>
&nbsp;&nbsp; 还有软件名称叫Grid Service，从名称来看是网格服务，不知是否真的实现网格计算，还有待学习深究...<br> ]]></description>
		<eb:creationDate>2008-06-14 09:43:03</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ [ 转 载 / 受 益 匪 浅 ] V C 识 人 术 ]]></title>
		<link>http://blog.tom.com/czb86/article/3975.html</link>
		<description><![CDATA[ <p>　　有人说，VC选择创业企业就像是选美，1000个项目，能最终获得融资的不超过10家。VC如何选择项目？除了商业模式，所有的VC都承认，人是最重要的因素，对创业者、创业团队的判断几乎可以决定投资的成败。VC不仅是投资家，更是人才官。</p>
<p>　　无论是带有戏剧色彩的5分钟搞定VC，还是二见钟情，或者被追踪一年以上的企业，其创业者必在融资前已经痛下苦功。对于VC而言，在创业者成功之前，看到他的潜质，放心他的未来，何尝不是一项修炼？李彦宏、马云、江南春……，VC成就了一代俊才，同时也获得了丰厚的回报。</p>
<p>　　VC充当着人才官的重要角色，慧眼识才俊，VC可以助力创业者，改变一个企业的命运，进而可能影响社会的发展；而一旦看人失误，损失的是真金白银。因此，这样的人才官角色与人力资源总监相比较而言，责任更为重大。后者还有机会在试用期内换人，进行补救。而前者几乎没有回头路，识人失误就必须付出代价。一旦押对人，人是最具有创造性的，VC因此创造的价值也是惊人的。</p>
<p>　　人无完人，选什么样的人算是对的？诚信的品质，漂亮的履历，曾经成功的经验，都是重要的，而善于调整、学习的能力更是重要的，因为市场总在变化之中。因为没有完人，一个好汉需要三个帮，除了创业者自身的水准和能力外，他的领导魅力、团队组建能力、留住人才的胸襟，都是VC所要考察的。当然，不可否认，VC和创业者之间的化学反应亦是微妙的，如同谈恋爱，一旦联姻，需要一起走过很长一段路，有彩虹，也有风雨，有信任和默契才能有合作，于是在VC物色中意的创业者的同时，创业者们也开始明白配比度的重要性：寻找适合自己风格的VC，名气不是唯一指标。</p>
<p>　　<strong>VC“选美”</strong></p>
<p>　　有人统计过，VC选择创业企业就像是选美。打比方说，如果一家VC一年内收到1000份商业计划书，那么，约你见面的大概只有200到300个，而最后真正胜出获得投资的不到10家。其中，获得投资的企业还可能中途死掉。</p>
<p>　　按照这个数据，那些可以胜出的“花儿们”实在是凤毛麟角。因此，无论是带有戏剧色彩的5分钟搞定VC，还是二见钟情，或者被追踪一年以上，不能否认，那些可以被阅人无数的VC看中的创业者，定有过人之处。商业天分、创业激情、优秀的沟通能力、努力勤奋、积累数年的行业经验，诚信、耐高压、胸襟宽阔、具有弹性善于调整等等。也许人们只看到他们融到资时的幸运，上市后的风光，然而，对于他们背后巨大的付出鲜有留意。可以想见，当初马云见孙正义，李彦宏见VC，何尝不是如履薄冰？</p>
<p>　　VC也是人。在马云、李彦宏四处寻找投资者的时候，总有人不放心，他们真的可以成功吗？在创业者成功之前，能够看到他的潜质，放心他的未来，对于VC而言，何尝不是一项修炼？</p>
<p>　　伴随着创业企业的功成名就，VC也赚个钵盈盆满。于是，在胜者为王的商业时代，投资界也有了各种最佳创投榜、最佳新进机构榜。也许，我们可以听听知名VC们的“阅人”心得，重新审视一下融资“幸运儿”背后的努力，于是，或许我们不会再把诸如融资、上市之类的事件视为一种运气。</p>
<p>　　<strong>创业者潜质</strong></p>
<p>　　关于创业者，不论用VC的眼光，还是创业企业CEO们的自述，我们可以总结出创业者大多具备的几大特质：</p>
<p>　　<strong>激情</strong></p>
<p>　　李彦宏表面看很内敛，但我感觉他是很有激情的，他能放弃在美国那么高的薪水，离开自己在美国的小孩和太太回到北京，他心中的激情是可以想见的。(红杉资本张帆)</p>
<p>　　创业者最重要的是他要有理想，能够在其行业里实现自己的理想，打造一个所谓百年老店。如果仅仅是想赚钱的话，那我相信即使你找到风险投资，最终也很难做成一个大企业。(红杉资本沈南鹏)</p>
<p>　　<strong>沟通</strong></p>
<p>　　项目制作人要能够用简短的语言说清楚自己的项目。(DCM林欣禾)</p>
<p>　　<strong>努力</strong></p>
<p>　　每个人在从事一项事业时，特别是作为创业者，需要付出百倍的努力。(康盛世纪CEO戴志康)</p>
<p>　　对创业者而言，最大的挑战不是想法，而是踏踏实实做事。(PCPOP首席执行官李想)</p>
<p>　　<strong>本土化</strong></p>
<p>　　我不认为海归比本土创业者具有更大的优势，我们只投回来3～4年以上，在这边吃过亏，真正做过一段事的海归。他们沟通得容易但不一定理解他自己做的事情，因为他在中国的市场还没有真正吃过亏，中国的发展现在太快了，哪怕离开一年两年，等于变成半个老外，很多事情都不一样了。</p>
<p>　　我们说的是只投本土团队，我希望创业者、新公司的主导者，刚开始的时候是本土团队，我们投资了他们，在中国一起发展，在适当的情况下，当公司规模起来，对公司的成长非常有利的。在这种情况下我们要融一个很大的一轮，在这种情况下，我们不排除去请一些海归去做CFO，去做市场总监，他们可以在创业者的领导下去跟海外的投资者打交道。(中经合张颖)</p>
<p>　　<strong>行业经验</strong></p>
<p>　　我的建议是，创业初期一定要熟悉这一行业，而且踏踏实实在这个行业干几年，知道有市场再去做。(非常在线CEO赵宁)</p>
<p>　　<strong>产品</strong></p>
<p>　　你做的东西是不是平台性的东西，很多人想到的东西是很好的主意但并不是一个平台性的产品，这种产品很容易被大的、有实力的公司超过。(DCM林欣禾)</p>
<p>　　<strong>反例</strong></p>
<p>　　投资项目最终遭受失败的共同特征，归纳为两个——“不准时”和“忽悠”。第一个特征是不准时，该说年底做完的事老是拖延很久；第二个特征是在忽悠别人的时候把自己也忽悠进去，讲得非常好，VC都相信投资，继续下走，然后走走把自己也蒙在里面。(IDGVC过以宏)</p>
<p>　　<strong>团队组建</strong></p>
<p>　　几乎所有的VC都承认，创业团队十分重要。关于团队建设，多数涉及到团队领导者的团队意识、创业伙伴之间的信任、默契和是否具备成熟管理经验等。</p>
<p>　　<strong>找高手</strong></p>
<p>　　百度的创始人之一李彦宏的性格跟搜索引擎的发展很匹配。他一直在滔滔不绝的不是自己如何厉害，而是讲怎么去找比自己强的技术人员和管理人员，怎样组建最好的团队。(红杉资本张帆)</p>
<p>　　<strong>忌分家</strong></p>
<p>　　从VC来看，能把这个饼做很大，不是很在乎我在饼里我占的这一块有多大，所以我们也就是说，这个团队不能够做到几天以后，看到一些成功，我干脆再分家，同样做同样的事，再去竞争。这个例子我看到过很多，谁也做不大。我希望看到的一个团队是希望有一个精神，一种团队合作的精神，我们的目的就是要把这个做成很大，在纳斯达克上市也好，40亿美元也好，400亿美元也好。(北极光邓锋)</p>
<p>　　<strong>利益分配</strong></p>
<p>　　在跟别人合伙时，彼此之间却没有建立默契和信任的关系，而是因为大家想做一件事情走到了一起。在这种情况下，他们会遇到很多风险，如项目完成后，可能会产生利益分成不当问题。(康盛世纪CEO戴志康)</p>
<p>　　<strong>管理经验</strong></p>
<p>　　华登国际在中国遇到的挑战中，很多管理团队没有成熟经验是其中之一。对此，我们必须非常耐心。希望华登国际能帮助被投资企业领导者成为更成功的企业家，有更好的管理团队，更透明，更符合国际标准，这是我们和他们共事的目的。(华登国际陈立武)</p>
<p>　　<strong>VC识人术</strong></p>
<p>　　知名VC们如何在每年上千名的创业者中发现“美女”呢？这似乎也没有一定之规，不同风格的VC各有招数，八仙过海。</p>
<p>　　<strong>沟通</strong></p>
<p>　　我觉得做投资更适合我。这不仅仅是我的背景和经历，更多的是做投资是跟人打交道。而做制造业，或者做某个产品销售，必须要和公众去打交道，我跟个体的人打交道相对来说更加适合，我能够很快地跟人建立起很好的信任，这很重要。投资重要的就是和创业者沟通。(联想投资朱立南)</p>
<p>　　<strong>直觉</strong></p>
<p>　　有些行业，往往看到投资的结果需要一段很长的时间，所以，作判断时往往带有非常强的主观性，比如我们对所投资企业的创始人、管理团队的人品、能力，非常大的程度是一个主观的判断，靠直觉。</p>
<p>　　为什么投资，有很多的商学院可以教你很多的东西，但是，这里出来的学生并不是每一个都能成为好的投资家。很多好的知识，是很难从课堂上教出来的。做学问做到高端的时候，只能靠天分去悟。可以说做投资人，也要靠天分去悟。我想如果谁能够把这说出来、变成一本书的话，一定是商学院里最受欢迎的教材。(软银赛富阎焱)</p>
<p>　　<strong>谨慎</strong></p>
<p>　　总的来说，风险投资者要乐观、有激情，否则你怎么会面对一个人、一纸计划书就把钱投出去？但同时更要非常谨慎，你决定投每个项目的那一刻，都要对这个项目非常非常满意，有丝毫的怀疑就不要去投。(红帆资本沈南鹏)</p>
<p>　　<strong>创业者VS商业模式</strong></p>
<p>　　投资失败有99%以上都是因为人的问题，而不是因为商业模式等其他问题造成的。(软银赛富阎焱)</p>
<p>　　我们最看重团队，因为产品可以变，但是卖东西的人不能变。(IDGVC熊晓鸽）<br>
&nbsp;<br></p> ]]></description>
		<eb:creationDate>2007-12-18 19:05:12</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ MKV视频的封装和提取 ]]></title>
		<link>http://blog.tom.com/czb86/article/3949.html</link>
		<description><![CDATA[ <p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　关于MKV的制作和提取网络中已经有了一些教程，但新版本的制作工具增加了一些新功能。</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　此外，目前的教程在讲解MKV的提取时大多采用的是DOS模式下的命令行方法，比较麻烦，其实可以利用GUI的图形界面进行操作更得心应手。</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　下面分别介绍几种常用的MKV的制作和提取方法：</font></p>
<p><b><font color="#FF0000"><font style="FONT-SIZE: 14px" face="Arial" size="3">一、使用mkvtoolnix和mkvextract进行MKV的制作和提取：</font></font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">软件下载</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">mkvtoolnix：</font><a href="http://www.bunkus.org/videotools/mkvtoolnix/downloads.html" target="_blank"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">http://www.bunkus.org/videotools/mkvtoolnix/downloads.html</font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">mkvextract：</font><a href="http://www.ogg.cn/software/view-software-212.html" target="_blank"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">http://www.ogg.cn/software/view-software-212.html</font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">相关网页：</font><a href="http://www.matroska.info/" target="_blank"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">http://www.matroska.info/</font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">先安装mkvtoolnix，然后把mkvextract压缩包中的文件拷贝到mkvtoolnix安装目录下</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2"><b>1、MKV的制作：</b></font></p>
<p><font color="#000000"><font style="FONT-SIZE: 14px" face="Arial" size="2"><font color="#C7C7C7">运行mkvmerge GUI，导入需要封装的视频、音频和字幕文件，如下图：</font></font></font></p>
<p><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717295481533.jpg"></p>
<p><b><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">说明如下：</font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　1、目前mkvtoolnix支持大部分的视频、音频和字幕格式的封装，但部分格式并不支持，比如asf、wmv等格式，需要其它工具的辅助才能进行MKV的封装；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　2、新版的mkvtoolnix增加了append追加功能，可以追加视频、音频和字幕，但必须保证格式一致才可以，比如追加rmvb视频，就必须保证音频编码格式和分辨率都一致才可以追加；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　3、点击Tracks中的相应项目，然后在Track options中进行设置。对于视频、音频和图形字幕一般可以不设置，默认即可；对于文本字幕需要设置一下该字幕在菜单中的语言显示，以方便播放时进行识别和选择；注意字幕语言如果是中文，language选择chi(chinese)，而不要选择zho(chinese)，因为选择后者，字幕菜单显示不了chinese字样，只显示undetermined（原因不明）；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　4、如果字幕或音频有声音延迟，可以在Delay中定义；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　5、Track name可以自定义菜单的显示内容，不过这个选项好像只对音频有效，对字幕无效，字幕名字还是要到language里面去指定；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　6、如果封装的文件比较大，可以进行分割，方法是切换到Global选卡，在split中指定文件分割的方式；另外这里还可以指定MKV的标题或章节的名称，也可以不填；</font></p>
<p><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717333016235.jpg"></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　　<font color="#C7C7C7">其它选项都可以不管，选择好保存路径后，按Start muxing就开始封装了，如下图：</font></font></p>
<p><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717341442351.jpg" target="_blank" name="ImgSpan"><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="按此在新窗口浏览图片" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717341442351.jpg" border="0"></font></a></p>
<p><b><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">2、MKV章节段落的制作：</font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　这个方法常用于音乐MKV的制作，首先编辑一个文本文件，如film.txt，内容如下：</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">CHAPTER01=00:00:20.000<br>
CHAPTER01NAME=第一段<br>
CHAPTER02=00:00:50.000<br>
CHAPTER02NAME=第二段<br>
CHAPTER03=00:30:00.000<br>
CHAPTER03NAME=第三段<br>
CHAPTER04=01:00:00.000<br>
CHAPTER04NAME=第四段</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">CHAPTER01-CHAPTER04及CHAPTER01NAME-CHAPTER04NAME為保留字；<br>
CHAPTER01= 后面输入第一个章节的起始时间；<br>
CHAPTER01NAME= 后面输入第一个章节的名称；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">然后保存。</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　有些文章说这里要选择“另存为”保存为编码格式为UFT-8的文本文件，但我的测试结果表明哪种格式都无所谓，都可以实现；如果实在不行再换个编码格式试试；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><font color="#C7C7C7">打开mkvmerge GUI，先导入MKV文件，然后切换倒Global选卡，在Chapter里面选择刚刚保存的film.txt文件，如下图：</font></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717383745544.jpg"></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　　<font color="#C7C7C7">然后点击Start muxing开始封装即可，效果如下图：</font><br></font><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717394936250.jpg"><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717394936250.jpg" target="_blank" name="ImgSpan"></a></p>
<p><b><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">3、MKV视频、音频和字幕的提取：</font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><font color="#C7C7C7">　　运行MKVextractGUI，导入MKV文件，选择需要提取的视频、音频以及字幕等，指定好保存路径（最好不要指定包含中文名称的路径，感觉有时候会出问题，不过大部分情况下问题不大），也可以不指定保存路径，默认为MKV文件所在的目录:</font><br></font><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717433069095.jpg" target="_blank" name="ImgSpan"></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054717433069095.jpg"></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　选择好后，按Extract开始提取（怎么样，比dos下输入命令简单多了吧）；</font></p>
<p><font size="2"><font style="FONT-SIZE: 16px"><font style="FONT-SIZE: 14px"><font face="Arial"><font color="#C7C7C7"><b>　　注意：</b>提取出来的视频和音频是分离的，要根据不同的格式采取不同的方法进行合并；比如视频格式是avi格式的，可以用Virtualdub进行合并；如果视频格式是real格式的，可以参考下文进行合并：</font></font></font></font><a href="http://sxworkroom.blogchina.com/1379654.html"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7">http://sxworkroom.blogchina.com/1379654.html</font></a></font><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><font color="#C7C7C7">　　这里需要注意的是：MKVextractGUI对字幕的提取是有bug的，提取出来的字幕是乱码，尤其对ssa特效字幕和idx+sub图形字幕来讲，信息量丢失严重，基本没法用。对于srt字幕虽然有乱码，但经过简单处理倒还是可以用。这里讲一下对提取出来的srt字幕的处理，提取出来的srt字幕如下图所示：</font><br></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054815161499253.jpg"></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　把其中的所有字幕内容复制到写字板或者word中就正常了，因为其中的乱码其实只是回车符而已，记事本不识别这个符号直接显示了出来，但写字板和word就直接把回车符变成了回车，显示就正常了。把显示正常的字幕另存为srt文本文件就可以了；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　因此，用MKVextractGUI只能有效提取出音频或者视频，对字幕的提取仍需改进；</font></p>
<p><b><font style="FONT-SIZE: 14px" face="Arial" color="#FF0000" size="3">二、用Virtualdub来制作MKV：</font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">软件下载地址：</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　英文原版：</font><a href="http://www.virtualdub.org/download" target="_blank"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">http://www.virtualdub.org/download</font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　汉化版：</font><a href="http://gd-http.skycn.net:8081/down/HB-VirtualDub1510-fxj.ZIP" target="_blank"><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">http://gd-http.skycn.net:8081/down/HB-VirtualDub1510-fxj.ZIP</font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">　　或者直接安装Gordian Knot安装包，里面包含了这个软件；</font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" size="2"><font color="#C7C7C7"><strong>注意：</strong>Virtualdub不支持real格式的视频，可以导入avi、vob等视频格式进行封装处理；</font></font></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><font color="#C7C7C7">　　首先导入视频文件，然后选择Streams下的stream list项，添加需要封装的音频和字幕，注意这里的字幕格式必须是UFT-8编码的srt格式的字幕（可以用记事本打开srt字幕，然后另存为UFT-8编码格式的srt文件即可）：<br></font></font><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471835058022.jpg" target="_blank" name="ImgSpan"><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img style="WIDTH: 524px" alt="按此在新窗口浏览图片" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471835058022.jpg" border="0"></font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">音频和字幕语言的显示设置可以点击comments进行设置，如下图：</font><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><br></font><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471891547295.jpg"><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471891547295.jpg" target="_blank" name="ImgSpan"></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　　<font color="#C7C7C7">如果音频和字幕有延迟，可以点击需要调整的音频或者字幕，点右键选择Interleaving来进行调整；</font></font><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">在文件菜单选择“save as”，保存类型选择mkv格式，Video mode选择“Full processing mode”：</font></p>
<p><img alt="" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718161975075.jpg"><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718161975075.jpg" target="_blank" name="ImgSpan"></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　　<font color="#C7C7C7">点击Change弹出编码选择窗口，选择合适的编码格式，这里选择的是XVID编码，configure中选single pass，设置按照默认即可：</font></font><font style="FONT-SIZE: 14px" face="Arial" size="2"><br></font><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718181241515.jpg" target="_blank" name="ImgSpan"><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img style="WIDTH: 524px" alt="按此在新窗口浏览图片" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718181241515.jpg" border="0"></font></a><br>
<font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><br></font><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718183458939.jpg" target="_blank" name="ImgSpan"><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="按此在新窗口浏览图片" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/20054718183458939.jpg" border="0"></font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　　<font color="#C7C7C7">然后点击“保存”，进行封装，如下图：</font></font><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><br></font><a id="ImgSpan" href="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471820556550.jpg" target="_blank" name="ImgSpan"><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2"><img alt="按此在新窗口浏览图片" src="http://www.sxworkroom.cn/image/ycwj/MKV_zhizuo/2005471820556550.jpg" border="0"></font></a></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　<font color="#C7C7C7">　提取时可以用MKVextractGUI提取，也可以在Virtualdub中进行提取，具体方法就是点击Streams菜单下的“stream list”，选择相应的提取项，点击Demux即可：</font></font></p>
<p><b><font style="FONT-SIZE: 14px" face="Arial" color="#FF0000" size="3">三、其它MKV的制作方法：</font></b></p>
<p><font style="FONT-SIZE: 14px" face="Arial" color="#000000" size="2">　<font color="#C7C7C7">　AVIMux_GUI也可以用来制作MKV，但我没有这样用过，大家自己实践一下；</font></font><font style="FONT-SIZE: 14px" face="Arial" color="#C7C7C7" size="2">至于asf和wmv格式视频文件的封装可以用asf2mkv recorder来辅助完成，不过这个软件我也没有用过，这里提一下，抛砖引玉，感兴趣的朋友自己研究吧。</font></p> ]]></description>
		<eb:creationDate>2007-12-09 13:37:10</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ [Win Server 2003 负载均衡]Windows环境下的负载均衡 ]]></title>
		<link>http://blog.tom.com/czb86/article/220.html</link>
		<description><![CDATA[ <div style="CLEAR: both; FLOAT: right"></div><BR>　　负载均衡是由多台服务器以对称的方式组成一个服务器集合，每台服务器都具有等价的地位，都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术，将外部发送来的请求均匀分配到对称结构中的某一台服务器上，而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵，籍此提供快速获取重要数据，解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。<BR>　　网络负载均衡的优点<BR>　　第一，网络负载均衡能将传入的请求传播到多达32台服务器上，即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载均衡技术保证即使是在负载很重的情况下，服务器也能做出快速响应;<BR>　　第二，网络负载均衡对外只需提供一个IP地址(或域名);<BR>　　第三，当网络负载均衡中的一台或几台服务器不可用时，服务不会中断。网络负载均衡自动检测到服务器不可用时，能够迅速在剩余的服务器中重新指派客户机通讯。这项保护措施能够帮助你为关键的业务程序提供不中断的服务，并可以根据网络访问量的增加来相应地增加网络负载均衡服务器的数量;<BR>　　第四，网络负载均衡可在普通的计算机上实现。<BR>　　网络负载均衡的实现过程<BR>　　在Windows Server 2003中，网络负载均衡的应用程序包括Internet信息服务(IIS)、ISA Server 2000防火墙与代理服务器、VPN虚拟专用网、终端服务器、Windows Media Services(Windows视频点播、视频广播)等服务。同时，网络负载均衡有助于改善服务器的性能和可伸缩性，以满足不断增长的基于 Internet客户端的需求。<BR>　　网络负载均衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集，同时保留每台计算机各自的名称。下面，我们将在两台安装Windows Server 2003的普通计算机上，介绍网络负载均衡的实现及应用。<BR>　　这两台计算机中，一台计算机名称为A，IP地址为192.168.0.7;另一台名为B，IP地址为192.168.0.8。规划网络负载均衡专用虚拟IP地址为192.168.0.9。当正式应用时，客户机只需要使用IP地址192.168.0.9来访问服务器，网络服务均衡会根据每台服务器的负载情况自动选择192.168.0.7或者192.168.0.8对外提供服务。具体实现过程如下：<BR>　　在实现网络负载均衡的每一台计算机上，只能安装TCP/IP协议，不要安装任何其他的协议(如IPX协议或者NetBEUI协议)，这可以从“网络连接属性”中查看。<BR>　　第一步，分别以管理员身份登录A机和B机，打开两台机的“本地连接”属性界面，勾选“此连接使用下列项目”中的“负载均衡”项并进入“属性”对话框，将IP地址都设为192.168.0.9(即负载均衡专用IP)，将子网掩码设置为255.255.255.0;<BR>　　第二步，分别进入A机和B机的“Internet协议(TCP/IP)”属性设置界面，点击“高级”按钮后，在弹出的“高级TCP/IP设置”界面中添加IP地址192.168.0.9和子网掩码设置为255.255.255.0。<BR>　　第三步，退出两台计算机的“本地连接属性”窗口，耐心等一会儿让系统完成设置。<div style="CLEAR: both; FLOAT: left"></div><BR>　　以后，如果这两台服务器不能满足需求，可以按以上步骤添加第三台、第四台计算机到网络负载均衡系统中以满足要求。<BR>　　用IIS服务验证网络负载均衡<BR>　　网络负载均衡配置好后，为了实现某项具体的服务，需要在网络负载均衡的计算机上安装相应的服务。例如，为了实现IIS网站的负载均衡，需要在相应的网络负载均衡服务器上安装IIS服务。为了让每个用户在通过网络负载均衡访问到不同的计算机时，能够访问到一致的数据，需要在网络负载均衡的每台计算机上保持数据的一致性。举例来说，实现了两个节点的IIS的网络负载均衡，为了保证两个网站内容的一致性，除了这两个IIS服务器的配置相同外，相应的网站数据必须一致。<BR>　　为了检验网络负载均衡，我们可以通过IIS来进行验证，其他的一些应用如终端服务、Windows Media服务与IIS的应用与之相类似。在其他计算机上的IE浏览器中键入192.168.0.9，根据网络的负载，网络负载均衡会自动转发到A机或B 机。为了验证效果，你可以在浏览的时候，拔掉第一台计算机的网线或拔掉第二台机器的网线，将会发现浏览到的将是不同内容。当然，我们在测试的时候，为了验证网络负载均衡的效果，把两个网站设置成不一致的内容，而在正式应用的时候，网络负载均衡群集的每个节点计算机的内容将是一致的，这样不管使用哪一个节点响应，都能保证访问的内容是一致的。<BR>　　负载均衡在校园网中的应用<BR>　　校园网的应用除了用于教学、科研、管理、图书情报资料检索外，还承担任着校内外信息交流、电子邮件、公告、新闻发布，以及各种公共网络口的访问等任务。由于在网络上传输的信息不只是数字、文字和图形，还会随应用水平的提高，逐步增加语音、活动图像及视频图像等高带宽的应用。因此，网络的建设，尤其是主干网要求高带宽与高速度，在校园网的服务器中应用负载均衡技术不失为一种廉价的解决方案。<BR>&nbsp; ]]></description>
		<eb:creationDate>2007-08-29 18:00:32</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ 刚看了美国招聘程序员的公开报酬，又伤心了 ]]></title>
		<link>http://blog.tom.com/czb86/article/218.html</link>
		<description><![CDATA[ <div style="CLEAR: both; FLOAT: right"></div>
&nbsp;<br>
&nbsp;<br>
做IT的同志们 ！<br>
<br>
来看看吧...<br>
<br>
<br>
<span style="BACKGROUND-COLOR: rgb(255,255,255)"><span style="FONT-WEIGHT: bold">Web Developer</span>：</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="COLOR: rgb(204,51,51)" size="4"><font size="5">J</font>a<font size="5">v</font><font size="2">a</font><font size="5">S</font>cr<font size="5">i</font>pt</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="COLOR: rgb(204,255,255)" size="2">D</font> <font style="COLOR: rgb(204,255,255)" size="5">H</font> <font style="COLOR: rgb(204,255,255)" size="3">T</font> <span style="COLOR: rgb(204,255,255)">M</span> <font style="COLOR: rgb(204,255,255)" size="5">L</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="COLOR: rgb(153,204,0)" size="5">A</font> <span style="COLOR: rgb(153,204,0)">S P</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="COLOR: rgb(255,204,0)" size="4">A</font> <font style="COLOR: rgb(255,204,0)" size="2">J</font> <font style="COLOR: rgb(255,204,0)" size="5">A</font> <font style="COLOR: rgb(255,204,0)" size="4">X<br>
<br></font><font style="FONT-FAMILY: Comic Sans MS" size="4"><span style="FONT-WEIGHT: bold">Salary:<br>
&nbsp;&nbsp;</span></font> <font size="4">$</font> <font size="5"><span style="COLOR: rgb(255,0,0)">75</span></font><span style="COLOR: rgb(255,255,0)">K</span> - <font size="4">$</font> <font size="5"><span style="COLOR: rgb(255,0,0)">100</span></font> <span style="COLOR: rgb(255,255,0)">K</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
<a href="http://hotjobs.yahoo.com/jobseeker/jobsearch/job_detail.html;_ylt=Ak.4sL9iWLWouSzRrkE9hrH6Q6IX?job_id=JOYIN4RG8KC">查看详情</a> ]]></description>
		<eb:creationDate>2007-08-20 02:04:39</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ &quot;操作必须使用一个可更新查询&quot; ]]></title>
		<link>http://blog.tom.com/czb86/article/216.html</link>
		<description><![CDATA[ <div style="CLEAR: both; FLOAT: right"></div>&nbsp;&nbsp;&nbsp;&nbsp;打开database目录，选中数据库，弹右键，属性，安全，添加一个everyone用户，并赋予它有写入权限便可解决。 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;如果&gt;右键&gt;属性后没有看到“安全”选项，请打开开始--设置--控制面板--管理工具--本地安全策略，点击其中的本地策略--安全选项。找到其中的 网络访问 本地账户的共享和安全模式，点击属性，改为经典即可。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;如果打开本地安全策略就出来一个对话框说：“管理单元初始化失败。名称：组策略对象编辑器。CLSID:{8FCOB734-AOE1-11D1-A7D3-0000F87571E3}。 ”那么将Framedyn.dll文件从系统分区windowssystem32wbem目录下拷贝到windowssystem32目录下确实能解决问题。 ]]></description>
		<eb:creationDate>2007-06-06 12:57:03</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ [UNIX][LINUX]附录 UNIX 常用命令简单说明 ]]></title>
		<link>http://blog.tom.com/czb86/article/209.html</link>
		<description><![CDATA[ 附录 UNIX 常用命令简单说明<br /><div style="CLEAR: both; FLOAT: right"></div><br />UNIX 命令大多数可用联机帮助手册 man 获得帮助，下面是常用命令及简单说明，可供用户快速查找使用。 <br /><br /><br />命令 功能简述<ul>    <li>acctcom 等于进程记帐文件 </li>    <li>accton 启动或中止记帐进程 </li>    <li>adb 汇编语言调试工具 </li>    <li>admin 创建和管理SCCS文件 </li>    <li>ar 档案文件和库文件管理程序 </li>    <li>as 汇编器 </li>    <li>asa 回车控制 </li>    <li>at 在指定时间执行程序 </li>    <li>awk 模式搜索和处理语言 </li>    <li>banner 制作标题 </li>    <li>basename 生成文件基本名(无前。后缀) </li>    <li>batch 命令的延迟执行 </li>    <li>bc 计算器 </li>    <li>bdiff 大型文件比较 </li>    <li>bfs 大文件搜索 </li>    <li>break 退出循环 </li>    <li>cal 打印日历表 </li>    <li>calendar 打印日历表 </li>    <li>cancel 取消打印任务 </li>    <li>case 分支语句 </li>    <li>cb C语言整理程序 </li>    <li>cd 改变当前目录 </li>    <li>cc C语言编译器 </li>    <li>cdc SCCS实用程序 </li>    <li>cflow 生成C语言流程图 </li>    <li>checkeq 数学公式排版命令 </li>    <li>chgrp 改变文件组 </li>    <li>chmod 改变文件存取模式 </li>    <li>chown 改变文件主 </li>    <li>chroot 改变根目录 </li>    <li>cksum 显示校验和 </li>    <li>clri 清除指定的I节点 </li>    <li>cmp 文件比较 </li>    <li>col 过滤反向换行 </li>    <li>comb SCCS实用程序 </li>    <li>comm 显示两个排序文件的公共行 </li>    <li>command 执行简单命令 </li>    <li>continue 进入下一循环 </li>    <li>cp 复制文件 </li>    <li>cpio 复制文件档案 </li>    <li>cpp C语言预处理程序 </li>    <li>crash 检查系统内存映象 </li>    <li>create 建立临时文件 </li>    <li>cref 生成交叉引用表 </li>    <li>cron 在指定时间执行一组命令 </li>    <li>crontab 为命令cron 准备crontab文件 </li>    <li>crypt 加密/解密 </li>    <li>csplit 将一个文件分解 </li>    <li>ct 远程终端注册 </li>    <li>ctags 创建供vi使用的标识符 </li>    <li>cu 呼叫另一UNIX系统 </li>    <li>cut 断开一文件中所选择的字段 </li>    <li>cxref 生成C程序交叉访问表 </li>    <li><center></center></li>    <li>date 打印和设置时间 </li>    <li>dc 桌面计算器 </li>    <li>dd 转换和复制文件 </li>    <li>delta SCCS实用程序 </li>    <li>deroff 去掉排版格式 </li>    <li>devnm 标识设备名 </li>    <li>df 显示可用磁盘空间 </li>    <li>diff 显示两个文件的差异 </li>    <li>diff3 显示三个文件的差异 </li>    <li>dircmp 目录比较 </li>    <li>dis 反汇编程序 </li>    <li>du 显示对磁盘的占用情况 </li>    <li>dump 对指定文件备份 </li>    <li>echo 回显指定参数 </li>    <li>ed 行编辑器 </li>    <li>edit 文本编辑器 </li>    <li>egrep 在文件中查找指定模式 </li>    <li>env 设置命令执行环境 </li>    <li>eqn 数学公式排版命令 </li>    <li>eval 执行指定命令 </li>    <li>ex 行编辑器 </li>    <li>exec 执行指定命令 </li>    <li>exit 进程中止 </li>    <li>expand 使表格占满行宽 </li>    <li>export 将变量传递给子程序 </li>    <li>expr 计算表达式值 </li>    <li>factor 因式分解 </li>    <li>false 返回FALSE </li>    <li>fgrep 在文件中查找指定模式 </li>    <li>file 确定文件类型 </li>    <li>find 查找符号条件的文件 </li>    <li>fmt 安排简单的文本格式 </li>    <li>fold 折行 </li>    <li>for 循环语句 </li>    <li>fsck 文件系统检查和修复 </li>    <li>fsdb 文件系统调试程序 </li>    <li>fumount 强制性拆协指定资源 </li>    <li>function 函数说明 </li>    <li>fuser 列出使用文件的进程 </li>    <li>fwtmp 产生记帐记录 </li>    <li>get SCCS实用程序 </li>    <li>getconf 查找配置参数 </li>    <li>getopt 获得命令中的选择项 </li>    <li>getopts 获得命令中的选择项 </li>    <li>getty 设置终端类型、模式、行律等 </li>    <li>grep 在文件中查找指定模式 </li>    <li>head 打印文件的头若干行 </li>    <li>hexdump 按十六进制转储文件 </li>    <li>id 显示用户号 </li>    <li>if 条件语句 </li>    <li>init UNIX 初启进程 </li>    <li>install 安装一个文件到文件系统 </li>    <li>ipcrm 删除IPC队列 </li>    <li>ipcs 显示IPC状态 </li>    <li>join 连接两个文件（关系操作〕 </li>    <li>kill 中止指定进程 </li>    <li>killall 中止所有活动进程 </li>    <li>labelit 给文件系统提供标号 </li>    <li>ld 目标文件链接编辑器 </li>    <li>lex 词法分析程序 </li>    <li>line 读一行 </li>    <li>link 连接文件 </li>    <li>lint C程序检查程序 </li>    <li>ln 链接文件 </li>    <li>local 建立局部变量 </li>    <li>logger 显示注册信息 </li>    <li>login 注册 </li>    <li>logname 获取注册名 </li>    <li>look 在排序文件中查找某行 </li>    <li>lorder 查找目标库的次序关系 </li>    <li>lp 打印文件 </li>    <li>lpr 打印文件 </li>    <li>lpstat 显示打印队列状态 </li>    <li>ls 目录列表 </li>    <li>mail 发送或接收电子邮件 </li>    <li>mailx 发送、接收或处理电子邮件 </li>    <li>make 执行有选择的编译 </li>    <li>makekey 生成加密码 </li>    <li>man 显示命令用法 </li>    <li>mesg 接收或取消对话方式 </li>    <li>mkdir 建立目录 </li>    <li>mkfifo 建立FIFO文件 </li>    <li>mkfs 建立文件系统 </li>    <li>mknod 建立文件系统的I节点 </li>    <li>mount 安装文件系统 </li>    <li>mv 移动文件 </li>    <li>mvdir 移动目录 </li>    <li>ncheck 按节点号生成节点名清单 </li>    <li>neqn 数学公式排版命令 </li>    <li>newgrp 把用户加入到新组 </li>    <li>news 打印消息 </li>    <li>nice 改变命令执行优先级 </li>    <li>nl 给文件加行号 </li>    <li>nm 显示目标文件符号表 </li>    <li>nohup 忽略挂起或退出执行命令 </li>    <li>nroff 文本文件排版 </li>    <li><center></center></li>    <li>od 按八进制转储文件 </li>    <li>pack 压缩文件 </li>    <li>passwd 改变口令 </li>    <li>paste 文件合并 </li>    <li>pax 可移植档案管理程序 </li>    <li>pcat 显示压缩格式文件 </li>    <li>pg 分屏显示 </li>    <li>pr 按打印格式显示文件 </li>    <li>pstat 报告系统信息 </li>    <li>pwck 口令文件校验程序 </li>    <li>pwd 显示当前工作目录 </li>    <li>quot 检查文件系统所有权 </li>    <li>ratfor 转换成标准FORTRANC程序 </li>    <li>read 从标准输入读一行 </li>    <li>readonly 标记变量为只读 </li>    <li>red 文本编辑器 </li>    <li>regcmp 正规表达式编辑 </li>    <li>restor 文件系统恢复程序 </li>    <li>restore 文件系统恢复程序 </li>    <li>return 返回语句 </li>    <li>rev 颠倒文件中每行字符次序 </li>    <li>rm 删除文件 </li>    <li>rmdel SCCS使用程序 </li>    <li>rmdir 删除目录 </li>    <li>rsh(net) 远程SHELL </li>    <li>rsh(sec) 受限SHELL </li>    <li>runacct 运行日常记帐程序 </li>    <li>sact SCCS实用程序 </li>    <li>sag 打印系统活动图 </li>    <li>sar 报告系统活动 </li>    <li>sccsdiff SCCS实用程序 </li>    <li>sdb 符号调试器 </li>    <li>sdiff 并列显示两个文件的差别 </li>    <li>sed 流编辑器 </li>    <li>sendto 发送邮件 </li>    <li>set 设置选项或参数 </li>    <li>setmnt 建立文件系统安装表 </li>    <li>sh SHELL解释器 </li>    <li>shift 命令行参数移位 </li>    <li>shl SHELL层（layer)管理程序 </li>    <li>shutdown 关机 </li>    <li>size 显示目标文件长度 </li>    <li>sleep 挂起进程一段时间 </li>    <li>sort 文件排序和合并 </li>    <li>spell 拼写错误检查程序 </li>    <li>spellin 拼写错误检查 </li>    <li>spellout 拼写错误检查 </li>    <li>spline 按平滑曲线输出数据 </li>    <li>split 分解一个文件 </li>    <li>strings 在目标文件中寻找可打印字符 </li>    <li>strip 删除符号表 </li>    <li>stty 设置终端模式 </li>    <li>su 改变用户 </li>    <li>sum 显示文件校验和及块数 </li>    <li>sync 更新磁盘 </li>    <li>tabs 设置制表符 </li>    <li>tbl 表格排版 </li>    <li>tee 在管道上建立多通路 </li>    <li>tic 终端数据库编译程序 </li>    <li>time 打印执行命令所花时间 </li>    <li>tiemx 报告命令所花时间及活动 </li>    <li>touch 更新文件时间 </li>    <li>tput 恢复终端或查询数据库 </li>    <li>tr 转换字符 </li>    <li>trap 捕获信号 </li>    <li>troff 文本文件排版 </li>    <li>true 返回TRUE </li>    <li>tsort 拓扑排序 </li>    <li>tty 显示终端设备名 </li>    <li>umask 设置文件掩码 </li>    <li>umount 拆卸文件系统 </li>    <li>uname 显示系统名 </li>    <li>unget SCCS实用程序 </li>    <li>uniq 删除文件中重复行 </li>    <li>units 度量单位转换 </li>    <li>unlink 删除文件 </li>    <li>unpack 将压缩文件还原 </li>    <li>until 循环语句 </li>    <li>update 更新磁盘 </li>    <li>val SCCS实用程序 </li>    <li>vc SCCS实用程序 </li>    <li>vi 全屏幕编辑器 </li>    <li>volcopy 文件系统的文字拷贝 </li>    <li>wait 等待所有字进程结束 </li>    <li>while 循环语句 </li>    <li>who 显示谁在使用系统 </li>    <li>whodo 显示哪些用户在做什么 </li>    <li>write 和另一用户直接对话 </li>    <li>xargs 建立参数表并执行命令 </li>    <li>yacc 语法分析程序生成器 </li></ul> ]]></description>
		<eb:creationDate>2007-05-18 12:54:56</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
    <item>
		<title><![CDATA[ [UNIX][LINUX]第七章 数学计算命令 ]]></title>
		<link>http://blog.tom.com/czb86/article/206.html</link>
		<description><![CDATA[ <center></center><br /><br /> 第七章 数学计算命令<br />[语法]: bc [-c] [-l] [文件...] <br />[说明]: bc是一个交互式的高精度计算工具，采用类似于C语言的语法，能够从指定文件指定文件中读出命令执行，然后再进入交互式执行，事实上，bc是dc的预编译器，它自动激活dc，将语句经预编译后传递给dc，退出bc的命令是quit，bc中的ibase，obase，scale分别表示输入基数，输出基数，小数点右边的位数。<br /> <center></center><br /><ul>    <li>-c bc 只编译，而不将编译结果送dc，将其送到标准输出上 </li>    <li>-l 预定义一个数学函数库，可在bc中使用以下函数    <ul>        <li>s(x) sine </li>        <li>c(x) cosine </li>        <li>e(x) exponential </li>        <li>l(x) log </li>        <li>a(x) arctangent </li>        <li>j(n，x) Bessel </li>    </ul>    </li></ul><br /><center></center><br /><br />[例子]:<ul>    <li>bc -l 进入bc </li>    <li>scale=10 将小数位定为10位 </li>    <li>e(1) 计算e的小数点后10位 </li>    <li>quit 退出bc </li></ul><br /><center></center> ]]></description>
		<eb:creationDate>2007-05-18 12:49:54</eb:creationDate>
		<eb:modificationDate></eb:modificationDate>
    </item>
</channel>
</rss>