<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>idv2</title>
	<link>http://tech.idv2.com</link>
	<description>关注Web开发技术，关注Internet。</description>
	<pubDate>Sun, 28 Jun 2009 09:39:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<item>
		<title>用摄像头+VirtualDub录制视频</title>
		<link>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/</link>
		<comments>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 09:39:24 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[软件使用]]></category>
<category>multimedia</category><category>software</category><category>video</category><category>virtualdub</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>今天想用摄像头录一段视频，上网找视频录制的软件，发现好用的都是收费的。
没办法，想起VirtualDub也能录制视频，于是尝试了一下，发现它的效果还是很不错的。
而且是免费的哦！</p>
<p>以下演示的版本是Virtual 1.5.10，摄像头是罗技的QuickCam系列。</p>
<p>首先要设置好音频源。打开<strong>控制面板</strong>-&gt;<strong>声音和视频设备</strong>，选择<strong>音频</strong>选项卡。
如果摄像头的驱动已经装好，那么“录音”中的“默认设备”中应该有一项“USB Audio Device”，
选择该项，确定。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-01.png" alt="record-video-with-virtualdub-01.png" title="record-video-with-virtualdub-01.png" width="367" height="450" /></div>

<p>然后启动VirtualDub，选择菜单<strong>File</strong>-&gt;<strong>Capture AVI...</strong>，进入视频捕捉的界面。
此时即可看到摄像头的图像。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-02.jpg" alt="record-video-with-virtualdub-02.jpg" title="record-video-with-virtualdub-02.jpg" width="613" height="398" /></div>

<p>接下来，需要做一些设置：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>按P，打开视频预览，以便随时观察视频录制情况。</li>
<li>按F，选择视频录制的分辨率、颜色深度等。根据摄像头的功能及自己的需求设置即可。</li>
<li>按S，启动摄像头的设置对话框，在这里调节摄像头的亮度、对比度、快门速度、光圈、白平衡等参数，直到画质满足需要。</li>
<li>按Shift-C，选择视频的压缩方式。一般选择DivX即可。如果不压缩，录下来的AVI文件会有几十G之大。</li>
<li>按A，选择录音的音质。一般选择CD音质。</li>
<li>按V，打开声音显示，测试摄像头自带的麦克风是否好用。</li>
<li>按F2，选择将视频保存到哪里。</li></ul>
<p>OK，这样就全部设置好了。接下来按 F6 键开始录制，按 Esc或单击鼠标结束录制。
效果还不错吧？</p>
<p>唯一的一点遗憾就是，这样录下来的AVI中，音频是没有压缩的，需要用VirtualDub做后期处理，
将视频中的音频分离出来，选好压缩算法之后重新保存成AVI。</p>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>今天想用摄像头录一段视频，上网找视频录制的软件，发现好用的都是收费的。
没办法，想起VirtualDub也能录制视频，于是尝试了一下，发现它的效果还是很不错的。
而且是免费的哦！</p>
<p>以下演示的版本是Virtual 1.5.10，摄像头是罗技的QuickCam系列。</p>
<p>首先要设置好音频源。打开<strong>控制面板</strong>-&gt;<strong>声音和视频设备</strong>，选择<strong>音频</strong>选项卡。
如果摄像头的驱动已经装好，那么“录音”中的“默认设备”中应该有一项“USB Audio Device”，
选择该项，确定。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-01.png" alt="record-video-with-virtualdub-01.png" title="record-video-with-virtualdub-01.png" width="367" height="450" /></div>

<p>然后启动VirtualDub，选择菜单<strong>File</strong>-&gt;<strong>Capture AVI...</strong>，进入视频捕捉的界面。
此时即可看到摄像头的图像。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-02.jpg" alt="record-video-with-virtualdub-02.jpg" title="record-video-with-virtualdub-02.jpg" width="613" height="398" /></div>

<p>接下来，需要做一些设置：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>按P，打开视频预览，以便随时观察视频录制情况。</li>
<li>按F，选择视频录制的分辨率、颜色深度等。根据摄像头的功能及自己的需求设置即可。</li>
<li>按S，启动摄像头的设置对话框，在这里调节摄像头的亮度、对比度、快门速度、光圈、白平衡等参数，直到画质满足需要。</li>
<li>按Shift-C，选择视频的压缩方式。一般选择DivX即可。如果不压缩，录下来的AVI文件会有几十G之大。</li>
<li>按A，选择录音的音质。一般选择CD音质。</li>
<li>按V，打开声音显示，测试摄像头自带的麦克风是否好用。</li>
<li>按F2，选择将视频保存到哪里。</li></ul>
<p>OK，这样就全部设置好了。接下来按 F6 键开始录制，按 Esc或单击鼠标结束录制。
效果还不错吧？</p>
<p>唯一的一点遗憾就是，这样录下来的AVI中，音频是没有压缩的，需要用VirtualDub做后期处理，
将视频中的音频分离出来，选好压缩算法之后重新保存成AVI。</p>
<!-- end Pukiwiki generated code--><br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Java]查看Tocmat的运行状态</title>
		<link>http://tech.idv2.com/2009/06/24/tomcat-status/</link>
		<comments>http://tech.idv2.com/2009/06/24/tomcat-status/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 01:43:16 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[Web开发]]></category>
