<?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>Linmic之雜亂記事</title>
	<atom:link href="http://linmic.cooplex.cc/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://linmic.cooplex.cc/blog</link>
	<description>A place, where my soul live in.</description>
	<lastBuildDate>Sat, 08 May 2010 19:32:33 +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>Fred Wilson’s 10 Golden Principles of Successful Web Apps</title>
		<link>http://linmic.cooplex.cc/blog/?p=318</link>
		<comments>http://linmic.cooplex.cc/blog/?p=318#comments</comments>
		<pubDate>Sat, 08 May 2010 19:20:05 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[推薦]]></category>
		<category><![CDATA[科技]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=318</guid>
		<description><![CDATA[The 10 Golden Principles of Successful Web Apps from Carsonified on Vimeo. Spend some time for this, it should be worth listening.]]></description>
			<content:encoded><![CDATA[<p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10510576&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10510576&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object>
<p><a href="http://vimeo.com/10510576">The 10 Golden Principles of Successful Web Apps</a> from <a href="http://vimeo.com/carsonified">Carsonified</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Spend some time for this, it should be worth listening.</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=318</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Nexus One available in Taiwan?</title>
		<link>http://linmic.cooplex.cc/blog/?p=314</link>
		<comments>http://linmic.cooplex.cc/blog/?p=314#comments</comments>
		<pubDate>Wed, 21 Apr 2010 19:38:23 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[taiwan]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=314</guid>
		<description><![CDATA[剛剛唸書念比較晚，就亂逛 Nexus One 的網站，點左下角的新聞，想說，在台灣竟然可以買配件了，點進去，卻發現連手機本身都可以買 &#8230; 最恐怖的是，只要把網址改成 http://www.google.com/phone/?hl=en&#038;gl=US&#038;s7e= ，也就是加上 &#038;gl=US 竟然就不會看到 not available 的字樣，而是看到 &#8220;Get your phone&#8221; 的按鈕。我可以很肯定我現在是在台灣島上 &#8230; 有圖為證： Google 竟然讓我們隨便加個 get param 就可以看到了，好不像 G 社的作風喔 &#8230; 只是我自己有試著買了一下電池和車架，結果地址還是不能填台灣 &#8230; 大概是他們在更新？搞不好早上起床就可以買了 XD]]></description>
			<content:encoded><![CDATA[<p>剛剛唸書念比較晚，就亂逛 Nexus One 的<a href="http://www.google.com/phone/" target="_blank">網站</a>，點左下角的新聞，想說，在台灣竟然可以買配件了，點進去，卻發現連手機本身都可以買 &#8230; 最恐怖的是，只要把網址改成 <a href="http://www.google.com/phone/?hl=en&#038;gl=US&#038;s7e" target="_blank">http://www.google.com/phone/?hl=en&#038;gl=US&#038;s7e</a>= ，也就是加上 &#038;gl=US 竟然就不會看到 not available 的字樣，而是看到 &#8220;Get your phone&#8221; 的按鈕。我可以很肯定我現在是在台灣島上 &#8230; 有圖為證：</p>
<p><img src="http://lh4.ggpht.com/_SxnUY_znHxU/S89QXdofbZI/AAAAAAAAZaU/AXTVlnkz4M4/s800/nexus_available_in_taiwan.jpg" alt="Nexus One Shop" /></p>
<p><img src="http://lh6.ggpht.com/_SxnUY_znHxU/S89TxHeWDCI/AAAAAAAAZa0/xL7ZFyjcqBU/s800/n1.jpg" alt="Nexus One Available?" /></p>
<p>Google 竟然讓我們隨便加個 get param 就可以看到了，好不像 G 社的作風喔 &#8230;<br />
只是我自己有試著買了一下電池和車架，結果地址還是不能填台灣 &#8230; 大概是他們在更新？搞不好早上起床就可以買了 XD</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=314</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>展望</title>
		<link>http://linmic.cooplex.cc/blog/?p=306</link>
		<comments>http://linmic.cooplex.cc/blog/?p=306#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:15:31 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[Feelings]]></category>
		<category><![CDATA[展望]]></category>
		<category><![CDATA[成長]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=306</guid>
		<description><![CDATA[回想到今天之前的自己，一路上成長得可真錯綜複雜，小學國中的時候覺得自己靠小聰明吃飯，不太唸書也能拿到前幾名，卻也沒有自滿，只是享受著懶惰勝利的愉悅，跟朋友約打球和拿零錢去市場打大機台電動應該是最有記憶的消遣。到了高中，我依然懶惰，卻不再勝利，一路上抱著平庸的成績在前三志願的高中載浮載沉，大學自然也沒有如我預期的發生奇蹟，應該可以說是老天有眼。那些年的我，真的不知道，也沒想過自己想要做些什麼，想當然爾大一也是順理成章的被當光光，把大學除了學業之外的學分都用力的修滿，然後得到一張差一學分就被退學的成績單。這麼慘淡的現實，我卻依然有著不知道哪來的自信，覺得自己以後一定沒問題的，真的，我到現在依然找不出自信的來源是什麼，我家不有錢，老爸也不是總統，但我當時真的，一點也不擔心，說穿了就是白目。 幸運的是我的人生一路上都有許多好人幫我，說真的，我的死個性真的不值得他們的幫助和賞識，自傲到一個境界，依然不知道憑的是什麼，唯一有的念頭可能就是，我要成功，然後依循著這樣的目的而努力著，雖然我尚未定義成功這二字的具體意義，在胡思亂想的拼湊中，應該就是至少要讓自己能自我滿足吧，做什麼，就要像什麼。不過，這也是大二之後的事了。 常常看到不知道要自己該幹甚麼的大學生，不知道現在要幹麼，也不知道以後要幹麼，追求著不要被當，祈求著順利畢業，然後找一份自己的自尊心可以容許的工作，我想，應該命中了絕大部分的學生放空未來的概念旅程吧。 其實並不是他們的錯，因為小時候應付升學已經夠忙了，忙到整個教育體制重視的只有成績，只有現在最夯的產品學程，幾乎忽視了學生自己的本質，和他們想學什麼，想成為什麼。師長家長們，看似付出一切，心心念念想要給孩子最好的未來，但有誰真正問過他們想學些什麼呢？如果不是我幸運的認識了影響我良多的朋友，助教，教授，是不是，我現在也是渾渾噩噩的在追求溫飽呢？就算學生知道自己要什麼，是不是有那樣的環境或是模範，能讓他們往前走呢？是不是，會有人告訴他們，這不切實際，要他們好好去念他們沒有興趣的教科書呢？ 我有一個朋友，從小就很喜歡畫畫，但是她媽媽從小覺得畫畫不能當飯吃，極力的阻止他畫畫，畫一張，她撕一張，斯巴達的封殺這條路，對小孩子來說，那也許就能改變他的一生，那麼這樣的父母實際上有多少呢，看似為了孩子好，實則扼殺他自己想要的道路 &#8230; 。幸運的是，她爸爸支持她選擇的路，現在她在美國某藝術學院的大學肆業，回台灣跟男朋友一起在部落格商機裡闖出一片天，有相對穩定的收入，重要的是，她很開心。 其實我的父母也是這樣的，但沒有人天生就知道怎麼當父母，一切都是教學相長，當你很確定你的道路，父母最終依然會支持你，就如同我父母已經給我最大的自由一樣，他們只是怕，你吃不飽，真的就是這樣子而已。 我常常在心裡非常感謝上天能讓我在人生的路上遇到這麼多善良熱心的人，在我徬徨的時候給我意見，在我衝刺的時候給我自由。所以我衷心的希望，我也能幫助別人，幫助那些知道自己想做什麼，身體力行，卻不知道該怎麼做的人。 最後，希望我能更謙虛，溫和的待人。 Linmic, 2010/3/7]]></description>
			<content:encoded><![CDATA[<p><img src="http://lh4.ggpht.com/_SxnUY_znHxU/SfEsiL_yPWI/AAAAAAAAJ_k/GYJCUyFSAM4/s800/DSC_0224.JPG" width="800" height="537" alt="sky from 12f" /></p>
<p>回想到今天之前的自己，一路上成長得可真錯綜複雜，小學國中的時候覺得自己靠小聰明吃飯，不太唸書也能拿到前幾名，卻也沒有自滿，只是享受著懶惰勝利的愉悅，跟朋友約打球和拿零錢去市場打大機台電動應該是最有記憶的消遣。到了高中，我依然懶惰，卻不再勝利，一路上抱著平庸的成績在前三志願的高中載浮載沉，大學自然也沒有如我預期的發生奇蹟，應該可以說是老天有眼。那些年的我，真的不知道，也沒想過自己想要做些什麼，想當然爾大一也是順理成章的被當光光，把大學除了學業之外的學分都用力的修滿，然後得到一張差一學分就被退學的成績單。這麼慘淡的現實，我卻依然有著不知道哪來的自信，覺得自己以後一定沒問題的，真的，我到現在依然找不出自信的來源是什麼，我家不有錢，老爸也不是總統，但我當時真的，一點也不擔心，說穿了就是白目。</p>
<p>幸運的是我的人生一路上都有許多好人幫我，說真的，我的死個性真的不值得他們的幫助和賞識，自傲到一個境界，依然不知道憑的是什麼，唯一有的念頭可能就是，我要成功，然後依循著這樣的目的而努力著，雖然我尚未定義成功這二字的具體意義，在胡思亂想的拼湊中，應該就是至少要讓自己能自我滿足吧，做什麼，就要像什麼。不過，這也是大二之後的事了。</p>
<p>常常看到不知道要自己該幹甚麼的大學生，不知道現在要幹麼，也不知道以後要幹麼，追求著不要被當，祈求著順利畢業，然後找一份自己的自尊心可以容許的工作，我想，應該命中了絕大部分的學生放空未來的概念旅程吧。</p>
<p>其實並不是他們的錯，因為小時候應付升學已經夠忙了，忙到整個教育體制重視的只有成績，只有現在最夯的產品學程，幾乎忽視了學生自己的本質，和他們想學什麼，想成為什麼。師長家長們，看似付出一切，心心念念想要給孩子最好的未來，但有誰真正問過他們想學些什麼呢？如果不是我幸運的認識了影響我良多的朋友，助教，教授，是不是，我現在也是渾渾噩噩的在追求溫飽呢？就算學生知道自己要什麼，是不是有那樣的環境或是模範，能讓他們往前走呢？是不是，會有人告訴他們，這不切實際，要他們好好去念他們沒有興趣的教科書呢？</p>
<p>我有一個朋友，從小就很喜歡畫畫，但是她媽媽從小覺得畫畫不能當飯吃，極力的阻止他畫畫，畫一張，她撕一張，斯巴達的封殺這條路，對小孩子來說，那也許就能改變他的一生，那麼這樣的父母實際上有多少呢，看似為了孩子好，實則扼殺他自己想要的道路 &#8230; 。幸運的是，她爸爸支持她選擇的路，現在她在美國某藝術學院的大學肆業，回台灣跟男朋友一起在部落格商機裡闖出一片天，有相對穩定的收入，重要的是，她很開心。</p>
<p>其實我的父母也是這樣的，但沒有人天生就知道怎麼當父母，一切都是教學相長，當你很確定你的道路，父母最終依然會支持你，就如同我父母已經給我最大的自由一樣，他們只是怕，你吃不飽，真的就是這樣子而已。</p>
<p>我常常在心裡非常感謝上天能讓我在人生的路上遇到這麼多善良熱心的人，在我徬徨的時候給我意見，在我衝刺的時候給我自由。所以我衷心的希望，我也能幫助別人，幫助那些知道自己想做什麼，身體力行，卻不知道該怎麼做的人。</p>
<p>最後，希望我能更謙虛，溫和的待人。</p>
<p>Linmic, 2010/3/7</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=306</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>firefox&#8217;s slow page loading with mass ad page</title>
		<link>http://linmic.cooplex.cc/blog/?p=302</link>
		<comments>http://linmic.cooplex.cc/blog/?p=302#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:24:07 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[Web Performance]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=302</guid>
		<description><![CDATA[前幾天 Steve Souders 發布了一則他的實驗分析，內容大概是在講一個 javascript 的餘毒：document.write。至於為什麼會說他是一個罪惡呢 &#8230; 因為多數的網路廣告商，都喜歡以 document.write 的方式把 js 插入部落客或行銷網站的頁面中，以至於讓我們開起來非常的慢。如大家所知，通常要塞 js 進網頁有兩個方法： document.write&#40;&#8216;&#60;script src=&#34;http://www.adnetwork.com/main.js&#34;&#62;&#60;/script&#62;&#8217;&#41;; or &#60;script src=&#34;http://www.adnetwork.com/main.js&#34;&#62;&#60;/script&#62; 基本上在多數比較新的瀏覽器是沒什麼問題的 &#8230; 但是驚奇的是，在 firefox (2.0 &#8211; 3.6) 上，第一種方式的 js insert 並不會平行下載，他是 one by one 在處理的。在 Steve 寫的 demo 網頁上可以清楚的看到，他在網頁裡插入 4 次 js，前兩次用 document.write，後兩次用 html src 的方式插入。在 Chrome 4, IE8, Opera 10, Safari 4 等等的瀏覽器中，load 完他插入的 4 [...]]]></description>
			<content:encoded><![CDATA[<p>前幾天 Steve Souders 發布了一則他的<a href="http://www.stevesouders.com/blog/2010/02/10/5b-document-write-scripts-block-in-firefox/" target="_blank">實驗分析</a>，內容大概是在講一個 javascript 的餘毒：document.write。至於為什麼會說他是一個罪惡呢 &#8230; 因為多數的網路廣告商，都喜歡以 document.write 的方式把 js 插入部落客或行銷網站的頁面中，以至於讓我們開起來非常的慢。如大家所知，通常要塞 js 進網頁有兩個方法：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">document.<span class="kw1">write</span><span class="br0">&#40;</span><span class="st0">&#8216;&lt;script src=&quot;http://www.adnetwork.com/main.js&quot;&gt;&lt;/script&gt;&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>or</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://www.adnetwork.com/main.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span></div>
</div>
<p>基本上在多數比較新的瀏覽器是沒什麼問題的 &#8230; 但是驚奇的是，在 firefox (2.0 &#8211; 3.6) 上，第一種方式的 js insert 並不會平行下載，他是 one by one 在處理的。在 Steve 寫的 <a href="http://stevesouders.com/tests/docwrite-scripts.php?t=1266228179" target="_blank">demo 網頁</a>上可以清楚的看到，他在網頁裡插入 4 次 js，前兩次用 document.write，後兩次用 html src 的方式插入。在 Chrome 4, IE8, Opera 10, Safari 4 等等的瀏覽器中，load 完他插入的 4 次 js 都只有花約莫 4 秒左右的時間(因為他每支 js 都讓他 sleep 4 秒)，但是 firefox 花了 12 秒。意思就是說，在 firefox 中，前兩次(document.write)的插入共花了 4*2=8 秒，後兩隻因為是平行下載的，所以共花了四秒，所以總共花費了 12 秒有餘。所以我們可以去實驗發現，通常開側欄廣告越多的網頁，firefox 開得都特別久 &#8230; well, 希望他們可以快點改掉這個部份了。</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=302</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fish Leong and Tony Chao&#8217;s Wedding Video by Mayad Studios</title>
		<link>http://linmic.cooplex.cc/blog/?p=283</link>
		<comments>http://linmic.cooplex.cc/blog/?p=283#comments</comments>
		<pubDate>Fri, 05 Feb 2010 06:33:54 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[推薦]]></category>
		<category><![CDATA[wedding]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=283</guid>
		<description><![CDATA[梁靜茹與他老公 Tony 的婚禮 by Mayad Studios。 真不錯，這是原網址，背景音樂是 Matt Nathanson 的 Come On Get Higher。]]></description>
			<content:encoded><![CDATA[<p><object width="800" height="371" ><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://b.static.ak.fbcdn.net/rsrc.php/z4HBM/hash/3krgnmig.swf?v=309418246612" /><embed src="http://b.static.ak.fbcdn.net/rsrc.php/z4HBM/hash/3krgnmig.swf?v=309418246612" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="800" height="371" flashvars="video_id=309418246612&#038;video_length=240980&#038;video_seconds=240&#038;video_category=0&#038;video_rotation=0&#038;fbt_play_again=Play+again&#038;fbt_go_to_video=Go+to+video&#038;fbt_next_video=Next+Video&#038;fbt_share=Share&#038;play_context=6&#038;connect_to_owner=0&#038;share_id=s%3D11%26appid%3D2392950137%26p%5B%5D%3D309418246612&#038;video_player_type=video_player_permalink&#038;lowqual_width=400&#038;lowqual_height=224&#038;highqual_width=640&#038;highqual_height=360&#038;lowqual_stage_width=500&#038;lowqual_stage_height=224&#038;highqual_stage_width=800&#038;highqual_stage_height=371&#038;video_width=400&#038;video_height=224&#038;mvp_connect=1&#038;stage_width=500&#038;stage_height=240&#038;video_owner_name=Mayad+Studios&#038;video_owner_href=http%3A%2F%2Fwww.facebook.com%2Fpages%2FMayad-Studios%2F52583213840&#038;video_src=http%3A%2F%2Fvideo.ak.facebook.com%2Fvideo-ak-sf2p%2Fv6812%2F29%2F111%2F309418246612_36563.mp4&#038;video_timestamp=Added+on+Tuesday&#038;video_title=Fish+Leong+and+Tony+Chao+%5BHQ%5D&#038;thumb_url=http%3A%2F%2Fvthumb.ak.fbcdn.net%2Fvthumb-ak-sf2p%2Fv10819%2F225%2F87%2F786406612%2Fb786406612_309418246612_1467.jpg&#038;highqual_src=http%3A%2F%2Fvideo.ak.facebook.com%2Fvideo-ak-sf2p%2Fv6808%2F29%2F111%2F309418246612_9581.mp4&#038;lowqual_src=http%3A%2F%2Fvideo.ak.facebook.com%2Fvideo-ak-sf2p%2Fv6812%2F29%2F111%2F309418246612_36563.mp4&#038;fbt_lowqual=View+in+normal+quality&#038;fbt_highqual=View+in+high+quality&#038;highqual_is_on=0&#038;motion_log=%2Fvideo%2Fmotion_log.php&#038;histogram_is_on=1&#038;video_autoplay=0&#038;width=500&#038;height=240&#038;user=587439623&#038;log=no&#038;div_id=id_4b6bb294907750e075b22&#038;swf_id=swf_id_4b6bb294907750e075b22&#038;browser=Konqueror%2FSafari&#038;string_table=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fflash_strings.php%2Ft87871%2Fen_GB"></embed></object></p>
<p>梁靜茹與他老公 Tony 的婚禮 by Mayad Studios。<br />
真不錯，這是<a href="http://www.facebook.com/video/video.php?v=309418246612" target="_blank">原網址</a>，背景音樂是 Matt Nathanson 的 Come On Get Higher。</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=283</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Answering Baranovskiy’s JavaScript quiz</title>
		<link>http://linmic.cooplex.cc/blog/?p=254</link>
		<comments>http://linmic.cooplex.cc/blog/?p=254#comments</comments>
		<pubDate>Thu, 28 Jan 2010 07:09:27 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[翻譯]]></category>
		<category><![CDATA[closure]]></category>
		<category><![CDATA[quiz]]></category>
		<category><![CDATA[scope]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=254</guid>
		<description><![CDATA[這是 Nicholas C. Zakas 回答先前 Dmitry Baranovskiy 在他的 blog 上出的五道檢視你是不是真的瞭解 javascript 的小測驗。主要就是在 javascript 的行為和 scope/closure 的觀念下出五道題，並希望大家能在不去 console 跑結果的前提下看看自己是不是真的知道會 alert 出些什麼東西。我覺得很不錯所以將他的原文在這邊翻譯一份中文版。本文開始： 我上週在 Dmitry Baranovskiy 的 blog 上看到了一個 javascript 的小測驗。「你覺得你真的懂 JavaScript 嗎？」這種類型的題目都只問你一個問題：這會 alert 什麼東西出來？這些 code 是用來測試一些 JavaScript 引擎(vm)眉眉角角的屬性和行為。我之前也曾經看過類似的問題，有些人偶爾會拿去當作面試的小測驗。我認為這樣的動作對應徵者非但不太尊重，而且事實上也沒什麼用。因為你不會每天都遇到這樣的問題，所以應該讓這樣的測試成為面試評估的最小考量，那就跟請一個飛行員去解釋飛機飛行的原理一樣無用。 不過我仍然蠻喜歡其中一些程式碼的，因為他能用來解釋一些 JavaScript 語言有趣的現象。以下是對這些範例的深入解析： Example #1 if &#40;!&#40;&#34;a&#34; in window&#41;&#41; &#123; var a = 1; &#125; alert&#40;a&#41;; 這看起來很怪的 code 似乎是在說：「如果 [...]]]></description>
			<content:encoded><![CDATA[<p>這是 <a href="http://www.nczonline.net/" target="_blank">Nicholas C. Zakas</a> 回答先前 <a href="http://dmitry.baranovskiy.com/" target="_blank">Dmitry Baranovskiy</a> 在他的 blog 上出的五道檢視你是不是真的瞭解 javascript 的<a href="http://dmitry.baranovskiy.com/post/91403200" target="_blank">小測驗</a>。主要就是在 javascript 的行為和 scope/closure 的觀念下出五道題，並希望大家能在不去 console 跑結果的前提下看看自己是不是真的知道會 alert 出些什麼東西。我覺得很不錯所以將他的<a href="http://www.nczonline.net/blog/2010/01/26/answering-baranovskiys-javascript-quiz/" target="_blank">原文</a>在這邊翻譯一份中文版。本文開始：</p>
<p>我上週在 Dmitry Baranovskiy 的 blog 上看到了一個 javascript 的小測驗。「你覺得你真的懂 JavaScript 嗎？」這種類型的題目都只問你一個問題：這會 alert 什麼東西出來？這些 code 是用來測試一些 JavaScript 引擎(vm)眉眉角角的屬性和行為。我之前也曾經看過類似的問題，有些人偶爾會拿去當作面試的小測驗。我認為這樣的動作對應徵者非但不太尊重，而且事實上也沒什麼用。因為你不會每天都遇到這樣的問題，所以應該讓這樣的測試成為面試評估的最小考量，那就跟請一個飛行員去解釋飛機飛行的原理一樣無用。</p>
<p>不過我仍然蠻喜歡其中一些程式碼的，因為他能用來解釋一些 JavaScript 語言有趣的現象。以下是對這些範例的深入解析：</p>
<p><strong>Example #1</strong></p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="br0">&#40;</span><span class="st0">&quot;a&quot;</span> <span class="kw1">in</span> window<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw2">var</span> a <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p><span id="more-254"></span><br />
這看起來很怪的 code 似乎是在說：「如果 window 沒有 &#8220;a&#8221; 這個 property，那麼就定義一個 &#8220;a&#8221; 給他，並把 1 這個值指給 a。」然後你會覺得他應該會 alert 出數字 1 來。但事實上，這只會 alert 出一個 &#8220;undefined&#8221;。要瞭解原因的話，你必須先知道關於 JavaScript 的三件事。</p>
<p>第一，所有全域變數都是 window 的 property。你寫 var a = 1 事實上跟 window.a = 1 是一樣的。你可以使用下述的方式來檢視一個全域變數是不是已經被宣告過了：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="st0">&quot;variable-name&quot;</span> <span class="kw1">in</span> window</div>
</div>
<p>第二，所有的變數宣告都會直接被拉( hoisted )到同 scope 中的最前面執行(前置)。我們來看看一個簡單的範例：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">&quot;a&quot;</span> <span class="kw1">in</span> window<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw2">var</span> a<span class="sy0">;</span></div>
</div>
<p>這次 alert 的結果是 &#8220;true&#8221;，即便他的變數宣告是在這行 alert script 之後也一樣。這是因為 JavaScript 引擎會先看有沒有變數的宣告，有的話就把他們拉到最上面去 run。這個引擎其實是這樣來跑這些 code 的：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a<span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">&quot;a&quot;</span> <span class="kw1">in</span> window<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>這樣的 code 應該更能說明為什麼會 alert 出 &#8220;true&#8221; 了。</p>
<p>要搞懂這個 example 你必須瞭解的第三件事就是，只有變數宣告會被前置，初始化動作並沒有。這行 code 同時做了宣告和初始化兩個動作：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span></div>
</div>
<p>你可以像這樣將宣告和初始化拆成兩步：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a<span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//宣告</span><br />
a <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//初始化</span></div>
</div>
<p>當 JavaScript 引擎要處理一個把宣告和初始化綁在一起的動作時，會自動把這樣的動作拆成兩個步驟，這樣一來宣告就能被拉到 scope 的最前方來執行。那為什麼初始化不也一起往前拉呢？因為這樣的話會直接影響到一個變數的值，接著就會導致無法預期的結果。</p>
<p>所以，瞭解 JavaScript 的這三個層面，重新檢視原本的 code。它實際上就是如以下的 code 這樣執行的：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a<span class="sy0">;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="br0">&#40;</span><span class="st0">&quot;a&quot;</span> <span class="kw1">in</span> window<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
a <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>看著這個版本的 code 就會讓結果更直觀了。變數是先被宣告，然後 if 判斷式會處理：「如果 a 沒有被宣告過，那麼就初始他的值為 1」，當然，這樣的條件式結果永遠不會是 true，所以這個變數就會維持他原本的值：&#8221;undefined&#8221;。</p>
<p><strong>Example #2</strong></p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a <span class="sy0">=</span> 1<span class="sy0">,</span><br />
b <span class="sy0">=</span> <span class="kw2">function</span> a<span class="br0">&#40;</span>x<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
x <span class="sy0">&amp;</span>amp<span class="sy0">;&amp;</span>amp<span class="sy0">;</span> a<span class="br0">&#40;</span><span class="sy0">&#8211;</span>x<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>這份 code 事實上比他看起來的樣子複雜的多了。這次的結果會 alert 出 &#8220;1&#8243; 來，被初始化過的值。但是為什麼呢？這次必須仰賴 JavaScript 三個面向必要的知識：</p>
<p>第一個觀念是變數宣告的前置( 往前拉到 scope 的最前端 )，example #1 也有用到的這點。第二個觀念是 function 宣告的前置。所有 function 的宣告都會跟變數宣告一起被拉到所屬 scope 的最前面。為了更清楚些，一個 function 的宣告會長這樣：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> functionName<span class="br0">&#40;</span>arg1<span class="sy0">,</span> arg2<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="co1">//function body</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>這就跟 function expression 產生衝突了，因為是一個變數指派的動作：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> functionName <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>arg1<span class="sy0">,</span> arg2<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="co1">//function body</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span></div>
</div>
<p>說得明白點，function expression 並沒有被前置。這應該會讓你更清楚，當變數在初始化的時候，如果你將值的指派從一個地方移到另外一個地方，將會徹底的影響並改變他的執行結果。</p>
<p>第三，你必須知道，從這個例子中你會似懂非懂的是， function 的宣告 override 了變數的宣告，而非變數的初始化。讓我們來看看下面這個例子：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> value<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">var</span> value<span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">typeof</span> value<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//&quot;function&quot;</span></div>
</div>
<p>儘管變數的宣告在 function 的宣告之後，value 這個變數仍然會是一個 function。其 function 的宣告在這個狀況中是有優先權的。無論如何，加上變數初始化後你會得到一個不同的結果：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> value<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">var</span> value <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">typeof</span> value<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//&quot;number&quot;</span></div>
</div>
<p>現在變數的值已經變成 1 了。變數的初始化 override 了 function 的宣告。</p>
<p>回到我們的 example code，不管他的 name 的話，這個 function 其實是一個 function expression。被命名後的 function expression 將不被視為 function 的宣告，因此並不會被變數宣告 override。無論如何，你將會注意到，當 function expression 為 a 的時候，一個含有 function expression 的變數卻是 b。瀏覽器在處理這個 a 的方式各有不同。IE 視他為一個 function 的宣告，所以他會被變數宣告 override 掉，這表示他接下來 a(&#8211;x) 的動作會產生 error。其他的瀏覽器就會允許 function 中 a(&#8211;x) 的動作，而在 function 外的 a 仍然是一個數字。基本上，在 IE 裡面 call b(2) 會出現 error，而在其他的瀏覽器則會回傳一個 &#8220;undefined&#8221;。</p>
<p>總之，code 像這樣寫會好懂的多：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> a <span class="sy0">=</span> 1<span class="sy0">,</span><br />
b <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>x<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
x <span class="sy0">&amp;</span>amp<span class="sy0">;&amp;</span>amp<span class="sy0">;</span> b<span class="br0">&#40;</span><span class="sy0">&#8211;</span>x<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>現在這樣寫就能清楚的知道 a 將會永遠都是 1。</p>
<p><strong>Example #3</strong></p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> a<span class="br0">&#40;</span>x<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw1">return</span> x <span class="sy0">*</span> <span class="nu0">2</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">var</span> a<span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>如果你能完全理解上面的那些例子，那麼這個將顯得相當簡單。你唯一需要瞭解的是，除非經過初始化，否則 function 的宣告會 override 變數的宣告。這裡沒有任何初始化的動作，所以這次將會 alert 出這個 function 的原始碼。</p>
<p><strong>Example #4</strong></p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> b<span class="br0">&#40;</span>x<span class="sy0">,</span> y<span class="sy0">,</span> a<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
arguments<span class="br0">&#91;</span>2<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
b<span class="br0">&#40;</span>1<span class="sy0">,</span> 2<span class="sy0">,</span> 3<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>這份 code 會比較好理解，因為唯一需要回答的問題是，究竟會 alert 出 3 還是 10？無論在哪個瀏覽器下，結果都會是 10。要搞懂這部份只要瞭解一個觀念。ECMA-262，第三版，section 10.1.8 說明了一個 argument objet：</p>
<blockquote><p>對所有非負整數 &#8220;arg&#8221;，在(參數)小於 length 的情況下，一個 name 是 ToString(arg) 和 property attribute 是 { DontaEnum } 的 property 會被產生。這個 property 的初始值會是 caller 提供的對應參數。第一個對應的參數值對應到 arg = 0，第二個則是 arg = 1，以此類推。這樣的情況下，當 arg 比 function 中所有的參數數量還少時，此 property 會與 activation object 擁有共同的值。這表示如果改變這個 property 也會改變 activation object 相對應的值與 vice versa。</p></blockquote>
<p>簡單的說，每個在 arguments 物件中的個體會是每個被命名 argument 的 copy。請注意，雖然值是共用的，但是記憶體空間卻不然。這兩個記憶體空間會由 JavaScript 引擎來保持同步，這表示 arguments[2] 和 a 都同時共有一個值。所以這個值才會是 10。</p>
<p><strong>Example #5</strong></p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> a<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
a.<span class="me1">call</span><span class="br0">&#40;</span><span class="kw2">null</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>事實上我認為這題是五題當中最簡單的。這需要依據兩項 JavaScript 的概念：</p>
<p>第一，你勢必瞭解 &#8220;this&#8221; 物件的值是如何決定的。在一個 method 被一個物件呼叫的同時，&#8221;this&#8221; 就會指向這個 method 存在的物件。例：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">var</span> object <span class="sy0">=</span> <span class="br0">&#123;</span><br />
method<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">this</span> <span class="sy0">===</span> object<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//true</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
object.<span class="me1">method</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>在這份 code 中，當 object.method() 被呼叫的時候，&#8221;this&#8221; 指向這個物件的動作就同時完成了。在全域的 scope 中，&#8221;this&#8221; 就是 window (此指在瀏覽器中，在非瀏覽器的環境會與 &#8220;global&#8221; 物件相當)，所以這在一個不是 object property 的 function 中也如同 window。例：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> method<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">this</span> <span class="sy0">===</span> window<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//true</span><br />
<span class="br0">&#125;</span><br />
method<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>這邊將會指向全域 object，也就是 &#8220;window&#8221;。</p>
<p>具備這樣的知識，你現在可以來處理第二個重要的概念了：「call() 做了什麼。」call() method 視 function 為一個「別的物件的 method」來執行它。第一個 argument 會是 method 中的 &#8220;this&#8221;，接下來的 arguments 則會依序傳入 function 中。我們來看看：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> method<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">this</span> <span class="sy0">===</span> window<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
method<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//true</span><br />
method.<span class="me1">call</span><span class="br0">&#40;</span>document<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="co1">//false</span></div>
</div>
<p>這邊 method() function 被呼叫了，所以 &#8220;this&#8221; 就會是 &#8220;document&#8221; 本身。所以，會 alert 個 &#8220;false&#8221; 出來。</p>
<p>ECMA-262 裡有趣的是，第三版描述了當 &#8220;null&#8221; 被傳入 call() 作第一個 argument 的話會發生什麼事：</p>
<blockquote><p>如果 &#8220;thisArg&#8221; 是 null 或 undefined，被呼叫的 function 會傳入 global 來當作 &#8220;this&#8221; 的值。否則被呼叫的 function 會傳入 ToObject(thisArg) 來當作 &#8220;this&#8221; 的值。</p></blockquote>
<p>所以無論何時 null 被傳入 call() (或他的 sibling, apply())，他的預設值都會是 global 物件，也就是 window。瞭解了這些之後，這個範例 code 可以用更淺顯的方式重寫：</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> a<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">alert</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
a.<span class="me1">call</span><span class="br0">&#40;</span>window<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>這樣子的 code 會更直觀，也就是會 alert 出 window 物件轉為字串的結果。</p>
<p><strong>結論</strong></p>
<p>Dmitry 把這些小測驗集結在一起，讓你能學到一些關於 JavaScript 的眉眉角角。我希望這次的寫作能讓大家瞭解每個 example code 在做什麼，最重要的事，為什麼要這樣做。我重申，我反對以這樣的測驗來用在職位的應徵評估裡，就如同我也不覺得他們在實際的使用上會有什麼作用(如果你想知道我怎麼面試前端工程師的，可以看我上一篇文章)。</p>
<p>公告：這篇文章的所有發言和意見都是基於 Nicholas C. Zakas 本人，跟 Yahoo!、Wrox Publishing、O&#8217;Reilly Publishing 或其他人都沒有關係。我只為自己發言，而不是為了他們。</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=254</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SRH440</title>
		<link>http://linmic.cooplex.cc/blog/?p=243</link>
		<comments>http://linmic.cooplex.cc/blog/?p=243#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:08:41 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[敗家]]></category>
		<category><![CDATA[headphone]]></category>
		<category><![CDATA[品嘉]]></category>
		<category><![CDATA[耳機]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=243</guid>
		<description><![CDATA[基於我在無論何處耳邊都會響起 tiberius 述說他有多滿意他的 M1i 狀況下，我的敗家之心無法抑制，在今年的第二天默默的想去音悅聽聽看，但我從小巷子鑽出來之後卻看到侯姐今天根本就沒有要上班的意思，well，我跟鐵門相處了一陣子之後驅車前往品嘉。 一進門我就問，有沒有 M1i 可以聽？老闆果然就是老闆，依舊直腸子的否決 A 牌的水準直推 G 牌的開放式耳機，一看就知道是個超級 Grado fan。因為我有 CX400 可以用了，這次是來買個耳罩式的。本來是說預算是五千元以下，也表示我聽的音樂就是重低音/Band 居多，所以老闆穩穩跳過 AKG 等斯文音耳機拿給我 SHURE SRH440，GRADO SR 60，GRADO SR80 等等。 但我考量到可能會在辦公室聽，因此我買得第一隻(我要買兩隻)應該會是非開放式的，那麼就先暫時捨棄了 GRADO 的，等著後天去聽聽看 M1i 是不是真的這麼優，我再考慮是不是要多敗一隻高頻耳機。後來所以我聽了幾隻，甚至也加碼到二十張小朋友，有 SRH840，也聽了 AH-D7000 等等，換了半天，竟然還是最喜歡 SRH440 的感覺，看來我真的沒有用高級貨的命。老闆也是說不用管別人怎麼說，自己喜歡比較重要。我主要試聽曲約莫是 Linkin Park, Mika, Ladygaga, 另外也聽了廣仲的 OH YEAH，低音和音場的處理明顯合我的胃，接著我就走去領錢幫這隻贖身了。開箱照如下： 首先老闆袋子給我 DENON 的，我提走才發現根本不是 SHURE 的袋子 XD 保卡 盒背 開了 內裝 散拍 轉接頭 機身和皮套 [...]]]></description>
			<content:encoded><![CDATA[<p>基於我在無論何處耳邊都會響起 tiberius 述說他有多滿意他的 M1i 狀況下，我的敗家之心無法抑制，在今年的第二天默默的想去音悅聽聽看，但我從小巷子鑽出來之後卻看到侯姐今天根本就沒有要上班的意思，well，我跟鐵門相處了一陣子之後驅車前往品嘉。</p>
<p>一進門我就問，有沒有 M1i 可以聽？老闆果然就是老闆，依舊直腸子的否決 A 牌的水準直推 G 牌的開放式耳機，一看就知道是個超級 Grado fan。因為我有 CX400 可以用了，這次是來買個耳罩式的。本來是說預算是五千元以下，也表示我聽的音樂就是重低音/Band 居多，所以老闆穩穩跳過 AKG 等斯文音耳機拿給我 SHURE SRH440，GRADO SR 60，GRADO SR80 等等。</p>
<p>但我考量到可能會在辦公室聽，因此我買得第一隻(我要買兩隻)應該會是非開放式的，那麼就先暫時捨棄了 GRADO 的，等著後天去聽聽看 M1i 是不是真的這麼優，我再考慮是不是要多敗一隻高頻耳機。後來所以我聽了幾隻，甚至也加碼到二十張小朋友，有 SRH840，也聽了 AH-D7000 等等，換了半天，竟然還是最喜歡 SRH440 的感覺，看來我真的沒有用高級貨的命。老闆也是說不用管別人怎麼說，自己喜歡比較重要。我主要試聽曲約莫是 Linkin Park, Mika, Ladygaga, 另外也聽了廣仲的 OH YEAH，低音和音場的處理明顯合我的胃，接著我就走去領錢幫這隻贖身了。開箱照如下：</p>
<p>首先老闆袋子給我 DENON 的，我提走才發現根本不是 SHURE 的袋子 XD<br />
<img src="http://lh5.ggpht.com/_SxnUY_znHxU/Sz8QvM1FWDI/AAAAAAAAWOg/jnd-BALxM98/s800/DSC_0820.JPG" /></p>
<p>保卡<br />
<img src="http://lh6.ggpht.com/_SxnUY_znHxU/Sz8QovbE7uI/AAAAAAAAWLc/rNKi1IgpnTI/s800/DSC_0778.JPG" /></p>
<p>盒背<br />
<img src="http://lh6.ggpht.com/_SxnUY_znHxU/Sz8QoyPDXMI/AAAAAAAAWLk/r-cgHFixyjA/s800/DSC_0780.JPG" /></p>
<p>開了<br />
<img src="http://lh3.ggpht.com/_SxnUY_znHxU/Sz8Qq41kNgI/AAAAAAAAWMU/W9Wk2lzn4SM/s800/DSC_0793.JPG" /></p>
<p>內裝<br />
<img src="http://lh4.ggpht.com/_SxnUY_znHxU/Sz8QreyXpMI/AAAAAAAAWMs/0scJc-ocMFU/s800/DSC_0797.JPG" /></p>
<p>散拍<br />
<img src="http://lh4.ggpht.com/_SxnUY_znHxU/Sz8Qrgk2LlI/AAAAAAAAWM0/QcJantKPVLE/s800/DSC_0798.JPG" /></p>
<p>轉接頭<br />
<img src="http://lh3.ggpht.com/_SxnUY_znHxU/Sz8Qr9F4HuI/AAAAAAAAWM8/uidJ9ZegW3A/s800/DSC_0799.JPG" /></p>
<p>機身和皮套<br />
<img src="http://lh6.ggpht.com/_SxnUY_znHxU/Sz8QtWDV_vI/AAAAAAAAWNo/xZf5-UUQfas/s800/DSC_0810.JPG" /></p>
<p>近照<br />
<img src="http://lh5.ggpht.com/_SxnUY_znHxU/Sz8QtuOvWzI/AAAAAAAAWNw/fiMMMHK5cB4/s800/DSC_0811.JPG" /></p>
<p>價位四張有找，相當划算，繼續聽歌找家敗！</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=243</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>年終最中肯</title>
		<link>http://linmic.cooplex.cc/blog/?p=238</link>
		<comments>http://linmic.cooplex.cc/blog/?p=238#comments</comments>
		<pubDate>Fri, 25 Dec 2009 18:59:41 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[網站設計]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=238</guid>
		<description><![CDATA[网页设计师是怎样下地狱的, 原作 就只有這樣？沒錯。這是我長期以來，2009 年，最想 post 的東西，寫實到一個炸開！天哪！]]></description>
			<content:encoded><![CDATA[<p><a href="http://joydesign.coletree.com/2009/12/438" target="_blank">网页设计师是怎样下地狱的</a>, <a href="http://theoatmeal.com/comics/design_hell" target="_blank">原作</a></p>
<p>就只有這樣？沒錯。這是我長期以來，2009 年，最想 post 的東西，寫實到一個炸開！天哪！</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=238</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Export UTF-8 data from MySQL to Excel xls</title>
		<link>http://linmic.cooplex.cc/blog/?p=231</link>
		<comments>http://linmic.cooplex.cc/blog/?p=231#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:24:53 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[xls]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=231</guid>
		<description><![CDATA[今天心血來潮因為工作會需要將 MySQL 裡的 UTF-8 資料 export 到 excel 的 xls 裡 &#8230; 好吧我之前就有碰過這個問題，但是當時懶惰懶得管，硬轉 big5 輸出然後忽略那些問號 (誤 因為 excel 該死的不太認得 utf-8 格式的資料，本來是想說輸出直接用 &#8216;\t&#8217; 分隔就行了，後來因為他不認識我還加上 bom (&#8220;\xEF\xBB\xBF&#8221;)，這樣子輸出是很正常，但是狀況很不對勁，為什麼呢？因為所有的欄位和資料都擠到 A 那欄了，那這樣是搞屁 &#8230; 然後我就想到，phpMyAdmin 匯出的 excel 2000 格式相當精美，然後我就照著他的模式處理這樣的窘境，果然是，相當不錯精美阿 XD （自己可以加上一點簡單的 align 來修飾輸出，但我懶惰，所以 pass）既然都寫了就順便分享一下好了，應該會有人用的上，我是拿別人寫輸出的 csv code 來接著改的。 &#60;? // Author: Linmic, email: linmicya@gmail.com $host = &#34;&#34;; // your db host (ip/dn) [...]]]></description>
			<content:encoded><![CDATA[<p>今天心血來潮因為工作會需要將 MySQL 裡的 UTF-8 資料 export 到 excel 的 xls 裡 &#8230; 好吧我之前就有碰過這個問題，但是當時懶惰懶得管，硬轉 big5 輸出然後忽略那些問號 (誤</p>
<p>因為 excel 該死的不太認得 utf-8 格式的資料，本來是想說輸出直接用 &#8216;\t&#8217; 分隔就行了，後來因為他不認識我還加上 bom (&#8220;\xEF\xBB\xBF&#8221;)，這樣子輸出是很正常，但是狀況很不對勁，為什麼呢？因為所有的欄位和資料都擠到 A 那欄了，那這樣是搞屁 &#8230; 然後我就想到，phpMyAdmin 匯出的 excel 2000 格式相當精美，然後我就照著他的模式處理這樣的窘境，果然是，相當不錯精美阿 XD （自己可以加上一點簡單的 align 來修飾輸出，但我懶惰，所以 pass）既然都寫了就順便分享一下好了，應該會有人用的上，我是拿別人寫輸出的 csv code 來接著改的。</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="sy1">&lt;?</span><br />
<span class="co1">// Author: Linmic, email: linmicya@gmail.com</span></p>
<p><span class="re0">$host</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// your db host (ip/dn)</span><br />
<span class="re0">$user</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// your db&#8217;s privileged user account</span><br />
<span class="re0">$password</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// and it&#8217;s password</span><br />
<span class="re0">$db_name</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// db name</span><br />
<span class="re0">$tbl_name</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// table name of the selected db</span></p>
<p><span class="re0">$link</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a> <span class="br0">&#40;</span><span class="re0">$host</span><span class="sy0">,</span> <span class="re0">$user</span><span class="sy0">,</span> <span class="re0">$password</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;Could not connect: &#8216;</span> <span class="sy0">.</span> <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$db_name</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;Could not select database&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="re0">$select</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM `&quot;</span><span class="sy0">.</span><span class="re0">$tbl_name</span><span class="sy0">.</span><span class="st0">&quot;`&quot;</span><span class="sy0">;</span></p>
<p><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;SET NAMES utf8;&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$export</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$select</span><span class="br0">&#41;</span><span class="sy0">;</span> </p>
<p><span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&lt;</span> <span class="re0">$fields</span><span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$col_title</span> <span class="sy0">.=</span> <span class="st_h">&#8216;&lt;td&gt;&#8217;</span><span class="sy0">.</span><a href="http://www.php.net/mysql_field_name"><span class="kw3">mysql_field_name</span></a><span class="br0">&#40;</span><span class="re0">$export</span><span class="sy0">,</span> <span class="re0">$i</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">&#8216;&lt;/td&gt;&#8217;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">$col_title</span> <span class="sy0">=</span> <span class="st_h">&#8216;&lt;tr&gt;&#8217;</span><span class="sy0">.</span><span class="re0">$col_title</span><span class="sy0">.</span><span class="st_h">&#8216;&lt;/tr&gt;&#8217;</span><span class="sy0">;</span></p>
<p><span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_fetch_row"><span class="kw3">mysql_fetch_row</span></a><span class="br0">&#40;</span><span class="re0">$export</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$line</span> <span class="sy0">=</span> <span class="st_h">&#8221;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$row</span> <span class="kw1">as</span> <span class="re0">$value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="br0">&#41;</span> OR <span class="br0">&#40;</span><span class="re0">$value</span> <span class="sy0">==</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="st0">&quot;<span class="es1">\t</span>&quot;</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;&quot;&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8221;</span><span class="sy0">,</span> <span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="st_h">&#8216;&lt;td&gt;&#8217;</span> <span class="sy0">.</span> <span class="re0">$value</span> <span class="sy0">.</span> <span class="st_h">&#8216;&lt;/td&gt;&#8217;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\t</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$line</span> <span class="sy0">.=</span> <span class="re0">$value</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$data</span> <span class="sy0">.=</span> <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="st0">&quot;&lt;tr&gt;&quot;</span><span class="sy0">.</span><span class="re0">$line</span><span class="sy0">.</span><span class="st0">&quot;&lt;/tr&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">$data</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\r</span>&quot;</span><span class="sy0">,</span><span class="st0">&quot;&quot;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Type: application/vnd.ms-excel;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Disposition: attachment; filename=export.xls&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Pragma: no-cache&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Expires: 0&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="re0">$xls_header</span> <span class="sy0">=</span> <span class="st_h">&#8216;&lt;html xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot;<br />
xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot;<br />
xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;<br />
&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;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html;charset=utf-8&quot; /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;table border=&quot;1&quot; align=&quot;center&quot;&gt;&#8217;</span><span class="sy0">;</span></p>
<p><span class="re0">$xls_footer</span> <span class="sy0">=</span> <span class="st_h">&#8216;&lt;/table&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;&#8217;</span><span class="sy0">;</span></p>
<p><span class="kw1">print</span> <span class="re0">$xls_header</span><span class="sy0">.</span><span class="re0">$col_title</span><span class="sy0">.</span><span class="re0">$data</span><span class="sy0">.</span><span class="re0">$xls_footer</span><span class="sy0">;</span><br />
<a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="sy0">;</span></p>
<p><span class="sy1">?&gt;</span></div>
</div>
<p>微軟真靠杯，收工，回家。</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=231</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>慣用語小記</title>
		<link>http://linmic.cooplex.cc/blog/?p=224</link>
		<comments>http://linmic.cooplex.cc/blog/?p=224#comments</comments>
		<pubDate>Sun, 23 Aug 2009 08:40:21 +0000</pubDate>
		<dc:creator>Linmic</dc:creator>
				<category><![CDATA[筆記]]></category>
		<category><![CDATA[idioms]]></category>

		<guid isPermaLink="false">http://linmic.cooplex.cc/blog/?p=224</guid>
		<description><![CDATA[剛剛查 yahoo dictionary，結果在知識+發現幾個有趣的英文慣用語，就筆記一下 1. soup up: (of a motor vehicle) modified for higher performance, applied by extension to other items 馬力增強了的; to increase the power or efficiency of e.g. How to soup up your car? 怎麼增強你的車子的馬力？ 2. hit the sauce (or hit the booze) &#8211; to drink alcohol (usually regularly) 酗酒 e.g. I think that [...]]]></description>
			<content:encoded><![CDATA[<p>剛剛查 yahoo dictionary，結果在知識+發現幾個有趣的英文慣用語，就筆記一下 <img src='http://linmic.cooplex.cc/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>1. <strong>soup up</strong>: (of a motor vehicle) modified for higher performance, applied by extension to other items 馬力增強了的; to increase the power or efficiency of</p>
<p>e.g. How to soup up your car?<br />
怎麼增強你的車子的馬力？</p>
<p>2. <strong>hit the sauce (or hit the booze)</strong> &#8211; to drink alcohol (usually regularly) 酗酒</p>
<p>e.g. I think that woman began to hit the sauce after her husband lost his job.<br />
我認為那個女人在她的丈夫失去了他的工作之後開始酗酒。 </p>
<p>3. <strong>egg (someone) on</strong>- to encourage someone to do something (often something bad/wrong/dangerous) 慫恿</p>
<p>e.g. The boys egged their friend on to jump into the water.<br />
那些男孩的朋友慫恿他跳入水裡。 </p>
<p>4. <strong>cut the mustard</strong> &#8211; to succeed, to do adequately what needs to be done<br />
1. 出色地完成任務；達到標準 2. 使…達到最好水平</p>
<p>e.g. The young man was not able to cut the mustard and he had to leave the army after only one year.<br />
那個年輕人沒有能達到標準，所以僅僅來軍隊一年 就必須離開。 </p>
<p>5. <strong>go for peanuts</strong> &#8211; sold for very little money; traded for almost nothing<br />
&#8220;peanut(s)&#8221; &#8211; 無甚價值之物;小數額</p>
<p>e.g. Things go for peanuts on online auctions.<br />
你能在網拍發現非常便宜的東西。</p>
]]></content:encoded>
			<wfw:commentRss>http://linmic.cooplex.cc/blog/?feed=rss2&amp;p=224</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
