<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" 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/" version="2.0">

<channel>
	<title>Gea-Suan Lin's BLOG</title>
	
	<link>http://blog.gslin.org</link>
	<description>幹壞事是進步最大的原動力</description>
	<lastBuildDate>Mon, 09 Nov 2009 23:12:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/gslin" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>CDNetworks 的負面 PR</title>
		<link>http://blog.gslin.org/archives/2009/11/10/2157/</link>
		<comments>http://blog.gslin.org/archives/2009/11/10/2157/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 23:10:19 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Joke]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Recreation]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2157</guid>
		<description><![CDATA[我有利用 Twitter Search 的 feed 訂閱一些關鍵字，其中幾個就是跟 CDN (Content Delivery Network) 有關的關鍵字，包括了幾個比較大的 CDN 公司名稱，以及我們在用的 CDN 公司名稱 (我們用的是 Panther Express，二月的時候被 CDNetworks 收購)。
剛剛爬起來看到 feed 裡面一堆 CDNetworks 的資訊，但又看不懂到底是什麼鬼，看了官方網頁也看不出來發生什麼事情 (被 Google 併購？但也不太對，才剛看到 Admob 被買，同時就要再併購韓國的上市公司？)，結果翻其他的 feed 的時候在 TechCrunch 上面看到發生什麼事情了：「Here’s Some PR For You, CDNetworks」。
內容如同標題，我看完笑得超開心的 XDDD
我猜這應該是韓國總公司的 PR team 幹的事情？美國搞 PR 的單位應該很清楚 FTC 在十月的時候要求任何的利益交換都必須被揭露，不論是公司還是個人：「FTC Publishes Final Guides Governing Endorsements, Testimonials」。
另外 TechCrunch 自己就有用 cotendo [...]]]></description>
			<content:encoded><![CDATA[<p>我有利用 <a href="http://search.twitter.com/">Twitter Search</a> 的 feed 訂閱一些關鍵字，其中幾個就是跟 CDN (<a href="http://en.wikipedia.org/wiki/Content_delivery_network">Content Delivery Network</a>) 有關的關鍵字，包括了幾個比較大的 CDN 公司名稱，以及我們在用的 CDN 公司名稱 (我們用的是 <a href="http://www.pantherexpress.net/">Panther Express</a>，二月的時候被 <a href="http://www.cdnetworks.com/">CDNetworks</a> 收購)。</p>
<p>剛剛爬起來看到 feed 裡面一堆 CDNetworks 的資訊，但又看不懂到底是什麼鬼，看了官方網頁也看不出來發生什麼事情 (被 <a href="http://www.google.com/">Google</a> 併購？但也不太對，才剛看到 <a href="http://www.admob.com/">Admob</a> 被買，同時就要再併購韓國的上市公司？)，結果翻其他的 feed 的時候在 <a href="http://www.techcrunch.com/">TechCrunch</a> 上面看到發生什麼事情了：「<a href="http://www.techcrunch.com/2009/11/09/heres-some-pr-for-you-cdnetworks/">Here’s Some PR For You, CDNetworks</a>」。</p>
<p>內容如同標題，我看完笑得超開心的 XDDD</p>
<p>我猜這應該是韓國總公司的 PR team 幹的事情？美國搞 PR 的單位應該很清楚 <a href="http://www.ftc.gov/">FTC</a> 在十月的時候要求任何的利益交換都必須被揭露，不論是公司還是個人：「<a href="http://www.ftc.gov/opa/2009/10/endortest.shtm">FTC Publishes Final Guides Governing Endorsements, Testimonials</a>」。</p>
<p>另外 TechCrunch 自己就有用 <a href="http://www.cotendo.com/">cotendo</a> (在頁面裡可以看到 <code>cache0.techcrunch.com</code>，CNAME 指到 cotendo 的 CDN 上)，也曾經贊助過 TechCrunch，不得不說很厲害&#8230; XD</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=gAAl4Vb51rg:ILcwXjyeZL4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=gAAl4Vb51rg:ILcwXjyeZL4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=gAAl4Vb51rg:ILcwXjyeZL4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=gAAl4Vb51rg:ILcwXjyeZL4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/10/2157/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>字型瀏覽網站 myFontbook</title>
		<link>http://blog.gslin.org/archives/2009/11/10/2156/</link>
		<comments>http://blog.gslin.org/archives/2009/11/10/2156/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 22:39:52 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2156</guid>
		<description><![CDATA[在 TechCrunch 上看到 myFontbook 這個字型瀏覽網站：「The Font Kingdom: Search, Explore, Create, and Download Fonts for Free」，測了一下發現還蠻好用的，連中文字型都可以測&#8230;
在 IE7 與 Firefox 3.6b3pre 上面看都相當頓，看起來只能在 Google Chrome 上跑&#8230;
文章裡提到的其他幾個站測起來的感覺還好而且，不過有一些站整理了很多字型檔可以用，倒是可以利用&#8230;
]]></description>
			<content:encoded><![CDATA[<p>在 <a href="http://www.techcrunch.com/">TechCrunch</a> 上看到 <a href="http://www.myfontbook.com/">myFontbook</a> 這個字型瀏覽網站：「<a href="http://www.techcrunch.com/2009/11/07/the-font-kingdom-search-explore-create-and-download-fonts-for-free/">The Font Kingdom: Search, Explore, Create, and Download Fonts for Free</a>」，測了一下發現還蠻好用的，連中文字型都可以測&#8230;</p>
<p>在 IE7 與 <a href="http://www.mozilla.com/firefox/">Firefox</a> 3.6b3pre 上面看都相當頓，看起來只能在 <a href="http://www.google.com/chrome">Google Chrome</a> 上跑&#8230;</p>
<p>文章裡提到的其他幾個站測起來的感覺還好而且，不過有一些站整理了很多字型檔可以用，倒是可以利用&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=6VPAMCQYDpw:3CmpuTqu3b0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=6VPAMCQYDpw:3CmpuTqu3b0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=6VPAMCQYDpw:3CmpuTqu3b0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=6VPAMCQYDpw:3CmpuTqu3b0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/10/2156/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RefControl (對 Referer/Referrer 動手腳的套件) 在 3.6 可以正常運作了…</title>
		<link>http://blog.gslin.org/archives/2009/11/10/2155/</link>
		<comments>http://blog.gslin.org/archives/2009/11/10/2155/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 17:39:00 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2155</guid>
		<description><![CDATA[RefControl 是一套在 Firefox 上控制 Referer 的工具，在 Google Reader 裡面看無名或是其他家的圖片很好用。
前陣子換 Firefox 3.6 後發現上面不能跑 RefControl，寫個信給原作者問看看，他就把問題找出來並修正了。在原始網站上已經有 0.8.13 了，等個幾天 Firefox 的頁面上面應該就會一起更新。(等 review 中)
本來是用 Mason，雖然 Mason 可以用 Regular Expression，但缺少簡單的機制加入白名單的功能反而造成不少困擾。最大的問題在於在設定所有站台都送出 Host-only Referer 後，無法很簡單的設定白名單，必須考驗自己的 regular expression 編寫能力，在 exclude list 裡面一條一條設&#8230; 反倒是 RefControl 可以直接設某些 domain 為 &#8220;Normal&#8221;，所以就換回來囉&#8230;
主要是最近才發現在博客來買新書 (輕小說與漫畫) 大多數都有 79 折，加上書套費用比書局便宜，沒有必要特地去書局拿&#8230; 但博客來的系統不知道是誰設計的，Referer 擋的超嚴格，登入頁與結帳頁光送 http://www.books.com.tw/ 是不會過的&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stardrifter.org/refcontrol/">RefControl</a> 是一套在 <a href="http://www.mozilla.com/firefox/">Firefox</a> 上控制 Referer 的工具，在 <a href="http://www.google.com/reader">Google Reader</a> 裡面看無名或是其他家的圖片很好用。</p>
<p>前陣子換 Firefox 3.6 後發現上面不能跑 RefControl，寫個信給原作者問看看，他就把問題找出來並修正了。在原始網站上已經有 0.8.13 了，等個幾天 Firefox 的頁面上面應該就會一起更新。(等 review 中)</p>
<p>本來是用 <a href="https://addons.mozilla.org/en-US/firefox/addon/10636">Mason</a>，雖然 Mason 可以用 Regular Expression，但缺少簡單的機制加入白名單的功能反而造成不少困擾。最大的問題在於在設定所有站台都送出 Host-only Referer 後，無法很簡單的設定白名單，必須考驗自己的 regular expression 編寫能力，在 exclude list 裡面一條一條設&#8230; 反倒是 RefControl 可以直接設某些 domain 為 &#8220;Normal&#8221;，所以就換回來囉&#8230;</p>
<p>主要是最近才發現在<a href="http://www.books.com.tw/">博客來</a>買新書 (<a href="http://zh.wikipedia.org/wiki/%E8%BC%95%E5%B0%8F%E8%AA%AA">輕小說</a>與<a href="http://zh.wikipedia.org/wiki/%E6%BC%AB%E7%94%BB">漫畫</a>) 大多數都有 79 折，加上書套費用比書局便宜，沒有必要特地去書局拿&#8230; 但博客來的系統不知道是誰設計的，Referer 擋的超嚴格，登入頁與結帳頁光送 <code>http://www.books.com.tw/</code> 是不會過的&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=9k7_6PTMI5w:Q-UeFfoo02I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=9k7_6PTMI5w:Q-UeFfoo02I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=9k7_6PTMI5w:Q-UeFfoo02I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=9k7_6PTMI5w:Q-UeFfoo02I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/10/2155/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>無論如何都應該修改的 MySQL 預設值</title>
		<link>http://blog.gslin.org/archives/2009/11/10/2154/</link>
		<comments>http://blog.gslin.org/archives/2009/11/10/2154/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 16:49:59 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2154</guid>
		<description><![CDATA[Jeremy Zawodny 寫了一篇「Fixing Poor MySQL Default Configuration Values」提到 MySQL 有不少非常有問題的預設值，在安裝後無論如何都應該修改。他在文章裡拉出了四個惱人的設定值&#8230;
首先是 max_connect_errors，當某一個 host 送了過多的錯誤 query 時就會擋掉這個 host 的權限。這個設定無論是在共用或是獨立的環境裡，這個值的用途都非常奇怪：在共用的環境下，我可以利用這個功能惡搞其他人，把與自己同一台 web 的站台搞爛。在獨立的環境下，擋掉自己做什麼？
第三個的 skip-name-resolve 也是一個很詭異的選項，每個連線進來就跑一次 DNS 反解？MySQL 又不是 Internet 服務&#8230;
既然 Jeremy Zawodny 提了，這陣子應該有機會改&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://jeremy.zawodny.com/">Jeremy Zawodny</a> 寫了一篇「<a href="http://jeremy.zawodny.com/blog/archives/011421.html">Fixing Poor MySQL Default Configuration Values</a>」提到 <a href="http://dev.mysql.com/">MySQL</a> 有不少非常有問題的預設值，在安裝後無論如何都應該修改。他在文章裡拉出了四個惱人的設定值&#8230;</p>
<p>首先是 <code>max_connect_errors</code>，當某一個 host 送了過多的錯誤 query 時就會擋掉這個 host 的權限。這個設定無論是在共用或是獨立的環境裡，這個值的用途都非常奇怪：在共用的環境下，我可以利用這個功能惡搞其他人，把與自己同一台 web 的站台搞爛。在獨立的環境下，擋掉自己做什麼？</p>
<p>第三個的 <code>skip-name-resolve</code> 也是一個很詭異的選項，每個連線進來就跑一次 DNS 反解？MySQL 又不是 Internet 服務&#8230;</p>
<p>既然 Jeremy Zawodny 提了，這陣子應該有機會改&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=4TxlLP6iZNk:88tYFhBGV9s:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=4TxlLP6iZNk:88tYFhBGV9s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=4TxlLP6iZNk:88tYFhBGV9s:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=4TxlLP6iZNk:88tYFhBGV9s:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/10/2154/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lighttpd 1.4.25rc1</title>
		<link>http://blog.gslin.org/archives/2009/11/08/2153/</link>
		<comments>http://blog.gslin.org/archives/2009/11/08/2153/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 15:34:26 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2153</guid>
		<description><![CDATA[lighttpd 的 dev team 好像抓到重點了，與其發展 1.5，不如先從改善 1.4 開始吸引更多人使用 lighttpd，而且要儘量「release early, release often」，以其拉近與 nginx 的差距，並且吸引更多人參與，累積能量：「PRE-RELEASE: lighttpd 1.4.25rc1-r2692」。
這次的重點還是 bugfix，外加兩個小功能。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lighttpd.net/">lighttpd</a> 的 dev team 好像抓到重點了，與其發展 1.5，不如先從改善 1.4 開始吸引更多人使用 lighttpd，而且要儘量「<a href="http://www.catb.org/~esr//writings/homesteading/cathedral-bazaar/ar01s04.html">release early, release often</a>」，以其拉近與 <a href="http://nginx.net/">nginx</a> 的差距，並且吸引更多人參與，累積能量：「<a href="http://blog.lighttpd.net/articles/2009/11/08/pre-release-lighttpd-1-4-25rc1-r2692">PRE-RELEASE: lighttpd 1.4.25rc1-r2692</a>」。</p>
<p>這次的重點還是 bugfix，外加兩個小功能。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=aqmKkIu8z-A:LdfEtBIAopA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=aqmKkIu8z-A:LdfEtBIAopA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=aqmKkIu8z-A:LdfEtBIAopA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=aqmKkIu8z-A:LdfEtBIAopA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/08/2153/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 2.2 worker MPM 與 mod_fastcgi 的問題</title>
		<link>http://blog.gslin.org/archives/2009/11/07/2152/</link>
		<comments>http://blog.gslin.org/archives/2009/11/07/2152/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 15:10:56 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2152</guid>
		<description><![CDATA[我發現到某一組機器的 apache 2.2 (worker MPM) 偶而會 coredump，大約七月的時候決定跳下去找原因，在編了有 debuig symbol 的 httpd 後 (跑起來後用 gdb 放著跑，coredump 時會被 gdb 攔下來，如果 stack 沒被弄爛的話，有機會看到爛在哪裡)，發現是 mod_fastcgi 沒有正確處理 non-threadsafe function 造成的問題，在「修正 mod_fastcgi 在 threading 環境下會 coredump 的 bug 」這篇我有提過。
我在「getgrgid() and getpwent() not thread-safe causes segfault in worker MPM」(原 mailing list 沒有開放 archive，所以必須到 gmane 查) 把 patch 丟上去，不過看起來 mod_fastcgi 不太會出新版了。
所以在 FreeBSD 上面就需要自立救濟&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>我發現到某一組機器的 apache 2.2 (worker MPM) 偶而會 coredump，大約七月的時候決定跳下去找原因，在編了有 debuig symbol 的 httpd 後 (跑起來後用 <a href="http://www.gnu.org/software/gdb/">gdb</a> 放著跑，coredump 時會被 gdb 攔下來，如果 stack 沒被弄爛的話，有機會看到爛在哪裡)，發現是 <a href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html">mod_fastcgi</a> 沒有正確處理 non-threadsafe function 造成的問題，在「<a href="http://blog.gslin.com/2009/07/modfastcgi-threading-coredump-bug.html">修正 mod_fastcgi 在 threading 環境下會 coredump 的 bug </a>」這篇我有提過。</p>
<p>我在「<a href="http://article.gmane.org/gmane.comp.web.fastcgi.devel/2801">getgrgid() and getpwent() not thread-safe causes segfault in worker MPM</a>」(原 mailing list 沒有開放 archive，所以必須到 gmane 查) 把 patch 丟上去，不過看起來 mod_fastcgi 不太會出新版了。</p>
<p>所以在 <a href="http://www.freebsd.org/">FreeBSD</a> 上面就需要自立救濟&#8230; 在安裝 <a href="http://www.freshports.org/ports-mgmt/portconf">portsconf</a> 後，就可以在 /usr/local/etc/ports.conf 內對 <a href="http://www.freshports.org/www/mod_fastcgi">www/mod_fastcgi</a> 指定 patch 的參數：</p>
<blockquote><p><code>www/mod_fastcgi: NO_CHECKSUM=yes | PATCH_SITES=http://site/path/ | PATCHFILES=mod_fastcgi-2.4.6-threadsafepatch.patch.gz</code></p></blockquote>
<p>然後把 patch 丟上 http://site/path/mod_fastcgi-2.4.6-threadsafepatch.patch.gz 裡面。NO_CHECKSUM 是因為我們的 patch 不在 distfiles 內，所以得這樣搞&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=dk9YD31r8iw:mCpm1JiCmwc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=dk9YD31r8iw:mCpm1JiCmwc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=dk9YD31r8iw:mCpm1JiCmwc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=dk9YD31r8iw:mCpm1JiCmwc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/07/2152/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>InnoDB 將修正 Table Scan 導致的效率低落問題</title>
		<link>http://blog.gslin.org/archives/2009/11/06/2151/</link>
		<comments>http://blog.gslin.org/archives/2009/11/06/2151/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 19:37:57 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2151</guid>
		<description><![CDATA[在 Mark Callaghan 的 blog 上看到的好消息，新版的 InnoDB 將不會因為 table scan 而導致整個 buffer pool 被清空了：「InnoDB plugin gets better again」。
依照「InnoDB buffer pool can be severely affected by table scans」，增加了 innodb_old_blocks_pct 與 innodb_old_blocks_time，利用一些設定避免 buffer pool 被大量清空。這個方法不是很完美，但應該是堪用的，在 5.1.41 的 InnoDB Plugin 應該就會看到。
]]></description>
			<content:encoded><![CDATA[<p>在 <a href="http://mysqlha.blogspot.com/">Mark Callaghan</a> 的 blog 上看到的好消息，新版的 <a href="http://www.innodb.com/">InnoDB</a> 將不會因為 table scan 而導致整個 buffer pool 被清空了：「<a href="http://mysqlha.blogspot.com/2009/11/innodb-plugin-gets-better-again.html">InnoDB plugin gets better again</a>」。</p>
<p>依照「<a href="http://bugs.mysql.com/bug.php?id=45015">InnoDB buffer pool can be severely affected by table scans</a>」，增加了 <code>innodb_old_blocks_pct</code> 與 <code>innodb_old_blocks_time</code>，利用一些設定避免 buffer pool 被大量清空。這個方法不是很完美，但應該是堪用的，在 5.1.41 的 InnoDB Plugin 應該就會看到。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=Xuts2AzqvwI:TUiG4s81T-g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=Xuts2AzqvwI:TUiG4s81T-g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=Xuts2AzqvwI:TUiG4s81T-g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=Xuts2AzqvwI:TUiG4s81T-g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/06/2151/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>美國政府將有權力要求 ISP 阻擋網站</title>
		<link>http://blog.gslin.org/archives/2009/11/05/2149/</link>
		<comments>http://blog.gslin.org/archives/2009/11/05/2149/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 14:48:10 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Political]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2149</guid>
		<description><![CDATA[在 Slashdot 上看到美國國會通過議案 (以 41 比 28)，要求 ISP 必須配合阻擋某些「不法性質」的網站，在新聞稿上面寫的包括色情網站與侵權網站，另外還包括金融犯罪的網站：「Congress may require ISPs to block fraud sites」。
也就是說，這項議案授權美國政府，要求 ISP 阻擋某些美國政府管不到的網站。由於全球網路的交換中心在美國，如果在美國的網路系統可以被政府用命令要求阻擋某些網站，會有很嚴重的影響。
因為這個比數看起來不是參議院或是眾議院的全額，看新聞稿是「The House Financial Services Committee」通過的，不確定是不是政府內的草案，接下來看 EFF 會有怎麼樣的回應，以及其他的後續報導&#8230;
]]></description>
			<content:encoded><![CDATA[<p>在 <a href="http://slashdot.org/">Slashdot</a> 上看到<a href="http://www.loc.gov/">美國國會</a>通過議案 (以 41 比 28)，要求 ISP 必須配合阻擋某些「不法性質」的網站，在新聞稿上面寫的包括色情網站與侵權網站，另外還包括金融犯罪的網站：「<a href="http://yro.slashdot.org/story/09/11/05/1318230/Congress-May-Require-ISPs-To-Block-Certain-Fraud-Sites">Congress may require ISPs to block fraud sites</a>」。</p>
<p>也就是說，這項議案授權美國政府，要求 ISP 阻擋某些美國政府管不到的網站。由於全球網路的交換中心在美國，如果在美國的網路系統可以被政府用命令要求阻擋某些網站，會有很嚴重的影響。</p>
<p>因為這個比數看起來不是<a href="http://zh.wikipedia.org/wiki/%E7%BE%8E%E5%9B%BD%E5%8F%82%E8%AE%AE%E9%99%A2">參議院</a>或是<a href="http://zh.wikipedia.org/wiki/%E7%BE%8E%E5%9B%BD%E4%BC%97%E8%AE%AE%E9%99%A2">眾議院</a>的全額，看新聞稿是「The House Financial Services Committee」通過的，不確定是不是政府內的草案，接下來看 <a href="http://www.eff.org/">EFF</a> 會有怎麼樣的回應，以及其他的後續報導&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=ax3JIhLC-go:mUBkt4_vWPY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=ax3JIhLC-go:mUBkt4_vWPY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=ax3JIhLC-go:mUBkt4_vWPY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/05/2149/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 佔有率超過 IE6 了…</title>
		<link>http://blog.gslin.org/archives/2009/11/04/2148/</link>
		<comments>http://blog.gslin.org/archives/2009/11/04/2148/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 11:34:15 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2148</guid>
		<description><![CDATA[上個月的瀏覽器市場佔有率調查出爐了，在敵消我漲的情況下，Firefox 總算是超越了 IE6 的佔有率：「October 2009 browser stats: Firefox finally passes IE6」，在 StatCounter Global Stats 也可以看到類似的數據。
]]></description>
			<content:encoded><![CDATA[<p>上個月的瀏覽器市場佔有率調查出爐了，在敵消我漲的情況下，<a href="http://www.mozilla.com/firefox/">Firefox</a> 總算是超越了 IE6 的佔有率：「<a href="http://arstechnica.com/microsoft/news/2009/11/october-2009-browser-stats-firefox-finally-passes-ie6.ars">October 2009 browser stats: Firefox finally passes IE6</a>」，在 <a href="http://gs.statcounter.com/">StatCounter Global Stats</a> 也可以看到類似的數據。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=1KAsSnUdWR0:BRXx57zV0fo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=1KAsSnUdWR0:BRXx57zV0fo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=1KAsSnUdWR0:BRXx57zV0fo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=1KAsSnUdWR0:BRXx57zV0fo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/04/2148/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL 上大量刪除的技巧</title>
		<link>http://blog.gslin.org/archives/2009/11/04/2146/</link>
		<comments>http://blog.gslin.org/archives/2009/11/04/2146/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 10:12:56 +0000</pubDate>
		<dc:creator>Gea-Suan Lin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Murmuring]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gslin.org/?p=2146</guid>
		<description><![CDATA[在「大表删除数据的思路」這篇提到 MySQL 刪除的技巧。
MySQL 的刪除不建議直接刪，也就是像這種 query 應該要避免：
DELETE FROM `table` WHERE `lastupdated_at` &#60; 1234567890
因為在巨大的 table 裡面，這類的 query 可能會跑幾分鐘。
一般建議多幾筆 query 刪除：
DELETE FROM `table` WHERE `lastupdated_at` &#60; 1234567890 ORDER BY `id` LIMIT 0, 10000
跑到適當地條件成立時為止。
會需要這樣設計，其中一個主要的原因是因為 MySQL 的 replication 架構：在 master 上面的寫入時是 multi-threading，但在 slave 上面的更新卻只有一個 thread。所以，如果有單一 query 跑太久，會造成有一段時間 master/slave 資料不一致。
另外一個可能的原因是 table 使用 MyISAM。因為 MyISAM 寫入時會鎖住 table，如果花太久時間會使得 SELECT 要等待 query 結束，這點在有 web [...]]]></description>
			<content:encoded><![CDATA[<p>在「<a href="http://www.ourmysql.com/archives/767">大表删除数据的思路</a>」這篇提到 <a href="http://dev.mysql.com/">MySQL</a> 刪除的技巧。</p>
<p>MySQL 的刪除不建議直接刪，也就是像這種 query 應該要避免：</p>
<blockquote><p><code>DELETE FROM `table` WHERE `lastupdated_at` &lt; 1234567890</code></p></blockquote>
<p>因為在巨大的 table 裡面，這類的 query 可能會跑幾分鐘。</p>
<p>一般建議多幾筆 query 刪除：</p>
<blockquote><p><code>DELETE FROM `table` WHERE `lastupdated_at` &lt; 1234567890 ORDER BY `id` LIMIT 0, 10000</code></p></blockquote>
<p>跑到適當地條件成立時為止。</p>
<p>會需要這樣設計，其中一個主要的原因是因為 MySQL 的 replication 架構：在 master 上面的寫入時是 multi-threading，但在 slave 上面的更新卻只有一個 thread。所以，如果有單一 query 跑太久，會造成有一段時間 master/slave 資料不一致。</p>
<p>另外一個可能的原因是 table 使用 <a href="http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html">MyISAM</a>。因為 MyISAM 寫入時會鎖住 table，如果花太久時間會使得 SELECT 要等待 query 結束，這點在有 web 的服務要避免 (因為前端的 user 會卡住)。分成多次寫入可以讓 query 在兩次寫入中間取得資料。</p>
<p>原文的建議是將每個要刪除的 entry 都展開成一筆 <code>DELETE</code>，這個方法有不少壞處，應該要避免。</p>
<ul>
<li>在 replication 架構下會產生大量的 binlog，雖然是徹底打散了，但反而大幅增加 client 與 server 之間的傳輸成本。</li>
<li>在 <a href="http://www.innodb.com/">InnoDB</a> 的表格裡，我們會把 <code><a href="http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit">innodb_flush_log_at_trx_commit</a></code> 設為 1 或 2，確保在 crash 時仍然可以回復資料，代價是每次更新時的 transaction log 都會 <code>fsync()</code>，強制寫回硬碟。如果有大量的 query 進來時，會產生很大量的 random write。</li>
</ul>
<p>折衷的辦法是使用 <code>LIMIT</code> 限制數量，不過這樣還不夠，因為 MySQL 會認定這個 query 在 master 與 slave 上可能會有不同的結果 (即使兩邊資料一樣，底層的 data structure 可能不同，而造成 LIMIT 後出來的 Result Set 不一樣)，為了資料安全而決定切到 ROW mode。</p>
<p>所以另外加上 <code>ORDER BY `id`</code> 確保 master 與 slave 所取得的 entry 是相同的。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gslin?a=wPqfFhYJrdE:-dugIvsW0WQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/gslin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=wPqfFhYJrdE:-dugIvsW0WQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gslin?i=wPqfFhYJrdE:-dugIvsW0WQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gslin?a=wPqfFhYJrdE:-dugIvsW0WQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/gslin?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gslin.org/archives/2009/11/04/2146/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