<category>java</category><category>jsp</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/06/24/tomcat-status/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>熟悉J2EE开发的人应该对此不屑一顾吧，俺是Java新手，没办法……做个笔记先。
Tomcat 5.5下测试通过。</p>
<p>首先要添加管理员用户。打开 conf/tomcat-users.xml，在其中加入这样一行：</p>
<pre>&lt;user username=&quot;manager&quot; password=&quot;password&quot; roles=&quot;standard,manager&quot;/&gt;</pre>
<p>然后重启Tomcat。</p>
<p>之后访问以下地址：</p>
<pre>http://localhost:8080/manager/status</pre>
<p>输入刚才设置好的管理员用户名和密码，就能看到服务器状态的页面。
其中几个比较重要的数值：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>Max threads: 150           最大线程数</li>
<li>Min spare threads: 25      最小空闲线程数</li>
<li>Max spare threads: 75      最大空闲线程数</li>
<li>Current thread count: 25   当前线程数</li>
<li>Current thread busy: 2     当前繁忙线程数</li></ul>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>熟悉J2EE开发的人应该对此不屑一顾吧，俺是Java新手，没办法……做个笔记先。
Tomcat 5.5下测试通过。</p>
<p>首先要添加管理员用户。打开 conf/tomcat-users.xml，在其中加入这样一行：</p>
<pre>&lt;user username=&quot;manager&quot; password=&quot;password&quot; roles=&quot;standard,manager&quot;/&gt;</pre>
<p>然后重启Tomcat。</p>
<p>之后访问以下地址：</p>
<pre>http://localhost:8080/manager/status</pre>
<p>输入刚才设置好的管理员用户名和密码，就能看到服务器状态的页面。
其中几个比较重要的数值：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>Max threads: 150           最大线程数</li>
<li>Min spare threads: 25      最小空闲线程数</li>
<li>Max spare threads: 75      最大空闲线程数</li>
<li>Current thread count: 25   当前线程数</li>
<li>Current thread busy: 2     当前繁忙线程数</li></ul>
<!-- end Pukiwiki generated code--><br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/06/24/tomcat-status/feed/</wfw:commentRss>
		</item>
		<item>
		<title>我为什么不要30多岁的人？</title>
		<link>http://tech.idv2.com/2009/05/25/why-dont-need-35s/</link>
		<comments>http://tech.idv2.com/2009/05/25/why-dont-need-35s/#comments</comments>
		<pubDate>Mon, 25 May 2009 15:57:23 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[管理]]></category>
<category>management</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/05/25/why-dont-need-35s/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>通常，HR在招聘时都会考虑到应聘者的年龄，超过35岁的人，应聘非管理职的一般的职位都会有很大的困难。
媒体通常会大肆渲染地说这叫“年龄歧视”，我只能说，毕竟记者们都不是管理者，不知道这里面的辛酸啊。</p>
<p>我并不是做HR的，但也面试过几个30多岁以上的人，也用过30多岁以上的人。
从我的个人角度来看，我也不喜欢用30多岁以上的人。为什么？</p>
<p>比如我需要招一个项目组长。通常，项目组长都是工作经验3-5年的人，
按照正常年龄来计算，应该在26-28岁左右。</p>
<p>如果这时有一位工作了10年的人来面试的话，我会怎么想？</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>10年的工作经验完全可以胜任项目经理的职位，而且在你的职业生涯中，应该有很多机会晋升为项目经理。现在既然你来应聘项目组长，就说明你在原来的公司的职位不会比项目组长高——会不会是能力有问题？</li>
<li>你已经30多岁了，甚至比你将来的上司的年龄都要大，你能不能完全服从上司的指示？</li>
<li>30多岁的人一般都已成家，是个做事稳重、安于现状的年龄。而项目组长需要用自己的头脑，带领团队去解决问题，需要的是灵感、激情和魄力。你是否有这个精力？是否有这个心思？</li></ul>
<p>不可否认，30多岁的人也有技术专家，也有认真负责、激情四射的人，但是，上面的这些问题毕竟是常见问题，会给HR在甄选人材时带来负面的影响。</p>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>通常，HR在招聘时都会考虑到应聘者的年龄，超过35岁的人，应聘非管理职的一般的职位都会有很大的困难。
媒体通常会大肆渲染地说这叫“年龄歧视”，我只能说，毕竟记者们都不是管理者，不知道这里面的辛酸啊。</p>
<p>我并不是做HR的，但也面试过几个30多岁以上的人，也用过30多岁以上的人。
从我的个人角度来看，我也不喜欢用30多岁以上的人。为什么？</p>
<p>比如我需要招一个项目组长。通常，项目组长都是工作经验3-5年的人，
按照正常年龄来计算，应该在26-28岁左右。</p>
<p>如果这时有一位工作了10年的人来面试的话，我会怎么想？</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>10年的工作经验完全可以胜任项目经理的职位，而且在你的职业生涯中，应该有很多机会晋升为项目经理。现在既然你来应聘项目组长，就说明你在原来的公司的职位不会比项目组长高——会不会是能力有问题？</li>
<li>你已经30多岁了，甚至比你将来的上司的年龄都要大，你能不能完全服从上司的指示？</li>
<li>30多岁的人一般都已成家，是个做事稳重、安于现状的年龄。而项目组长需要用自己的头脑，带领团队去解决问题，需要的是灵感、激情和魄力。你是否有这个精力？是否有这个心思？</li></ul>
<p>不可否认，30多岁的人也有技术专家，也有认真负责、激情四射的人，但是，上面的这些问题毕竟是常见问题，会给HR在甄选人材时带来负面的影响。</p>
<!-- end Pukiwiki generated code--><br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/05/25/why-dont-need-35s/feed/</wfw:commentRss>
		</item>
		<item>
		<title>《创建高可用性的Web内容》勘误表</title>
		<link>http://tech.idv2.com/2009/04/21/design-accessible-web-sites-errata/</link>
		<comments>http://tech.idv2.com/2009/04/21/design-accessible-web-sites-errata/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 07:12:18 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[其他]]></category>
