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

<channel>
	<title>Claude, the freelancer</title>
	<atom:link href="http://blog.phil-idea.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.phil-idea.com</link>
	<description>PHIL idea.</description>
	<pubDate>Mon, 03 Dec 2007 12:22:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>用javascript操作CSS样式表</title>
		<link>http://blog.phil-idea.com/archives/104</link>
		<comments>http://blog.phil-idea.com/archives/104#comments</comments>
		<pubDate>Mon, 03 Dec 2007 12:22:32 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[js]]></category>

		<category><![CDATA[stylesheet]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/104</guid>
		<description><![CDATA[　　使用javascriptDOM模型可以对链入或嵌入页面的CSS Stylesheet进行各种操作。演示代码如下（使用prototype库）：
&#60;html&#62;
&#60;head&#62;
 &#60;script language=&#8221;javascript&#8221; src=&#8221;js/prototype.js&#8221;&#62;&#60;/script&#62;
&#60;link type=&#8221;text/css&#8221; rel=&#8221;stylesheet&#8221; href=&#8221;css/cssmanip.css&#8221; title=&#8221;test_sheet&#8221; /&#62;
&#60;/head&#62;
&#60;body&#62;
&#60;span class=&#8221;text_style bg_style&#8221;&#62;
some text
&#60;/span&#62;
&#60;button onclick=&#8221;black_color();&#8221;&#62;BLACK&#60;/button&#62;
&#60;button onclick=&#8221;white_color();&#8221;&#62;white&#60;/button&#62;
&#60;script type=&#8221;text/javascript&#8221;&#62;
Object.extend(document.styleSheets, {
get : function(name) {
for (var i=0; i&#60;this.length; i++) {
if (this[i].title == name) return Object.extend( this[i], {
rule : function(selectorName) {
var aRules = this.cssRules;
for (var i=0; i&#60;aRules.length; i++) {
if (aRules[i].selectorText == selectorName) return aRules[i];
}
　　　　　return null;
}
});
}
　　return null;
}
});
var theStyle = document.styleSheets.get(&#8217;test_sheet&#8217;).rule(&#8217;.text_style&#8217;).style;
function black_color() {
theStyle.color [...]]]></description>
			<content:encoded><![CDATA[<p>　　使用javascriptDOM模型可以对链入或嵌入页面的CSS Stylesheet进行各种操作。演示代码如下（使用prototype库）：</p>
<blockquote><p><code>&lt;html&gt;<br />
&lt;head&gt;<br />
<strong> &lt;script language=&#8221;javascript&#8221; src=&#8221;js/prototype.js&#8221;&gt;&lt;/script&gt;</strong><br />
&lt;link type=&#8221;text/css&#8221; rel=&#8221;stylesheet&#8221; href=&#8221;css/cssmanip.css&#8221; <strong>title=&#8221;test_sheet&#8221;</strong> /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</code></p>
<p>&lt;span class=&#8221;text_style bg_style&#8221;&gt;<br />
some text<br />
&lt;/span&gt;<br />
&lt;button onclick=&#8221;black_color();&#8221;&gt;BLACK&lt;/button&gt;<br />
&lt;button onclick=&#8221;white_color();&#8221;&gt;white&lt;/button&gt;</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
<strong>Object.extend(document.styleSheets, {<br />
get : function(name) {<br />
for (var i=0; i&lt;this.length; i++) {<br />
if (this[i].title == name) return Object.extend( this[i], {<br />
rule : function(selectorName) {<br />
var aRules = this.cssRules;<br />
for (var i=0; i&lt;aRules.length; i++) {<br />
if (aRules[i].selectorText == selectorName) return aRules[i];<br />
}</strong></p>
<p><strong>　　　　　return null;<br />
}<br />
});<br />
}</strong></p>
<p><strong>　　return null;<br />
}<br />
});</strong></p>
<p>var theStyle = document.styleSheets.get(&#8217;test_sheet&#8217;).rule(&#8217;.text_style&#8217;).style;</p>
<p>function black_color() {<br />
theStyle.color = &#8216;black&#8217;;<br />
}</p>
<p>function white_color() {<br />
theStyle.color = &#8216;white&#8217;;<br />
}<br />
&lt;/script&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p>cssmanip.css如下：</p>
<blockquote><p><code>.text_style {<br />
color: white;<br />
}</p>
<p>.bg_style {<br />
background-color: black;<br />
}</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/104/feed</wfw:commentRss>
		</item>
		<item>
		<title>战略大转移！</title>
		<link>http://blog.phil-idea.com/archives/101</link>
		<comments>http://blog.phil-idea.com/archives/101#comments</comments>
		<pubDate>Thu, 01 Nov 2007 13:05:04 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[大学生活]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/101</guid>
		<description><![CDATA[　　江南的气候着实有点诡异，昨天还可以只穿一件薄衫在大街上闲逛，今天如果不加秋衣，你会被活活冻死！然而，冬日的寒气却永远无法吹熄心中的火花——我坐在电脑前，　紧张地盯着显示器……一支烟的时间过去，当屏幕上出现巨大的NVIDIA标志时，我深深的松了一口气——内心的激动驱走了寒意，世界的颜色也变得丰富了起来……要知道，这标志着一场战役的胜利——针对Windows的旷日持久战就此画上了圆满的句号，拯救危机的战略大转移宣告结束！
我镇定地靠在椅背上，点上一支中华，深深地吸了一口，数日的奋战在眼前浮现：
很早就有摒弃Windows这块儿瘟疫之地的想法，但是迫于各方面的压力，一支没有付诸实践。直到一周前，Windows彻底崩溃，我便下定了重走长征路的决心。以前曾经在张磊同志的帮助下在我的ASUS Laptop上实验过Linux系统，由于当时技术不到位，加之时间有限，他给我的Ubuntu 6.06面对ASUS的BIOS Bug无能为力，那张碟子也在我的抽屉里面躺了整整一个学期。当时并没有意识到是硬件问题，以为只要等新版本的Ubuntu出来就可以解决问题了，于是就到官网上申请了一套Ubuntu  7.04(Feisty Fawn)。地里位置的差异成了当时制约发展的重要因素——申请的碟子直到今年六月份才拿到，等了整整三个月。而在这三个月了，我却一直在Windows下煎熬……我心里非常清楚，从Windows到Linux必将是一段艰难的旅程，然而如果可以顺利度过难关，必将彻底扭转局势。因此，这是一个关乎命运的决定，是救命于水火的战略大转移！趁着近日课程不紧，又还没到熄灯，我决定——开战！
在网络上找到了跟ASUS Laptop有关的帖子，发现了那个著名的BIOS Bug。起初大家以为是内核问题，但是经过一番详细的讨论以后，最终确定是ASUS的新版BIOS里面的BUG导致了Ubuntu在连接USB设备时无法启动的问题。在启动项里面加上acpi=off以后可以顺利安装运行了。但是，随之而来的是一系列新问题：
关掉ACPI以后，AMD K8系列的PowerNOW!功能就不能使用，CPU会一直运行在全速状态下。这会产生大量的热量，也会令噪音增长数倍。我曾尝试重新编译内核，在make配置中关掉ACPI，转而使用APM；顺便把powernow-k8.o打入内核，而不是原来的作为模块发布。经历了n此尝试以后，内核顺利编译成功，安装、加载……CPU可以变频了，但是电源管理功能仍旧不能使用。看来，对于我的laptop，ACPI是个必须的选项，所以又装回了原来的内核——再想想其他的办法吧。
这时，我使用的还是双系统。虽然非常不愿意继续呆在Windows下，但在这重要的转型期，保留一条退路还是必要的。但也正是这样的原因，导致了长征路上遇到的第二个问题：NTFS的读写支持。Ubuntu Live CD中自带的image是把读取NTFS的功能作为一个模块加载的，且并没有加入支持NTFS写操作的驱动。解决问题的方法是使用ntfs-3g，目前最快、最稳定的支持读写NTFS的模块。起初没有什么问题，分区都能够正常挂载；修改/etc/fstab可以方便地把Windows系统盘隐藏起来，并通过修改编码方法（默认的GB2312-&#62;UTF-8）解决乱码问题。可是就在某一天重新起动电脑以后，我的分区表坏了！一摸外壳，烫手！现在虽然在Linux下可以实现NTFS的写操作，但这仍然是在开发中的技术，网友报告使用稳定，操作失误仍然是有可能的。当然，我也考虑过是否是中了古老的CIH……但不论如何，我现在已经没有了退路——以前在Windows下收集的一些资料，包括我自己写的一个针对DirectX的实时3D渲染引擎！悔恨啊！为什么不提早做好备份……
可后悔永远不是解决问题的方法，开始着手解决问题吧。先是尝试了用DiskGenius修复分区表，但是没有任何效果。PQ里面看到的仍就是红红的Error。我已经没有退路了啊，想到这里，我抱着必死的决心，准备把这条路继续走下去——将全部57G的空间贡献给Ubuntu。用fdisk把磁盘全部格式化成DOS FAT，这样可以自动重建分区表。之后用PQ Magic把磁盘分成三个区，一个挂/，一个/usr，最后一个挂/home/claude。重新安装，升级到Ubuntu 7.0(Gutsy Gibbon)，一切就绪。
为了全面转移到Linux，仍需要做很多的工作。下载解码器，以使gstreamer支持MP3；把原先的totem-gstreamer换成totem-xine，即使用xine解码器播放视频文件；安装w32codecs以支持rmvb……OK。最后的最后，是面子上的工作了。
我不能容忍我的Geforce Go 7300独显无法开启桌面效果！本以为只要安装最新的NVIDIA受限驱动nvidia-glx-new就能解决问题。可时间证明，最新的并不一定是最好的。nvidia-glx-new支持很多最新的NVIDIA板子，但是却不支持我这块儿“古老”的Go 7300。无奈之下只好换上nvidia-glx试一下，可喜的是这次成功了——NVIDIA的巨大LOGO让我大为欣喜。
至此，Ubuntu在ASUS A6km上的实践以不全面的成功收场。ASUS BIOS Bug问题没有解决实在是有点遗憾，但也是没有办法的事情。ASUS官方的说法是，他们把注意力集中在针对Windows系统的调整上……好吧，好吧，等到Linux取代Windows（梦想）成为操作系统的主流时，你们就干瞪眼吧！
想到这里我大喊一声——烫死了！香烟烧到了指头，我手一颤，烟灰全都掉在了衣服上——这支中华只抽了一口…… 算了，赶紧安装Apach2，和Eclipse。生产是要回到正轨上的，发展才是硬道理！遵循科学发展观的正确指导，努力把经济搞上去，才是我们Linux初级阶段的首要任务！为着开源的最终胜利而奋斗吧！！
题外话：
［中华的来历］　上个星期有个同学没带饭卡，我请他吃了一顿午饭。后来他说改天请我吃一顿，我回绝了：“你帮我买包烟就行了”——最近我的饭卡里虽然还有几百块，但现金却已所剩无几。他周末回家，晚上在QQ上跟我说：“正好有人送了一条中华给我爸，我给你带一包好了……”。两天后，我收到了一包中华和一包韩国烟……窃喜。
（完）
]]></description>
			<content:encoded><![CDATA[<p>　　江南的气候着实有点诡异，昨天还可以只穿一件薄衫在大街上闲逛，今天如果不加秋衣，你会被活活冻死！然而，冬日的寒气却永远无法吹熄心中的火花——我坐在电脑前，　紧张地盯着显示器……一支烟的时间过去，当屏幕上出现巨大的NVIDIA标志时，我深深的松了一口气——内心的激动驱走了寒意，世界的颜色也变得丰富了起来……要知道，这标志着一场战役的胜利——针对Windows的旷日持久战就此画上了圆满的句号，拯救危机的战略大转移宣告结束！</p>
<p>我镇定地靠在椅背上，点上一支中华，深深地吸了一口，数日的奋战在眼前浮现：</p>
<p>很早就有摒弃Windows这块儿瘟疫之地的想法，但是迫于各方面的压力，一支没有付诸实践。直到一周前，Windows彻底崩溃，我便下定了重走长征路的决心。以前曾经在张磊同志的帮助下在我的ASUS Laptop上实验过Linux系统，由于当时技术不到位，加之时间有限，他给我的Ubuntu 6.06面对ASUS的BIOS Bug无能为力，那张碟子也在我的抽屉里面躺了整整一个学期。当时并没有意识到是硬件问题，以为只要等新版本的Ubuntu出来就可以解决问题了，于是就到官网上申请了一套Ubuntu  7.04(Feisty Fawn)。地里位置的差异成了当时制约发展的重要因素——申请的碟子直到今年六月份才拿到，等了整整三个月。而在这三个月了，我却一直在Windows下煎熬……我心里非常清楚，从Windows到Linux必将是一段艰难的旅程，然而如果可以顺利度过难关，必将彻底扭转局势。因此，这是一个关乎命运的决定，是救命于水火的战略大转移！趁着近日课程不紧，又还没到熄灯，我决定——开战！</p>
<p>在网络上找到了跟ASUS Laptop有关的帖子，发现了那个著名的BIOS Bug。起初大家以为是内核问题，但是经过一番详细的讨论以后，最终确定是ASUS的新版BIOS里面的BUG导致了Ubuntu在连接USB设备时无法启动的问题。在启动项里面加上acpi=off以后可以顺利安装运行了。但是，随之而来的是一系列新问题：</p>
<p>关掉ACPI以后，AMD K8系列的PowerNOW!功能就不能使用，CPU会一直运行在全速状态下。这会产生大量的热量，也会令噪音增长数倍。我曾尝试重新编译内核，在make配置中关掉ACPI，转而使用APM；顺便把powernow-k8.o打入内核，而不是原来的作为模块发布。经历了n此尝试以后，内核顺利编译成功，安装、加载……CPU可以变频了，但是电源管理功能仍旧不能使用。看来，对于我的laptop，ACPI是个必须的选项，所以又装回了原来的内核——再想想其他的办法吧。</p>
<p>这时，我使用的还是双系统。虽然非常不愿意继续呆在Windows下，但在这重要的转型期，保留一条退路还是必要的。但也正是这样的原因，导致了长征路上遇到的第二个问题：NTFS的读写支持。Ubuntu Live CD中自带的image是把读取NTFS的功能作为一个模块加载的，且并没有加入支持NTFS写操作的驱动。解决问题的方法是使用ntfs-3g，目前最快、最稳定的支持读写NTFS的模块。起初没有什么问题，分区都能够正常挂载；修改/etc/fstab可以方便地把Windows系统盘隐藏起来，并通过修改编码方法（默认的GB2312-&gt;UTF-8）解决乱码问题。可是就在某一天重新起动电脑以后，我的分区表坏了！一摸外壳，烫手！现在虽然在Linux下可以实现NTFS的写操作，但这仍然是在开发中的技术，网友报告使用稳定，操作失误仍然是有可能的。当然，我也考虑过是否是中了古老的CIH……但不论如何，我现在已经没有了退路——以前在Windows下收集的一些资料，包括我自己写的一个针对DirectX的实时3D渲染引擎！悔恨啊！为什么不提早做好备份……</p>
<p>可后悔永远不是解决问题的方法，开始着手解决问题吧。先是尝试了用DiskGenius修复分区表，但是没有任何效果。PQ里面看到的仍就是红红的Error。我已经没有退路了啊，想到这里，我抱着必死的决心，准备把这条路继续走下去——将全部57G的空间贡献给Ubuntu。用fdisk把磁盘全部格式化成DOS FAT，这样可以自动重建分区表。之后用PQ Magic把磁盘分成三个区，一个挂/，一个/usr，最后一个挂/home/claude。重新安装，升级到Ubuntu 7.0(Gutsy Gibbon)，一切就绪。</p>
<p>为了全面转移到Linux，仍需要做很多的工作。下载解码器，以使gstreamer支持MP3；把原先的totem-gstreamer换成totem-xine，即使用xine解码器播放视频文件；安装w32codecs以支持rmvb……OK。最后的最后，是面子上的工作了。</p>
<p>我不能容忍我的Geforce Go 7300独显无法开启桌面效果！本以为只要安装最新的NVIDIA受限驱动nvidia-glx-new就能解决问题。可时间证明，最新的并不一定是最好的。nvidia-glx-new支持很多最新的NVIDIA板子，但是却不支持我这块儿“古老”的Go 7300。无奈之下只好换上nvidia-glx试一下，可喜的是这次成功了——NVIDIA的巨大LOGO让我大为欣喜。</p>
<p>至此，Ubuntu在ASUS A6km上的实践以不全面的成功收场。ASUS BIOS Bug问题没有解决实在是有点遗憾，但也是没有办法的事情。ASUS官方的说法是，他们把注意力集中在针对Windows系统的调整上……好吧，好吧，等到Linux取代Windows（梦想）成为操作系统的主流时，你们就干瞪眼吧！</p>
<p>想到这里我大喊一声——烫死了！香烟烧到了指头，我手一颤，烟灰全都掉在了衣服上——这支中华只抽了一口…… 算了，赶紧安装Apach2，和Eclipse。生产是要回到正轨上的，发展才是硬道理！遵循科学发展观的正确指导，努力把经济搞上去，才是我们Linux初级阶段的首要任务！为着开源的最终胜利而奋斗吧！！</p>
<p>题外话：<br />
［中华的来历］　上个星期有个同学没带饭卡，我请他吃了一顿午饭。后来他说改天请我吃一顿，我回绝了：“你帮我买包烟就行了”——最近我的饭卡里虽然还有几百块，但现金却已所剩无几。他周末回家，晚上在QQ上跟我说：“正好有人送了一条中华给我爸，我给你带一包好了……”。两天后，我收到了一包中华和一包韩国烟……窃喜。</p>
<p>（完）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/101/feed</wfw:commentRss>
		</item>
		<item>
		<title>w32codecs源</title>
		<link>http://blog.phil-idea.com/archives/100</link>
		<comments>http://blog.phil-idea.com/archives/100#comments</comments>
		<pubDate>Tue, 30 Oct 2007 13:26:07 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[sources]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[源]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/100</guid>
		<description><![CDATA[deb http://mirrors.shlug.org/ubuntu-cn/ gutsy main
这是目前我找到的最快的源。
]]></description>
			<content:encoded><![CDATA[<p>deb http://mirrors.shlug.org/ubuntu-cn/ gutsy main</p>
<p>这是目前我找到的最快的源。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/100/feed</wfw:commentRss>
		</item>
		<item>
		<title>使用Eclipse开发PHP代码</title>
		<link>http://blog.phil-idea.com/archives/103</link>
		<comments>http://blog.phil-idea.com/archives/103#comments</comments>
		<pubDate>Mon, 29 Oct 2007 11:47:18 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/103</guid>
		<description><![CDATA[　　今天试用了Eclipse的PDT模块，由于熟悉了Eclipse平台，总体感觉比以前一直使用的Komodo IDE好用一些，所以准备迁移过来。
PDT最简单的安装方法是使用Eclipse自带的Update Manager。选择Help-&#62;Software Updates-&#62;Find and Install，添加如下源：http://download.eclipse.org/tools/pdt/updates/，然后运行升级即可。需要注意的是，PDT需要你安装Europa版本以及org.eclipse.wst(2.0)，所以最好提前把它装好。
]]></description>
			<content:encoded><![CDATA[<p>　　今天试用了Eclipse的PDT模块，由于熟悉了Eclipse平台，总体感觉比以前一直使用的Komodo IDE好用一些，所以准备迁移过来。</p>
<p>PDT最简单的安装方法是使用Eclipse自带的Update Manager。选择Help-&gt;Software Updates-&gt;Find and Install，添加如下源：http://download.eclipse.org/tools/pdt/updates/，然后运行升级即可。需要注意的是，PDT需要你安装Europa版本以及org.eclipse.wst(2.0)，所以最好提前把它装好。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/103/feed</wfw:commentRss>
		</item>
		<item>
		<title>[转] Ubuntu cn99 源</title>
		<link>http://blog.phil-idea.com/archives/102</link>
		<comments>http://blog.phil-idea.com/archives/102#comments</comments>
		<pubDate>Mon, 29 Oct 2007 08:23:34 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[sources]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[源]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/102</guid>
		<description><![CDATA[cn99的源是国内最快的，下面列出的就是Ubuntu 7.10(gutsy)的源：
对于电信网络用户，推荐希网的源，速度非常快。
deb http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu gutsy-updates main restricted universe [...]]]></description>
			<content:encoded><![CDATA[<p>cn99的源是国内最快的，下面列出的就是Ubuntu 7.10(gutsy)的源：</p>
<p>对于电信网络用户，推荐<a href="http://www.cn99.com/">希网</a>的源，速度非常快。</p>
<p style="margin-left: 40px"><span style="font-family: monospace">deb http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse<br />
deb-src http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse<br />
deb http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb-src http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb-src http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb-src http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb http://ubuntu.cn99.com/ubuntu gutsy-updates main restricted universe multiverse<br />
deb-src http://ubuntu.cn99.com/ubuntu gutsy-updates main restricted universe multiverse<br />
</span><span style="font-family: monospace"></span><br />
此外还有 Ubuntu 中国官方源，服务器位于上海，也是电信网络。</p>
<p style="margin-left: 40px"><span style="font-family: monospace">deb http://cn.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse<br />
deb-src http://cn.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse<br />
deb http://cn.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb-src http://cn.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb http://cn.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb-src http://cn.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb http://cn.archive.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb-src http://cn.archive.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb http://cn.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse<br />
deb-src http://cn.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse</span><br />
对于网通网络用户，可以考虑使用台湾的源。<br />
Ubuntu 台湾官方源（服务器实际上也是位于<a href="http://www.ntu.edu.tw/">台湾大学</a>的）：</p>
<p style="margin-left: 40px"><span style="font-family: monospace">deb http://tw.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse<br />
deb-src http://tw.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse<br />
deb http://tw.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb-src http://tw.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse<br />
deb http://tw.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb-src http://tw.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb http://tw.archive.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb-src http://tw.archive.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse<br />
deb http://tw.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse<br />
deb-src http://tw.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse</span></p>
<p><a href="http://www.ntu.edu.tw/">台湾大学</a>源：</p>
<p style="margin-left: 40px"><span style="font-family: monospace">deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy main restricted universe multiverse<br />
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy main restricted universe multiverse<br />
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-updates main restricted universe multiverse<br />
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-updates main restricted universe multiverse<br />
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-backports main restricted universe multiverse<br />
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-backports main restricted universe multiverse<br />
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-security main restricted universe multiverse<br />
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-security main restricted universe multiverse<br />
deb http://ubuntu.csie.ntu.edu.tw/ubuntu gutsy-proposed main restricted universe multiverse<br />
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu gutsy-proposed main restricted universe multiverse</span><span style="font-family: monospace"><br />
</span><br />
另外，ubuntu-cn 的配置对于中国用户来说也是不可少的，可以采用 cn99的设置：</p>
<p style="margin-left: 40px"><span style="font-family: monospace">deb http://ubuntu.cn99.com/ubuntu-cn/ gutsy main restricted universe multiverse</span></p>
<p style="margin-left: 40px">&nbsp;</p>
<p style="margin-left: 40px">针对不同的版本，只要修改gutsy 为你的版本号即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/102/feed</wfw:commentRss>
		</item>
		<item>
		<title>晕——竟是Apache惹的祸</title>
		<link>http://blog.phil-idea.com/archives/98</link>
		<comments>http://blog.phil-idea.com/archives/98#comments</comments>
		<pubDate>Thu, 04 Oct 2007 01:10:07 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[……]]></category>

		<category><![CDATA[大学生活]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/98</guid>
		<description><![CDATA[　　最近突然发觉本地的Apache调试服务器有点慢，E盘空间也总是很少，下个游戏都要先删点东西挤一挤。找到安装目录一看，里面的error.log和access.log居然占用了3.6G的磁盘空间！上帝啊，终于找到了！一直都忽略了这个问题，在排查文件夹的时候完全把它给忘记了。遂关掉Apache，清理了一下log文件，然后重启。终于，我的E盘回来了！！！Apache也快了许多。想想也是，每次访问页面都要打开一个好几G的文件，写入数据然后保存！上帝啊……
]]></description>
			<content:encoded><![CDATA[<p>　　最近突然发觉本地的Apache调试服务器有点慢，E盘空间也总是很少，下个游戏都要先删点东西挤一挤。找到安装目录一看，里面的error.log和access.log居然占用了3.6G的磁盘空间！上帝啊，终于找到了！一直都忽略了这个问题，在排查文件夹的时候完全把它给忘记了。遂关掉Apache，清理了一下log文件，然后重启。终于，我的E盘回来了！！！Apache也快了许多。想想也是，每次访问页面都要打开一个好几G的文件，写入数据然后保存！上帝啊……</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/98/feed</wfw:commentRss>
		</item>
		<item>
		<title>意外的惊喜——火影OST3试听——火の意志を継ぐ者たち</title>
		<link>http://blog.phil-idea.com/archives/94</link>
		<comments>http://blog.phil-idea.com/archives/94#comments</comments>
		<pubDate>Wed, 03 Oct 2007 23:33:58 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[Naruto]]></category>

		<category><![CDATA[大学生活]]></category>

		<category><![CDATA[火影忍者]]></category>

		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/94</guid>
		<description><![CDATA[　　这个国庆真是郁闷，已经连续通宵三天了。今天玩《英雄传说6SC》到呕吐，遂删除之，粉碎之；睡了一觉醒来后，发誓忘掉它的所有画面。好在这第四天出现了奇迹，BTChina上网罗了一件宝贝：火影忍者OST3，试听之后大呼过瘾，于是写了下面的文字，并借此发泄一下近期郁闷的心情。
　　初中到现在已经看过了不少日本动漫，从“古时候”的机器猫（又名“叮噹猫”）、X战记，到近年的海贼王、死亡笔记，最喜欢的一部莫过火影。回想假期最难过的时刻，下载已经出的200多集火影，连饭都不吃，从头看到尾之后，心情彻底由阴转晴，那叫一个爽啊！促使我心情转变的不单单是我非常喜欢的剧情，更是其积极的“立志——努力”这一主题。自那时起，Naruto的名字在我的心中已经成为一个符号，一种信念——我知道这将支持我走过人生的一大段旅程！
　　漩涡鸣人（Uzumaki Naruto），这个曾经名不见经传的小人物，靠着自己顽强的毅力与坚定的信念追求自己的梦想，在最后的最后，终究会成为一个万众瞩目的人物。
 　　被他的这种顽强、乐观的性格所改变的角色实在不少。最出名的还是我爱罗（上图左）。我爱罗是砂隐的忍者，与鸣人最大的相同之处是在他的体内也封印着一个恶魔“砂之守鹤”，即一尾。而鸣人体内被四代（应该是他的父亲）封印了九尾妖狐。也正是由于这样的特殊性的存在，他们在各自的村子里都饱受歧视。但是，在这样的大背景下，二者却发展成了两种对立的结果。我爱罗——不断地杀人；鸣人——以火影为目标不断努力着。然而，其二者的目的却是相同的，即依靠他们的这些行为来获得大家的认同。很显然，我爱罗的行为只能使事情变得更糟，而鸣人选择的道路虽然漫长艰苦却无疑是“唯一的最优解”。就这样，我爱罗被人称为怪物——这样的情形没有丝毫改变；鸣人被人称为傻瓜（因为整嚷着要当五代火影），但却逐渐出现了接受他并关心他的角色：伊卢卡、卡卡西、小樱、佐助（他的关心与其他人不同，但是也在这里写出，并留待后文讨论）、手纲……这样下去，结局似乎已经很明显了……
　　转折点在中忍考试（中忍試験）：我爱罗被彻底激怒，使用忍术强迫自己入睡，令其体内的守鹤觉醒，成为一个极难对付的角色。鸣人使用自来也刚刚传授的口寄之术（即通灵术）召唤出了蛤蟆文太与守鹤对抗。在最后的关键时刻，鸣人与文太联合使用变身术，竞变成了九尾的形态，将守鹤抓住，由鸣人把我爱罗打醒，压制了守鹤的人格，使战局彻底逆转。战斗结束后，两个人全都倒在地上，没有一点力气了。我爱罗凭着最后的力气问鸣人为什么会这样拼命。就在这里，鸣人的回答让我爱罗的性格产生了180度的大逆转。之后，我爱罗就换了衣服，变得稍稍阳光了一些，并在以后追佐助的时候给了鸣人极大的帮助（在这里干掉了君麻吕——他也是个拥有血际限界的怪物，但是因为跟了大蛇丸，而走上了一条不归路……唉，可惜啊！要是早点碰到鸣人说不定也不会到今天这地步……）。后来砂隐引进木叶的忍者训练课程，我爱罗还收了唯一的一个徒弟（女的）。而在最新的一部中，我爱罗成了风影。在一开始的几集里，他与神秘组织晓的成员展开搏斗，成功阻止了他们破坏砂隐村的计划。这几集里面可以明显地看到我爱罗受到村民的爱戴，虽然稍嫌造作，但是这已经是一个巨大的转变了。然而晓的目的显然不在砂隐村的村民，他们关注的是我爱罗体内的一尾——砂之守鹤。像鸣人、我爱罗这写体内封印着尾兽的人被称为“人柱力”。在第三部里，晓为了收集所有人柱力的九只尾兽已经展开行动。我爱罗是第一个受害者，在保护砂隐村的一战中遭暗算，被晓的成员抽走了体内的尾兽，一命呜呼。
　　鸣人得知砂隐（是时与木叶同盟中）遭袭的消息后，接到手纲的命令，与卡卡西、小樱组成一个小队，前往砂隐支援。小樱留在了砂隐为被蝎重伤的傀儡师我爱罗的哥哥堪九郎解毒；之后，卡卡西队与凯小队汇合以后，追到了晓抽取尾兽的地方；樱与砂隐的老忍者千代婆婆联手打败了千代的孙子蝎，鸣人与卡卡西追缴并干掉了带走我爱罗尸体的迪达拉。在最新的250集最后，砂隐的千代婆婆准备用她的究级忍术救活我爱罗！太兴奋了！我还以为我爱罗真的就这么一去不复返了！。这集里面鸣人为我爱罗留下了眼泪，可见二人感情之深。他们因为体内都封印着尾兽等等共同点而产生了认同感。在上面的那张我爱罗与鸣人的CG中可以看到，我爱罗在主题表达上绝对不亚于鸣人。这样浓重的对比渲染足以让我爱罗坐上第一配角的宝座（当然也有人说是佐助，我觉得这纯属个人喜好……所以，佐助迷们就不要跟我争了^_^）。
　　除了我爱罗，在中忍考试中被鸣人转变的还有日向宁次、日向雏田，当然也包括宇智波佐助。日向家是因为一场误会，造成了宁次的心里扭曲。佐助的心理扭曲也是由家庭问题带来的。拥有强大血际限界写轮眼的佐助为了报仇，决心找到杀掉自己全家的哥哥宇智波鼬。鼬现在是晓的成员之一为了使万花筒写轮眼开眼，杀掉了全家。但是留下了佐助一个人，并以恶劣的言辞破坏佐助的幼小心灵。中忍考试让佐助看到了鸣人的变强。之后卡卡西教他了千鸟，于鸣人在楼顶决斗（千鸟 vs. 螺旋丸）被卡卡西化解之后就出走了。鸣人最后追到了佐助，并于他展开一场激战。虽有九尾的帮助，鸣人的实力仍不及咒印全开的佐助，败下阵来。佐助对待大蛇丸所“赐”咒印的态度也是与此产生了大转变。怀疑变成了肯定——这让他放下了所有的包袱投奔了大蛇丸，开始了一段追求力量的旅途。复仇心如此之强，其后的发展实难预料，但也不会逃出一个大致的框框，那就是逐渐变强，但也心灵也逐渐被邪恶所侵蚀……悲惨！这也是我不喜欢佐助的一大原因。
　　在这张刚刚下载的OST3中，最能表现主题的就是这首火之意志的继承者（火の意志を継ぐ者たち；注意最后的“たち”，这里用了复数）。火之意志的继承者们指的是那些拥有像鸣人那样顽强毅力与乐观心态，以自己的生命为赌注，努力保护他人的忍者们。虽然忍者曾经是战争机器，但是这部“火影忍者”，尤其是木叶村的形象，给了我们一个新的观点，令人耳目一新。
　　此外，在这张OST3的音乐中融入了许多国际化元素。最后的终结曲也掺合了些许交响的成分，有点像影武者（Kagemusha）的味道。从第一部到现在，火影明显有了国际化、电影化的趋势；PS3上也已经有游戏的。火影今后的发展实在令人期待啊！为了看到最后的大结局，相信很多人都会像我一样，热切地期待着每周一次的激动吧！
　　最后的时间就留给大家欣赏这动听的“火の意志を継ぐ者たち”吧！




附：
NARUTO -ナルト- オリジナルサウンドトラック III　目录:
 1 美しき碧い野獣      
 2 桜の季節      
 3 フェイク      
 4 危機また危機      
 5 ロック·リーのテーマ      
 6 舞      
 7 究極奥義      
 8 キメるってばよ！      
 9 嗚呼、師弟愛      
 10 復讐者      
 11 重は激      
 12 猿飛      
 13 火影      
 14 哀と愁      
 15 自来也のテーマ      
 16 波紋      
 17 首飾り揺れて     
 18 ブン太！      
 19 茶の国    
 20 忍びよる悪夢      
 21 五代目の闘い  
 22 英雄      
 23 火の意志を継ぐ者たち
以及最优美终结曲：火の意志を継ぐ者たち下载！
]]></description>
			<content:encoded><![CDATA[<blockquote>　　这个国庆真是郁闷，已经连续通宵三天了。今天玩《英雄传说6SC》到呕吐，遂删除之，粉碎之；睡了一觉醒来后，发誓忘掉它的所有画面。好在这第四天出现了奇迹，BTChina上网罗了一件宝贝：火影忍者OST3，试听之后大呼过瘾，于是写了下面的文字，并借此发泄一下近期郁闷的心情。</p></blockquote>
<p>　　初中到现在已经看过了不少日本动漫，从“古时候”的机器猫（又名“叮噹猫”）、X战记，到近年的海贼王、死亡笔记，最喜欢的一部莫过火影。回想假期最难过的时刻，下载已经出的200多集火影，连饭都不吃，从头看到尾之后，心情彻底由阴转晴，那叫一个爽啊！促使我心情转变的不单单是我非常喜欢的剧情，更是其积极的“立志——努力”这一主题。自那时起，Naruto的名字在我的心中已经成为一个符号，一种信念——我知道这将支持我走过人生的一大段旅程！</p>
<p>　　漩涡鸣人（Uzumaki Naruto），这个曾经名不见经传的小人物，靠着自己顽强的毅力与坚定的信念追求自己的梦想，在最后的最后，终究会成为一个万众瞩目的人物。</p>
<p><center><a href="http://blog.phil-idea.com/wp-content/uploads/2007/10/idler-et_com_200610821533333666.jpg" title="风与火"><img width="500" src="http://blog.phil-idea.com/wp-content/uploads/2007/10/idler-et_com_200610821533333666.jpg" alt="风与火" height="360" /></a></center> 　　被他的这种顽强、乐观的性格所改变的角色实在不少。最出名的还是<strong>我爱罗</strong>（上图左）。我爱罗是砂隐的忍者，与鸣人最大的相同之处是在他的体内也封印着一个恶魔“砂之守鹤”，即一尾。而鸣人体内被四代（应该是他的父亲）封印了九尾妖狐。也正是由于这样的特殊性的存在，他们在各自的村子里都饱受歧视。但是，在这样的大背景下，二者却发展成了两种对立的结果。我爱罗——不断地杀人；鸣人——以火影为目标不断努力着。然而，其二者的目的却是相同的，即依靠他们的这些行为来获得大家的认同。很显然，我爱罗的行为只能使事情变得更糟，而鸣人选择的道路虽然漫长艰苦却无疑是“唯一的最优解”。就这样，我爱罗被人称为怪物——这样的情形没有丝毫改变；鸣人被人称为傻瓜（因为整嚷着要当五代火影），但却逐渐出现了接受他并关心他的角色：伊卢卡、卡卡西、小樱、佐助（他的关心与其他人不同，但是也在这里写出，并留待后文讨论）、手纲……这样下去，结局似乎已经很明显了……</p>
<p>　　转折点在中忍考试（中忍試験）：我爱罗被彻底激怒，使用忍术强迫自己入睡，令其体内的守鹤觉醒，成为一个极难对付的角色。鸣人使用<strong>自来也</strong>刚刚传授的口寄之术（即通灵术）召唤出了蛤蟆文太与守鹤对抗。在最后的关键时刻，鸣人与文太联合使用变身术，竞变成了九尾的形态，将守鹤抓住，由鸣人把我爱罗打醒，压制了守鹤的人格，使战局彻底逆转。战斗结束后，两个人全都倒在地上，没有一点力气了。我爱罗凭着最后的力气问鸣人为什么会这样拼命。就在这里，鸣人的回答让我爱罗的性格产生了180度的大逆转。之后，我爱罗就换了衣服，变得稍稍阳光了一些，并在以后追佐助的时候给了鸣人极大的帮助（在这里干掉了君麻吕——他也是个拥有血际限界的怪物，但是因为跟了大蛇丸，而走上了一条不归路……唉，可惜啊！要是早点碰到鸣人说不定也不会到今天这地步……）。后来砂隐引进木叶的忍者训练课程，我爱罗还收了唯一的一个徒弟（女的）。而在最新的一部中，我爱罗成了风影。在一开始的几集里，他与神秘组织晓的成员展开搏斗，成功阻止了他们破坏砂隐村的计划。这几集里面可以明显地看到我爱罗受到村民的爱戴，虽然稍嫌造作，但是这已经是一个巨大的转变了。然而晓的目的显然不在砂隐村的村民，他们关注的是我爱罗体内的一尾——砂之守鹤。像鸣人、我爱罗这写体内封印着尾兽的人被称为“人柱力”。在第三部里，晓为了收集所有人柱力的九只尾兽已经展开行动。我爱罗是第一个受害者，在保护砂隐村的一战中遭暗算，被晓的成员抽走了体内的尾兽，一命呜呼。</p>
<p>　　鸣人得知砂隐（是时与木叶同盟中）遭袭的消息后，接到手纲的命令，与卡卡西、小樱组成一个小队，前往砂隐支援。小樱留在了砂隐为被蝎重伤的傀儡师我爱罗的哥哥堪九郎解毒；之后，卡卡西队与凯小队汇合以后，追到了晓抽取尾兽的地方；樱与砂隐的老忍者<strong>千代婆婆</strong>联手打败了千代的孙子<strong>蝎</strong>，鸣人与卡卡西追缴并干掉了带走我爱罗尸体的<strong>迪达拉</strong>。在最新的250集最后，砂隐的千代婆婆准备用她的究级忍术救活我爱罗！太兴奋了！我还以为我爱罗真的就这么一去不复返了！。这集里面鸣人为我爱罗留下了眼泪，可见二人感情之深。他们因为体内都封印着尾兽等等共同点而产生了认同感。在上面的那张我爱罗与鸣人的CG中可以看到，我爱罗在主题表达上绝对不亚于鸣人。这样浓重的对比渲染足以让我爱罗坐上第一配角的宝座（当然也有人说是佐助，我觉得这纯属个人喜好……所以，佐助迷们就不要跟我争了^_^）。</p>
<p>　　除了我爱罗，在中忍考试中被鸣人转变的还有<strong>日向宁次</strong>、<strong>日向雏田</strong>，当然也包括<strong>宇智波佐助</strong>。日向家是因为一场误会，造成了宁次的心里扭曲。佐助的心理扭曲也是由家庭问题带来的。拥有强大血际限界写轮眼的佐助为了报仇，决心找到杀掉自己全家的哥哥<strong>宇智波鼬</strong>。鼬现在是晓的成员之一为了使万花筒写轮眼开眼，杀掉了全家。但是留下了佐助一个人，并以恶劣的言辞破坏佐助的幼小心灵。中忍考试让佐助看到了鸣人的变强。之后卡卡西教他了千鸟，于鸣人在楼顶决斗（千鸟 vs. 螺旋丸）被卡卡西化解之后就出走了。鸣人最后追到了佐助，并于他展开一场激战。虽有九尾的帮助，鸣人的实力仍不及咒印全开的佐助，败下阵来。佐助对待大蛇丸所“赐”咒印的态度也是与此产生了大转变。怀疑变成了肯定——这让他放下了所有的包袱投奔了大蛇丸，开始了一段追求力量的旅途。复仇心如此之强，其后的发展实难预料，但也不会逃出一个大致的框框，那就是逐渐变强，但也心灵也逐渐被邪恶所侵蚀……悲惨！这也是我不喜欢佐助的一大原因。</p>
<p>　　在这张刚刚下载的OST3中，最能表现主题的就是这首火之意志的继承者（火の意志を継ぐ者たち；注意最后的“たち”，这里用了复数）。火之意志的继承者们指的是那些拥有像鸣人那样顽强毅力与乐观心态，以自己的生命为赌注，努力保护他人的忍者们。虽然忍者曾经是战争机器，但是这部“火影忍者”，尤其是木叶村的形象，给了我们一个新的观点，令人耳目一新。</p>
<p>　　此外，在这张OST3的音乐中融入了许多国际化元素。最后的终结曲也掺合了些许交响的成分，有点像影武者（Kagemusha）的味道。从第一部到现在，火影明显有了国际化、电影化的趋势；PS3上也已经有游戏的。火影今后的发展实在令人期待啊！为了看到最后的大结局，相信很多人都会像我一样，热切地期待着每周一次的激动吧！</p>
<p>　　最后的时间就留给大家欣赏这动听的“火の意志を継ぐ者たち”吧！</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7608233234547931";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>附：</p>
<p>NARUTO -ナルト- オリジナルサウンドトラック III　目录:</p>
<p> 1 美しき碧い野獣      <br />
 2 桜の季節      <br />
 3 フェイク      <br />
 4 危機また危機      <br />
 5 ロック·リーのテーマ      <br />
 6 舞      <br />
 7 究極奥義      <br />
 8 キメるってばよ！      <br />
 9 嗚呼、師弟愛      <br />
 10 復讐者      <br />
 11 重は激      <br />
 12 猿飛      <br />
 13 火影      <br />
 14 哀と愁      <br />
 15 自来也のテーマ      <br />
 16 波紋      <br />
 17 首飾り揺れて     <br />
 18 ブン太！      <br />
 19 茶の国    <br />
 20 忍びよる悪夢      <br />
 21 五代目の闘い  <br />
 22 英雄      <br />
 23 火の意志を継ぐ者たち</p>
<p>以及最优美终结曲：<a href="http://blog.phil-idea.com/wp-content/uploads/2007/10/23.mp3" title="火の意志を継ぐ者たち">火の意志を継ぐ者たち</a>下载！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/94/feed</wfw:commentRss>
<enclosure url="http://blog.phil-idea.com/wp-content/uploads/2007/10/23.mp3" length="3972019" type="audio/mpeg" />
		</item>
		<item>
		<title>Meta标签详解</title>
		<link>http://blog.phil-idea.com/archives/93</link>
		<comments>http://blog.phil-idea.com/archives/93#comments</comments>
		<pubDate>Thu, 27 Sep 2007 00:36:27 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[HTML]]></category>

		<category><![CDATA[IT]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/93</guid>
		<description><![CDATA[　　HTML通常在head标签中提供该文档的元数据（meta-information），用于描述网页的内容，这就是meta标签的功能。正确设置丰富的meta标签可以增加网站在搜索引擎和浏览器中的竞争力。
　　以下是来自W3C的定义：

META 标签元素
&#60;!ELEMENT META - O EMPTY　　　-- 基本信息 --&#62;
&#60;!ATTLIST META   %i18n;　　　　　-- lang, dir, for use with content -- 

   http-equiv  NAME　　#IMPLIED  -- 设定HTTP头 -- 

   name        NAME　　#IMPLIED  -- 元数据名称 -- 

   content     CDATA　#REQUIRED -- 相关联的信息 -- 

   scheme [...]]]></description>
			<content:encoded><![CDATA[<p>　　HTML通常在head标签中提供该文档的元数据（meta-information），用于描述网页的内容，这就是meta标签的功能。正确设置丰富的meta标签可以增加网站在搜索引擎和浏览器中的竞争力。</p>
<p>　　以下是来自W3C的定义：</p>
<blockquote>
<h4><samp class="edef">META</samp> 标签元素</h4>
<pre class="dtd-fragment">&lt;!ELEMENT <a href="http://www.w3.org/TR/html4/struct/global.html#edef-META" class="noxref"><samp class="einst">META</samp></a> - O EMPTY　　　-- 基本信息 --&gt;</pre>
<pre class="dtd-fragment">&lt;!ATTLIST META<Br />   <a href="http://www.w3.org/TR/html4/sgml/dtd.html#i18n">%i18n;</a>　　　　　-- <a href="http://www.w3.org/TR/html4/struct/dirlang.html#adef-lang">lang</a>, <a href="http://www.w3.org/TR/html4/struct/dirlang.html#adef-dir">dir</a>, for use with content --<Br /> 

   <a href="http://www.w3.org/TR/html4/struct/global.html#adef-http-equiv" class="noxref"><samp class="ainst-META">http-equiv</samp></a>  <a href="http://www.w3.org/TR/html4/types.html#type-name">NAME</a>　　#IMPLIED  -- 设定HTTP头 -- 

   <a href="http://www.w3.org/TR/html4/struct/global.html#adef-name-META" class="noxref"><samp class="ainst-META">name</samp></a>        <a href="http://www.w3.org/TR/html4/types.html#type-name">NAME</a>　　#IMPLIED  -- 元数据名称 -- 

   <a href="http://www.w3.org/TR/html4/struct/global.html#adef-content" class="noxref"><samp class="ainst-META">content</samp></a>     <a href="http://www.w3.org/TR/html4/types.html#type-cdata">CDATA</a>　#REQUIRED -- 相关联的信息 -- 

   <a href="http://www.w3.org/TR/html4/struct/global.html#adef-scheme" class="noxref"><samp class="ainst-META">scheme</samp></a>      <a href="http://www.w3.org/TR/html4/types.html#type-cdata">CDATA</a>　#IMPLIED  -- 信息的格式 -- 

   &gt;</pre>
<p><em>标签头: <strong>必须</strong>, 闭合: <strong>禁止</strong></em></p>
<p class="adef-list"><em>属性定义：</em></p>
<p class="adef-list">以下属性的值和含义与head标签profile的值有关:</p>
<dl>
<dt><samp class="adef">name</samp> = <em>name</em> [CS] </dt>
<dd>指定属性名.  </dd>
<dt><samp class="adef">content</samp> = <em>cdata</em> [CS] </dt>
<dd>（必须）指定属性值。  </dd>
<dt><samp class="adef">scheme</samp> = <em>cdata</em> [CS] </dt>
<dd>指定属性值的格式（取决于指定的profile） </dd>
<dt><samp class="adef">http-equiv</samp> = <em>name</em> [CI] </dt>
<dd>这个属性用以替代标签的name属性。HTTP服务器使用这个参数获取header的内容。</dd>
</dl>
</blockquote>
<p>　　head标签的profile属性用于指定meta信息的配置文件。客户端可以通过以下两种方式使用profile属性的值：</p>
<ul>
<li>作为全局唯一的名称. 客户端不需要真正下载配置文件就可以根据已知的配置信息针对meta元素进行相关操作。例如，搜索引擎可以发布一个接口用于遍历HTML文档的内容分类信息。支持这个功能的HTML的页面必须引用指定的profile。</li>
<li>作为一个连接. 客户端会下载profile文件并根据内容针对meta元素做出不同的操作。</li>
</ul>
<p>　　需要注意的是，scheme属性是与profile相关的。如：</p>
<blockquote><p>&lt;META scheme=&#8221;ISBN&#8221;  name=&#8221;identifier&#8221; content=&#8221;0-8230-2355-9&#8243;&gt;</p></blockquote>
<p>　　这将告诉客户端identifier属性是一个ISBN号。</p>
<p>　　在大多数情况下，你不需要指定这个profile，也不必关心profile带来的影响。需要了解更多，请参见：<a href="http://www.w3.org/TR/html4/struct/global.html#adef-profile">http://www.w3.org/TR/html4/struct/global.html#adef-profile</a>。当然，你可以记住<a href="http://dublincore.org/">DCORE</a>，这是W3C实例中提供的一个profile标准，其中定义了一系列属性，包括contributor, coverage, creator, date, description, publisher, relation, rights, title, types等元素。具体可参见：<a href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</a>。</p>
<p>　　下面提供的是一些实战案例，这可以使你的代码更加丰富：</p>
<ul>
<li><strong><em>指定关键字与页面描述信息：</em></strong></li>
</ul>
<blockquote><p><code>&lt;-- For speakers of US English --&gt;<br />
&lt;meta name="keywords" lang="en-us"<br />
         content="vacation, Greece, sunshine"&gt;<br />
&lt;-- For speakers of British English --&gt;<br />
&lt;meta name="keywords" lang="en"<br />
         content="holiday, Greece, sunshine"&gt;<br />
&lt;-- For speakers of French --&gt;<br />
&lt;meta name="keywords" lang="fr"<br />
         content="vacances, Grèce, soleil"&gt;</code></p></blockquote>
<p>　　上面的代码可以为不同的语言指定关键字信息，对于spider来说，这就是猎物。同样的方式可以用于description属性：</p>
<blockquote><p><code>&lt;meta name="content" lang="zh"<br />
         content="这是一个自由职业者的个人网站"&gt;</code></p></blockquote>
<p> <script type="text/javascript"><!--
google_ad_client = "pub-7608233234547931";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<ul>
<li><strong><em>指定HTTP Header：</em></strong></li>
</ul>
<p>　　在这里你可以设置丰富的信息，包括页面内容的<em>编码方式</em>：</p>
<blockquote><p><code>&lt;META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5"&gt;</code></p></blockquote>
<p>　　比如中文网站的charset值可以是gb2312，对于支持国际化的站点来说utf-8是个不错的选择。这会影响客户端的浏览效果。</p>
<p>　　<em>缓存：</em></p>
<blockquote><p><code>&lt;meta http-enquiv="Pragma" content="no-cache"&gt;</code></p></blockquote>
<p><font face="Verdana">　　很多浏览器为了加快浏览速度会缓存网页，指定Pragma值no-cache可以告诉浏览器每次都下载最新的页面。</font></p>
<p><font face="Verdana">　　<em>自动刷新：</em></font></p>
<blockquote><p><code>&lt;meta http-enquiv="Refresh" content="5;URL=http://www.yahoo.com"&gt;</code></p></blockquote>
<p><font face="Verdana">　　上面的代码告诉浏览器5秒种后自动刷新到<a href="http://www.yahoo.com/">http://www.yahoo.com</a>。如果不指定URL值，则自动刷新当前页面。</font></p>
<p><font face="Verdana">　　<em>显示窗口：</em></font></p>
<blockquote><p><code>&lt;meta http-enquiv="Window-Target" content="_top"&gt;</code></p></blockquote>
<p><font face="Verdana">　　上面的代码可以防止别人在框架里调用你的页面，即将浏览器窗口限制在顶层。</font></p>
<p><font face="Verdana">　　<em>页面语言：</em></font></p>
<blockquote><p><code>&lt;meta http-equiv="Content-Language" content="en-us"&gt;</code></p></blockquote>
<ul>
<li>其他</li>
</ul>
<p><font face="Verdana">　　<em>页面生成工具：</em></font></p>
<blockquote><p><code>&lt;meta name="generator" content="Wordpress 2.2"&gt;</code></p></blockquote>
<p><font face="Verdana">　　Wordpress生成的首页之中就有这么一段。</font></p>
<p><font face="Verdana">　　<em>有效期：</em></font></p>
<blockquote><p><code>&lt;meta http-equiv="expires" content="Wed, 09 Aug 2000 08:21:57 GMT"&gt;</code></p></blockquote>
<p><font face="Verdana">　　指定页面的有效期。需要注意的有两点：１．指定0防止页面被缓存，因为0是一个无效的日期；２．时间必须用RFC822格式</font></p>
<p><font face="Verdana">参考：</font></p>
<p><font face="Verdana">[1]　<a href="http://www.html-reference.com/META.htm">http://www.html-reference.com/META.htm</a></font></p>
<p><font face="Verdana">[2]　<a href="http://www.w3.org/TR/html4/struct/global.html#edef-META">http://www.w3.org/TR/html4/struct/global.html#edef-META</a></font></p>
<p><font face="Verdana">[3]　<a href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/93/feed</wfw:commentRss>
		</item>
		<item>
		<title>香烟加美酒　辣酱加馒头</title>
		<link>http://blog.phil-idea.com/archives/92</link>
		<comments>http://blog.phil-idea.com/archives/92#comments</comments>
		<pubDate>Mon, 24 Sep 2007 09:42:47 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[Gossip]]></category>

		<category><![CDATA[……]]></category>

		<category><![CDATA[大学生活]]></category>

		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/92</guid>
		<description><![CDATA[　　无可否认，这将是我接下来一段时间的生活方式。商品全面涨价：快客的茶叶蛋卖到了1块一只，食堂的馒头3毛一个（两口吞下）。为保证不饿肚子，唯有采用“营养丰富”的辣酱配以解决温饱的馒头一法才能度过这一“困难时期”；而香烟美酒则为时刻保持充足战斗力的必备要件！每每喝上一口女儿红，吸上一口白沙（现在只能抽得起白沙了……），这灵感啊……唉，它就来了！
　　但天天馒头辣酱也毕竟不是个办法，偶尔也可以出去改善一下。酸辣汤、红烧肉外加一盘玉米烙，吼吼，这可是每月一次的享受啊！看着自己手上的项目渐渐成型，这恐怕是如今唯一可以让我兴奋起舞的事情了。好在暑假时在江西吃了半个月的苦（其实是喝了半个月的酒……土烧、花堆……难忘啊！当然还有认识的全国各地的朋友！），米饭加咸菜也挺美味。相信这段“艰苦”生活马上就会结束！！
　　本学期第一天的课程无聊地结束了，伴着急促的铃声，我飞奔回宿舍，写下上面的文字——为了纪念将要度过的大学最后两年……
]]></description>
			<content:encoded><![CDATA[<p>　　无可否认，这将是我接下来一段时间的生活方式。商品全面涨价：快客的茶叶蛋卖到了1块一只，食堂的馒头3毛一个（两口吞下）。为保证不饿肚子，唯有采用“营养丰富”的辣酱配以解决温饱的馒头一法才能度过这一“困难时期”；而香烟美酒则为时刻保持充足战斗力的必备要件！每每喝上一口女儿红，吸上一口白沙（现在只能抽得起白沙了……），这灵感啊……唉，它就来了！</p>
<p>　　但天天馒头辣酱也毕竟不是个办法，偶尔也可以出去改善一下。酸辣汤、红烧肉外加一盘玉米烙，吼吼，这可是每月一次的享受啊！看着自己手上的项目渐渐成型，这恐怕是如今唯一可以让我兴奋起舞的事情了。好在暑假时在江西吃了半个月的苦（其实是喝了半个月的酒……土烧、花堆……难忘啊！当然还有认识的全国各地的朋友！），米饭加咸菜也挺美味。相信这段“艰苦”生活马上就会结束！！</p>
<p>　　本学期第一天的课程无聊地结束了，伴着急促的铃声，我飞奔回宿舍，写下上面的文字——为了纪念将要度过的大学最后两年……</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/92/feed</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript从入门到精通（二）——JavaScript基本语言元素（ECMAScript基础）</title>
		<link>http://blog.phil-idea.com/archives/73</link>
		<comments>http://blog.phil-idea.com/archives/73#comments</comments>
		<pubDate>Fri, 14 Sep 2007 08:44:39 +0000</pubDate>
		<dc:creator>Claude Lee</dc:creator>
		
		<category><![CDATA[ECMA]]></category>

		<category><![CDATA[IT]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[js]]></category>

		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://blog.phil-idea.com/archives/73</guid>
		<description><![CDATA[一、语法概况

大小写敏感；
弱类型——变量不需要指定某个特定的类型；
分行符“;”可有可无（但最好养成总是使用分行符的习惯　^_^）；
用 {} 指示代码段；
注释方法与C++相同：单行 //；多行 /*    */

更多内容请参见http://www.ecma-international.org；或者您可以直接在这里下载ECMA-262。
二、关键字
break　else　new　var　case　finally　return　void
catch　for　switch　while　continue　function　this　with
default　if　throw　delete　in　try　do　instanceof　typeof
　　为了以后的扩展，ECMA还规定了以下预保留字（Future Reserved Word）：
abstract　enum　int　short　boolean　export　
interface　static　byte　extends　long　super
char　final　native　synchronized　class　float
package　throws　const　goto　private　transient
debugger　implements　protected　volatile
double　import　public
　　使用这些FRW并不会报错，当然，是在相关功能被实现之前。
三、变量
　　１．定义
　　变量的定义很简单，由于不需要指定类型，只需用一个var即可：
var myVar = 666;
　　还可以用同一个var定义多个变量：
var nVar1 = 1, sVar2 = "test", bVar3 = false; // 变量类型并不一定相同
　　需要注意的是，变量的类型并不是维持声明时指定的类型不变：
var nVar1 = 1;
alert(nVar1 === 1); // 输出true
nVar1 = "1";
alert(nVar1 === 1); // 输出false
　　变量的命名只需要遵循以下两个原则：

首字符为：字母，_，$其中的任何一个；
剩下的字符可以是：字母，数字，_，$中的任意组合（当然还要排除关键字和预保留字）。

　　最后，到底是用骆驼法（Camel Notation）还是匈牙利法（Hungarian Type Notation）就全看你的习惯了。
　　２．变量值
　　一个变量可以赋予两类值：

值类型（Primitive Values）：存储在栈（Stack）
引用型（Reference Values）：存储在堆（Heap）

　　其中值类型总共有五种，它们分别是：Undefined，Null，Boolean，Number，String。令人惊讶的是，在大多数语言中String都是引用型，因为字符串的长度是可变的。然而ECMAScript则打破了这一常规，将String定义为值类型。
　　下面对于五种值类型详细说明：
　　Undefined:
　　该类型只有一个值：undefined，表示定义但为初始化的变量。需要注意的是，未指定返回值的函数实际上返回了undefined。
function func() {}
alert(func() == undefined); // --&#62; true
　　Null:
　　该类型只有一个值：null，表示一个不存在的对象。undefined是继承自null的值，因此有：
alert(null == undefined); // --&#62; true
　　Boolean:
　　该类型有两个值：true/false。在C++中，false和0是可以相互转化的。但是在Javascript中，false不可以转化为0，但当需要的时候0可以转化为false。
　　Number:
　　数制的表示与C++相同，0××表示8进制，0x×××表示16进制。需要注意的是，所有的算数操作均返回10进制的值。
　　ECMAScript中浮点数是以64-bit IEEE 754格式保存，虽说定义与C++基本相同：
var fNum [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>一、语法概况</strong></em></p>
<ul>
<li>大小写敏感；</li>
<li>弱类型——变量不需要指定某个特定的类型；</li>
<li>分行符“;”可有可无（但最好养成总是使用分行符的习惯　^_^）；</li>
<li>用 {} 指示代码段；</li>
<li>注释方法与C++相同：单行 //；多行 /*    */</li>
</ul>
<blockquote><p>更多内容请参见<a href="http://www.ecma-international.org/">http://www.ecma-international.org</a>；或者您可以直接在这里下载<a href="http://blog.phil-idea.com/wp-content/uploads/2007/09/ecma-262.pdf" title="ECMA-262">ECMA-262</a>。</p></blockquote>
<p><em><strong>二、关键字</strong></em></p>
<blockquote><p><code>break　else　new　var　case　finally　return　void<br />
catch　for　switch　while　continue　function　this　with<br />
default　if　throw　delete　in　try　do　instanceof　typeof</code></p></blockquote>
<p>　　为了以后的扩展，ECMA还规定了以下预保留字（Future Reserved Word）：</p>
<blockquote><p><code>abstract　enum　int　short　boolean　export　<br />
interface　static　byte　extends　long　super<br />
char　final　native　synchronized　class　float<br />
package　throws　const　goto　private　transient<br />
debugger　implements　protected　volatile<br />
double　import　public</code></p></blockquote>
<p>　　使用这些FRW并不会报错，当然，是在相关功能被实现之前。</p>
<p><em><strong>三、变量</strong></em></p>
<p>　　<em>１．定义</em></p>
<p>　　变量的定义很简单，由于不需要指定类型，只需用一个var即可：</p>
<blockquote><p><code>var myVar = 666;</code></p></blockquote>
<p>　　还可以用同一个var定义多个变量：</p>
<blockquote><p><code>var nVar1 = 1, sVar2 = "test", bVar3 = false; // 变量类型并不一定相同</code></p></blockquote>
<p>　　需要注意的是，变量的类型并不是维持声明时指定的类型不变：</p>
<blockquote><p><code>var nVar1 = 1;<br />
alert(nVar1 === 1); // 输出true<br />
nVar1 = "1";<br />
alert(nVar1 === 1); // 输出false</code></p></blockquote>
<p>　　变量的命名只需要遵循以下两个原则：</p>
<ul>
<li>首字符为：字母，_，$其中的任何一个；</li>
<li>剩下的字符可以是：字母，数字，_，$中的任意组合（当然还要排除关键字和预保留字）。</li>
</ul>
<p>　　最后，到底是用骆驼法（Camel Notation）还是匈牙利法（Hungarian Type Notation）就全看你的习惯了。</p>
<p>　　<em>２．变量值</em></p>
<p>　　一个变量可以赋予两类值：</p>
<ul>
<li>值类型（Primitive Values）：存储在栈（Stack）</li>
<li>引用型（Reference Values）：存储在堆（Heap）</li>
</ul>
<p>　　其中值类型总共有五种，它们分别是：Undefined，Null，Boolean，Number，String。令人惊讶的是，在大多数语言中String都是引用型，因为字符串的长度是可变的。然而ECMAScript则打破了这一常规，将String定义为值类型。</p>
<p>　　下面对于五种值类型详细说明：</p>
<p>　　<strong>Undefined:</strong></p>
<p>　　该类型只有一个值：undefined，表示定义但为初始化的变量。需要注意的是，未指定返回值的函数实际上返回了undefined。</p>
<blockquote><p><code>function func() {}<br />
</code><code>alert(func() == undefined); // --&gt; true</code></p></blockquote>
<p>　　<strong>Null:</strong></p>
<p>　　该类型只有一个值：null，表示一个不存在的对象。undefined是继承自null的值，因此有：</p>
<blockquote><p><code>alert(null == undefined); // --&gt; true</code></p></blockquote>
<p>　　<strong>Boolean:</strong></p>
<p>　　该类型有两个值：true/false。在C++中，false和0是可以相互转化的。但是在Javascript中，false不可以转化为0，但当需要的时候0可以转化为false。</p>
<p>　　<strong>Number:</strong></p>
<p>　　数制的表示与C++相同，<font color="#ff0000">0</font>××表示8进制，<font color="#ff0000">0x</font>×××表示16进制。需要注意的是，所有的算数操作均返回10进制的值。</p>
<p>　　ECMAScript中浮点数是以64-bit IEEE 754格式保存，虽说定义与C++基本相同：</p>
<blockquote><p><code>var fNum = 0.77; // also could be <font color="#ff0000">7.7e-1</font></code></p></blockquote>
<p>　　但是，在fNum参与计算之前，它一直是一个字符串！</p>
<p>　　关于Number类型，还有几个比较重要的常量：</p>
<p>　　<strong>Number</strong>.<em>MAX_VALUE</em>，<strong>Number</strong>.<em>MIN_VALUE</em>，<strong>Number</strong>.<em>POSITIVE_INFINITY</em>，<strong>Number</strong>.<em>NEGATIVE_INFINITY</em>，<em>NaN</em>。前面两个个顾名思义，就不做过多解释。对于无穷大实际上有一个<em>Infinity</em>值来表示，POSITIVE_INFINITY实际上是<em>+Infinity</em>，而NEGATIVE_INFINITY则是<em>-Infinity</em>。最后一个NaN表示的是：Not a Number，即非数字。一般当转换成数字失败时，返回NaN。但是有一点却非常奇怪：</p>
<blockquote><p><code>alert(NaN == NaN); // --&gt; <font color="#ff0000">false</font></code></p></blockquote>
<p>　　<strong>String:</strong></p>
<p>　　这是唯一不定长的原始数据类型。定义格式与Java相同。在C++中用单引号表示字符，而双引号表示字符串。但是在ECMAScript中，两种方式均表示字符串。</p>
<p><em><strong>四、操作符</strong></em></p>
<p>　　<em>１．算数</em></p>
<blockquote><p><code>+　-　*　/　%</code></p></blockquote>
<p>　　分别表示加减乘除和取余，这与C++相同。</p>
<p>　　<em>２．比较</em></p>
<blockquote><p><code>&gt;　&lt;　&gt;=　&lt;=　==　!=　===　!===</code></p></blockquote>
<p>　　这几个操作符，需要解释的是最后四个：</p>
<p>　　==和===的区别是，前者在比较前会进行类型转换（Equal），而后者不会（Indentical Equal）；!=和!==也是同样的规则。比如：</p>
<blockquote><p><code><br />
var nVar = 1, sVar = "1";<br />
alert(nVar == sVar); // --&gt; <font color="#ff0000">true</font><br />
alert(nVar === sVar); // &#8211;&gt; <font color="#ff0000">false</font><br />
</code></p></blockquote>
<p>　　<em>３．位操作</em></p>
<blockquote><p><code>~　&amp;　|　^　&lt;&lt;　&gt;&gt;　&gt;&gt;&gt;</code></p></blockquote>
<p>　　分别表示位否（NOT）/与（AND）/或（OR）/异或（XOR）/左移（Left Shift）/右移（Right Shift）/无符号右移（Unsigned Right Shift）。</p>
<p>　　<em>４．前缀后缀</em></p>
<blockquote><p><code>++　--</code></p></blockquote>
<p>　　<em>５．逻辑</em></p>
<blockquote><p><code>!　&amp;&amp;　||</code></p></blockquote>
<p>　　分别表示逻辑否（NOT）/与（AND）/或（OR）。</p>
<p>　　<em>６．赋值</em></p>
<blockquote><p><code>=　+=　-=　+=　/=　%= &lt;&lt;=　&gt;&gt;=　&gt;&gt;&gt;=</code></p></blockquote>
<p>　　<em>７．条件</em></p>
<blockquote><p><code>(condition) ? expression1 : expression2;</code></p></blockquote>
<p>　　当condition成立时，运行expression1，否则运行expression2。这是一个被广泛试用的操作符，可以简化代码。</p>
<p>　　<em>８．new/delete</em></p>
<blockquote><p><code>var oMyObject = new Object();<br />
......<br />
delete oMyObject;<br />
</code></p></blockquote>
<p>　　new/delete像C++中一样，用来创建和删除类的实例。需要注意的是，delete只能删除由程序员创建的对象。</p>
<p>　　<em>９．instanceof</em></p>
<p>　　判断对象是否为某个类的实例：</p>
<blockquote><p><code>function ClassA() {}<br />
</code><code>var o = new Object();<br />
var a = new ClassA();<br />
</code><code>document.writeln(o instanceof ClassA); // --&gt; false<br />
document.writeln(a instanceof ClassA); // --&gt; true</code></p></blockquote>
<p>　　<em>１０．typeof</em></p>
<p>　　返回指定对象的类型。该操作符只有可能返回五个值，它们分别是：undefined，boolean，number，string，object。前四个自不用多说了，如果返回值是最后一个object，则表示操作对象要么是一个对象的引用，要么是null。因为null一直是被作为对象的站位符看待的，所以null的类型是object也不必奇怪。</p>
<p>　　<em>１１．void</em></p>
<p>　　这个操作符可以让任何表达式返回undefined。这通常用于阻止返回不该返回的值。例如，在a标签的href中调用javascript时，为了避免页面被重写，可以这样撰写代码：</p>
<blockquote><p><code>&lt;a href="javascipt:void(window.open('about:blank'));" mce_href="javascipt:void(window.open('about:blank'));"&gt;CLICK&lt;/a&gt;</code></p></blockquote>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7608233234547931";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><em><strong>五、语句</strong></em></p>
<p>　　１．条件</p>
<blockquote><p><code>if (condition) {...} else if (condition2) {...} else {...}</code></p></blockquote>
<p>　　上面的代码展示了if条件语句的语法。需要注意的是，尽量养成用{}的习惯，即使代码块只有一行。这是为了避免出现逻辑混乱。如果代码过长，逻辑嵌套很多，则需要一些编码技巧了。如，在for或if的最后一个}加注释，注明条件，这也是避免逻辑混乱的方法。</p>
<p>　　２．循环</p>
<blockquote><p><code>do {...} whilte (condition)</code><code><code>while (condition) {...}</code></code><code><code>for (init;condition;step) {...}</code><code><code>for (prop in expression) {...}</code></code></code></p></blockquote>
<p>　　需要说明的是最后一个迭代循环。条件中的expression可以是一个对象，那么语句的意思就是遍历这个对象的所有成员；也可以是一个数组，则语句的意识是遍历这个数组的所有元素。例如：</p>
<blockquote><p><code>for (var prop in window) {<br />
　　alert(prop + " : " + window[prop]);<br />
}</code></p></blockquote>
<p>　　这段代码可以遍历window对象的所有成员，并逐一显示其名称和内容。<br />
　　此外在循环体中使用的 <code>break</code> 和 <code>condition</code> 语句也与C++/Java基本相同：</p>
<blockquote><p><code>outter:<br />
for (var prop in window) {<br />
　　for (innerProp in prop) {<br />
　　　　if (innerProp == "myProp") {<br />
　　　　　　break outter;<br />
　　　　}<br />
　　}<br />
}</code></p></blockquote>
<p>　　可以设置标签（Label）以控制循环的流程。</p>
<p>　　３．with语句</p>
<blockquote><p><code>with (obj) {<br />
　　alert(prop); // output the value of obj.prop<br />
}</code></p></blockquote>
<p>　　速度很慢，尽量不要用。</p>
<p>　　４．switch语句</p>
<blockquote><p><code>switch (obj) {<br />
　　case val1:<br />
　　　　break;<br />
　　case val2:<br />
　　　　break;<br />
　　default:<br />
}</code></p></blockquote>
<p>　　在ECMAScript中，case条件既可以是常量，也可以是变量。</p>
<p> <strong><em>六、函数</em></strong></p>
<p>　　函数是ECMAScript的核心！</p>
<blockquote><p><code>function myFunc(arg1, arg2, ..., argn) {<br />
　　...<br />
}</code></p></blockquote>
<p> 　　你可以像上面一样定义函数，和C++/Java不同的是，ECMAScript函数不可重载。重名的函数会被<strong>覆盖</strong>。更为关键的是，向ECMAScript函数传递的参数不限数量，不论定义时有多少参数。你可以通过arguments（Array）变量访问所有的参数。例如：</p>
<blockquote><p><code>function myFunc() {<br />
　　for (var arg in <em><strong>this</strong></em>.arguments) {<br />
　　　　alert(arg);<br />
　　}</code><code><br />
}</code></p></blockquote>
<p>　　上面的代码可以输出函数myFunc的所有参数。如果定义了参数列表，而传递的参数数量与定义的数量不同，则丢失的参数自动赋值为undefined，多出来的参数被忽略。<br />
　　需要注意的是，在ECMAScript中，函数也是对象（注意上面一段代码中的this），你可以通过类方式定义函数：</p>
<blockquote><p><code>var myFunc = new Function( arg1, arg2, ..., argn, funcBody );</code></p></blockquote>
<p>　　例如：</p>
<blockquote><p><code>var myFunc = new Function( arg1, "alert(arg1);" );</code></p></blockquote>
<p>　　但是这种定义方式非常慢，所以通常不建议使用。</p>
<p>　　<strong><em>闭包（Closures）</em></strong>：</p>
<p>　　闭包是指，函数体中使用了为经计算的变量，即引用了函数体以外的变量。比如在函数中使用全局变量：</p>
<blockquote><p><code>var nVar = 10;<br />
function myFunc(num1, num2) {<br />
　　function doAddition() {<br />
　　　　return num1 + num2 + nVar;<br />
　　}<br />
　　return doAddition();<br />
}</code></p></blockquote>
<p>　　上面的代码中，内层函数doAddition就是一个闭包。它的定义并没有一个参数，所有参与计算的变量均来自外部运行环境（capture from the execute environment）。</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7608233234547931";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>参考：</p>
<p>[1]　<strong>Professional JavaScript for Web Developers</strong>, 2005, by <em>Nicholas C. Zakas</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.phil-idea.com/archives/73/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
