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

<channel>
	<title>Nocoo.Weblog &#187; 服务器和集群技术</title>
	<atom:link href="http://www.nocoo.us/category/server-cluster/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nocoo.us</link>
	<description>Professional, Passion and Patient</description>
	<lastBuildDate>Sun, 27 Jun 2010 09:55:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>好吧，有失必有得</title>
		<link>http://www.nocoo.us/2009/10/lose-something-get-something/</link>
		<comments>http://www.nocoo.us/2009/10/lose-something-get-something/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 02:47:59 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[心情日记]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4093</guid>
		<description><![CDATA[前几日丢失了tongji.org.cn这个域名，郁闷了很久。 今天发现某人释放了nocoo.org这个域名。拿下吧。另，还发现同一个人上个月开了个网站nocoo (dot) net。继续郁闷&#8230;]]></description>
			<content:encoded><![CDATA[<p>前几日丢失了tongji.org.cn这个域名，郁闷了很久。<br />
今天发现某人释放了nocoo.org这个域名。拿下吧。另，还发现同一个人上个月开了个网站nocoo (dot) net。继续郁闷&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/lose-something-get-something/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Wave on my iPhone</title>
		<link>http://www.nocoo.us/2009/10/google-wave-on-my-iphone/</link>
		<comments>http://www.nocoo.us/2009/10/google-wave-on-my-iphone/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:54:10 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4088</guid>
		<description><![CDATA[Google Wave是不是一种迅速花掉全部流量的方式呢，呵呵。 速度是真的慢啊，输入速度更是不敢恭维，这种速度在with:public灌水是不太现实了，协同工作应该还行。 看好Google Wave加入Google Apps大家庭!!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nocoo.us/wp-content/uploads/2009/10/wave-on-iphone.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/10/wave-on-iphone.png" alt="wave-on-iphone" title="wave-on-iphone" width="320" height="480" class="alignnone size-full wp-image-4089" /></a></p>
<p>Google Wave是不是一种迅速花掉全部流量的方式呢，呵呵。<br />
速度是真的慢啊，输入速度更是不敢恭维，这种速度在with:public灌水是不太现实了，协同工作应该还行。<br />
看好Google Wave加入Google Apps大家庭!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/google-wave-on-my-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Wave and Reader 2.0</title>
		<link>http://www.nocoo.us/2009/10/google-wave-and-reader-2-0/</link>
		<comments>http://www.nocoo.us/2009/10/google-wave-and-reader-2-0/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:42:53 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Wave]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4077</guid>
		<description><![CDATA[with:public真的是个好地方，什么是真正的地球村呢？我想这就是了。 Google Wave中的with:public是一个公共wave的大集合，真的是大杂烩的大杂烩，什么都有&#8230;而且中文的内容很多很多，当然比较低俗，贴美女的，啥都有，不禁令我为wave开放后在中国的未来捏把汗。对了，提到with:public，Twitter的public timeline也不错，不过明显不如Google Wave那么2.0。 以前总是习惯于在Google Reader中定向地获取新信息，就好像填鸭一样，人家写什么，喂给你你就接着就行了，不用挪窝，打开Google Reader就行。现在在Wave上，信息渠道更加广泛了，说白了就是一片大森林，你自己出去觅食吧&#8230; 大家都知道，野生的鸭子更好吃一些。 上图，今天在Google Wave上发现的好东东，在线听歌服务——亦歌，音质不错哦，在公司不能乱装东西同学可以试用一下。]]></description>
			<content:encoded><![CDATA[<p>with:public真的是个好地方，什么是真正的地球村呢？我想这就是了。<br />
Google Wave中的with:public是一个公共wave的大集合，真的是大杂烩的大杂烩，什么都有&#8230;而且中文的内容很多很多，当然比较低俗，贴美女的，啥都有，不禁令我为wave开放后在中国的未来捏把汗。对了，提到with:public，Twitter的public timeline也不错，不过明显不如Google Wave那么2.0。<br />
以前总是习惯于在Google Reader中定向地获取新信息，就好像填鸭一样，人家写什么，喂给你你就接着就行了，不用挪窝，打开Google Reader就行。现在在Wave上，信息渠道更加广泛了，说白了就是一片大森林，你自己出去觅食吧&#8230;</p>
<p>大家都知道，野生的鸭子更好吃一些。</p>
<p><a href="http://www.nocoo.us/wp-content/uploads/2009/10/yige-google-wave.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/10/yige-google-wave-610x417.png" alt="yige-google-wave" title="yige-google-wave" width="610" height="417" class="alignnone size-large wp-image-4086" /></a></p>
<p>上图，今天在Google Wave上发现的好东东，在线听歌服务——<a href="http://www.1g1g.com">亦歌</a>，音质不错哦，在公司不能乱装东西同学可以试用一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/google-wave-and-reader-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>祝贺同济网论坛进入全球中文论坛100强</title>
		<link>http://www.nocoo.us/2009/10/tongji-net-top-100/</link>
		<comments>http://www.nocoo.us/2009/10/tongji-net-top-100/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 03:44:26 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4075</guid>
		<description><![CDATA[全球中文论坛100强排行，由2004年发起的一次评选后，在网络引起了很大的反响。时间已经过去了5年，经过新一轮的网络淘汰和洗牌，很多老的论坛已经倒下，也有很多新的论坛崛起，5年的时间对于网络论坛来说，实在是变化太大了，大到让我们已经无法认识以前，所以为了让大家重新了解全球中文论坛情况，我们发起这个评选活动，让大家重新认识现在的全球中文论坛状况。 http://bbs.ifeng.com/zhuanti/bbstop100/ 感谢CCTV，感谢MTV&#8230; 感谢我的简历上又能写上一个能让我骄傲的事件。blueonline说的话我现在还记得，希望在同济网论坛经历能让大家骄傲地在自己简历上写上那么一笔，就谢天谢地了。 不过其实大学论坛真的不好做。今天早晨在Google Wave上还得知武汉白云黄鹤站不幸的消息&#8230; 这些事情，纯技术是永远解决不了的。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nocoo.us/wp-content/uploads/2009/10/top-100-chs-bbs.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/10/top-100-chs-bbs.png" alt="top-100-chs-bbs" title="top-100-chs-bbs" width="610" height="143" class="alignnone size-full wp-image-4074" /></a></p>
<blockquote><p>全球中文论坛100强排行，由2004年发起的一次评选后，在网络引起了很大的反响。时间已经过去了5年，经过新一轮的网络淘汰和洗牌，很多老的论坛已经倒下，也有很多新的论坛崛起，5年的时间对于网络论坛来说，实在是变化太大了，大到让我们已经无法认识以前，所以为了让大家重新了解全球中文论坛情况，我们发起这个评选活动，让大家重新认识现在的全球中文论坛状况。<br />
<a href="http://bbs.ifeng.com/zhuanti/bbstop100/">http://bbs.ifeng.com/zhuanti/bbstop100/</a>
</p></blockquote>
<p>感谢CCTV，感谢MTV&#8230;<br />
感谢我的简历上又能写上一个能让我骄傲的事件。blueonline说的话我现在还记得，希望在同济网论坛经历能让大家骄傲地在自己简历上写上那么一笔，就谢天谢地了。<br />
不过其实大学论坛真的不好做。今天早晨在Google Wave上还得知武汉白云黄鹤站不幸的消息&#8230;<br />
这些事情，纯技术是永远解决不了的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/tongji-net-top-100/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google Wave Performance Issue</title>
		<link>http://www.nocoo.us/2009/10/google-wave-performance-issue/</link>
		<comments>http://www.nocoo.us/2009/10/google-wave-performance-issue/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 02:38:48 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Wave]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4071</guid>
		<description><![CDATA[最近的Google Wave用下来的感觉，对这个方向和思路是很看好的，因为一直以来我在寻找一种能够同时拥有IM的即时性和Email的绝对时间轴、存档性的方式，Google Wave显然是这个问题的最优解，通过Google Wave可以协同工作，甚至可以取代BBS。 昨天提到Google Wave是HTML 5的应用，大量使用了Ajax技术，带来的问题是显然的——太慢了&#8230; 打开with:public之后我的CPU开始狂转。Firebug统统关掉也没有丝毫好转。 目前的Google Wave采取限量邀请政策，只有第一代用户每个人能邀请几个人，被邀请的二代不能继续邀请（穷二代）。这样的性能显然不能支撑持续的邀请&#8230; 我对Google的数据处理能力是不怀疑的，相信有Gmail的基础，再大的Ajax数据请求都是能够处理的。看起来前端性能是如此重要！]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nocoo.us/wp-content/uploads/2009/10/google-wave.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/10/google-wave-610x417.png" alt="google-wave" title="google-wave" width="610" height="417" class="alignnone size-large wp-image-4072" /></a></p>
<p>最近的Google Wave用下来的感觉，对这个方向和思路是很看好的，因为一直以来我在寻找一种能够同时拥有IM的即时性和Email的绝对时间轴、存档性的方式，Google Wave显然是这个问题的最优解，通过Google Wave可以协同工作，甚至可以取代BBS。<br />
昨天提到Google Wave是HTML 5的应用，大量使用了Ajax技术，带来的问题是显然的——太慢了&#8230;<br />
打开with:public之后我的CPU开始狂转。Firebug统统关掉也没有丝毫好转。<br />
目前的Google Wave采取限量邀请政策，只有第一代用户每个人能邀请几个人，被邀请的二代不能继续邀请（穷二代）。这样的性能显然不能支撑持续的邀请&#8230;<br />
我对Google的数据处理能力是不怀疑的，相信有Gmail的基础，再大的Ajax数据请求都是能够处理的。看起来前端性能是如此重要！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/google-wave-performance-issue/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Firebug can make Gmail slow</title>
		<link>http://www.nocoo.us/2009/10/firebug-can-make-gmail-slow/</link>
		<comments>http://www.nocoo.us/2009/10/firebug-can-make-gmail-slow/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 07:52:33 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4066</guid>
		<description><![CDATA[“Firebug is known to make Gmail slow unless it is configured correctly.” For the best Gmail performance, we suggest disabling Firebug for www.google.com. Windows or Linux Users To disable Firebug: Open the Firebug pane in your Gmail tab by clicking the Firebug icon. Click the down arrow next to the Net tab, and select Disable [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nocoo.us/wp-content/uploads/2009/10/gmail-firebug.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/10/gmail-firebug-610x444.png" alt="gmail-firebug" title="gmail-firebug" width="610" height="444" class="alignnone size-large wp-image-4067" /></a></p>
<blockquote><p>
“Firebug is known to make Gmail slow unless it is configured correctly.”</p>
<p>For the best Gmail performance, we suggest disabling Firebug for www.google.com.</p>
<p><strong>Windows or Linux Users</strong><br />
To disable Firebug:</p>
<ol>
<li>Open the Firebug pane in your Gmail tab by clicking the Firebug icon.</li>
<li>Click the down arrow next to the <strong>Net</strong> tab, and select Disable monitor for mail.google.com</li>
<li>Repeat Step 2 on the <strong>Console</strong> and <strong>Script</strong> tabs.</li>
</ol>
<p>If you&#8217;d like to keep Firebug running, you may improve Gmail performance by following these steps:</p>
<ol>
<li>Click the green or red icon in the bottom right corner of the browser window to open Firebug.</li>
<li>Click the <strong>Console</strong> tab.</li>
<li>Select Options.</li>
<li>Uncheck Show XMLHttpRequests.</li>
<li>Click the Net tab.</li>
<li>Select Options.</li>
<li>Check Disable Network Monitoring.</li>
</ol>
<p><strong>Mac Users</strong><br />
To disable Firebug:</p>
<ol>
<li>Click the green or red icon in the bottom right corner of the browser window to open Firebug.</li>
<li>Click the bug icon in the top left corner of Firebug and select &#8216;Disable Firebug for mail.google.com.&#8217;</li>
</ol>
<p>If disabling Firebug for Gmail doesn&#8217;t improve performance results, you may have to entirely disable Firebug.
</p></blockquote>
<p>看起来Firebug的监控功能对这种大量应用Ajax的网站还是影响很大的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/firebug-can-make-gmail-slow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Wave与HTML 5</title>
		<link>http://www.nocoo.us/2009/10/google-wave-html-5/</link>
		<comments>http://www.nocoo.us/2009/10/google-wave-html-5/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 07:26:12 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Wave]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4061</guid>
		<description><![CDATA[如果你在Microsoft Internet Explorer 8下访问Google Wave，登陆后会发现上图的提示。 Google Wave是一个HTML 5应用，看起来Google一直走在了技术的前端，当年Ajax的发明以及Web 2.0的火热正是由于Google提供的Gmail带来的。这一次，Google为我们推开了HTML 5的大门，当然，是用波浪冲开的。 当然，占据用户比例大头的Microsoft Internet Explorer 8如果不能访问Google Wave这显然是一种悲剧，然后Google就做了Google Chrome Frame&#8230; 看着Google一头扎进IE的波涛洪流，我无语啊。没事搅这滩浑水干什么。]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/10/google-wave-ie8.png" alt="google-wave-ie8" title="google-wave-ie8" width="448" height="343" class="alignnone size-full wp-image-4062" /></p>
<p>如果你在Microsoft Internet Explorer 8下访问Google Wave，登陆后会发现上图的提示。<br />
Google Wave是一个HTML 5应用，看起来Google一直走在了技术的前端，当年Ajax的发明以及Web 2.0的火热正是由于Google提供的Gmail带来的。这一次，Google为我们推开了HTML 5的大门，当然，是用波浪冲开的。<br />
当然，占据用户比例大头的Microsoft Internet Explorer 8如果不能访问Google Wave这显然是一种悲剧，然后Google就做了<a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>&#8230;<br />
看着Google一头扎进IE的波涛洪流，我无语啊。没事搅这滩浑水干什么。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/google-wave-html-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Docs</title>
		<link>http://www.nocoo.us/2009/10/google-docs/</link>
		<comments>http://www.nocoo.us/2009/10/google-docs/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 03:31:55 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4050</guid>
		<description><![CDATA[拼音输入法无疑了，莫非是谷歌拼音输入法的效果？ 这可是产品啊，不是什么beta，注意点影响。]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/10/google-docs3.png" alt="google-docs3" title="google-docs3" width="540" height="503" class="alignnone size-full wp-image-4057" /><br />
拼音输入法无疑了，莫非是谷歌拼音输入法的效果？<br />
这可是产品啊，不是什么beta，注意点影响。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/10/google-docs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google搜索页面的新鲜东西</title>
		<link>http://www.nocoo.us/2009/09/google-something-new/</link>
		<comments>http://www.nocoo.us/2009/09/google-something-new/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 11:23:04 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4023</guid>
		<description><![CDATA[搜索结果中出现了题目外的另外一个链接，点击会自动跳转到文档的一个书签位置。莫非Google开始对重要文档页面进行特殊的处理？还是自动生成的摘要中，如果匹配到了某个书签之后的地方，就会这样显示呢？]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/09/google-inline.png" alt="google-inline" title="google-inline" width="589" height="526" class="alignnone size-full wp-image-4024" /></p>
<p>搜索结果中出现了题目外的另外一个链接，点击会自动跳转到文档的一个书签位置。莫非Google开始对重要文档页面进行特殊的处理？还是自动生成的摘要中，如果匹配到了某个书签之后的地方，就会这样显示呢？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/09/google-something-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Apps界面问题</title>
		<link>http://www.nocoo.us/2009/08/google-apps-rendoring-error/</link>
		<comments>http://www.nocoo.us/2009/08/google-apps-rendoring-error/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 09:08:42 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4008</guid>
		<description><![CDATA[图片，被拉伸了&#8230;]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/08/google-apps.png" alt="google-apps" title="google-apps" width="563" height="548" class="alignnone size-full wp-image-4009" /></p>
<p>图片，被拉伸了&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/08/google-apps-rendoring-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>你就这样死了么&#8230;</title>
		<link>http://www.nocoo.us/2009/08/die-so-early/</link>
		<comments>http://www.nocoo.us/2009/08/die-so-early/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 03:08:13 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=4001</guid>
		<description><![CDATA[这几天同济网服务器出了一系列故障。主要症状就是忽然系统卡住，任何HTTP请求发送到Squid之后不进行任何返回，最终time out。同时SSH连不上服务器进行管理，甚至连登陆期间的SSH认证信息都不能返回。 打电话叫机房一遍遍重启的结果是机器可以恢复一段时间正常运行，但是数十分钟之后再次hang。 今天早晨观察到了一次出错的过程。在我把所有服务软件（MySQL, Apahce, Squid）全部关掉的情况下，只是下载新版本MySQL和执行备份脚本过程中，所有其他控制台提示connection closed by remote host unexpectly，留下一个控制台提示这个： tongji kernel: EDAC MC0: UE page 0xa8810, offset 0x0, grain 4096, row 3, labels &#34;:&#34;: e7xxx UE My god，莫非内存完了&#8230; BTW，找人，在上海的可靠的人员，懂点Linux的需要进机房看看问题，至少备份下数据。]]></description>
			<content:encoded><![CDATA[<p>这几天同济网服务器出了一系列故障。主要症状就是忽然系统卡住，任何HTTP请求发送到Squid之后不进行任何返回，最终time out。同时SSH连不上服务器进行管理，甚至连登陆期间的SSH认证信息都不能返回。<br />
打电话叫机房一遍遍重启的结果是机器可以恢复一段时间正常运行，但是数十分钟之后再次hang。<br />
今天早晨观察到了一次出错的过程。在我把所有服务软件（MySQL, Apahce, Squid）全部关掉的情况下，只是下载新版本MySQL和执行备份脚本过程中，所有其他控制台提示connection closed by remote host unexpectly，留下一个控制台提示这个：<br />
<img src="http://www.nocoo.us/wp-content/uploads/2009/08/tongjinet-600x375.png" alt="tongjinet" title="tongjinet" width="600" height="375" class="alignnone size-large wp-image-4002" /></p>
<pre class="brush: sh">
tongji kernel: EDAC MC0: UE page 0xa8810, offset 0x0, grain 4096, row 3, labels &quot;:&quot;: e7xxx UE
</pre>
<p>My god，莫非内存完了&#8230;<br />
BTW，找人，在上海的可靠的人员，懂点Linux的需要进机房看看问题，至少备份下数据。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/08/die-so-early/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>We want IE 6 dead</title>
		<link>http://www.nocoo.us/2009/08/we-want-ie-6-dead/</link>
		<comments>http://www.nocoo.us/2009/08/we-want-ie-6-dead/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 01:29:43 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3989</guid>
		<description><![CDATA[IE6带给了我们那么多的麻烦。现在两个新版本的浏览器都已经发布，是时候宣布IE6的死刑了。即日起，使用IE6访问本站都会看到这样的提示： 如果您发现这样的提示，请升级您的浏览器。 关于IE6 no more 您可以在您的网站中插入这样的代码，加入IE6 no more计划。 &#60;!--[if lt IE 7]&#62; &#60;div style=&#34;border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative; margin-bottom:10px;&#34;&#62; &#60;div style=&#34;position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;&#34;&#62; &#60;a href=&#34;#&#34; onclick=&#34;javascript:this.parentNode.parentNode.style.display=&#039;none&#039;; return false;&#34;&#62; &#60;img src=&#34;http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg&#34; alt=&#34;关闭本通知&#34;/&#62; &#60;/a&#62; &#60;/div&#62; &#60;div style=&#34;width: 100%; margin: 0 [...]]]></description>
			<content:encoded><![CDATA[<p>IE6带给了我们那么多的麻烦。现在两个新版本的浏览器都已经发布，是时候宣布IE6的死刑了。即日起，使用IE6访问本站都会看到这样的提示：</p>
<p><img src="http://www.nocoo.us/wp-content/uploads/2009/08/ie6-dead.png" alt="ie6-dead" title="ie6-dead" width="610" height="429" class="alignnone size-full wp-image-3990" /></p>
<p>如果您发现这样的提示，请升级您的浏览器。</p>
<p>关于<a href="http://www.ie6nomore.com">IE6 no more</a><br />
<img src="http://www.nocoo.us/wp-content/uploads/2009/08/ie6nomore-logo.jpg" alt="ie6nomore-logo" title="ie6nomore-logo" width="406" height="104" class="alignnone size-full wp-image-3991" /></p>
<p>您可以在您的网站中插入这样的代码，加入IE6 no more计划。</p>
<pre class="brush: html">
&lt;!--[if lt IE 7]&gt;
&lt;div style=&quot;border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative; margin-bottom:10px;&quot;&gt;
    &lt;div style=&quot;position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;&quot;&gt;
        &lt;a href=&quot;#&quot; onclick=&quot;javascript:this.parentNode.parentNode.style.display=&#039;none&#039;; return false;&quot;&gt;
            &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg&quot; alt=&quot;关闭本通知&quot;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    &lt;div style=&quot;width: 100%; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;&quot;&gt;
        &lt;div style=&quot;width: 75px; float: left;&quot;&gt;
            &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg&quot; alt=&quot;Warning!&quot;/&gt;
        &lt;/div&gt;
        &lt;div style=&quot;width: 275px; float: left;&quot;&gt;
            &lt;div style=&quot;font-size: 14px; font-weight: bold; margin-top: 12px;&quot;&gt;
                您正在使用旧版本的浏览器
            &lt;/div&gt;
            &lt;div style=&quot;font-size: 12px; margin-top: 6px; line-height: 12px;&quot;&gt;
                为了在使用本站时获得更好的体验，请升级到一种现代浏览器。
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;div style=&quot;width: 75px; float: left;&quot;&gt;
            &lt;a href=&quot;http://www.firefox.com&quot;&gt;
                &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg&quot; alt=&quot;Firefox 3.5&quot;/&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div style=&quot;width: 75px; float: left;&quot;&gt;
            &lt;a href=&quot;http://www.browserforthebetter.com/download.html&quot;&gt;
                &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg&quot; alt=&quot;Internet Explorer 8&quot;/&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div style=&quot;width: 73px; float: left;&quot;&gt;
            &lt;a href=&quot;http://www.apple.com/safari/download/&quot;&gt;
                &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg&quot; alt=&quot;Safari 4&quot;/&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div style=&quot;float: left;&quot;&gt;
            &lt;a href=&quot;http://www.google.com/chrome&quot;&gt;
                &lt;img src=&quot;http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg&quot; alt=&quot;Google Chrome&quot;/&gt;
            &lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;![endif]--&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/08/we-want-ie-6-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于JavaScript多线程</title>
		<link>http://www.nocoo.us/2009/07/javascript-multithreading/</link>
		<comments>http://www.nocoo.us/2009/07/javascript-multithreading/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 15:34:08 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3970</guid>
		<description><![CDATA[你知道Web 2.0是什么吗？如果你只觉得Facebook，Gmail就是Web 2.0那你也太肤浅了些。说Ajax就是Web 2.0还接近一些。 这里不详细探讨Web 2.0是什么，不过我觉得2.0可以认为是两个线程。Ajax核心是异步请求，其实就是前台界面一个线程跑你的代码，然后浏览器在实现XmlHttpRequest的异步版本时不小心开了另一个线程去请求数据。然后这个不小心被人发现并大肆应用，加上互联网带宽增长的，程序变得更肆无忌惮，2.0个线程成就了互联网的新时代——Web 2.0。 进一步想，若是JavaScript干脆支持多线程你说怎么样？Web N.0哈哈。下面这段话告诉你这是不可能的： You must be &#8220;as tall as an NBA player&#8221; to hack on threaded systems, and that means most programmers should run away crying. But they don&#8217;t. Instead, as with most other sharp tools, the temptation is to show how big one is by picking up the [...]]]></description>
			<content:encoded><![CDATA[<p>你知道Web 2.0是什么吗？如果你只觉得Facebook，Gmail就是Web 2.0那你也太肤浅了些。说Ajax就是Web 2.0还接近一些。<br />
这里不详细探讨Web 2.0是什么，不过我觉得2.0可以认为是两个线程。Ajax核心是异步请求，其实就是前台界面一个线程跑你的代码，然后浏览器在实现XmlHttpRequest的异步版本时不小心开了另一个线程去请求数据。然后这个不小心被人发现并大肆应用，加上互联网带宽增长的，程序变得更肆无忌惮，2.0个线程成就了互联网的新时代——Web 2.0。</p>
<p>进一步想，若是JavaScript干脆支持多线程你说怎么样？Web N.0哈哈。下面这段话告诉你这是不可能的：</p>
<blockquote><p>You must be &#8220;as tall as an NBA player&#8221; to hack on threaded systems, and that means most programmers should run away crying. But they don&#8217;t. Instead, as with most other sharp tools, the temptation is to show how big one is by picking up the nearest singlethreaded code and jamming it into a multi-threaded embedding, or tempting racecondition fate otherwise. Occasionally the results are infamous, but too often, with only virtual fingers and limbs lost, no one learns.<br />
Threads violate abstractions six ways to Sunday. Mainly by creating race conditions, deadlock hazards, and pessimistic locking overhead. And still they don&#8217;t scale up to handle the megacore teraflop future.<br />
So my default answer to questions such as, &#8220;When will you add threads to JavaScript?&#8221; is: &#8220;over your dead body!&#8221; —— <a href="http://en.wikipedia.org/wiki/Brendan_Eich">Brendan Eich</a></p></blockquote>
<p>这可不是随便什么人说说的，Brendan Eich那可是Mozilla的CTO，JavaScript的创始人。基本上在可见的将来JavaScript是不打算支持多线程的。</p>
<p>这并不是说多线程这个金钥匙就关闭了，有很多办法可以实现并行的目的。</p>
<h2>Concurrent.Thread</h2>
<p>Concurrent.Thread实现了一个树，需要并行的函数注册到Concurrent.Thread里，然后由Concurrent.Thread安排到树中，主线程再进行模拟多线程操作。Concurrent.Thread库很大，实际中应该加载时性能不很好。<br />
以下文字引用自<a href="http://www.infoq.com/cn/articles/js_multithread">InfoQ</a>：</p>
<blockquote><p>让我来介绍一下Concurrent.Thread，它是一个允许JavaScript进行多线程编程的库，应用它可以大大缓解上文提及的在AJAX开发中与异步通信相关的困难。这是一个用JavaScript写成的免费的软件库，使用它的前提是遵守Mozilla Public License和GNU General Public License这两个协议。你可以从他们的<a href="http://sourceforge.net/projects/jsthread/">网站</a>下载源代码。</p>
<p>马上来下载和使用源码吧！假定你已经将下载的源码保存到一个名为Concurrent.Thread.js的文件夹里，在进行任何操作之前，先运行如下程序，这是一个很简单的功能实现：</p>
<pre class="brush: javascript">
Concurrent.Thread.create
    (function()
    {
        var i = 0;
        while (1) { document.body.innerHTML += i++ + &quot;&lt;br&gt;&quot;; }
    });
</pre>
<p>执行这个程序将会顺序显示从0开始的数字，它们一个接一个出现，你可以滚屏来看它。现在让我们来仔细研究一下代码，他应用while(1)条件制造了一个不会中止的循环，通常情况下，象这样不断使用一个并且是唯一一个线程的JavaScript程序会导致浏览器看起来象冻结了一样，自然也就不会允许你滚屏。那么为什么上面的这段程序允许你这么做呢？关键之处在于while(1)上面的那条Concurrent.Thread.create()语句，这是这个库提供的一个方法，它可以创建一个新线程。被当做参数传入的函数在这个新线程里执行，让我们对程序做如下微调：</p>
<pre class="brush: javascript">
function f (i)
{
    while (1) { document.body.innerHTML += i++ + &quot;&lt;br&gt;&quot;; }
}

Concurrent.Thread.create(f, 0);
Concurrent.Thread.create(f, 100000);
</pre>
<p>在这个程序里有个新函数f()可以重复显示数字，它是在程序段起始定义的，接着以f()为参数调用了两次create()方法，传给create()方法的第二个参数将会不加修改地传给f()。执行这个程序，先会看到一些从0开始的小数，接着是一些从100,000开始的大数，然后又是接着前面小数顺序的数字。你可以观察到程序在交替显示小数和大数，这说明两个线程在同时运行。</p>
<p>让我来展示Concurrent.Thread的另外一个用法。上面的例子调用create()方法来创建新线程。不调用库里的任何APIs也有可能实现这个目的。例如，前面那个例子可以这样写：</p>
<pre class="brush: html">
&lt;script type=&quot;text/javascript&quot; src=&quot;Concurrent.Thread.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/x-script.multithreaded-js&quot;&gt;
    var i = 1;
    while (1) { document.body.innerHTML += i++ + &quot;&lt;br&gt;&quot;; }
&lt;/script&gt;
</pre>
<p>在script 标签内，很简单地用JavaScript写了一个无穷循环。你应该注意到标签内的type属性，那里是一个很陌生的值(text/x-script.multithreaded-js)，如果这个属性被放在script标签内，那么Concurrent.Thread就会在一个新的线程内执行标签之间的程序。你应当记住一点，在本例一样，必须将Concurrent.Thread库包含进来。</p>
<p>有了Concurrent.Thread，就有可能自如的将执行环境在线程之间进行切换，即使你的程序很长、连续性很强。我们可以简要地讨论下如何执行这种操作。简言之，需要进行代码转换。粗略地讲，首先要把传递给create()的函数转换成一个字符串，接着改写直至它可以被分批分次执行。然后这些程序可以依照调度程序逐步执行。调度程序负责协调多线程，换句话说，它可以在适当的时候做出调整以便每一个修改后的函数都会得到同等机会运行。 Concurrent.Thread实际上并没有创建新的线程，仅仅是在原本单线程的基础上模拟了一个多线程环境。</p>
<p>虽然转换后的函数看起来是运行在不同的线程内，但是实际上只有一个线程在做这所有的事情。在转换后的函数内执行同步通信仍然会造成浏览器冻结，你也许会认为以前的那些问题根本就没有解决。不过你不必耽心，Concurrent.Thread提供了一个应用JavaScript 的异步通信方式实现的定制通信库，它被设计成当一个线程在等待服务器的响应时允许其它线程运行。这个通信库存于 Concurrent.Thread.Http下。它的用法如下所示：</p>
<pre class="brush: html">
&lt;script type=&quot;text/javascript&quot; src=&quot;Concurrent.Thread.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/x-script.multithreaded-js&quot;&gt;
    var req = Concurrent.Thread.Http.get(url, [&quot;Accept&quot;, &quot;*&quot;]);
    if (req.status == 200)
    {
        alert(req.responseText);
    }
    else
    {
        alert(req.statusText);
    }
&lt;/script&gt;
</pre>
<p>get()方法，就像它的名字暗示的那样，可以通过HTTP的GET方法获得指定URL的内容，它将目标URL作为第一个参数，将一个代表HTTP请求头的数组作为可选的第二个参数。get()方法与服务器交互，当得到服务器的响应后就返回一个XMLHttpRequest对象作为返回值。当get()方法返回时，已经收到了服务器响应，所以就没必要再用回调函数接收结果。自然，也不必再耽心当程序等待服务器的响应时浏览器冻结的情况了。另外，还有一个 post()方法可以用来发送数据到服务器：</p>
<pre class="brush: html">
&lt;script type=&quot;text/javascript&quot; src=&quot;Concurrent.Thread.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/x-script.multithreaded-js&quot;&gt;
    var req = Concurrent.Thread.Http.post(url, &quot;key1=val1&amp;amp;amp;key2=val2&quot;);
    alert(req.statusText);
&lt;/script&gt;
</pre>
<p>post()方法将目的URL作为第一个参数，要发送的内容作为第二个参数。像get()方法那样，你也可以将请求头作为可选的第三个参数。
</p></blockquote>
<h2>Simulating</h2>
<p>第二种方法是比较简单的模拟方式，也是通过一个线程去模拟多线程并行执行的过程。以下是库的实现：</p>
<pre class="brush: javascript">
//loops through an array in segments
var threadedLoop = function(array) {
	var self = this;

	//holds the threaded work
	var thread = {
		work: null,
		wait: null,
		index: 0,
		total: array.length,
		finished: false
	};

	//set the properties for the class
	this.collection = array;
	this.finish = function() { };
	this.action = function() { throw &quot;You must provide the action to do for each element&quot;; };
	this.interval = 1;

	//set this to public so it can be changed
	var chunk = parseInt(thread.total * .005);
	this.chunk = (chunk == NaN || chunk == 0) ? thread.total : chunk;

	//end the thread interval
	thread.clear = function() {
		window.clearInterval(thread.work);
		window.clearTimeout(thread.wait);
		thread.work = null;
		thread.wait = null;
	};

	//checks to run the finish method
	thread.end = function() {
		if (thread.finished) { return; }
		self.finish();
		thread.finished = true;
	};

	//set the function that handles the work
	thread.process = function() {
		if (thread.index &gt;= thread.total) { return false; }

		//thread, do a chunk of the work
		if (thread.work) {
			var part = Math.min((thread.index + self.chunk), thread.total);
			while (thread.index++ &lt; part) {
				self.action(self.collection[thread.index], thread.index, thread.total);
			}
		}
		else {

			//no thread, just finish the work
			while(thread.index++ &lt; thread.total) {
				self.action(self.collection[thread.index], thread.index, thread.total);
			}
		}

		//check for the end of the thread
		if (thread.index &gt;= thread.total) {
			thread.clear();
			thread.end();
		}

		//return the process took place
		return true;

	};

	//set the working process
	self.start = function() {
		thread.finished = false;
		thread.index = 0;
		thread.work = window.setInterval(thread.process, self.interval);
	};

	//stop threading and finish the work
	self.wait = function(timeout) {

		//create the waiting function
		var complete = function() {
			thread.clear();
			thread.process();
			thread.end();
		};

		//if there is no time, just run it now
		if (!timeout) {
			complete();
		}
		else {
			thread.wait = window.setTimeout(complete, timeout);
		}
	};

};

// Note: this class is not battle-tested, just personal testing on large arrays
</pre>
<p>搞点测试数据：</p>
<pre class="brush: javascript">
var array = [];
for (var i = 0; i &lt; 500000; i++) {
	array.push(&quot;this is some long string&quot;);
}
</pre>
<p>启动并行执行：</p>
<pre class="brush: javascript">
//create our new class
var work = new threadedLoop(array);

//create the action to compare each item with
work.action = function(item, index, total) {
	var check = (item == &quot;this is some long string comparison to slow it down&quot;);
	document.body.innerHTML = &quot;Item &quot; + index + &quot; of &quot; + total;
};

//another action to use when our loop is done
work.finish = function(thread) {
	alert(&quot;Thread finished!&quot;);
};

//and start our &#039;thread&#039;
work.start();
</pre>
<h2>GIF Image Hack</h2>
<p>这种方法是在国内网站见到的，蛮好玩的。原理就是搞一张gif图片，能动画的，会自动循环的那种。然后利用每次动画结束后的onload事件启动多个函数的执行。</p>
<pre class="brush: javascript">
var img = new Image();
img.src = &quot;images/animation.gif&quot;;
img.onload = function()
{
    alert(&quot;如要关闭请按住ESC键不放，并点击关闭按钮&quot;);
}
</pre>
<h2>参考资料</h2>
<ol>
<li><a href="http://www.infoq.com/cn/articles/js_multithread">InfoQ: JavaScript多线程编程简介</a></li>
<li><a href="http://www.tzwhx.com/newOperate/html/2/22/221/8944.html">javascript多线程的实现方法</a></li>
<li><a href="http://www.codeproject.com/Articles/37998/Simulate-Threading-Using-Javascript.aspx">Simulate Threading Using Javascript</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/07/javascript-multithreading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通过ping方式监测网站状态(PHP)</title>
		<link>http://www.nocoo.us/2009/06/php-ping/</link>
		<comments>http://www.nocoo.us/2009/06/php-ping/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 05:32:14 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3913</guid>
		<description><![CDATA[如题,那么个东西,可以一次性ping一堆网站,看看哪个挂掉了.方便系统管理员用的东西,不必被动地等用户来叫了才知道网站挂了.以前还写了个exe的,不过是会检查返回的页面是不是包含特定的关键字的,相比起来更有可信度,不然一个404的网站,ping返回还是正常的呢. 贴点关键代码: $result = ping_site($_POST[&#34;site&#34;]); $ip = &#34;N/A&#34;; $ttl = &#34;N/A&#34;; $time = &#34;N/A&#34;; if($result != &#34;Fail&#34;) { $start = stripos($result, &#34;from &#34;) + 5; $length = stripos($result, &#34;:&#34;) - stripos($result, &#34;from &#34;) - 5; $ip = substr($result, $start, $length); $start = stripos($result, &#34;ttl=&#34;) + 4; $length = stripos($result, &#34; time=&#34;) - stripos($result, &#34;ttl=&#34;) - [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/06/Picture-2-600x498.png" alt="Picture 2" title="Picture 2" width="600" height="498" class="alignnone size-large wp-image-3914" /></p>
<p>如题,那么个东西,可以一次性ping一堆网站,看看哪个挂掉了.方便系统管理员用的东西,不必被动地等用户来叫了才知道网站挂了.以前还写了个exe的,不过是会检查返回的页面是不是包含特定的关键字的,相比起来更有可信度,不然一个404的网站,ping返回还是正常的呢.</p>
<p>贴点关键代码:</p>
<pre class="brush: php">
$result = ping_site($_POST[&quot;site&quot;]);
$ip = &quot;N/A&quot;;
$ttl = &quot;N/A&quot;;
$time = &quot;N/A&quot;;

if($result != &quot;Fail&quot;)
{
    $start = stripos($result, &quot;from &quot;) + 5;
    $length = stripos($result, &quot;:&quot;) - stripos($result, &quot;from &quot;) - 5;
    $ip = substr($result, $start, $length);

    $start = stripos($result, &quot;ttl=&quot;) + 4;
    $length = stripos($result, &quot; time=&quot;) - stripos($result, &quot;ttl=&quot;) - 4;
    $ttl = substr($result, $start, $length);

    $start = stripos($result, &quot;time=&quot;) + 5;
    $length = stripos($result, &quot; ms&quot;) - stripos($result, &quot;time=&quot;) - 5;
    $time = substr($result, $start, $length).&quot; ms&quot;;

    echo &quot;&lt;td class=\&quot;success\&quot;&gt;&quot;.$_POST[&quot;site&quot;].&quot;&lt;/td&gt;&lt;td class=\&quot;success\&quot;&gt;&lt;img src=\&quot;images/success.png\&quot; alt=\&quot;Success\&quot; /&gt;&lt;/td&gt;&lt;td class=\&quot;success\&quot;&gt;$ip&lt;/td&gt;&lt;td class=\&quot;success\&quot;&gt;$ttl&lt;/td&gt;&lt;td class=\&quot;success\&quot;&gt;$time&lt;/td&gt;&lt;td&gt;&lt;a href=\&quot;http://&quot;.$_POST[&quot;site&quot;].&quot;\&quot;&gt;HTTP&lt;/a&gt;,&lt;a href=\&quot;#\&quot; title=\&quot;$result\&quot;&gt;Raw Data&lt;/a&gt;&lt;/td&gt;&quot;;
}
else
{
    echo &quot;&lt;td class=\&quot;fail\&quot;&gt;&quot;.$_POST[&quot;site&quot;].&quot;&lt;/td&gt;&lt;td class=\&quot;fail\&quot;&gt;&lt;img src=\&quot;images/fail.png\&quot; alt=\&quot;Fail\&quot; /&gt;&lt;/td&gt;&lt;td class=\&quot;fail\&quot;&gt;N/A&lt;/td&gt;&lt;td class=\&quot;fail\&quot;&gt;N/A&lt;/td&gt;&lt;td class=\&quot;fail\&quot;&gt;N/A&lt;/td&gt;&lt;td&gt;&lt;a href=\&quot;http://&quot;.$_POST[&quot;site&quot;].&quot;\&quot;&gt;HTTP&lt;/a&gt;,&lt;a href=\&quot;#\&quot; title=\&quot;$result\&quot;&gt;Raw Data&lt;/a&gt;&lt;/td&gt;&quot;;
}

function ping_site($target)
{
    $command = &quot;ping -c 1 $target&quot;;
    exec($command, $result);
    if($result[1] == &quot;&quot;) { return &quot;Fail&quot;; }
    else { return $result[1]; }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/06/php-ping/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>挑Google一个瑕疵</title>
		<link>http://www.nocoo.us/2009/06/google-flaw/</link>
		<comments>http://www.nocoo.us/2009/06/google-flaw/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:51:37 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3906</guid>
		<description><![CDATA[本人是完美主义者,所以会注意到这种小&#8221;问题&#8221;&#8230; 在橙色条最左端弧线处,有条border-bottom漏出了那么若干pixalpixel.同样的右边也是对称的情况. 我是在Mac OS X下用Safari 4.0.1 (5530.18)看到的效果. Google Analytics已经不是beta啦,检查要注意些噢&#8230;]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/06/google-analytics.png" alt="google-analytics" title="google-analytics" width="229" height="71" class="alignnone size-full wp-image-3907" /></p>
<p>本人是完美主义者,所以会注意到这种小&#8221;问题&#8221;&#8230;<br />
在橙色条最左端弧线处,有条border-bottom漏出了那么若干<del datetime="2009-10-08T09:03:13+00:00">pixal</del>pixel.同样的右边也是对称的情况.<br />
我是在Mac OS X下用Safari 4.0.1 (5530.18)看到的效果.<br />
Google Analytics已经不是beta啦,检查要注意些噢&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/06/google-flaw/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>利用SSH越过长城</title>
		<link>http://www.nocoo.us/2009/06/ssh-gfw/</link>
		<comments>http://www.nocoo.us/2009/06/ssh-gfw/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 23:21:42 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3896</guid>
		<description><![CDATA[Google.COM被屏蔽.这种事情发生了就没办法评论了,这算是什么事情呢? Anyway,对策还是经典办法,Proxy过去访问. 我想提示大家的是,一个具备SSH访问的服务器天生就可以作为一个代理服务器使用.如果这样一个服务器在中国以外,就可以通过这个Proxy访问到Google了. 有一种方式,可以在本机开上一个代理服务器,SSH连到服务器,然后把本机的SOCK通信都转发到服务器,通信出去. 这种方式称为&#8221;SSH Port Forwarding&#8221;,也直接称&#8221;SSH Tunnels&#8221; 方式非常简单: Windows下: 你需要Plink这款软件,下载下来,命令行进入它的目录,下面输入: plink your_username@somewherefree.com -D 1748 Mac OS X下: 之间打开Terminal,用系统自带的ssh客户端,输入以下命令: ssh -D 1748 your_username@somewherefree.com 这样,你的localhost,端口1748就是一个SOCK的代理服务器了.设置你的浏览器代理服务器选项即可. 注意: 这是一个SOCK代理服务器,不是常用的HTTP服务器. 端口1748的选择我不是随意的,1748代表&#8221;你去死吧&#8221;. 只想查邮件,又怕麻烦的同学不如到我机器上来查吧.我想没有Google阅读器你们一样能活着,不像我&#8230; 你知道最简单的办法么?只需要把DNS设置成OpenDNS就可以了&#8230;208.67.220.220和208.67.222.222,也许这次事件不是GFW,只是个不凑巧的DNS故障?]]></description>
			<content:encoded><![CDATA[<p>Google.COM被屏蔽.这种事情发生了就没办法评论了,这算是什么事情呢?<br />
Anyway,对策还是经典办法,Proxy过去访问.<br />
我想提示大家的是,一个具备SSH访问的服务器天生就可以作为一个代理服务器使用.如果这样一个服务器在中国以外,就可以通过这个Proxy访问到Google了.<br />
有一种方式,可以在本机开上一个代理服务器,SSH连到服务器,然后把本机的SOCK通信都转发到服务器,通信出去.<br />
这种方式称为&#8221;SSH Port Forwarding&#8221;,也直接称&#8221;SSH Tunnels&#8221;<br />
方式非常简单:</p>
<p><strong>Windows下:</strong><br />
你需要<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Plink</a>这款软件,下载下来,命令行进入它的目录,下面输入:</p>
<pre class="brush: sh">plink your_username@somewherefree.com -D 1748</pre>
<p><strong>Mac OS X下:</strong><br />
之间打开Terminal,用系统自带的ssh客户端,输入以下命令:</p>
<pre class="brush: sh">ssh -D 1748 your_username@somewherefree.com</pre>
<p>这样,你的localhost,端口1748就是一个SOCK的代理服务器了.设置你的浏览器代理服务器选项即可.</p>
<p><img src="http://www.nocoo.us/wp-content/uploads/2009/06/SSH-Tunnel.png" alt="SSH-Tunnel" title="SSH-Tunnel" class="alignnone size-full wp-image-3897" /></p>
<p><strong>注意:</strong></p>
<ol>
<li>这是一个SOCK代理服务器,不是常用的HTTP服务器.</li>
<li>端口1748的选择我不是随意的,1748代表&#8221;你去死吧&#8221;.</li>
<li>只想查邮件,又怕麻烦的同学不如到我机器上来查吧.我想没有Google阅读器你们一样能活着,不像我&#8230;</li>
<li>你知道最简单的办法么?只需要把DNS设置成OpenDNS就可以了&#8230;208.67.220.220和208.67.222.222,也许这次事件不是GFW,只是个不凑巧的DNS故障?</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/06/ssh-gfw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>粗糙的校内</title>
		<link>http://www.nocoo.us/2009/04/xiaonei-outage/</link>
		<comments>http://www.nocoo.us/2009/04/xiaonei-outage/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 00:47:26 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[SNS]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3774</guid>
		<description><![CDATA[是的,你可以毫无创意地不间断运行数个月之久,没人觉得怎么样.但是你终有一天要停电&#8230; 公告吧,粗糙了点,底裤漏了一点点&#8230; 校内恢复之后最近来访功能不见了,估计也与停电有关.这个估计应该是有根据的,就是下面这个关于Facebook系统架构的幻灯片.大家有时间的话还是看一下,很有启发意义的. http://www.slideshare.net/adityaagarwal/qcon]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nocoo.us/wp-content/uploads/2009/04/2009-04-14_0833.png"><img src="http://www.nocoo.us/wp-content/uploads/2009/04/2009-04-14_0833-600x363.png" alt="2009-04-14_0833" title="2009-04-14_0833" width="600" height="363" class="alignnone size-large wp-image-3775" /></a></p>
<p>是的,你可以毫无创意地不间断运行数个月之久,没人觉得怎么样.但是你终有一天要停电&#8230;<br />
公告吧,粗糙了点,底裤漏了一点点&#8230;</p>
<p>校内恢复之后最近来访功能不见了,估计也与停电有关.这个估计应该是有根据的,就是下面这个关于Facebook系统架构的幻灯片.大家有时间的话还是看一下,很有启发意义的.</p>
<p><a href="http://www.slideshare.net/adityaagarwal/qcon">http://www.slideshare.net/adityaagarwal/qcon</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/04/xiaonei-outage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何让文本块右边界对齐</title>
		<link>http://www.nocoo.us/2009/04/text-align-justify/</link>
		<comments>http://www.nocoo.us/2009/04/text-align-justify/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 16:01:37 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3734</guid>
		<description><![CDATA[1. 问题 前几日,一个网站客户提出,文本右边凹凸不齐,不好看,有没有办法让行尾对齐呢? 我的第一反映是不太可能吧,要计算字数和长度如何如何想得很复杂.其实无知很可怕&#8230; 2. 解决 问:你知道text-align属性可以取几个值吗? 答:left,right和center. 还漏下一个:justify.当text-align取了justify含义是分散对齐,会略微地对单词和字母之间的距离做调整. 3. 效果 不加text-align: justify;的效果 加了text-align: justify;的效果 4. 讨论 值justify可以使文本的两端都对齐。在两端对齐文本中，文本行的左右两端都放在父元素的内边界上。然后，调整单词和字母间的间隔，使各行的长度恰好相等。您也许已经注意到了，两端对齐文本在打印领域很常见。不过在CSS中，还需要多做些考虑。 要由用户代理（而不是CSS）来确定两端对齐文本如何拉伸，以填满父元素左右边界之间的空间。例如，有些浏览器可能只在单词之间增加额外的空间，而另外一些浏览器可能会平均分布字母间的额外空间（不过CSS规范特别指出，如果letter-spacing属性指定为一个长度值，“用户代理不能进一步增加或减少字符间的空间”）。还有一些用户代理可能会减少某些行的空间，使文本挤得更紧密。所有这些做法都会影响元素的外观，甚至改变其高度，这取决于用户代理的对齐选择影响了多少文本行。 CSS也没有指定应当如何处理连字符（注1）。大多数两端对齐文本都使用连字符将长单词分开放在两行上，从而缩小单词之间的间隔，改善文本行的外观。不过，由于CSS没有定义连字符行为，用户代理不太可能自动加连字符。因此，在CSS中，两端对齐文本看上去没有打印出来好看，特别是元素可能太窄，以至于每行只能放下几个单词。当然，使用窄设计元素是可以的，不过要当心相应的缺点。 注1：CSS中没有说明如何处理连字符，因为不同的语言有不同的连字符规则。规范没有尝试去调和这样一些很可能不完备的规则，而是干脆不提这个问题。 5. 参考资料 CSS text-align 属性]]></description>
			<content:encoded><![CDATA[<h3>1. 问题</h3>
<p>前几日,一个网站客户提出,文本右边凹凸不齐,不好看,有没有办法让行尾对齐呢?<br />
我的第一反映是不太可能吧,要计算字数和长度如何如何想得很复杂.其实无知很可怕&#8230;</p>
<h3>2. 解决</h3>
<blockquote><p>问:你知道text-align属性可以取几个值吗?<br />
答:left,right和center.</p></blockquote>
<p>还漏下一个:justify.当text-align取了justify含义是分散对齐,会略微地对单词和字母之间的距离做调整.</p>
<h3>3. 效果</h3>
<blockquote><p><img src="http://www.nocoo.us/wp-content/uploads/2009/04/2009-04-10_10421.png" alt="2009-04-10_10421" title="2009-04-10_10421" width="550" height="254" class="alignnone size-full wp-image-3743" /><br />
<strong>不加text-align: justify;的效果</strong></p></blockquote>
<blockquote><p><img src="http://www.nocoo.us/wp-content/uploads/2009/04/2009-04-10_10431.png" alt="2009-04-10_10431" title="2009-04-10_10431" width="550" height="254" class="alignnone size-full wp-image-3744" /><br />
<strong>加了text-align: justify;的效果</strong></p></blockquote>
<h3>4. 讨论</h3>
<blockquote><p>值justify可以使文本的两端都对齐。在两端对齐文本中，文本行的左右两端都放在父元素的内边界上。然后，调整单词和字母间的间隔，使各行的长度恰好相等。您也许已经注意到了，两端对齐文本在打印领域很常见。不过在CSS中，还需要多做些考虑。<br />
要由用户代理（而不是CSS）来确定两端对齐文本如何拉伸，以填满父元素左右边界之间的空间。例如，有些浏览器可能只在单词之间增加额外的空间，而另外一些浏览器可能会平均分布字母间的额外空间（不过CSS规范特别指出，如果letter-spacing属性指定为一个长度值，“用户代理不能进一步增加或减少字符间的空间”）。还有一些用户代理可能会减少某些行的空间，使文本挤得更紧密。所有这些做法都会影响元素的外观，甚至改变其高度，这取决于用户代理的对齐选择影响了多少文本行。<br />
CSS也没有指定应当如何处理连字符（注1）。大多数两端对齐文本都使用连字符将长单词分开放在两行上，从而缩小单词之间的间隔，改善文本行的外观。不过，由于CSS没有定义连字符行为，用户代理不太可能自动加连字符。因此，在CSS中，两端对齐文本看上去没有打印出来好看，特别是元素可能太窄，以至于每行只能放下几个单词。当然，使用窄设计元素是可以的，不过要当心相应的缺点。<br />
<strong>注1：</strong>CSS中没有说明如何处理连字符，因为不同的语言有不同的连字符规则。规范没有尝试去调和这样一些很可能不完备的规则，而是干脆不提这个问题。</p></blockquote>
<h3>5. 参考资料</h3>
<ol>
<li><a href="http://www.w3school.com.cn/css/pr_text_text-align.asp">CSS text-align 属性</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/04/text-align-justify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6个常见的IE渲染Bug及其修复方法</title>
		<link>http://www.nocoo.us/2009/04/ie-bugs/</link>
		<comments>http://www.nocoo.us/2009/04/ie-bugs/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 16:01:55 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[Web标准化研究]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[微软技术]]></category>
		<category><![CDATA[服务器和集群技术]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3721</guid>
		<description><![CDATA[1. size,padding和margin距离异常 在IE6中,各种size,padding和margin总是感觉怪怪的,有时候死活差那么几个像素.这时候可以使用单独为IE准备的CSS文件来纠正.只需要在页面头部加类似这样的CSS文件即可: &#60;!--[if IE 6]&#62; &#60;link rel=&#34;stylesheet&#34; href=&#34;css/ie6.css&#34; type=&#34;text/css&#34; media=&#34;screen&#34; /&#62; &#60;![EndIf]--&#62; 其中的ie.css是对主CSS文件中,那些在IE6下显示异常的元素,重新定义的CSS. 2. 块元素居中问题 在现代浏览器中,一个块元素,假设是一个p,设置了宽度,设置左右margin都是auto之后,渲染效果应该是居中.但是在IE中,必须对其父元素,假设是body,加text-align:center;才能看到居中效果: body { text-align: center; } 并且,你还要在子元素p里把继承的居中纠正回来: p { text-align: left; } 3. div最小高度不能低于12px的bug 如果你需要一个高度很小的div,假设说做一个分隔线之类,你会发现div最小高度不会低于12px.这时候要设置div的line-height: 0;才行. &#60;div style=&#34;line-height: 0px; height: 2px;&#34;&#62;&#60;/div&#62; 如果还是不行,你要在div里套一个p,并且指定这个p的line-height: 0;. &#60;div style=&#34;height: 2px;&#34;&#62;&#60;p style=&#34;line-height: 0px;&#34;&#62;&#60;/p&#62;&#60;/div&#62; 4. 浮动元素的双倍margin距离bug 这是一个非常严重的bug.你会发现你的侧边栏总会跑到第二行去显示,或者明明你计算好宽度,平分两半,还预留了些空隙,在Firefox显示正常,在屏幕左右分布的两个块元素,在IE下非换行不可.说起来应当是IE的float块元素,margin加倍渲染的bug. 这样的代码: .floatbox { float: left; width: 150px; height: [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nocoo.us/wp-content/uploads/2009/04/ie-bug.jpg" alt="ie-bug" title="ie-bug" width="550" height="143" class="alignnone size-full wp-image-3722" /></p>
<h3>1. size,padding和margin距离异常</h3>
<p>在IE6中,各种size,padding和margin总是感觉怪怪的,有时候死活差那么几个像素.这时候可以使用单独为IE准备的CSS文件来纠正.只需要在页面头部加类似这样的CSS文件即可:</p>
<pre class="brush: html">
&lt;!--[if IE 6]&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;css/ie6.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![EndIf]--&gt;
</pre>
<p>其中的ie.css是对主CSS文件中,那些在IE6下显示异常的元素,重新定义的CSS.</p>
<h3>2. 块元素居中问题</h3>
<p>在现代浏览器中,一个块元素,假设是一个p,设置了宽度,设置左右margin都是auto之后,渲染效果应该是居中.但是在IE中,必须对其父元素,假设是body,加text-align:center;才能看到居中效果:</p>
<pre class="brush: css">body { text-align: center; }</pre>
<p>并且,你还要在子元素p里把继承的居中纠正回来:</p>
<pre class="brush: css">p { text-align: left; }</pre>
<h3>3. div最小高度不能低于12px的bug</h3>
<p>如果你需要一个高度很小的div,假设说做一个分隔线之类,你会发现div最小高度不会低于12px.这时候要设置div的line-height: 0;才行.</p>
<pre class="brush: html">&lt;div style=&quot;line-height: 0px; height: 2px;&quot;&gt;&lt;/div&gt;</pre>
<p>如果还是不行,你要在div里套一个p,并且指定这个p的line-height: 0;.</p>
<pre class="brush: html">&lt;div style=&quot;height: 2px;&quot;&gt;&lt;p style=&quot;line-height: 0px;&quot;&gt;&lt;/p&gt;&lt;/div&gt;</pre>
<h3>4. 浮动元素的双倍margin距离bug</h3>
<p>这是一个非常严重的bug.你会发现你的侧边栏总会跑到第二行去显示,或者明明你计算好宽度,平分两半,还预留了些空隙,在Firefox显示正常,在屏幕左右分布的两个块元素,在IE下非换行不可.说起来应当是IE的float块元素,margin加倍渲染的bug.<br />
这样的代码:</p>
<pre class="brush: css">
.floatbox {
   float: left;
   width: 150px;
   height: 150px;
   margin: 5px 0 5px 100px;
   /*This last value applies the 100px left margin */
}
</pre>
<p>正确的渲染应该是这样:</p>
<p><img src="http://www.nocoo.us/wp-content/uploads/2009/04/marg-norm.gif" alt="marg-norm" title="marg-norm" width="504" height="166" class="alignnone size-full wp-image-3724" /></p>
<p>但是在IE5和IE6里,margin的100px被加倍,渲染成这个样子:</p>
<p><img src="http://www.nocoo.us/wp-content/uploads/2009/04/marg-doubled.gif" alt="marg-doubled" title="marg-doubled" width="504" height="166" class="alignnone size-full wp-image-3725" /></p>
<p>margin被加倍成了200px.<br />
浮动元素的双倍margin距离bug的出现条件和特点是:</p>
<ol>
<li>float块元素</li>
<li>margin方向与float方向相同,即float: left;的块只会加倍margin-left的值.</li>
<li>这个float块与其父容器的内边之间夹着这个margin的情况下,才会加倍.当前行的第二个float块,因为其左边不是父容器的内边,就不会出现这个bug.</li>
<li>浮动元素的双倍margin距离bug具备左右对称性.</li>
</ol>
<p>修复很简单,在所有float的元素的CSS中加入<strong>display: inline;</strong>即可.其实根据W3C对float的定义,当float具备left或者right时,display效果应当是<strong>不起作用的</strong>,除非是display: none;,但是指定了display: inline;确实让IE6正确显示了margin.</p>
<h3>5. 盒模型的bug</h3>
<p>看这样一段代码:</p>
<pre class="brush: css">
div#box {
   width: 100px;
   border: 2px solid black;
   padding: 10px;
}
</pre>
<p>根据盒模型定义,这个div的宽度应该是2+10+100+10+2=124px.大部分浏览器也是这样解析的,唯独IE6认为它是100px宽.<br />
这个bug会对布局带来严重影响.消除这个bug只需要在页首制定DTD即可.</p>
<pre class="brush: html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</pre>
<p>此前的一篇文章这样解释:在页首制定了DTD,浏览器就认定Web开发者知道并理解DTD,于是就会使用兼容标准的方式来解析和渲染页面.</p>
<h3>6. PNG图片不能透明bug</h3>
<p>在IE6中,PNG图片原本透明的部分被渲染成不透明的颜色.可以使用<a href="http://css-tricks.com/the-different-techniques-for-applying-the-png-hack/">这篇文章</a>提到的办法修复之.<br />
其实这个bug只会出现在设置为alpha透明方式的png图片上,导引色透明方式在IE6中则不会出现不能透明的bug.</p>
<p>参考资料</p>
<ul>
<li><a href="http://www.positioniseverything.net/explorer/doubled-margin.html">The IE5/6 Doubled Float-Margin Bug</a></li>
<li><a href="http://www.wipeout44.com/brain_food/css_ie_bug_fixes.asp">Internet Explorer CSS bug fixes</a></li>
<li><a href="http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/">IE CSS Bugs That’ll Get You Every Time</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/04/ie-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在南方网站设计</title>
		<link>http://www.nocoo.us/2009/04/zainanfangcom/</link>
		<comments>http://www.nocoo.us/2009/04/zainanfangcom/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 11:10:00 +0000</pubDate>
		<dc:creator>nocoo</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[作品发布]]></category>
		<category><![CDATA[开发心得]]></category>
		<category><![CDATA[心情日记]]></category>
		<category><![CDATA[服务器和集群技术]]></category>

		<guid isPermaLink="false">http://www.nocoo.us/?p=3697</guid>
		<description><![CDATA[最近在忙什么?很久没写文字了吧~ 这几天一连接了两个网站项目来做,成功地都变成了WordPress后台.为WordPress开发模板真的是一件只能用惬意来形容的事情.一旦习惯了WordPress的&#8221;方言&#8221;,强大的功能实现起来并不是一个梦. 整体感觉起来,WordPress中提供对每篇文章的自定义域是最强大的功能,简直提供了一个小型数据库,你可以定义成任何东西! 上图就是最近一直在做的一个网站,在南方,是一个诗社.]]></description>
			<content:encoded><![CDATA[<p>最近在忙什么?很久没写文字了吧~<br />
这几天一连接了两个网站项目来做,成功地都变成了WordPress后台.为WordPress开发模板真的是一件只能用惬意来形容的事情.一旦习惯了WordPress的&#8221;方言&#8221;,强大的功能实现起来并不是一个梦.<br />
整体感觉起来,WordPress中提供对每篇文章的自定义域是最强大的功能,简直提供了一个小型数据库,你可以定义成任何东西!</p>
<p><a href="http://www.nocoo.us/wp-content/uploads/2009/04/zainanfang.jpg"><img src="http://www.nocoo.us/wp-content/uploads/2009/04/zainanfang-600x975.jpg" alt="zainanfang" title="zainanfang" width="600" height="975" class="alignnone size-large wp-image-3698" /></a></p>
<p>上图就是最近一直在做的一个网站,<a href="http://www.zainanfang.com">在南方</a>,是一个诗社.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nocoo.us/2009/04/zainanfangcom/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