<category>accessibility</category><category>book</category><category>web</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/04/21/design-accessible-web-sites-errata/</guid>
		<description><![CDATA[谢谢fcicq指出书中的一些错误。也请其他读者在发现错误后告诉我，如果这本书有幸重印，我会在重印时改正这些错误的。给大家阅读带来不便，真是对不起。
P3，倒数第2段第3行：
用户想把音量调低，但我却没有把它设置到一个较高的音量，以便用户能通过软件来控制它。
修改为：
音箱的音量太小了，我根本没想到应该把音量调大些，这样用户才能通过软件来控制音量。
P5，最后两行：
以及如何进行高可用性的开发。
修改为：
以及如何开始符合高可用性的开发。
P37，“试一试”的第一行：
什么沟通障碍可能会阻碍项目创建高可用性？
修改为：
什么样的沟通障碍可能会阻碍项目创建高可用性？
P57，第2段第4行
请习惯这个思维。
修改为：
拥有这种想法很重要。
]]></description>
			<content:encoded><![CDATA[<p>谢谢fcicq指出书中的一些错误。也请其他读者在发现错误后告诉我，如果这本书有幸重印，我会在重印时改正这些错误的。给大家阅读带来不便，真是对不起。</p>
<p>P3，倒数第2段第3行：<br />
用户想把音量调低，但我却没有把它设置到一个较高的音量，以便用户能通过软件来控制它。<br />
修改为：<br />
音箱的音量太小了，我根本没想到应该把音量调大些，这样用户才能通过软件来控制音量。</p>
<p>P5，最后两行：<br />
以及如何进行高可用性的开发。<br />
修改为：<br />
以及如何<font color="red">开始</font><font color="blue">符合</font>高可用性的开发。</p>
<p>P37，“试一试”的第一行：<br />
什么沟通障碍可能会阻碍项目创建高可用性？<br />
修改为：<br />
什么<font color="red">样的</font>沟通障碍可能会阻碍项目创建高可用性？</p>
<p>P57，第2段第4行<br />
请习惯这个思维。<br />
修改为：<br />
拥有这种想法很重要。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/04/21/design-accessible-web-sites-errata/feed/</wfw:commentRss>
		</item>
		<item>
		<title>UML中的联系、聚合与组合的区别</title>
		<link>http://tech.idv2.com/2009/04/12/uml-aac-diff/</link>
		<comments>http://tech.idv2.com/2009/04/12/uml-aac-diff/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 14:13:04 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[编程开发]]></category>
<category>uml</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/04/12/uml-aac-diff/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>UML中的联系(association)、聚合(aggregation)和组合(composition)三个概念很相似，也很难理解。
今天看到<a href="http://ootips.org/uml-hasa.html">这篇文章</a>解释得很清楚，所以在这里转一下，
希望能对需要的人有所帮助。</p>
<p><strong>联系</strong></p>
<p>联系(association)表明某个对象可以向另一个对象通过某种方式发送消息。发送消息的方法可以通过指针成员变量，
也可以是方法参数、局部变量等等。例如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-01.png" alt="uml-aac-diff-01.png" title="uml-aac-diff-01.png" width="220" height="70" /></div>

<pre>class A
{
  private:
    B* itsB;
};</pre>
<p><strong>聚合</strong></p>
<p>聚合(aggregation)是一种特殊的联系，它表明了“部分”到“整体”的关系，显著的特点就是不能包含循环的联系
（就是说，部分中不能包含整体）。如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-02.png" alt="uml-aac-diff-02.png" title="uml-aac-diff-02.png" width="231" height="62" /></div>

<pre>class Node
{
  private:
    vector&lt;Node*&gt; itsNodes;
};</pre>
<p>上述代码只有当子节点不会成为父节点的父节点时（即，必须是树结构，不能是图结构），才能称之为聚合。</p>
<p><strong>组合</strong></p>
<p>组合(composition)跟聚合几乎相同，唯一的区别就是“部分”不能脱离“整体”单独存在，就是说，
“部分”的生命期不能比“整体”还要长。例如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-03.png" alt="uml-aac-diff-03.png" title="uml-aac-diff-03.png" width="250" height="67" /></div>

<pre>class Car
{
  public:
    virtual ~Car() {delete itsCarb;}
  private:
    Carburetor* itsCarb
};</pre>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>UML中的联系(association)、聚合(aggregation)和组合(composition)三个概念很相似，也很难理解。
今天看到<a href="http://ootips.org/uml-hasa.html">这篇文章</a>解释得很清楚，所以在这里转一下，
希望能对需要的人有所帮助。</p>
<p><strong>联系</strong></p>
<p>联系(association)表明某个对象可以向另一个对象通过某种方式发送消息。发送消息的方法可以通过指针成员变量，
也可以是方法参数、局部变量等等。例如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-01.png" alt="uml-aac-diff-01.png" title="uml-aac-diff-01.png" width="220" height="70" /></div>

<pre>class A
{
  private:
    B* itsB;
};</pre>
<p><strong>聚合</strong></p>
<p>聚合(aggregation)是一种特殊的联系，它表明了“部分”到“整体”的关系，显著的特点就是不能包含循环的联系
（就是说，部分中不能包含整体）。如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-02.png" alt="uml-aac-diff-02.png" title="uml-aac-diff-02.png" width="231" height="62" /></div>

<pre>class Node
{
  private:
    vector&lt;Node*&gt; itsNodes;
};</pre>
<p>上述代码只有当子节点不会成为父节点的父节点时（即，必须是树结构，不能是图结构），才能称之为聚合。</p>
<p><strong>组合</strong></p>
<p>组合(composition)跟聚合几乎相同，唯一的区别就是“部分”不能脱离“整体”单独存在，就是说，
“部分”的生命期不能比“整体”还要长。例如：</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/04/uml-aac-diff-03.png" alt="uml-aac-diff-03.png" title="uml-aac-diff-03.png" width="250" height="67" /></div>

<pre>class Car
{
  public:
    virtual ~Car() {delete itsCarb;}
  private:
    Carburetor* itsCarb
};</pre>
<!-- end Pukiwiki generated code--><br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/04/12/uml-aac-diff/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dell 1200笔记本安装Windows XP时盘符错乱</title>
		<link>http://tech.idv2.com/2009/04/08/dell-1200-install-winxp-issue/</link>
		<comments>http://tech.idv2.com/2009/04/08/dell-1200-install-winxp-issue/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 16:13:45 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[硬件]]></category>
<category>hardware</category><category>windows</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/04/08/dell-1200-install-winxp-issue/</guid>
		<description><![CDATA[今天拿到了一台Dell Vostro 1200，准备安装Windows XP。没想到第一次安装就出了问题，安装程序进行到分区这一步，报告找不到硬盘（下面的分区列表中显示没有硬盘）。用Linux急救盘进去之后用fdisk删除了所有分区，再次安装Windows XP，结果故障依旧。后来问了技术支持的人说，这台笔记本的硬盘是SATA接口，必须要用集成了SATA驱动的Windows XP安装盘才能正常安装。晕，原来Windows XP安装盘还有各种不同的版本哪。
拿到集成了SATA的Windows XP安装盘后继续安装，这次倒是一切顺利，但装完之后进入系统一看，咦？怎么两个硬盘分区变成了 E: 和 F:，系统装到了 E: 上？而C:呢，却被读卡器占了位置。后来试图通过修改注册表的方式把系统改到C:盘上，可是失败了。上网查了查发现Dell的本子这个问题居然是人所皆知的，解决方法也简单，就是进入BIOS把所有板载的USB设备都关掉，再安装就没有问题了。
于是进入BIOS关掉所有USB设备，安装，这次顺利完成，没出任何毛病。
]]></description>
			<content:encoded><![CDATA[<p>今天拿到了一台Dell Vostro 1200，准备安装Windows XP。没想到第一次安装就出了问题，安装程序进行到分区这一步，报告找不到硬盘（下面的分区列表中显示没有硬盘）。用Linux急救盘进去之后用fdisk删除了所有分区，再次安装Windows XP，结果故障依旧。后来问了技术支持的人说，这台笔记本的硬盘是SATA接口，必须要用集成了SATA驱动的Windows XP安装盘才能正常安装。晕，原来Windows XP安装盘还有各种不同的版本哪。</p>
<p>拿到集成了SATA的Windows XP安装盘后继续安装，这次倒是一切顺利，但装完之后进入系统一看，咦？怎么两个硬盘分区变成了 E: 和 F:，系统装到了 E: 上？而C:呢，却被读卡器占了位置。后来试图通过修改注册表的方式把系统改到C:盘上，可是失败了。上网查了查发现Dell的本子这个问题居然是人所皆知的，解决方法也简单，就是进入BIOS把所有板载的USB设备都关掉，再安装就没有问题了。</p>
<p>于是进入BIOS关掉所有USB设备，安装，这次顺利完成，没出任何毛病。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/04/08/dell-1200-install-winxp-issue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>安装Visual Studio 2003时反复重启的问题</title>
		<link>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/</link>
		<comments>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 03:31:25 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[软件使用]]></category>
<category>visual studio</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/</guid>
		<description><![CDATA[今天在安装Visual Studio 2003时，安装程序要求先重启计算机，重启之后再启动安装程序，依然要求重启计算机，如此一直反复下去。无奈Google了一下，发现这居然是个常见问题，解决方法是删除 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 下的 PendingFileRenameOperations 键就可以了。
看了看我机器上的这个键的内容，好像是安装McAfee时遗留下来的。
ps.原来常见的那个“必须重启后才能完成安装”是这么回事儿啊。
]]></description>
			<content:encoded><![CDATA[<p>今天在安装Visual Studio 2003时，安装程序要求先重启计算机，重启之后再启动安装程序，依然要求重启计算机，如此一直反复下去。无奈Google了一下，发现这居然是个常见问题，解决方法是删除 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 下的 PendingFileRenameOperations 键就可以了。</p>
<p>看了看我机器上的这个键的内容，好像是安装McAfee时遗留下来的。</p>
<p>ps.原来常见的那个“必须重启后才能完成安装”是这么回事儿啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>写好商务文书的9 tips</title>
		<link>http://tech.idv2.com/2009/03/28/9-tips-to-write-good-articles/</link>
		<comments>http://tech.idv2.com/2009/03/28/9-tips-to-write-good-articles/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 23:14:57 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[其他]]></category>
<category>business</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/03/28/9-tips-to-write-good-articles/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>工作中写商务文书是必不可少的，如报告、文档、请求、邮件等等。
而搞技术出身的人，写作能力一般都很差，写出来的东西别人看不懂。
<a href="http://itpro.nikkeibp.co.jp/article/Watcher/20090203/324140/">这篇文章</a>
提出了写好商务文书的九个要点，也许能给广大搞技术的人作为参考吧。</p>
<p>写好文章当然不是要求你写出人人都说好的文章，那需要相当深厚的文字功底，
咱搞技术的也没那么多时间。所以降低一点标准，至少要写出没人说不好的文章来。
那么要点是什么呢？</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>写明观点</li>
<li>写明理由</li>
<li>按照结构化层次来书写</li>
<li>概要和详细内容分开写</li>
<li>一句话说明</li>
<li>不要抽象，要具体</li>
<li>不要随意省略</li>
<li>事实和意见分开写</li>
<li>明确论点</li></ol>
<p>具体内容请点开看。</p>
<!-- end Pukiwiki generated code--><!-- begin Pukiwiki generated code--><p><strong>1. 写明观点</strong></p>
<p>要想说服他人就必须先表明观点。明确地写明“我要做什么”。</p>
<p><strong>2. 写明理由</strong></p>
<p>理由不充分就无法说服他人。所以必须要写明理由：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>“为什么这样做比较好？”</li>
<li>“这种做法的背景是什么？”</li>
<li>“为什么发生这样的问题？”</li></ul>
<p><strong>3. 按照结构化层次来书写</strong></p>
<p>文章是有结构的，如原因和结果、问题和背景、理由和观点等。
没有原因的结果就很难让人理解。</p>
<p><strong>4. 概要和详细内容分开写</strong></p>
<p>直接把详细内容一股脑全写出来，文章就会很长很长，
而阅读的人（一般是客户？）短时间内很难理解。</p>
<p>应该首先写出概要，让读者大体了解问题的情况之后，再详加说明。</p>
<p><strong>5. 一句话说明</strong></p>
<p>客户的时间是很宝贵的，没时间读长文章。
所以能用一句话说明的事儿就别用两句话。</p>
<p><strong>6. 不要抽象，要具体</strong></p>
<p>抽象内容不好理解，要写得具体些。</p>
<p><strong>7. 不要随意省略</strong></p>
<p>所谓“省略”就是说省略自己知道的东西。但这些东西阅读者未必知道。
所以，是否要省略，应当根据阅读者的知识和经验水平来判断。</p>
<p><strong>8. 事实和意见分开写</strong></p>
<p>事实和意见混淆，就很难让人作出判断。如：</p>
<p>“这里出事故了，有人受伤很严重。但因为堵车，救护车迟迟不能到场，
人好像已经晕过去了。”</p>
<p>这样写很难判断哪个是事实，哪个是推测。还有个例子：</p>
<p><strong>证人</strong>：我昨天看到王先生晚上又出去应酬了，喝得醉醺醺的回到家里。<br />
<strong>法官</strong>：你看到他喝醉了？<br />
<strong>证人</strong>：没有啦，我只是看到他走在路上摇摇晃晃的。<br />
<strong>法官</strong>：那你怎么知道他出去应酬了呢？<br />
<strong>证人</strong>：我也没看到啦，只是昨天他晚上十点多才回来，平常这时候回来都是跟人应酬的。<br />
<strong>法官</strong>：那就是说，你昨天晚上十点多看到王先生摇摇晃晃地回到家里了。</p>
<p><strong>9. 明确论点</strong></p>
<p>论点不明确，阅读者就很难理解。因此，要从文章中总结出论点。</p>
<!-- end Pukiwiki generated code-->

]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>工作中写商务文书是必不可少的，如报告、文档、请求、邮件等等。
而搞技术出身的人，写作能力一般都很差，写出来的东西别人看不懂。
<a href="http://itpro.nikkeibp.co.jp/article/Watcher/20090203/324140/">这篇文章</a>
提出了写好商务文书的九个要点，也许能给广大搞技术的人作为参考吧。</p>
<p>写好文章当然不是要求你写出人人都说好的文章，那需要相当深厚的文字功底，
咱搞技术的也没那么多时间。所以降低一点标准，至少要写出没人说不好的文章来。
那么要点是什么呢？</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>写明观点</li>
<li>写明理由</li>
<li>按照结构化层次来书写</li>
<li>概要和详细内容分开写</li>
<li>一句话说明</li>
<li>不要抽象，要具体</li>
<li>不要随意省略</li>
<li>事实和意见分开写</li>
<li>明确论点</li></ol>
<p>具体内容请点开看。</p>
<!-- end Pukiwiki generated code--><!-- begin Pukiwiki generated code--><p><strong>1. 写明观点</strong></p>
<p>要想说服他人就必须先表明观点。明确地写明“我要做什么”。</p>
<p><strong>2. 写明理由</strong></p>
<p>理由不充分就无法说服他人。所以必须要写明理由：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>“为什么这样做比较好？”</li>
<li>“这种做法的背景是什么？”</li>
<li>“为什么发生这样的问题？”</li></ul>
<p><strong>3. 按照结构化层次来书写</strong></p>
<p>文章是有结构的，如原因和结果、问题和背景、理由和观点等。
没有原因的结果就很难让人理解。</p>
<p><strong>4. 概要和详细内容分开写</strong></p>
<p>直接把详细内容一股脑全写出来，文章就会很长很长，
而阅读的人（一般是客户？）短时间内很难理解。</p>
<p>应该首先写出概要，让读者大体了解问题的情况之后，再详加说明。</p>
<p><strong>5. 一句话说明</strong></p>
<p>客户的时间是很宝贵的，没时间读长文章。
所以能用一句话说明的事儿就别用两句话。</p>
<p><strong>6. 不要抽象，要具体</strong></p>
<p>抽象内容不好理解，要写得具体些。</p>
<p><strong>7. 不要随意省略</strong></p>
<p>所谓“省略”就是说省略自己知道的东西。但这些东西阅读者未必知道。
所以，是否要省略，应当根据阅读者的知识和经验水平来判断。</p>
<p><strong>8. 事实和意见分开写</strong></p>
<p>事实和意见混淆，就很难让人作出判断。如：</p>
<p>“这里出事故了，有人受伤很严重。但因为堵车，救护车迟迟不能到场，
人好像已经晕过去了。”</p>
<p>这样写很难判断哪个是事实，哪个是推测。还有个例子：</p>
<p><strong>证人</strong>：我昨天看到王先生晚上又出去应酬了，喝得醉醺醺的回到家里。<br />
<strong>法官</strong>：你看到他喝醉了？<br />
<strong>证人</strong>：没有啦，我只是看到他走在路上摇摇晃晃的。<br />
<strong>法官</strong>：那你怎么知道他出去应酬了呢？<br />
<strong>证人</strong>：我也没看到啦，只是昨天他晚上十点多才回来，平常这时候回来都是跟人应酬的。<br />
<strong>法官</strong>：那就是说，你昨天晚上十点多看到王先生摇摇晃晃地回到家里了。</p>
<p><strong>9. 明确论点</strong></p>
<p>论点不明确，阅读者就很难理解。因此，要从文章中总结出论点。</p>
<!-- end Pukiwiki generated code-->
<br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/28/9-tips-to-write-good-articles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Solaris安装memo</title>
		<link>http://tech.idv2.com/2009/03/28/solaris-install-memo/</link>
		<comments>http://tech.idv2.com/2009/03/28/solaris-install-memo/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 22:55:38 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[Linux应用]]></category>
<category>solaris</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/03/28/solaris-device-name/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>今天开始安装Solaris 10，跟Linux的差别挺多，真是不习惯啊。</p>
<!-- end Pukiwiki generated code--><!-- begin Pukiwiki generated code--><p><strong>命名规则</strong></p>
<p>磁盘命名规则为 /dev/[r]dsk/c0t0d0s0 ，其中 0 表示数字，如 /dev/dsk/c0t3d0s0 。</p>
<p>c = controller number，表示硬盘控制器的序号，c0表示第一个控制器，c1表示第二个等。</p>
<p>t = target number，目标号，表示控制器内的地址。</p>
<p>d = disk number，表示连接到目标上的磁盘的逻辑单元号(LUN)。单个磁盘或IDE硬盘永远为 d0。</p>
<p>s 表示分区号。Solaris下一个磁盘包含8个分区，所以取值范围为 s0 - s7。</p>
<p>网卡是直接以驱动程序名称来命名的。比如我用的网卡是Broadcom的，所以网卡名称就是 bge0。</p>
<p><strong>网络设置</strong></p>
<p>修改主机名：</p>
<pre>/etc/hosts, /etc/nodename, /etc/hostname.bde0</pre>
<p>修改IP地址、掩码、网关和DNS：</p>
<pre>/etc/hosts, /etc/defaultrouter, /etc/netmasks, /etc/resolv.conf</pre>
<p><strong>用户管理</strong></p>
<p>添加用户：不像Linux那样会自动给你建好组、主目录，完全要自己手工建立。</p>
<pre># groupadd newgroup
# useradd -g newgroup newuser
# cd /export/home
# mkdir newuser
# chown newuser newuser
# chgrp newuser newuser
# vi /etc/passwd</pre>
<p>将 newuser项中的 /home/newuser 修改为 /export/newuser，将 /bin/sh 修改为 /usr/bin/bash</p>
<p>然后用 newuser 登录，在主目录中建立 .bashrc 和 .bash_profile。
.bashrc的内容随意，.bash_profile 的内容为：</p>
<pre>if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi</pre>
<p>为了方便起见，PS1变量也可以设置得好看些。我的设置是</p>
<pre>export PS1=&quot;\e[1;36m[\e[1;32m\u\e[1;35m@\h \e[1;33m\W\e[1;36m]\\$\e[m &quot;</pre>
<p><strong>GNU软件安装</strong></p>
<p>接下来就是让ls有颜色，再装个vim即可。
ls就是GNU的coreutils包，和vim两个包都能在<a href="http://www.sunfreeware.com/">Sunfreeware.com</a>上找到。</p>
<p>coreutils包需要下载并安装：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>coreutils-7.1-sol10-x86-local.gz</li>
<li>libgcc-3.4.6-sol10-x86-local.gz</li>
<li>libiconv-1.11-sol10-x86-local.gz</li>
<li>libintl-3.4.0-sol10-x86-local.gz</li></ul>
<p>vim包需要下载并安装：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>glib-1.2.10-sol10-x86-local.gz</li>
<li>gmp-4.2.1-sol10-x86-local.gz</li>
<li>gtk+-1.2.10-sol10-intel-local.gz</li>
<li>ncurses-5.6-sol10-x86-local.gz</li>
<li>vim-7.2-sol10-x86-local.gz</li></ul>
<p>下完之后依次展开，用 pkgadd -d &lt;文件名&gt; 装上即可。</p>
<p>带颜色的ls放在/usr/local/bin下，所以要想用它还得改改.bashrc：</p>
<pre>export PATH=/usr/local/bin:$PATH</pre>
<p>加上别名：</p>
<pre>alias ls='ls --color=tty'
alias ll='ls -l'
alias vi='vim'</pre>
<p><strong>系统管理</strong></p>
<p>关机：</p>
<pre>shutdown -y -i5 -g0</pre>
<p>btw: 装好Solaris之后启动、登录，选择使用JDE，嗯，界面还是很漂亮的。</p>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>今天开始安装Solaris 10，跟Linux的差别挺多，真是不习惯啊。</p>
<!-- end Pukiwiki generated code--><!-- begin Pukiwiki generated code--><p><strong>命名规则</strong></p>
<p>磁盘命名规则为 /dev/[r]dsk/c0t0d0s0 ，其中 0 表示数字，如 /dev/dsk/c0t3d0s0 。</p>
<p>c = controller number，表示硬盘控制器的序号，c0表示第一个控制器，c1表示第二个等。</p>
<p>t = target number，目标号，表示控制器内的地址。</p>
<p>d = disk number，表示连接到目标上的磁盘的逻辑单元号(LUN)。单个磁盘或IDE硬盘永远为 d0。</p>
<p>s 表示分区号。Solaris下一个磁盘包含8个分区，所以取值范围为 s0 - s7。</p>
<p>网卡是直接以驱动程序名称来命名的。比如我用的网卡是Broadcom的，所以网卡名称就是 bge0。</p>
<p><strong>网络设置</strong></p>
<p>修改主机名：</p>
<pre>/etc/hosts, /etc/nodename, /etc/hostname.bde0</pre>
<p>修改IP地址、掩码、网关和DNS：</p>
<pre>/etc/hosts, /etc/defaultrouter, /etc/netmasks, /etc/resolv.conf</pre>
<p><strong>用户管理</strong></p>
<p>添加用户：不像Linux那样会自动给你建好组、主目录，完全要自己手工建立。</p>
<pre># groupadd newgroup
# useradd -g newgroup newuser
# cd /export/home
# mkdir newuser
# chown newuser newuser
# chgrp newuser newuser
# vi /etc/passwd</pre>
<p>将 newuser项中的 /home/newuser 修改为 /export/newuser，将 /bin/sh 修改为 /usr/bin/bash</p>
<p>然后用 newuser 登录，在主目录中建立 .bashrc 和 .bash_profile。
.bashrc的内容随意，.bash_profile 的内容为：</p>
<pre>if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi</pre>
<p>为了方便起见，PS1变量也可以设置得好看些。我的设置是</p>
<pre>export PS1=&quot;\e[1;36m[\e[1;32m\u\e[1;35m@\h \e[1;33m\W\e[1;36m]\\$\e[m &quot;</pre>
<p><strong>GNU软件安装</strong></p>
<p>接下来就是让ls有颜色，再装个vim即可。
ls就是GNU的coreutils包，和vim两个包都能在<a href="http://www.sunfreeware.com/">Sunfreeware.com</a>上找到。</p>
<p>coreutils包需要下载并安装：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>coreutils-7.1-sol10-x86-local.gz</li>
<li>libgcc-3.4.6-sol10-x86-local.gz</li>
<li>libiconv-1.11-sol10-x86-local.gz</li>
<li>libintl-3.4.0-sol10-x86-local.gz</li></ul>
<p>vim包需要下载并安装：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>glib-1.2.10-sol10-x86-local.gz</li>
<li>gmp-4.2.1-sol10-x86-local.gz</li>
<li>gtk+-1.2.10-sol10-intel-local.gz</li>
<li>ncurses-5.6-sol10-x86-local.gz</li>
<li>vim-7.2-sol10-x86-local.gz</li></ul>
<p>下完之后依次展开，用 pkgadd -d &lt;文件名&gt; 装上即可。</p>
<p>带颜色的ls放在/usr/local/bin下，所以要想用它还得改改.bashrc：</p>
<pre>export PATH=/usr/local/bin:$PATH</pre>
<p>加上别名：</p>
<pre>alias ls='ls --color=tty'
alias ll='ls -l'
alias vi='vim'</pre>
<p><strong>系统管理</strong></p>
<p>关机：</p>
<pre>shutdown -y -i5 -g0</pre>
<p>btw: 装好Solaris之后启动、登录，选择使用JDE，嗯，界面还是很漂亮的。</p>
<!-- end Pukiwiki generated code--><br />
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/28/solaris-install-memo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>如何reset VSS的工作目录</title>
		<link>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/</link>
		<comments>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 09:32:04 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
		
		<category><![CDATA[软件使用]]></category>
<category>vss</category>
		<guid isPermaLink="false">http://tech.idv2.com/2009/03/19/reset-vss-working-dir/</guid>
		<description><![CDATA[有些人没有设置工作目录的习惯，而是想checkout哪个文件时就顺手设置一个，久而久之VSS中各个文件的工作目录设到哪儿的都有。想整理整理吧，但又不知道怎么删，甚至把整个数据库连接都删了重建也不行。
原来……真没想到vss居然把工作目录这个完全属于客户端的信息保存到了服务器上。打开服务器上的 &#8221;users/你的用户名/ss.ini&#8221;，看看最后那部分吧，工作目录的设置都在这儿呢。全删了，再重新设就行了。
]]></description>
			<content:encoded><![CDATA[<p>有些人没有设置工作目录的习惯，而是想checkout哪个文件时就顺手设置一个，久而久之VSS中各个文件的工作目录设到哪儿的都有。想整理整理吧，但又不知道怎么删，甚至把整个数据库连接都删了重建也不行。</p>
<p>原来……真没想到vss居然把工作目录这个完全属于客户端的信息保存到了服务器上。打开服务器上的 &#8221;users/你的用户名/ss.ini&#8221;，看看最后那部分吧，工作目录的设置都在这儿呢。全删了，再重新设就行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.844 seconds -->
